50171

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

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

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

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

Русский

2014-01-17

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.

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


 

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

74424. Осевой цилиндр корня 39 KB
  В осевом цилиндре корня можно различать сложный радиальный проводящий пучок и паренхиму ткань периферическая часть которой в виде кольца клеток называется перициклом рис. Эти клетки удлиняются в радиальном направлении делятся тангентальными перегородками и образуют корнеродную дугу со слоями клеток функционирующими по тому же типу как в кончике корня. Заложение боковых корешков происходит весьма близко к конусу нарастания образующего их корня выход же их наружу на значительном расстоянии.
74425. Строение типичного зеленого листа 58 KB
  В пластинке листа уже с помощью лупы можно различить 4 группы тканей: 1 покровную кожицу или эпидермис; 2 основную питательную мезофилл1; 3 проводящую сосудистоволокнистые пучки жилки; 4 механическую придающую листу жесткость определяющую положение листа в пространстве. Эпидермис стебля переходит на черешок и пластинку листа. Местами преимущественно на нижней стороне листа в эпидермисе находятся устьица.
74426. Флоэма 39 KB
  При изучении формирования члеников ситовидной трубки можно видеть что сначала членик представляет живую тонкостенную клетку с протоплазмой ядром лейкопластами и центральной вакуолей через полость которой проходят тяжи протоплазмы. Клетка членик ситовидной трубки растет; замыкающие пленки пор при этом растягиваются утоньшаются; в них образуются мелкие перфорации; в остальной части клеточная оболочка значительно утолщается под микроскопом она сильно блестит. Денатурация протоплазмы обнаруживается тем что членики трубки уже не...
74427. Бесполое и половое размножение хвощей 29 KB
  Благодаря этим лентам споры обычно сцепляются в рыхлые комочки разносимые ветром из вскрывшихся спорангиев и заростки развивающиеся из спор бывают скучены группами. Раньше заростки хвощей считали раздельнополыми: одни более мелкие только с антеридиями другие более крупные только с архегониями. Однако в недавнее время у некоторых видов были обнаружены и обоеполые заростки. Возможно что они потенциально обоеполы у многих видов и что кажущаяся их однополость объясняется неодновременностью развития архегониев и антеридиев архегонии...
74428. ЧЕРЕДОВАНИЕ ПОЛОВОГО И БЕСПОЛОГО ПОКОЛЕНИЙ И СМЕНА ЯДЕРНЫХ ФАЗ 37.5 KB
  У большинства же зигота немедленно начинает делиться и образует новое растение или зародыш его; последний у семенных растений временно задерживается в дальнейшем развитии. У большинства оно способно размножаться вегетативно; кроме того у очень многих растений на нем или в нем образуются бесполым путем специальные клетки служащие для размножения носящие нередко различные названия и объединяемые под общим наименованием спор бесполого размножения. Каждый вид растений характеризуется определенным диплоидным и вдвое меньшим гаплоидным числом...
74429. Эпиблема (волосконосный слой) 31 KB
  На расстоянии 0110 мм обычно на расстоянии 123 мм от крайней точки корня клетки эпиблемы начинают образовывать корневые волоски. Корневые волоски многих травянистых растений длиннее чем у большинства древесных пород. При свободном росте при развитии корней в воде или во влажном воздухе волоски имеют форму цилиндра или конуса с закруглением на конце. Корневые волоски играют и механическую роль давая опору верхушке корня пробивающейся при росте между частицами почвы и способствуя заякориванию корневой системы в земле.
74430. Бесполое и половое размножение равноспоровых папоротников 31.5 KB
  Стенка спорангиев однослойная; содержимое их археспорий образует после редукционного деления клеточных ядер многочисленные темные споры служащие для бесполого размножения папоротников. Раскрывание созревших и начинающих подсыхать спорангиев происходит у громадного большинства папоротников при содействии группы клеток его стенок расположенных у многих кольцом и имеющих частичные утолщения...
74431. Бесполое и половое размножение разноспоровых, или водяных, папоротников 31.5 KB
  У некоторых разноспоровых папоротников а также других представителей высших споровых растений селагинелл изоэтеса произошла еще большая редукция мужских и женских заростков а также потеря и женским гаметофитом способности к фотосинтезу. У селагинелл близких к плаунам мега и микроспорофиллы собраны в колоски; мегаспоры прорастают в мегаспорангиях еще на материнском растении; у некоторых видов микроспоры переносятся на мегаспорофиллы и мегаспорангии где происходит оплодотворение начинается развитие зародыша и мегаспорангии отпадает...
74432. ПОЛОВОЕ РАЗМНОЖЕНИЕ СЕМЕННЫХ РАСТЕНИЙ 31 KB
  Для рассеивания распространения растения служат следовательно не споры как у типичных споровых растений а семена; бесполого размножения спорами нет чередование поколений выражено неясно и выявляется лишь путем сравнительноморфологических и цитологических исследований. Спорофиллы покрытосеменных растений тесно скученные на концах побегов и у большинства окруженные еще метаморфизированными верхушечными листьями образуют вместе с ними цветок; мы можем охарактеризовать его как укороченный побег листья которого метаморфизированы в связи с...