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.

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


 

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

71098. Производственный шум 164 KB
  Действие шума на организм человека Шум определяют как всякий нежелательный для человека звук. Проявление вредного воздействия шума на организм весьма разнообразно. Специфическое воздействие шума действие на слуховой анализатор. Длительное воздействие интенсивного шума выше 80 дБ А на слух человека приводит к его частичной или полной потере.
71099. Электромагнитные неионизирующие излучения (промышленных и радиочастот) 101.5 KB
  Источниками электромагнитных полей являются атмосферное электричество радиоизлучение солнца и галактик квазистатические электрические и магнитные поля Земли. Как в производственной так и в бытовой сфере широко используются электромагнитные поля как переменные так и постоянные.
71100. Человек как элемент эргатической системы. Понятие риска. Управление риском 344.5 KB
  Антропометрические характеристики определяются размерами тела человека и его отдельных частей и используются для проектирования наиболее рациональных условий труда. Они позволяют рассчитывать пространственную организацию рабочего места, устанавливать зоны досягаемости и видимости, конструктивные параметры рабочего места...
71101. ПРОИЗВОДСТВЕННОЕ ОСВЕЩЕНИЕ 82.5 KB
  Через зрительный анализатор (ЗА) к нам поступает большая часть информации об окружающем мире. Зрительная работоспособность, производительность труда тесно связаны с рациональным производственным освещением. Свет оказывает влияние на эмоциональное состояние человека...
71102. ПСИХОЛОГИЯ ЛИЧНОСТИ 135.66 KB
  Соотношение индивидуальности и личности определяется тем что это два способа бытия человека два его различных определения. Несовпадение же этих понятий проявляется в частности в том что существуют два отличающихся процесса становления личности и индивидуальности.
71103. Специфика и сущность философского знания 25.64 KB
  Основные типы мировоззрения: Миф это самая древняя форма мировоззрения на уровне мироощущения и миропонимания которая характеризуется символическим фантастическо-образным целостным представлением о природе обществе и человеке.
71105. Средневековая философия (IV-XIV вв.) 32.5 KB
  Квинт Септимий Тертуллиан из Карфагена (160-240) – Платона, Аристотеля, Эпикура, Гераклита, Эмпедокла и других мыслителей античности Тертуллиан считает “патриархами еретиков”. Следовательно, все кто ищет истину на путях, пройденных античной философией, попадает...
71106. Философия эпохи Возрождения (XIV-XVI вв.) 43.27 KB
  Философия эпохи Возрождения – совокупность философских направлений, возникших и развивавшихся в Европе в XIV-XVI вв., которые объединяли антицерковная и антисхоластическая направленность, устремленность к человеку, вера в его великий физический и духовный потенциал...