50193

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

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

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

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

Русский

2014-01-17

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

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


 

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

76817. Печень, ее развитие, строение, топография, кровоснабжение и иннервация, региональные лимфатические узлы 186.78 KB
  Печень – hepr развивается из первичного эпителия энтодермы эмбриональной первичной кишки. Из переднего возникает печень из заднего желчный пузырь. Развивающаяся печень врастает между листками вентральной брыжейки сохраняя связь с кишкой благодаря растущему холедоху.
76818. Желчный пузырь. Выводные протоки желчного пузыря и печени. Кровоснабжение и иннервация желчного пузыр 184.91 KB
  Выводные протоки желчного пузыря и печени. Желчный пузырь – vesic felle biliris seu cholecystis прирастает к висцеральной поверхности правой доли печени в одноименной ямке что лежит в передней половине правой сагиттальной борозды. Дно fundus vesic felle есть слепо расширенный конец выступающий из под нижнего края печени на уровне сращения VIIIIХ реберных хрящей справа. Тело – corpus vesic felle сужается по направлению к воротам печени и плавно сливается с шейкой над которой нередко нависает в виде своеобразного кармана прилежащая...
76819. Поджелудочная железа, развитие, топография, строение, выводные протоки, внутрисекреторная часть, кровоснабжение, иннервация, региональные лимфатические узлы 185.67 KB
  Внутрисекреторная эндокринная часть железы создаёт инсулин глюкагон соматостатин липокаин и другие гормоны для обменных процессов и роста во всем организме. Развитие железы осуществляется из переднего и заднего выростов эпителия первичной кишки в месте образования дуоденум. Аномалия развития добавочные дольки железы. Масса органа 80 г длина 1418 см ширина 9 см толщина 23 см внутрисекреторная часть составляет 12 от массы железы.
76820. Верхний этаж брюшной полости 180.02 KB
  Брюшина верхнего этажа с диафрагмы переходит на выпуклую диафрагмальную поверхность печени образуя серповидную венечную и треугольные связки которые отграничивают внебрюшинное поле печени прирастающее к диафрагме. В последней в направлении справа налево располагается холедох воротная вена собственная артерия печени. Желудок брюшина покрывает интраперитонеально переходя на него с печени по малому сальнику. Париетальная брюшина в верхнем этаже образует три сумки: печеночную для правой и квадратной долей печени преджелудочную для...
76821. Топография брюшины в среднем и нижнем этажах брюшной полости. Большой сальник. «Карманы» в стенках брюшной полости 185.59 KB
  Париетальная брюшина передней стенки живота образует между пупком и лобком складки и ямки. Ямки надпузырные правая и левая fosse suprvesicles dextr et sinistr между срединной и медиальными пупочными складками. Паховые ямки медиальные правая и левая fosse inguinlis dextr et sinistr между медиальными и латеральными пупочными складками латеральные паховые ямки: правая и левая кнаружи от латеральной складки они соответствуют внутреннему паховому кольцу. Через надпузырные ямки могут возникать скользящие грыжи когда стенкой...
76822. Нос и его полость 182.92 KB
  Корень носа отделяется от лба переносьем в виде пологой поперечной борозды. Различия носа определяются: формой спинки: выпуклая прямая вогнутая; длиной и положением корня носа: глубокое высокое среднее; направлением ноздрей: кверху книзу горизонтально; очертанием верхушки: тупая острая средняя. Скелет носа образован фиброзной тканью хрящами и костями. Фиброзная перепонка находится в передней части перегородки носа покрыта кожей.
76823. Гортань (ларингс) 183.27 KB
  Скелет гортани образуют хрящи и их соединения между собой. Связки и суставы гортани Орган связывает с подъязычной костью щитовидноподъязычная мембрана состоящая из непарной срединной связки и парных боковых – правой и левой. В желудочковой части гортани находятся преддверные и голосовые связки. Эластический конус это фиброзноэластическая мембрана гортани расположенная непосредственно под слизистой оболочкой в нижней части органа т.
76824. Мышцы гортани 181.17 KB
  Гортань лежит на уровне от IV до VIVII шейных позвонков имея спереди и по бокам щитовидную железу поверхностную и трахеальную фасции подподъязычные мышцы; сзади глотку вверху подъязычную кость. Мышцы гортани подразделяются на три группы: расширители дилататоры голосовой щели суживатели констрикторы напряжители тензоры голосовых связок. Мышцырасширители дилататоры.
76825. Трахея и бронхи 184.75 KB
  Она начинается от гортани на уровне VI шейного позвонка заканчивается на уровне IV V грудных позвонков делением на два главных бронха. Приносящие лимфатические сосуды впадают в глубокие шейные лимфатические узлы внутренние яремные а также в трахебронхиальные пред и паратрахеальные узлы. На уровне IVV грудных позвонков трахея образует раздвоение бифуркацию и переходит в правый и левый главные бронхи или иначе обозначая в бронхи первого порядка.