50171

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

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

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

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

Русский

2014-01-17

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

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


 

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

39230. Измерение магнитной восприимчивости слабомагнитных веществ 155 KB
  Измерение магнитной восприимчивости слабомагнитных магнетиков Наиболее распространен способ измерения магнитной восприимчивости слабомагнитных образцов на основании измерения механической силы действующей на образец в неоднородном магнитном поле. Энергия системы образец стержень с сечением S и воздушный столб в начальном состоянии: Здесь lОБ – длина части стержня находящейся в магнитном поле индукцией В а lВЗ – длина воздушного столба в области магнитного поля. Если при измерениях образец находится в вакууме то парамагнетик  0...
39231. Электрические свойства 2.68 MB
  Удельная электрическая проводимость среды σ и ее удельное электрическое сопротивление ρ равны соответственно проводимости Σ и сопротивлению R единицы объема среды. У типичных проводников с электронной проводимостью металлов удельное сопротивление весьма мало ρ=104 ÷ 108 Омм. Наличие их в породах при ковалентнометаллической или ионнометаллической форме кристаллической связи существенно увеличивает электропроводность минералов удельное сопротивление которых изменяется в пределах 103 ÷ 106 Омм. Самородные металлы и их...
39232. ТЕПЛОВЫЕ СВОЙСТВА 1.76 MB
  Диагенез катагенез метаморфизм и метасоматизм пород образование всех видов полезных ископаемых тектонические и другие геологические процессы всё это связано с перераспределением тепла в земных недрах. Естественно что изучение тепловых процессов Земли тепловых свойств пород является весьма важной частью как в работах планетарного масштаба так и в прикладных исследованиях. Сведения о тепловых режимах земной коры в разное геологическое время широко используются при региональнозональном прогнозировании нефтегазоматеринских толщ зон...
39233. ЯДЕРНО-ФИЗИЧЕСКИЕ СВОЙСТВА 2.37 MB
  Напротив ядро бериллия состоящее из 5 нейтронов и 4 протонов 2 αчастицынейтрон аномально неустойчиво распадается при облучении гаммаквантами относительно небольшой энергии. Гаммаизлучение это жесткое электромагнитное излучение сопровождающее ядерные превращения. Так при превращении радия в радон испускается гаммаквант энергии 019 МэВ поскольку именно такая разница между энергиями возбужденного и нормального состояний имеет место у радона. В сравнении с другими видами электромагнитного излучения гаммаизлучение...
39234. Петрофизические связи и петрофизические модели месторождений 3.99 MB
  Эти задачи можно было решить только при условии что будут установлены закономерные связи между параметрами получаемыми при интерпретации данных ГИС с одной стороны и параметрами характеризующими емкость нефтенасыщенность продуктивность породыколлектора с другой. Такое сопоставление проводят для решения следующих задач: поиска областей геофизических значений характерных для различных литотипов для использования их впоследствии при литологическом расчленении разреза по данным ГИС; определения областей соответствующих...
39235. Вещественная, структурная и фазовая неоднородность пород 873 KB
  Породы могут быть однофазными и многофазными. Компонентную неоднородность породы характеризуют составом твердой жидкой и газообразной фаз. Например находясь на уровне пор и скелетных зерен мы уделяем основное внимание исследованию геометрии пор и минерального скелета породы. Пористость Горные породы руды каменные угли и минералы слагающие земную кору не являются сплошными телами все они содержат полости поры.
39236. НЕФТЕ- И ГАЗОНАСЫЩЕННОСТЬ ПОРОД 1.94 MB
  НЕФТЕ И ГАЗОНАСЫЩЕННОСТЬ ПОРОД Породыколлекторы в условиях естественного залегания содержат воду нефть и газ. Сумма объемов пор занятых нефтью Vн газом Vг и водой Vв равна общему объему порового пространства пород Vпор: Vн Vг Vв = Vпор. Взаимное расположение нефти и воды в поровом пространстве нефтенасыщенных пород зависит от гидрофильности и гидрофобности.17 показано размещение воды и нефти в отдельно взятой поре гидрофильных и гидрофобных пород.
39238. Измерение пористости и проницаемости в поверхностных и пластовых условиях 2.08 MB
  Измерение пористости и проницаемости в поверхностных и пластовых условиях. Измерение пористости и проницаемости на установке PP608. Закон Дарси измерение проницаемости по газу абсолютная проницаемость лекция 2. Описание установки АPP608 АPP608 автоматизированный порозиметрпермеаметр предназначен для измерения проницаемости по газу и пористости образцов породы в условиях реальных напряжений.