50022

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

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

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

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

Русский

2014-01-14

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

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


 

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

47400. Современное положение пластиковых карт в России 731.5 KB
  Пластиковые карты как платежный инструмент. Держатель карты. Далее рассматривается процедура расчетов с использованием платежной карты. они выпускают и обслуживают карты международных национальных и локальных систем.
47401. Интернет-трейдинг в России и за рубежом: состояние и перспективы развития 335 KB
  Интернеттрейдинг в России и за рубежом: состояние и перспективы развития. Развитие Интернеттрейдинга в России. Функционирование систем Интернеттрейдинга: российский и зарубежный опыт. Интернеттрейдинг в России и за рубежом: состояние и перспективы развития.
47402. Банковские операции: состояние и перспективы развития 318.5 KB
  Роль коммерческого банка в развитии экономики. в Генуе “Банка ди Сан Джорджоâ€. Через коммерческие банки осуществляются безналичные расчеты через корреспондентские счета в центральных банках. До 80 капитала акционерных коммерческих банков которых насчитывалось около 50 было сосредоточено в 18 банках.
47403. Оценка конкурентоспособности предприятий торговли и основные направления её повышения 441 KB
  Конкурентоспособность предприятия торговли. Сущность конкурентоспособности предприятия торговли и факторы ее определяющие. Методы оценки конкурентоспособности торгового предприятия. Управление конкурентоспособностью предприятия.
47404. Проектирование заготовочно-сборочного цеха 365 KB
  После вырубания стельку надсекают в носочнопучковой части для увеличения гибкости на ширину 2560 мм. Обычно удаляемые газы выводят по высоким трубам рассеивания и большой скоростью. Среднемесячная заработная плата одного работающего руб. Среднемесячная заработная плата одного рабочегосдельщика руб.
47405. Анализ работы технологии Тандем на Покамасовском месторождении НГДУ Лангепаснефть 1.27 MB
  Подсчет запасов нефти и растворенного газа по состоянию на 1. Начальные балансовые извлекаемые запасы нефти составляли по категории С1 163356 75920 тыс. Повышенный газовый фактор низкая продуктивность пластов существенная не стационарность процессов фильтрации тяжелый вывод скважин на режим после глушения и другие осложнения значительно затрудняют работу серийного насосного погружного оборудования для добычи нефти.
47406. Использование трудовых ресурсов и фонда оплаты труда на примере МУП «ПУ водопроводно-канализационного хозяйства» 149.67 KB
  Актуальность темы Анализ трудовых ресурсов и фонда оплаты труда так как считаю что она очень актуальна и к тому же трудовые ресурсы являются неотъемлемой частью каждого российского предприятия. И для того чтобы выявить и более эффективно использовать трудовые ресурсы на каждом предприятии необходимо проводить экономический анализ. Целью выпускнойквалификационной работы является проведение анализа использования трудовых ресурсов и фонда оплаты труда на примере МУП ПУ водопроводноканализационного хозяйства. Исходя из...
47408. Исследование формирования лидерских качеств у старших дошкольников 155.77 KB
  Теоретические основы проблем формирования лидерских качеств у старших дошкольников предпосылок лидерских качеств у старших дошкольников Роль воспитателя в формировании лидерских качеств старших дошкольников в условиях ФГТ Выводы по первой главе 41 Экспериментальное исследование формирования лидерских качеств у старших дошкольников 2.2 Разработка комплекса мероприятий по формированию лидерских качеств 52 2.