50163

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

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

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

Блондинка - рыжая - брюнетка unit Unit1; interfce uses Windows Messges SysUtils Vrints Clsses Grphics Controls Forms Dilogs ComCtrls StdCtrlsmth TeEngine Series ExtCtrls TeeProcs Chrt; type TForm1 = clssTForm Chrt1: TChrt; Series1: TLineSeries; Series2: TLineSeries; Series3: TLineSeries; Series4: TBrSeries; TrckBr1: TTrckBr; Lbel1: TLbel; Lbel5: TLbel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Lbel6: TLbel; Lbel2: TLbel; Lbel3:...

Русский

2014-01-17

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

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


 

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

17883. ПОВЕДЕНИЕ СОВЕРШЕННО КОНКУРЕНТНОЙ ФИРМЫ НА ТОВАРНОМ РЫНКЕ 135.85 KB
  НАЗВАНИЕ ПРАКТИЧЕСКОГО ЗАНЯТИЯ: ПОВЕДЕНИЕ СОВЕРШЕННО КОНКУРЕНТНОЙ ФИРМЫ НА ТОВАРНОМ РЫНКЕ ЦЕЛЬ ЗАНЯТИЯ: Выявить основные характеристики совершенно конкурентного товарного рынка СКрынка объяснить неспособность невозможность воздействия СКфирм на рыночну...
17884. ПОВЕДЕНИЕ МОНОПОЛЬНОЙ ФИРМЫ НА ТОВАРНОМ РЫНКЕ 185.05 KB
  НАЗВАНИЕ ПРАКТИЧЕСКОГО ЗАНЯТИЯ: ПОВЕДЕНИЕ МОНОПОЛЬНОЙ ФИРМЫ НА ТОВАРНОМ РЫНКЕ ЦЕЛЬ ЗАНЯТИЯ: Рассмотреть понятие монополии условия её образования поведение монопольных рыночных структур при различных факторах внешней среды. Выяснить условия и последстви
17885. ПРАКТИКА СПРОСА И ПРЕДЛОЖЕНИЯ НА РЫНКЕ ТРУДА 25.15 KB
  НАЗВАНИЕ ПРАКТИЧЕСКОГО ЗАНЯТИЯ: ПРАКТИКА СПРОСА И ПРЕДЛОЖЕНИЯ НА РЫНКЕ ТРУДА ЦЕЛЬ ЗАНЯТИЯ: Выяснить особенности спроса и предложения труда обозначить факторы определяющие изменения спроса и предложения труда. Обосновать правило найма рабочей силы и правило
17886. ПРАКТИКА ОБЩЕГО ЭКОНОМИЧЕСКОГО РАВНОВЕСИЯ 31.22 KB
  НАЗВАНИЕ ПРАКТИЧЕСКОГО ЗАНЯТИЯ: ПРАКТИКА ОБЩЕГО ЭКОНОМИЧЕСКОГО РАВНОВЕСИЯ ЦЕЛЬ ЗАНЯТИЯ: Определить условия общего и частичного равновесия ФОРМУЛИРОВАНИЕ ОСНОВНОЙ ИДЕИ ЗАНЯТИЯ 1. Уравнения потребительского спроса. Спрос отдельного потребителя на каждо
17887. ЭКОНОМИЧЕСКАЯ РОЛЬ ГОСУДАРСТВА НА ПРАКТИКЕ 99.48 KB
  НАЗВАНИЕ ПРАКТИЧЕСКОГО ЗАНЯТИЯ: ЭКОНОМИЧЕСКАЯ РОЛЬ ГОСУДАРСТВА НА ПРАКТИКЕ ЦЕЛЬ ЗАНЯТИЯ: Определить ключевые понятия в экономической роли государства на практике выявить основные причины отказа рынка или фиаско рынка познакомиться с различными вариантами ...
17888. Микроэкономика. Методические указания к самостоятельному изучению дисциплины 216.5 KB
  Методические указания к самостоятельному изучению дисциплины Микроэкономика для студентов обучающихся по направлениям 0305 Экономика и предпринимательство и Менеджмент всех форм обучения Методические указания к самостоятельному изучению дисциплины ...
17889. СВІТОВЕ ГОСПОДАРСТВО ЯК ЦІЛІСНА СИСТЕМА. ЗАГАЛЬНОЦИВІЛІЗАЦІЙНІ ЕКОНОМІЧНІ ОЗНАКИ ТА КРИТЕРІЇ 277 KB
  Тема 1 . СВІТОВЕ ГОСПОДАРСТВО ЯК ЦІЛІСНА СИСТЕМА. ЗАГАЛЬНОЦИВІЛІЗАЦІЙНІ ЕКОНОМІЧНІ ОЗНАКИ ТА КРИТЕРІЇ ПЛАН Поняття світового господарства 2. Загальне поняття міжнародна економіка 3. Загальноцивілізаційні економічні ознаки та критерії. Пре...
17890. ВИДІЛЕННЯ ПІДСИСТЕМ СВІТОВОГО ГОСПОДАРСТВА ТА ПОКАЗНИКИ ЙОГО РОЗВИТКУ 204 KB
  Тема 2 . ВИДІЛЕННЯ ПІДСИСТЕМ СВІТОВОГО ГОСПОДАРСТВА ТА ПОКАЗНИКИ ЙОГО РОЗВИТКУ ПЛАН Критерії виділення підсистем світового господарства. Основні показники розвитку світового господарства. Групи країн у світовій економіці. Класифікації країн за метод...
17891. ГЛОБАЛЬНА ЕКОНОМІЧНА СИСТЕМА: КОНЦЕПЦІЇ ТА МОДЕЛІ РОЗВИТКУ 101 KB
  Тема 3 . ГЛОБАЛЬНА ЕКОНОМІЧНА СИСТЕМА: КОНЦЕПЦІЇ ТА МОДЕЛІ РОЗВИТКУ ПЛАН 1. Концепції глобальної економічної системи 2. Головні елементи міжнародної економічної системи 3. Моделі економічного розвитку 1. Концепції глобальної економічної системи Світов...