50207

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

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

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

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

Русский

2014-01-18

68 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.

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


 

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

46237. Ж. Пиаже. «Комментарии к критическим замечаниям Л.С. Выготского на книги «Речь и мышление ребенка» и «Суждения и рассуждения ребенка» 14.27 KB
  Пиаже. Выготского на книги Речь и мышление ребенка и Суждения и рассуждения ребенка Пиаже обнаруживает через 25 лет после опубликования работу коллеги который уже умер. а те из работ Пиаже которые он обсуждает относятся к 1923 и 1924. Пиаже постарался увидеть оправдываются ли критические замечания Выготского в свете его позднейших работ.
46238. Грамматика как научная дисциплина. Основные подходы к изучению языковой грамматики. Виды и уровни языковой грамматики 14.26 KB
  Грамматический строй языка имеет свои категории и единицы словоформы и словообразовательные модели словосочетания и предложения. В русской грамматике выделяются именные морфологические категории рода одушевлённости неодушевлённости числа падежа степени сравнения; глагольные категории вида залога наклонения времени и лица; грамматическая форма внешнее языковое выражение грамматического значения в каждом конкретном случае употребления слова. Синтаксические категории = тип предложения – специфическая характеристика присущая только...
46239. НОИСТРУНТОРСНИЕ, ИЗМЕРИТЕЛЬНЫЕ И ТЕХНОЛОГИЯ ЕС HUE ВАЗЫ 14.23 KB
  Конструкторская база это база используемая для определения положения детали или сборочной единицы в изделии ГОСТ 21495 76. В обычной практике конструкторской работы конструкторской базой называется поверхность линия или точка детали по отношению к которым определяются на чертеже расчетные положения других деталей или сборочных единиц изделия^ а также других поверхностей и геометрических элементов данной детали. Основной называется конструкторская база принадлежащая дайной детали или сборочной единице...
46240. Структура лексического значения. Функциональный статус составляющих лексическое значение компонентов (денотативное и сигнификативное содержание значения) 14.17 KB
  Прямое значение слова – это непосредственная связь между звуковым комплексом и явлением действительности. Ядро лексического значения – концептуальное значение: а денотативный аспект выражает отношение содержания слова к предмету который оно означает. б сигнификативный аспект выражает отношение слова к понятию которое стоит за этим словом. г лингвистический аспект определяет место данного слова среди других единиц языка.
46241. Структуры. Действия со структурами. Передача структур в функции 14.1 KB
  Объявление структуры следует рассматривать как объявление типа. В C структуры заключают в себе не только данные но и код и относятся к средствам объектноориентированного программирования. Объявление структуры которая хранит сведения о журнале: название год номер.mgzinmg = { Nture 3 1995;Доступ к элементам структуры осуществляется по составному имени:имя_структуры.
46242. Проявление категории вежливости в русском языке. О социальных аспектах культуры речи 14.09 KB
  Проявление категории вежливости в русском языке. Принципу вежливости и его использованию в речи посвящено немало работ. Например Лакофф формулирует принцип вежливости в виде трех правил: не навязывай своего мнения предоставляй собеседнику возможность выбора будь доброжелательным Цель принципа вежливости – поддерживать социальное равновесие и такие социальноречевые отношения которые позволят результативно общаться При выражении вежливости большое значение играет взгляд. Средством выражения вежливости являются также модуляции голоса.
46243. THE STATIVE 14.06 KB
  Unlike such clsses of words s nouns djectives verbs nd dverbs the number of sttives functioning in English is limited. There re bout 30 stble sttives used both in colloquil nd in forml style: frid live like.Semnticlly sttives fll into five groups describing vrious sttes of persons or nonpersons:1.^ From the point of view of their morphologicl composition the clss of sttives is homogeneous tht is ll of them hve specil mrker the prefix : sleep live lone fire etc.
46244. Критический анализ ранних работ Ж.Пиаже. Л.С.Выготский: теоретический, экспериментальный и методологический анализ ранних идей Ж.Пиаже. Ответ Ж.Пиаже Л.С.Выготскому 14.05 KB
  Пиаже считал что детская речь эгоцентрична прежде всего потому что ребёнок говорит лишь со своей точки зрения и не пытается стать на точку зрения собеседника. Выготский писал: Согласно учению Пиаже эгоцентрическая речь ребёнка представляет собой прямое выражение эгоцентризма детской мысли который в свою очередь является компромиссом между изначальным аутизмом детского мышления и постепенной его социализацией что приводит постепенному снижению на нет эгоцентризма. По своей функции эгоцентрическая речь не может быть ничем иным...