50200

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

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

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

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

Русский

2014-01-17

69 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.

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


 

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

55263. Основні фактори розміщення продуктивних сил, їх вплив на розміщення виробництва 25.69 KB
  Фактори розміщення це реалізація закономірностей і принципів при врахуванні конкретних умов, що впливають на вибір місць розташування промислових підприємств і формування територіально-виробничих комплексів.
55264. Поняття компютерної презентації. Основне призначення системи підготовки презентації 68.5 KB
  Мета уроку: навчальна: отримати уявлення про мультимедіа, познайомитися з програмою для створення мультимедійних презентацій; навчитися технології створення і демонстрації електронних презентацій; розвиваюча: розвиток мислення, пізнавальних інтересів, навиків роботи на компютері, роботи з мультимедійними програмними засобами...
55265. Чисельність населення України, особливості його динаміки. Природний рух населення. Демографічна ситуація в Україні, основні шляхи її розв’язання 25.61 KB
  Демографічні передумови є найважливішою складовою розміщення продуктивних сил. Населення країни фактор її комплексного економічного та соціального розвитку. Населення це трудові ресурси і споживач, яке впливає на формування міжрайонних функцій виробництва, потужність і структуру потоку продукції, що вивозиться за межі певної території, розвиток місцевого виробництва.
55266. Комп’ютерна презентація 107.5 KB
  Мета: 1) ввести поняття “презентація”, навчити учнів проектувати презентації, ознайомити з програмою Power Point та її можливостями. З’ясувати призначення комп’ютерної презентації. 2) розвивати алгоритмічне та логічне мислення, вміння порівнювати, виділяти головне, роботи узагальнення і висновки. Розвивати пізнавальну, комунікативну та інформаційну компетентності.
55268. Принципи економічного районування України. Районний господарський комплекс та його галузева структура (три групи галузей) 25.18 KB
  Спеціалізація як основна народногосподарська функція (спеціалізація району на певних виробництвах і послугах певною мірою відповідає його географічному розташуванню, природним, економічним і соціальним умовам та спирається на раціональний поділ праці з іншими районами);
55269. Пригоди в осінньому лісі 44 KB
  Любі гості мами й тата В дитсадку у нас розвага Починаємо увага Під музику заходять діти сідають. Погляньте діти у віконце: Де сховалось наше сонце Хмарини у небі пропливають Холодним дощиком лякають. Кукловська Діти виконують пісню Осінь сл. Діти давайте разом попросимо дощик щоб він перестав.
55270. Казкові пригоди 40 KB
  Математика: продовжувати вчити дітей орієнтуватись в просторі; розв’язувати цікаві математичні задачі; формувати навички орієнтування в часі; закріплювати знання цифр у межах 10 вміння їх відшукувати на картинках; назви геометричних фігур та їхні ознаки; назви днів тижня частини доби місяців.