50191

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

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

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

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

Русский

2014-01-17

68 KB

3 чел.

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

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

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


 

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

15747. 13 замечаний Огилви о заголовках 26 KB
  13 замечаний Огилви о заголовках Фрагмент из книги рекламного гуру Дэвида Огилви Огилви о рекламеOgilvy on Advertising. Vintage Books Заголовки читают в пять раз большее число читателей чем основной текст. Это означает что продают как раз заголовки а 90 денег тратятся зря. Л...
15748. Культура делового общения 1.42 MB
  Культура делового общения В пособии сделана попытка рассмотреть деловой разговор в сфере предпринимательской деятельности с позиций его речевой логической психологической и невербальной культуры а также на основе обобщения отечественного и зарубежного опыта оп...
15749. О СМЕЩЕНИИ ЖАНРОВ ЛИРИКИ ХХ ВЕКА 69.5 KB
  С.Ю. АРТЁМОВА Тверь О СМЕЩЕНИИ ЖАНРОВ ЛИРИКИ ХХ ВЕКА Вопрос о жанрах лирики как и вообще литературы поднимается в литературоведении с XIX века до сегодняшних дней1. Однако о чистых жанрах уместно говорить только применительно к поэзии XVIII века когда жанровые норм...
15750. К ОПРЕДЕЛЕНИЮ ПОНЯТИЯ «ВТОРИЧНЫЙ ТЕКСТ» 46 KB
  О.А. ВЛАДИМИРОВА Тверь К ОПРЕДЕЛЕНИЮ ПОНЯТИЯ ВТОРИЧНЫЙ ТЕКСТ Понятие вторичные текст обычно употребляется как клише литературными критиками. Так они обозначают произведения авторы которых изза недостатка таланта не в силах создать чтолибо оригинальное и в
15751. К ОПРЕДЕЛЕНИЮ ПОНЯТИЙ «ЦИКЛ» И «ЦИКЛИЗАЦИЯ» 71 KB
  К определению понятий цикл и циклизация Е.Ю. АФОНИНА Тверь К ОПРЕДЕЛЕНИЮ ПОНЯТИЙ ЦИКЛ И ЦИКЛИЗАЦИЯ В практике литературоведческих исследований традиционным является рассмотрение текстов в их взаимосвязи. Возникновение особого исследоват...
15752. СЕМИОТИЧЕСКИЕ МЕХАНИЗМЫ ИНТЕРТЕКСТУАЛЬНОСТИ 49.5 KB
  А.В. БОРИСЕНКО Тверь СЕМИОТИЧЕСКИЕ МЕХАНИЗМЫ ИНТЕРТЕКСТУАЛЬНОСТИ Интерес к работам Ч. Пирса обострившийся в последнее время в значительной мере связан с тем что его концепция знака оказалась в большей степени адекватна современным представлениям о природе комм...
15753. АРХИТЕКТОНИКА И СТРУКТУРА ТЕКСТА: ПОСТАНОВКА ПРОБЛЕМЫ (НА МАТЕРИАЛЕ РАССКАЗА И.А. БУНИНА «ПРЕОБРАЖЕНИЕ») 50.5 KB
  Л.Ю. ЧУНЁВА Тверь АРХИТЕКТОНИКА И СТРУКТУРА ТЕКСТА: ПОСТАНОВКА ПРОБЛЕМЫ НА МАТЕРИАЛЕ РАССКАЗА И.А. БУНИНА ПРЕОБРАЖЕНИЕ Понятие архитектоника часто встречается в литературоведческих исследованиях1 но его значение пока остается неопределенным. Даже в тех р
15754. ПОЭТИКА ОГЛАВЛЕНИЯ (СЕРГЕЙ ЕСЕНИН. «РАДУНИЦА») 99 KB
  Е.В. ВОЙТКЕВИЧ Тверь ПОЭТИКА ОГЛАВЛЕНИЯ СЕРГЕЙ ЕСЕНИН. РАДУНИЦА Оглавление возможности которого как смыслообразующего элемента текста практически не изучены принято рассматривать как вспомогательный элемент текста. Между тем оглавление способно играть в
15755. РУССКИЙ РОК: К ПРОБЛЕМЕ НАУЧНОЙ ДЕФИНИЦИИ 75.5 KB
  О.Э. НИКИТИНА Тверь РУССКИЙ РОК: К ПРОБЛЕМЕ НАУЧНОЙ ДЕФИНИЦИИ Изучение русского рока как национального варианта общекультурного феномена является сравнительно новой сферой научного интереса. Большинство исследований в этой области посвящено решению проблем час