50139

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

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

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

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

Русский

2014-01-16

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

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


 

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

12322. Саясаттанудың заңдары мен категориялары, әдістері мен функциялары 284.5 KB
  САЯСАТТАНУ ҒЫЛЫМ РЕТІНДЕ Саясаттанудың объектісі мен пәні Саясаттанудың заңдары мен категориялары әдістері мен функциялары 1. Саясатты түсіну ежелден бастау алады. Оны ғылыми тұрғыда шешу кейінгі ғасырларға келеді. Саяси ғылым қазіргі кездегі мәнін Х...
12323. Никола Макиавелли 25.77 KB
  СӨЖ Тақырыбы: Никола Макиавелли Никола Макиавелли Қайта өрлеу дәуірінің көрнекті өкілі буржуазиялық саяси ілімінің негізін қалаушы Никола Макиавелли саяси қайраткер дипломат және тарихшы ретінде де кеңінен танылады. Мемлекет және құқық концепциясы тарихын
12324. Әлемдік әлеуметтанудың қалыптасуы мен даму тарихы 132.16 KB
  ІІ дәріс. Әлемдік әлеуметтанудың қалыптасуы мен даму тарихы. 1. Антикалық және Ортағасыр дәуіріндегі әлеуметтік ойлар. 2. Жаңа заман мен Ағартушылар дәуіріндегі әлеуметтік тұжырымдамалар. 3. Әлеуметтану ғылымының классика...
12325. Саясаттану пәнінен 1-аралық бақылау сұрақтары 43.18 KB
  Саясаттану пәнінен 1аралық бақылау сұрақтары Саясаттану ғылым ретінде Саясаттану ғылымының атқаратын қызметтері Саяси ойшылдардың саясатқа берген анықтамалары Саясаттанудың деңгейлері Саясаттанудың парадигмалары Ежелгі дәуірдегі саяси ойшылд
12326. Эмпирикалық әлеуметтану бойынша глоссарий 15.16 KB
  Эмпирикалық әлеуметтану бойынша глоссарий Эмпирикалық әлеуметтану нақты зерттеулер жүргізуді осылардың негізінде арнаулы әдістер қолдану сұрау бақылау тәжірибе арқылы жаңа фактілерді жинап талдауды қорытындылауды айтады Интервью көсемсөз жанры журналист
12327. Тақырыбы: Томас Джефферсонның саяси-құқықтық көзқарасы 43.85 KB
  СӨЖ Тақырыбы: Томас Джефферсонның саясиқұқықтық көзқарасы АҚШ тарихы ХVІІІ ғасырдың соңғы ширегі мен ХІХ – ғасырлардың басында әлемге көрнекті саңлақтар тобын берді. Олар әр қилы көзқарасты ұстанып әр түрлі партиялардың құрамында болғанымен барлығы да америка
12328. Саяси процесс туралы ұғым 54 KB
  Саяси процесс туралы ұғым Саяси процесс ұғымы кең және тар мағынасында қолданылады. Кең мағынасында ол коғамның саяси жүйесінің уакыт пен кеңістікте дамып жұмыс істеуін білдіреді. Тар мағынасында түпкілікті нақты нәтижеге жеткен белгілі бір көлемдегі процесті көрсет
12329. Аралық бақылау сұрақтары 472.21 KB
  I IIаралық бақылау сұрақтары 1.Социология дегеніміз қандай ғылым. 2.Социологиялық ұғымдарлың ерекшеліктері. 3.Социологиялық парадигмалардың сипаттамалары. 4.Социологияның өмірге келуінің саяси әлеуметтік экономикалық рухани алғышарттары. 5.Социологияның атқара...
12330. ӘЛЕУМЕТТАНУ ҒЫЛЫМ РЕТІНДЕ 838.5 KB
  І. ӘЛЕУМЕТТАНУ ҒЫЛЫМ РЕТІНДЕ Әлеуметтанудың объектісі пәні мен әдістері. Әлеуметтанудың құрылымы мен білім деңгейлері. Әлеуметтанудың атқаратын қызметі функциясы. Әлеуметтанудың басқа қоғамдық және гуманитарлық ғылымдармен байланысы. 1. ӘЛЕУМЕТТАНУ