50022

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

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

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

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

Русский

2014-01-14

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.

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


 

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

7275. Засади кримінального процесу 84.92 KB
  Засади кримінального процесу ПЛАН: Вступ 1. Поняття, значення і класифікація засад кримінального провадження. 2. Конституційні засади кримінального провадження. 3. Спеціальні засади кримінального провадження та їх характеристика. Висновки...
7276. Засоби колективного та індивідуального захисту населення 82.5 KB
  Тема: Засоби колективного та індивідуального захисту населення. План: Колективні засоби захисту: призначення і класифікація. Індивідуальні засоби захисту людей: Індивідуальні засоби захисту органів дихання Індивідуальні зас...
7277. Суб’єкти трудового права України 77.5 KB
  Поняття субєкта трудового права України. Громадяни як субєкти трудового права України. Власник або уповноважений ним орган як субєкт трудового права України. Підприємство як суб'єкт трудового права України. Трудовий колектив як суб'єкт трудового права України.
7278. Особливості організації обслуговування споживачів у закладах ресторанного господарства відкритої мережі 56 KB
  Тема: Особливості організації обслуговування споживачів у закладах ресторанного господарства відкритої мережі. План: Правила подачі гарячих закусок. Правила подачі перших страв, підбір посуду, приборів. Література: Я.М.Сало. Організація...
7279. Направленность личности 88 KB
  Направленность личности Вопросы для обсуждения: Направленность в структуре личности. Потребности и мотивы в структуре направленности личности. Формы направленности личности. Самосознание и Я-концепция. Литература: Березовин, Н. А. Осн...
7280. Психологічні особливості молодшого школяра 90.5 KB
  Лекція №4. Психологічні особливості молодшого школяра. Загальна психологічна характеристика ситуації розвитку молодшого школяра. Учбова діяльність молодших школярів. Розвиток пізнавальних психічних процесів. Формування особистості ди...
7281. Виробництво виробів на основі гіпсового в’яжучого 550 KB
  Виробництво виробів на основі гіпсового вяжучого План заняття Асортимент виробництва на основі гіпсового вяжучого. Способи виробництва виробів на основі гіпсового в’яжучого. Технологія виробництва гіпсокартонних ли...
7282. Економічна система суспільства. Типи і еволюція економічних систем 53 KB
  Тема 4. Економічна система суспільства План лекції Економічна система: її сутність та структурні елементи. Типи і еволюція економічних систем. Сучасні тенденції в розвитку економічних систем. Економічна система: її сутність та с...
7283. Колективні договори й угоди 125.5 KB
  Лекція 5. Колективні договори й угоди § 1. Поняття колективного договору В усіх країнах колективний договір традиційно розглядається як бажаний засіб фіксації заробітної плати та інших умов найму, регулювання відносин між підприємцями і працівниками...