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.

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


 

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

2900. Методы изучения генетики человека 117.5 KB
  Методы изучения генетики человека Учебно-образовательные цели: Генеалогический метод, близнецовый метод, популяционно-статистический метод, метод дерматоглифики и пальмоскопии, метод генетики соматических клеток, цитогенетический метод, биохими...
2901. Архивация данных. Назначение программ архивации. Создание архивных файлов 75.5 KB
  Архивация данных. Назначение программ архивации. Создание архивных файлов Задание 1. Заархивируйте текстовый файл и определите коэффициент сжатия. Найдите папку Урок 2. Архивация и скопируйте ее в свою рабочую папку. Далее все задания выполняй...
2902. Создание архивных файлов. Извлечение файлов из архива 43 KB
  Заархивируйте группу файлов. В контекстном меню выделенной группы объектов выберите пункт Добавить файлы в архив. Перейдите на вкладку Дополнительно и нажмите кнопку. Установить пароль. С помощью программы WinRar заархивируйте группу файлов.
2903. Генетика популяций 53.5 KB
  Генетика популяций Популяционная генетика – раздел генетики, изучающий законы и закономерности микроэволюции. Элементарной эволюционной структурой является популяция, и изучение генетических закономерностей жизни популяции позволяет понять...
2904. Биосоциальная сущность человека 109.5 KB
  Биосоциальная сущность человека Биологический вид Homo sapiens составляет часть биосферы и продукт её эволюции. Закономерности биологических процессов, происходящих на клеточном уровне и имеющие универсальное значение в природе, в полной мере п...
2905. Методы генетики человека. Наследственные заболевания человека. 31.5 KB
  Методы генетики человека. Наследственные заболевания человека. Проблемы в генетике человека (почему мы не можем использовать классические методы генетики): невозможность направленных скрещиваний для генетического анализа невозможность эксперимен...
2906. Основи охорони праці 3.34 MB
  Правові та організаційні засади охорони праці Законодавчо-нормативна база України з питань охорони праці.Основні принципи державної політики України у галузі охорони праці. Нормативно-правові акти України про охор...
2907. Фінансовий моніторинг як різновид фінансового контролю 341 KB
  Фінансовий моніторинг як різновид фінансового контролю. Сутність фінансово-правового регулювання процесу протидії легалізації доходів, одержаних злочинним шляхом (відмиванню коштів). Структура системи фінансового моніторингу Фінансов...
2908. Управление эффективностью производства реформируемых предприятий 56 KB
  Управление эффективностью производства реформируемых предприятий Реформирование отечественных предприятий  в процессе создания новой экономической системы связано с изменением их основной производственной деятельности, ориентируя и соизмеряя ее...