50177

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

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

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

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

Русский

2014-01-17

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

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


 

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

1302. 30-квартирний житловий будинок 59.5 KB
  Проект на тему 30-квартирний житловий будинок виконаний згідно завдання, виданого кафедрою Архітектура будівель і містобудування, і з урахуванням вимог модульної координації роз-мірів у будинку, санітарних і протипожежних норм, а також враховані норми проектування за видами будинків і вимоги ЕБКД і СПДБ.
1303. Психологічні основи прийняття управлінських рішень керівниками освітніх організацій 83 KB
  Зміст і головні етапи прийняття управлінських рішень керівниками освітніх організацій. Чинники, які впливають на процес прийняття управлінських рішень керівниками освітніх організацій. Вимоги до прийняття управлінських рішень керівниками освітніх організацій. Колегіальний підхід до прийняття управлінських рішень керівниками освітніх організацій.
1304. Роль доврачебной помощи при несчастных случаях. Организация работ при возникновении ЧС 72 KB
  Оказание ПМП в очагах ЧС. Опыт и проблемы ликвидации ЧС системой ГО. Единая государственная система предупреждения и ликвидации ЧС. Основные мероприятия по защите населения в ЧС мирного и военного времени.
1305. Сенсорне сприйняття при дегустації 70 KB
  Диференціальний поріг та поріг насичення. Сутність та застосування методів парних, двопарних, трикутних порівнянь еталонів. Дегустація, експерт, споживацькі дослідження, сприятливість. Поясніть явища антагонізм, синергізм, маскування відчуттів.
1306. Динамика вырубки лесного массива 65.5 KB
  Анализ количественных закономерностей входящего потока. Плотность распределения ежегодный вырубки лесного массива. Данные для исследования были получены по официальной отчётности вырубки, направляемой в министерство промышленности.
1307. Теория материаловедение 118 KB
  Основные группы радиоматериалов. Требования, которые должны удовлетворять радиоматериалы. Классификация диэлектрических материалов. Структура звена полимера (молекулярные, элементарные звенья). Агрегатные и фазовые состояния полимеров. Физические (релаксационные состояния полимеров).
1308. Основы психологии 121.5 KB
  Предмет, объект, этапы развития психологии. Просоциальное и асоциальное поведения. Механизмы неправильного воспитания детей в семье. Психика, сознание и деятельность, их структура и функции. Основные теоретические подходы к воспитанию.
1309. Создание и использование макросов 48.5 KB
  Макрос (макрокоманда) представляет собой процедуру на языку VBA, в которой содержится запись последовательности команд или операций, выполняемых в Excel. Просмотр, редактирование и переименование макросов. Создание панели инструментов и меню пользователя. Назначение макроса графическому объекту и кнопке
1310. Числовые характеристики случайных величин 73 KB
  Математическое ожидание. Формула для вычисления математического ожидания случайной величины по плотности распределения. Дисперсией случайной величины. Среднеквадратическое отклонение случайной величины.