50139

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

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

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

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

Русский

2014-01-16

67 KB

4 чел.

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

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

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


 

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

37050. Сыны Отечества - защитники земли русской 45 KB
  И сегодня на классном часе в преддверии этого праздника мы вспомним каких героев защитников земли русской вы знаете а о ком то расскажем вам что то новое. Солнце земли Русской так называл князя его современник митрополит Кирилл. Но для начала каких героев богатырей защитников земли русской вы знаете Ответы детей.
37051. Жизнь без сигарет 80 KB
  В объятиях табачного дыма Курение табака возникло ещё в глубокой древности. Постепенно курение стало путешествовать по Европе дошло до России но активного распространения не получило пока царевич Пётр Алексеевич постоянно общавшийся с чужеземцами не научился курить А потом он стал царём и начал как известно вводить в России европейские порядки в том числе и не препятствовал распространению курения. Курение распространилось по всей стране. Петр I стал внедрять табакокурение: по его мнению это способствовало принципам западной...
37053. Осторожно мошенники. Классный час 65.71 KB
  Речи таких продавцов фальсификаторов могут начинаться словами Мы проводим уникальную акцию с раздачей призов Вы можете приобрести супер предметы нетупящиеся ножи эксклюзивные вина. Слова пустышки Жаргонизмы Канцеляризмы Сквернословие Задания Найти слово которое используется в составе приведенных фразеологизмов. Прочтите слова правильно расставляя ударение Выберите правильный вариант. Слова пустышки Слайд 2 Это лишние слова словосочетания предложения словапустышки.
37054. НАРКОТИКИ. Классный час 73.5 KB
  Как повашему что такое наркотики Ответы 5 мин. В течение 10 минут каждый ряд должен нарисовать плакат на тему Мы против наркотиков. За 10 минут каждый ряд должен придумать 10 убедительных отказов человеку предлагающему вам наркотик. Как вы думаете можно ли избавиться от наркотической зависимости Каким образом Ответы 5 мин.
37056. Конверт откровения. Классный час 58.5 KB
  Бывает ли любовь с первого взгляда Сколько раз в жизни может любить человек Может ли быть любовь длиною в жизнь Следует ли прислушиваться к мнению других например родителей когда любишь Что делает людей родными Что делать если в равной степени любишь двоих и не в силах сделать выбор в чьюлибо пользу Всегда ли следует говорить любимому человеку правду Стоит ли обсуждать с любимым человеком то что не нравится в ваших с ним отношениях Почему многие считают что романы между учителем и ученицей или...
37057. КЛАССНЫЙ ЧАС, посвященный Дню Победы 63.5 KB
  Ветеранам мы дарим гвоздики Вспоминаем отважных бойцов Не забудем мы подвиг великий Наших дедов и наших отцов Дымова: 9 мая в 67 раз наша страна праздновала День Победы в ВОВ. Карева Какими путями прошли вы солдаты Какие преграды сумели сломить Стираются лица стираются даты Военных дорог никогда не...
37058. Классный час Поговорим о дружбе 20.66 KB
  Ход классного часа: Ребята послушайте стихотворение: Дружба главное чудо всегдаСто открытий для всех настоящееИ любая беда не бедаЕсли рядом друзья настоящие. Дружба крепка не лестью а правдой и честью. Дружба как стекло: разобьешь не сложишь.