50209

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

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

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

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

Русский

2014-01-18

68 KB

2 чел.

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

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

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

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

Задание

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

А. Различать степени изменения лингвистической переменной в трех степенях – «Очень – Нормально – Слабо»

Б. Изменять порог чувствительности.

1. Казанова – Генрих VIII – верный лебедь

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.

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


 

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

5690. Унификация методов количественного определения лекарственных средств 139 KB
  Унификация методов количественного определения лекарственных средств Количественное определение - это заключительный этап фармацевтического анализа. Выбор оптимального метода количественного определения зависит от возможности оценить лекарствен...
5691. Генетика вирусов. Структурная организация генома клетки 138.5 KB
  Величайшие достижения середины XX века - открытие дискретных единиц наследственности (генов), разработка хромосомной теории наследственности, развитие биохимической генетики микроорганизмов и установление принципа один ген...
5692. Россия на пути суверенного развития (1991-2001 гг.) 59.64 KB
  Россия на пути суверенного развития (1991-2001 гг.) Переход к рыночным реформам. - Политический кризис 1993 г. Принятие Конституции РФ. Первая Чеченская война. Второй срок президентства Б. Ельцина и углубление кризиса. Вторая Чеченская война. И...
5693. Ответственность за нарушение экологического законодательства 155.5 KB
  Введение. Понятие и состав экологического правонарушения. Понятие и состав экологического преступления. Административная и гражданско-правовая ответственность за экологическое правонарушения. Заключение. Цель лекции: ознакомить сту...
5694. Организация производства мясных полуфабрикатов и мясоперерабатывающего цеха 747.55 KB
  Тема данной курсовой работы в настоящее время является актуальной, так как в России на долю пищевой и перерабатывающей промышленности приходится более половины продовольственного товарооборота страны. В состав этой отрасли входит более 30 подотраслей...
5695. Организация технологического процесса по приготовлению блюд Азу по-татарски и Сочни с творогом 484.94 KB
  Организация технологического процесса по приготовлению блюд Азу по-татарски и Сочни с творогом Общая характеристика кулинарии как науки Известно ли вам, что есть на свете две профессии, которые мы знаем с самого детства? Не просто знаем, а сразу...
5696. Технология татарской кухни и ее изучение в средней общеобразовательной школе 514.84 KB
  В настоящее время наряду с традиционными кухнями люди используют в своей жизнедеятельности достижения национальных кухонь. Многочисленные путешественники называли татарскую национальную кухню сытной и вкусной,простой и изысканной...
5697. Фінансове планування. Зміст та задачі фінансового планування 442.78 KB
  Зміст та задачі фінансового планування Лекція Сутність та задачі фінансового планування на підприємстві Логічна послідовність процесу фінансового планування Інтегроване фінансове планування Види фінансового планування ...
5698. Охорона праці. Системи управління охороною праці 373.27 KB
  Міжнародні норми в галузі охорони праці Соціальне партнерство (соціальний діалог) в охороні праці. Соціальне партнерство як принцип законодавчого та нормативно-правового забезпечення охорони праці. Соціальний діалог у Європейському Союзі (ЄС...