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.

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


 

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

79524. Начало эпохи великих географических открытий и первые колониальные захваты. Новое время как особая фаза всемирно исторического процесса 22.1 KB
  Новое время или новая история период в истории человечества находящийся между Средневековьем и Новейшим временем. Критерием определения нового времени его новизны по сравнению с предшествующей эпохой был с точки зрения гуманистов расцвет в период Ренессанса светской науки и культуры то есть не социальноэкономический а духовнокультурный фактор. Однако этот период довольно противоречив по своему содержанию: Высокое Возрождение Реформация и гуманизм соседствовали с массовым всплеском иррационализма развитием демонологии...
79525. Реформация и ее экономические, политические и социокультурные причины. Религиозные войны в Европе 21.7 KB
  С одной стороны католический мир который объединял все народы Западной Европы под духовным руководством папы римского прекратил существование. С другой стороны национальные церкви способствовали росту национального сознания народов Европы. При этом существенно повысился культурный и образовательный уровень жителей Северной Европы которая до этого была как бы окраиной Христианского Мира необходимость изучения Библии приводила к росту как начальных учебных заведений в основном в форме церковноприходских школ так и высших что...
79526. Государство и общество стран Западной Европы в 17 веке 21.34 KB
  Их концептуальным выражением и итогом стали теории естественного права и общественного договора основанные на рационализме. Теория естественного права явилась классическим воплощением нового мировоззрения. Теория естественного права основана на признании всех людей равными от природы и наделенными природой же естественными страстями стремлениями разумом. Законы природы определяют предписания естественного права которому должно соответствовать положительное позитивное волеустановленное право.
79527. Внутренняя и внешняя политика Ивана 4 Грозного 20.85 KB
  Иван IV стал великим князем в 1533 г. в 3 года. Регентшей была его мать Елена Глинская, а после ее смерти в 1538 г. началось боярское правление, сопровождавшееся борьбой боярских группировок. В 1547 г. Иван IV венчался на царство.
79528. Россия в годы смуты (конец 16-начало 17 веков) 21.68 KB
  Шурин Фёдора Борис Годунов фактически правил при недееспособном Фёдоре Ивановиче организовал свое избрание царём на Земском соборе. Но бояре были недовольны незнатным царём крестьяне отменой Юрьева дня казаки репрессиями властей дворяне тяжелой службой. Годунов умер и Лжедмитрий стал царём. Земский собор избрал царём Михаила Романова.
79529. Воцарение в России Романовых. Развитие страны в 17 веке. Особенности сословно-представительной монархии в России 20.84 KB
  Кандидатура Михаила Федоровича устроила представителей всех сословий и политических сил: аристократы были довольны тем что новый царь будет представителем древнего рода Романовых сторонники легитимной монархии были довольны тем что Михаил Федорович имеет родство с Иваном Грозным а пострадавшие от террора и хаоса смуты были довольны тем что Романов не причастен к опричнине казаки же были довольны что отцом юного царя был митрополит Филарет.
79530. Россия в конце 17-первой четверти 18 веков 21.76 KB
  Россия по Вечному миру с Польшей закрепила за собою Киев и вступила в антитурецкую коалицию. по Ништадтскому миру Россия получила за крупную сумму Эстонию Латвию и почти всю Карелию. Россия заключила союз с Австрией.
79531. Международные отношения и внешняя политика России при Петре 1 23.79 KB
  Образование Российской 1Пётр I предпринял целый ряд реформ. После возвращения из Великого посольства Пётр I повёл борьбу с внешними проявлениями устаревшего образа жизни но не менее обращал внимание на приобщение дворянства к образованию и светской европеизированной культуре. Успех по службе Пётр поставил для дворян в зависимость от образования. Всего в посольство вошло до 250 человек среди которых под именем урядника Преображенского полка Петра Михайлова находился сам царь Пётр I.