50186

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

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

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

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

Русский

2014-01-17

67.5 KB

9 чел.

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

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

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


 

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

70634. Основные элементы процессного подхода 83.11 KB
  Под бизнес-процессом понимают совокупность различных видов деятельности которые создают результат имеющий ценность для потребителя. Бизнес-процесс это цепочка работ функций результатом которой является какой-либо продукт или услуга.
70635. Развитие рынка банковских услуг на примере ОАО «Московский Кредитный Банк» 232.5 KB
  Целью данной дипломной работы является исследование банковских услуг и условий их развития в России. Задачами дипломной работы являются: охарактеризовать виды банковских услуг и этапов их формирования; выявить основные направления развития рынка банковских услуг в России...
70636. РАЗРАБОТКА СТРАТЕГИЧЕСКОГО ПЛАНА РАЗВИТИЯ ОАО «СЕМЕНОВСКИЙ КОМБИКОРМОВЫЙ ЗАВОД» 1.12 MB
  Актуальность выбора темы дипломной работы определяется тем что на сегодняшний день стратегия - это основополагающий стержень в управлении предприятием который должен обеспечивать устойчивое экономическое развитие предприятия повышение конкурентоспособности производимой...
70637. Изменение привода вращения шаровой мельницы 717 KB
  По мере износа поверхности опорных роликов и бандажа венцовая шестерня ложилась на подвенцовую, что приводило к разрушению подшипников, выкрашиванию зубьев. Большие нагрузки передавались на валы и шестерни редуктора, вызывая его поломку.
70638. Оценка финансовых результатов от реализации продукции работ и услуг 634.5 KB
  Анализ финансовых результатов деятельности предприятия позволяет определить наиболее рациональные способы использования ресурсов и сформировать структуру средств предприятия. Кроме того, финансовый анализ может выступать в качестве инструмента прогнозирования отдельных показателей...
70639. Учет и контроль кассовых операций 287 KB
  Хозяйственные связи - необходимое условие деятельности предприятий, так как они обеспечивают бесперебойность снабжения, непрерывность процесса производства и своевременность отгрузки и реализации продукции.
70640. Рекомендации и перспективы развития банковских услуг для юридических лиц в ЗАО Банк «ИНТЕЗА» 106.04 KB
  Целью выпускной квалификационной работы является изучение основ предоставления услуг юридическим лицам в коммерческих банках для разработки рекомендаций по совершенствованию организации предоставления услуг юридическим лицам в конкретной организации.
70641. Начальная подготовка юных бегунов на средние дистанции 367.5 KB
  Цель работы. Совершенствование методов начальной подготовки юных бегунов на средние дистанции, изучить влияние применения методики индивидуализированных тренировочных нагрузок при подготовке бегунов на средние дистанции.