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.

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


 

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

24825. «Косцы» («Страдная пора») 1887 762 KB
  После каждого взмаха косы крестьян на землю падают высокие золотого цвета колосья ржи еще мы видим на картине голубые цветы васильков белые лепестки ромашек и одиноко чернеющий репейник. Женщины изображенные на картине занимаются тем что собирают скошенную рожь и вяжут из нее снопы. Но он все также проникнут тем светлым и вечным величием которое отражено на картине Мясоедова.
24826. МЯСОЕДОВ, ГРИГОРИЙ ГРИГОРЬЕВИЧ (1834–1911) 114 KB
  Мясоедов написал много пейзажей и преимущественно крымских многие из них характерны и колоритны. Мясоедов занимался также и гравированием крепкой водкой офортом. Кроме того Мясоедов писал и религиозную живопись см. Умер Мясоедов в Полтаве 17 30 декабря 1911.
24827. На бульваре - Владимир Егорович Маковский. 1886-1887 337 KB
  53x68 Третьяковская галерея Москва Картина На бульваре написана в 1877 и посвящена одной из самых острых проблем России в тот период вынужденному отъезду крестьян в город на заработки что в конечном итоге привело к распаду традиционного уклада жизни русских деревень: кормилец семьи отрывался от престарелых родителей корней жены и детей семьи терялась или ослабевала тонкая связь между ними и все это приводило к гибели патриархального мира. Им негде побыть и поговорить вместе кроме как здесь на улице на бульваре но супруг...
24828. Перов Василий Григорьевич 345.5 KB
  Основной идеей картины является стремление показать отсутствие милосердия и благожелательности у тех кому самим Богом предопределено их проявлять и настаивать на этих добродетелях свою паству.Основной конфликт картины сосредоточен вокруг двух жестов: просящем со стороны нищего и отталкивающем со стороны хозяйки.Желая подчеркнуть идею картины мастер с глубоким пониманием человеческой психики детально передаёт в свойственной ему манере написания образы героев включая их жесты и мимику и окружающее их пространство.На заднем плане картины...
24829. Плоскосто́пие — изменение формы стопы 13.71 KB
  Статическое плоскостопие встречающееся наиболее часто 821 возникает вследствие слабости мышц голени и стопы связочного аппарата и костей. К внутренним причинам способствующим развитию деформаций стоп относится также наследственное предрасположение к внешним причинам перегрузка стоп связанная с профессией женщина с нормальным строением стопы 7 8 часов проводящая за прилавком или в ткацком цехе может со временем приобрести это заболевание ведением домашнего хозяйства ношение нерациональной обуви узкой неудобной....
24830. Проводы покойника 1865 319.5 KB
  Художник почти не показывает лица но он показывает всю силу ее страдания. Художник выделяет интенсивным темным пятном собачку: она выбивается пятном явся контрастом чтобы подчеркнуть скорбное молчание людей.
24831. Бурлаки на Волге 1870-1873 3.18 MB
  Репин: его поразили виденные типы и характеры в нем жива была потребность нарисовать далекую безвестную русскую жизнь и он сделал из своей картины такую сцену для которой ровню сыщешь разве только в глубочайших созданиях Гоголя. Один только шумит и задорно кипятится мальчик в длинных белых космах и босиком являющийся центром и шествия и картины и всего создания. Его яркая розовая рубашка раньше всего останавливает глаз зрителя на самой середине картины а его быстрый сердитый взгляд его своенравная бранящаяся на всех словно...
24832. Василий Григорьевич ПЕРОВ 85.5 KB
  В 1870е годы бытовой жанр Перова приобрел новое направление. Вклад Перова в искусство середины XIX века чрезвычайно весом. Путь Перова в искусстве это путь постоянного поиска он не боялся меняться без сожаления оставлял области где удалось снискать славу. Во время преподавания в Московском училище живописи ваяния и зодчества у Перова было много учеников которые впоследствии стали известными русскими художниками: М.