50207

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

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

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

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

Русский

2014-01-18

68 KB

3 чел.

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

Лабораторная работа №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.

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


 

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

60209. Виховний захід «Проблема сміття. Мій внесок у вирішення цієї проблеми» 4.56 MB
  А чи знаєте ви що за рік в атмосферу після ваших гралищ з вогнем піднімається: Сажі 391 тонни слайд 8 Марганцю 121 тонни Фтористих сполук 059 тонни Бензину 038 тонни Пилу цементу 0062 тонни Оксиду кальцію 2362 тонни Нікелю 003 тонни...
60210. Мати-берегиня нашого життя йшла у бій не заради слави 358 KB
  Мета: на основі дослідження архівних документів численних публікацій презентувати колективний проект з гендерної рівності Матиберегиня нашого життя йшла у бій не заради слави; показати героїчну велич Берегині нашого життя в роки...
60211. Сценарій свята «Ой, на Івана, та й на Купайла» 114.5 KB
  На Івана Купайла дівчата плетуть віночки вставляють в них запалені свічки і пускають їх на воду. У день свята дівчата збирають польові квіти лікарські рослини зібравшись на березі ставу плетуть віночки прикрашають Ївайло зеленню квітами стрічками достиглими вишнями звязаними...
60214. Овочева країна 70.5 KB
  На дошці напис Овочева країна мультимедійна презентація матеріали для конкурсів Слайд №2 Дивина така в природі: У бабусі на городі Різні овочі ростуть Розповзаються цвітуть. Виростила я чудові овочі.
60215. Свято «Прощавай, Букварику!» 119 KB
  На уроках читання ми познайомилися із казкою Муха Цокотуха і від нас тобі а також всім нашим батькам і гостям які завітали до нас на свято в дарунок ця казка. Мелодія Приходи Казка Муха Цокотуха Автор: Ось на воліпід дубком жила Муха під листком.
60216. Інтегрований виховний захід: «Країна чаю» 687 KB
  Мета: розширити знання учнів про чай історію його виникнення територію поширення та цілющі властивості ознайомити учнів з китайською та британською технологіями заварювання чаю поєднати знання учнів з ряду предметів історії географії...
60217. Математическое детективное агентство 139 KB
  Ведущие: Шерлок Холмс и доктор Ватсон. Звучит музыкальная заставка из х ф Шерлок Холмс и др Ватсон. Ватсон: Добрый день Холмс Шерлок Холмс: Добрый день Ватсон Ватсон: Вы просматривали утренние газеты Опять громкое дело...