49997

Нечеткая логика. Создание простейшей системы нечеткой логики

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

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

Создание простейшей системы нечеткой логики реализованной на языке высокого уровня. Задание Согласно заданным вариантам разработать программу на любом алгоритмическом языке способную: Различать степени изменения лингвистической переменной в трех степенях...

Русский

2015-01-29

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.

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


 

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

76978. Административная ответственность: понятие, признаки, нормативное и фактическое основание, отличие от других видов юридической ответственности 27.2 KB
  Административная ответственность: понятие признаки нормативное и фактическое основание отличие от других видов юридической ответственности. Административная ответственность это вид юридической ответственности которой присущи все признаки последней и которая выражается в применении уполномоченным органом или должностным лицом административного наказания к лицу совершившему административное правонарушение административный проступок. Несмотря на имеющиеся отличия административной ответственности от других видов юридической...
76979. Законодательство об административной ответственности. Принципы законодательства. Действие законодательства во времени и пространстве 27.64 KB
  Законодательство об административных правонарушениях состоит из Кодекса об адм. правонарушениях и принимаемых в соответствии с ним законов субъектов Российской Федерации об административных правонарушениях. Если международным договором Российской Федерации установлены иные правила чем предусмотренные законодательством об административных правонарушениях то применяются правила международного договора. Действующий Кодекс Российской Федерации об административных правонарушениях право определяет лишь два основных начала: принцип равенства перед...
76980. Субъекты административной ответственности. Общие специальные и особые субъекты административной ответственности 27.6 KB
  Субъекты административной ответственности. Общие специальные и особые субъекты административной ответственности. Субъектами административной ответственности чаще всего выступают субъекты административного проступка т. совершившие административное правонарушение физические лица и привлекаемые за это к административной ответственности.
76981. Обстоятельства, исключающие административную ответственность. Освобождение от административной ответственности 26.69 KB
  Освобождение от административной ответственности. Обстоятельства исключающие административную ответственность установленные законодательством юридические факты схожие с административными правонарушениями но при которых отношения ответственности не возникают: недостижение возраста административной ответственности для физических лиц крайняя необходимость невменяемость для физических лиц. Невменяемость состояние при котором лицо не могло сознавать фактический характер и противоправность своих действий бездействия либо руководить...
76982. Административное правонарушение как основание административной ответственности: понятие, сущность, признаки, отличающие от других видов правонарушений 29.81 KB
  Лицо может быть привлечено к административной ответственности если в его действиях со держатся все признаки конкретного состава правонарушения и отсутствуют основания исключающие ответственность.
76983. Юридический состав административного правонарушения. Виды составов. Под составом административного правонарушения 29.42 KB
  Юридический состав административного правонарушения. Под составом административного правонарушения понимается установленная правом совокупность признаков элементов при наличии которых антиобщественное деяние может повлечь административную ответственность. Элементами состава административного правонарушения являются: объект субъект объективная сторона субъективная сторона. Объект административного правонарушения общественные отношения возникающие в сфере государственного управления регулируемые нормами права и охраняемые мерами...
76984. Административное наказание как средство реализации административной ответственности: понятие, цели, система административных наказаний 25.62 KB
  Административное наказание является установленной государством мерой ответственности за совершение административного правонарушения и применяется в целях предупреждения совершения новых правонарушений как самим правонарушителем так и другими лицами. За совершение административных правонарушений могут устанавливаться и применяться следующие административные наказания...
76985. Краткая правовая характеристика каждого вида наказания 25.52 KB
  Конфискацией орудия совершения или предмета административного правонарушения является принудительное безвозмездное обращение в федеральную собственность или в собственность субъекта Российской Федерации не изъятых из оборота вещей. Административное выдворение за пределы Российской Федерации иностранных граждан или лиц без гражданства заключается в принудительном и контролируемом перемещении указанных граждан и лиц через Государственную границу Российской Федерации за пределы Российской Федерации а в случаях предусмотренных законодательством...
76986. Общие правила наложения административных наказаний, учет смягчающих и отягчающих наказание обстоятельств 27.21 KB
  Общие правила наложения административного наказания. Административное наказание за совершение административного правонарушения назначается в пределах установленных законом предусматривающим ответственность за данное административное правонарушение в соответствии с КоАП. При назначении административного наказания физическому лицу учитываются характер совершенного им административного правонарушения личность виновного его имущественное положение обстоятельства смягчающие административную ответственность и обстоятельства отягчающие...