50198

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

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

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

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

Русский

2014-01-17

68 KB

1 чел.

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

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

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


 

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

73427. Розміщення й планування майданчиків відпочинку, автобусних зупинок 372.5 KB
  Призначення майданчиків відпочинку та автобусних зупинок Норми проектування майданчиків відпочинку та автобусних зупинок Забезпечення інформацією учасників дорожнього руху У водіїв транспортних засобів при русі по дорогах поступово в міру стомлення збільшується час реакції...
73428. Проблеми збереження природного середовища при будівництві доріг 28.05 KB
  Умови проектування автомобільних доріг Екологія та автомобільні дороги Принципова схема прогнозованої екологічної оцінки проектованої автомобільної дороги Проблеми збереження природного середовища в її природній різноманітності й багатстві визначають сьогодні практично всі сторони життя...
73429. Еколгічна сумісність із навколишнім середовищем 29.5 KB
  На етапі прокладки траси майбутньої дороги особливу роль відіграє ландшафтне проектування що враховує не тільки вимоги земельного законодавства по вилученню земельних ділянок під будівництво дороги подолання контурних і висотних перешкод але й вимоги по захисту навколишнього середовища.
73430. Захист населення від екологічного забруднення придорожнього природного середовища 73.5 KB
  Технічні снігозахисні посадки захист від ерозії протиерозійне озеленення піщаних заметів пескозащитное озеленення сильних вітрів і курних бур; забезпечення безпеки руху й зорового орієнтування тобто вказівка напрямку дороги за межами видимості покриття підкреслення...
73431. Захист тварин і рослин 39 KB
  Проектування автомобільних доріг через ліси лісопитомники заповідники Основні методи зменшення впливу автотранспорту на тварин Дороги особливо швидкісні автомагістралі являють загрозу дикою тваринам у двох відносинах: погіршенні якості середовища проживання й небезпеки зіткнення...
73432. Види ремонту 75 KB
  Працездатність автомобільної дороги Поточний ремонт Середній ремонт Капітальний ремонт Для забезпечення нормативних термінів служби автомобільних доріг і задоволення вимог безперебійного й безаварійного руху з боку автотранспорту необхідно не тільки правильно їх містити але й вчасно робити всі види ремонтів.
73433. Утримання асфальтобетонних покриттів 19.05 KB
  У процесі експлуатації автодоріг узбіччя так само як і покриття проїзної частини перетерплюють зміни у своїх геометричних параметрах у рівності поверхонь осідання руйнування накопичуються різні забруднення виникає необхідність у виробництві ремонтних робіт.
73434. Утримання і поточний ремонт земляного полотна і водовідвідних споруд 20.34 KB
  Головні вимоги по утриманню і ремонту за періодами року Основні роботи по утриманню земляного полотна Основні роботи по утриманню водовідвідних споруд Основні види деформацій і руйнувань Роботи з утримання і поточного ремонту земляного полотна спрямовані на збереження його поздовжнього...
73435. Принцип планування робіт по утриманню та ремонту доріг 42.03 KB
  Планування робіт по утриманню доріг Система показників ефективності Планування ремонтних робіт Потреба в реконструкції або ремонті у всіх випадках установлюється шляхом виявлення ділянок доріг фактичний стан яких по якихнебудь параметрах і характеристикам не задовольняє діючим вимогам...