50151

Нечеткая логика

Лабораторная работа

Информатика, кибернетика и программирование

Согласно заданным вариантам разработать программу на любом алгоритмическом языке, способную: А. Различать степени изменения лингвистической переменной в трех степенях – «Очень – Нормально – Слабо» Б. Изменять порог чувствительности. Улитка без ноги – медленно – быстро (о скорости)

Русский

2014-01-16

67.5 KB

2 чел.

Системы искусственного интеллекта

Лабораторная работа №1

Нечеткая логика

Цель работы: создание простейшей системы нечеткой логики, реализованной на языке высокого уровня.

Задание

Согласно заданным вариантам разработать программу на любом алгоритмическом языке, способную:

А. Различать степени изменения лингвистической переменной в трех степенях – «Очень – Нормально – Слабо»

Б. Изменять порог чувствительности.

  1.  Улитка без ноги – медленно – быстро (о скорости)

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, ComCtrls, StdCtrls,math, TeEngine, Series, ExtCtrls, TeeProcs,

 Chart;

type

 TForm1 = class(TForm)

   Chart1: TChart;

   Series1: TLineSeries;

   Series2: TLineSeries;

   Series3: TLineSeries;

   Series4: TBarSeries;

   TrackBar1: TTrackBar;

   Label1: TLabel;

   Label5: TLabel;

   Edit1: TEdit;

   Edit2: TEdit;

   Edit3: TEdit;

   Label6: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Label7: TLabel;

   TrackBar2: TTrackBar;

   procedure TrackBar1Change(Sender: TObject);

   procedure TrackBar2Change(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

 acc:integer;

implementation

{$R *.dfm}

procedure TForm1.TrackBar1Change(Sender: TObject);

var a,b,c,aq:double;

   i:integer;

begin

 label2.Caption:='';

 label3.Caption:='';

 label4.Caption:='';

 label1.Caption:=inttostr(trackbar1.position);

 a:=(1/(1+power(((trackbar1.Position-10+acc)/12),22)));

 b:=(1/(1+power(((trackbar1.Position-35+acc)/12),8)));

 c:=(1/(1+power(((trackbar1.Position-60+acc)/12),12)));

 if a<0.2 then label2.Caption:='Совсем не '+edit1.Text;

 if (a<0.4) and (a>0.2) then label2.Caption:='Чуть-чуть не '+edit1.Text;

 if (a<0.6) and (a>0.4) then label2.Caption:='Немного '+edit1.Text;

 if (a<0.8) and (a>0.6) then label2.Caption:='Весьма '+edit1.Text;

 if (a<1) and (a>0.8) then label2.Caption:='Абсолютно '+edit1.Text;

 if b<0.2 then label3.Caption:='Совсем не '+edit2.Text;

 if (b<0.4) and (b>0.2) then label3.Caption:='Чуть-чуть не '+edit2.Text;

 if (b<0.6) and (b>0.4) then label3.Caption:='Немного '+edit2.Text;

 if (b<0.8) and (b>0.6) then label3.Caption:='Весьма '+edit2.Text;

 if (b<1) and (b>0.8) then label3.Caption:='Абсолютно '+edit2.Text;

 if c<0.2 then label4.Caption:='Совсем не '+edit3.Text;

 if (c<0.4) and (c>0.2) then label4.Caption:='Чуть-чуть не '+edit3.Text;

 if (c<0.6) and (c>0.4) then label4.Caption:='Немного '+edit3.Text;

 if (c<0.8) and (c>0.6) then label4.Caption:='Весьма '+edit3.Text;

 if (c<1) and (c>0.8) then label4.Caption:='Абсолютно '+edit3.Text;

 aq:=a+b+c;

 label2.Caption:=label2.Caption+' '+inttostr(round(a/aq*100))+'%'+edit1.Text;

 label3.Caption:=label3.Caption+' '+inttostr(round(b/aq*100))+'%'+edit2.Text;

 label4.Caption:=label4.Caption+' '+inttostr(round(c/aq*100))+'%'+edit3.Text;

 series4.Clear;

 for i:=1 to 100 do if i<>trackbar1.Position then

   series4.Add(0) else series4.Add(1);

end;

procedure TForm1.TrackBar2Change(Sender: TObject);

var a,b,c:double;

   i:integer;

begin

 acc:=trackbar2.Position;

 series1.Clear;

 series2.Clear;

 series3.Clear;

 series4.Clear;

 for i:=1 to 100 do begin

   a:=(1/(1+power(((i-10+acc)/12),22)));

   series1.Add(a);

   b:=(1/(1+power(((i-35+acc)/12),8)));

   series2.Add(b);

   c:=(1/(1+power(((i-60+acc)/12),12)));

   series3.Add(c);

 end;

end;

procedure TForm1.FormCreate(Sender: TObject);

var a,b,c:double;

   i:integer;

begin

 acc:=0;

 series1.Clear;

 series2.Clear;

 series3.Clear;

 series4.Clear;

 for i:=1 to 100 do begin

   a:=(1/(1+power(((i-10+acc)/12),22)));

   series1.Add(a);

   b:=(1/(1+power(((i-35+acc)/12),8)));

   series2.Add(b);

   c:=(1/(1+power(((i-60+acc)/12),12)));

   series3.Add(c);

 end;

end;

end.

Вывод: научились создавать простейшую системы нечеткой логики, реализованной на языке высокого уровня.


 

А также другие работы, которые могут Вас заинтересовать

53202. Ігровий майданчик на уроках англійської мови у початкових класах 233.5 KB
  На уроках англійської мови найчастіше проводяться мовні ігри фонетичні лексичні граматичні орфографічні алфавітні та комунікативні діалогічні монологічні аудитивні. Фонетичні ігри на уроках англійської мови у початкових класах На початковому етапі вивчення англійської мови велика увага приділяється правильній вимові звуків. Навчальна мета гри полягає в тому щоб діти вимовляли й дізнавалися необхідні звуки не думаючи про цьому спеціально роблячи це автоматично. Тому на уроках доцільно використати наступні фонетичні ігри.
53203. Розвиток обдарованості ігровими методами 477 KB
  Кожній групі даються вислови значення яких учасники мають пояснити: світла голова І група не пером пишуть а розумом ІІ група. Виграє та група яка зуміє краще аргументувати свою позицію. Слід також систематизувати ці аналоги за групами відповідно до певної ознаки.
53204. Авторська розробка дидактичної інтерактивної гри Ді-джей 220 KB
  У процесі гри дитина будь-якого віку перебуває в особливому емоційному стані який уявляє собою очікування та сам процес задоволення від розумової активності що виявляється у вільній творчій атмосфері гри гумору чи змагання. Але дуже важливо щоб форма зміст навчальної гри не був відірваний від сьогодення. Але чи зацікавить сучасного учня або студента таке заняття Я вважаю що актуальність методики навчальної гри та сучасна форма її подачі повинні бути одним з головних принципів при розробці та впровадженні ігрових методик у...
53206. Інтелектуальна гра «Розумники і розумниці» 146 KB
  У кімнату заходять ведучі Ведучий1: Добрий день дорогі друзі Ведучий2: Добрий день шановні гості Ми раді бачити Вас на нашій фізичній інтелектуальній грі яка називається Розумники і розумниці. Ведучий1: Ми розпочнемо з легенди. Ведучий2: А для цього проведемо невелике змагання. Привітаємо наших учасників У кімнату входять команди і займають свої місця за двома столами Ведучий1: А хто стане переможцем вирішить наше компетентне журі.
53207. ІНТЕЛЕКТУАЛЬНА ГРА «НАРОД СКАЖЕ – ЯК ЗАВ’ЯЖЕ» 320 KB
  Недарма сказано що без будьякої іншої науки ще можна обійтися а без знання рідної мови аж ніяк. Ним можна клювати як дзьобом. На ньому можна зарубати як на пні. Його можна нагострити як ніж.
53208. Все про злочин і покарання (Правова гра для учнів 10 – 11 класів) 93 KB
  Свій варіант озвучує команда якщо має відповідь. Відповідь: 2001 р. Відповідь: 18 років. Відповідь: матеріальна або дисциплінарна два варіанта відповіді 4.
53209. Інтелектуальна гра «Ми - українці» 63 KB
  Доброго дня всім присутнім у нашій залі Вітаю вас на інтелектуальній грі Ми українці слайд 1 Звучить пісня Ти моя Україна у виконанні М. Конкурс 1 Київщина: із минулого в майбутнє слайд 3 Ведучий. Аеропорт у місті Борисполі Скільки районів входить до складу Київської області 25 Підсумки конкурсу оголошує журі Конкурс 2 Народознавче лото слайд 4 Ведучий. Вболівальники пригадують найвідоміші свята українців слайд 5 Питання конкурсу: Саме на це свято чоловіки за старовинним звичаєм варили пиво.
53210. Інтелектуальна гра-шоу для старшокласників «Любіть свою мову й ніколи її не забудьте в житті…» 153.5 KB
  Сьогодні у міжнародний день рідної мови свято української мови одного з найцінніших надбань які створили й залишили нам наші попередники. Пізнати історію рідної сторони і рідної мови нам допомагають книги і самобутня творчість нашого народу: мелодійні пісні та думи барвисті коломийки та ліричні хороводи чарівний фантастичний світ казок. Хай же сьогоднішнє свято відкриє перед вами дорогі друзі шанувальники української мови розум мудрість гумор нашого талановитого народу.