50186

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

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

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

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

Русский

2014-01-17

67.5 KB

5 чел.

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

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

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


 

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

64209. ПРОФЕССИОНАЛЬНАЯ ПОТЕРЯ СЛУХА – ПРОБЛЕМА ЗДОРОВЬЯ И БЕЗОПАСНОСТИ 97.5 KB
  Методы определения потерь слуха человека действовал 1980 по 1985 г. В итоге ранее абсолютным противопоказанием к продолжению работы в условиях шума являлось повышение порогов слуха на речевых частотах свыше 30 дБ а согласно данному документу...
64210. Развитие психической деятельности животных в онтогенезе 34 KB
  Для изучения этих процессов в зоопсихологии применяют биогенетический метод базирующийся на эволюционной теории развития видов. Изучение развития психики в онтогенезе предполагает рассмотрение следующих основных аспектов: Иными словами необходимо выяснить что получает особь в наследство от предыдущих поколений...
64211. Развитие психической деятельности в пренатальном периоде 30.5 KB
  Общим правилом эмбриогенеза является асинхронность развития органов систем и нервных центров которые регулируют их функции. Важно отметить что органы находящиеся на разных этапах развития всегда функционируют согласовано обеспечивая работоспособность всей системы организма.
64212. Сравнительный обзор развития двигательной активности зародышей 42 KB
  У морских козочек отряд бокоплавы до вылупления наблюдаются спонтанные и ритмичные движения головы и других частей эмбриона из которых впоследствии формируются специфические двигательные реакции этих рачков а к концу эмбриогенеза в день вылупления появляются двигательные ответы на тактильные раздражения.
64213. Пренатальное развитие сенсорных способностей и элементов общения 30.5 KB
  Развитие зрения и слуха также лучше всего изучены у эмбрионов птиц. Оптические реакции например зрачковый рефлекс формируются у птиц в конце пренатального периода когда начинают функционировать периферический и центральный отдел зрительного анализатора.
64214. Эмбриогенез и развитие психического отражения 27 KB
  Говорить о полноценной психической деятельности эмбриона нельзя так как в основе психического отражения лежит способность животного адекватно ориентировать свою деятельность по отношению к компонентам среды. Таким образом психическая деятельность эмбриона невозможна или ограничена...
64215. Развитие психической деятельности животных в раннем постнатальном периоде 33.5 KB
  Если рассматривать психическую деятельность эмбриона как поведение и психику в процессе их становления на начальной стадии существования особи то рождение является поворотным пунктом где весь процесс развития поведения получает новое направление.
64216. Инстинктивное поведение в раннем постнатальном периоде 30 KB
  Появление инстинктивных движений является результатом реализации генетически закрепленной программы которая сформировалась в процессе филогенеза. Процесс развития инстинктивных движений в раннем постнатальном периоде...