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.

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


 

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

8972. Характеристики взаимодействия науки, экономики и власти 44 KB
  Характеристики взаимодействия науки, экономики и власти Отношения науки и экономики всегда представляли собой большую проблему. Наука не только энергоемкое предприятие, но и в огромной степени финансово затратное. Она требует огромных капиталовложен...
8973. Преднаука и Основания наук 59 KB
  Преднаука и Основания наук Особенностями восточной преднауки являлись: непосредственная вплетенность и подчиненность практическим потребностям (искусству измерения и счета - математика, составлению календарей и обслуживанию религиозных культов...
8974. Развитие форм научного мышления в средние века 33.17 KB
  Развитие форм научного мышления в средние века. Эпоху Средневековья относят к началу II в. н.э., а ее завершение к XIV—XV вв. В истории Европы этот период называют не иначе как мрачный, имея при этом в виду общий упадок цивилизации, крушение ...
8975. Становление развитой научной теории 39 KB
  Становление развитой научной теории. Роль теории в научном познании огромна. Теория как форма научного знания направлена на обнаружение закономерностей того или иного фрагмента действительности. В процессе построения научной теории задействованы сет...
8976. Историческая изменчивость механизмов порождения научного знания. 35 KB
  Историческая изменчивость механизмов порождения научного знания. Важнейшей характеристикой знания является его динамика, т. е. его рост, изменение, развитие и т. п. Эта идея, не такая уж новая, была высказана уже в античной философии, а Гегель сформ...
8977. Структура эмпирического знания 38.5 KB
  Структура эмпирического знания Само эмпирическое знание имеет довольно сложную структуру, в которой можно выделить четыре уровня: а) единичные эмпирические высказывания (протокольные предложения), которые фиксируют результаты единичных наблюдений....
8978. Структура теоретического знания 34 KB
  Структура теоретического знания Для выяснения специфики теоретического познания важно подчеркнуть, что теория строится с явной направленностью на объяснение объективной реальности, но описывает непосредственно она не окружающую действительность...
8979. Научная картина мира: ее функции и исторические формы 29 KB
  Научная картина мира: ее функции и исторические формы. НКМ (Степин) – целостная система представлений о мире, его структурных характеристиках и закономерностях, вырабатываемая в результате систематизации и синтеза в фундаментальных достижениях...
8980. Основания науки 34 KB
  Основания науки Наука, выступая как целостная, развивающаяся система, имеет собственные основания, обладает идеалами и нормами исследования. Эти характеристики пронизывают науку и как специфическую форму деятельности, и как совокупность дисциплинарн...