50207

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

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

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

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

Русский

2014-01-18

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

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


 

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

32773. Цикл Карно и его КПД для идеального газа. Второе начало термодинамики. Независимость КПД цикла Карно от рабочего вещества. Лемма Карно 47 KB
  Второе начало термодинамики. Следовательно согласно I началу термодинамики работа совершаемая двигателем равна =Q1Q2 Коэффициентом полезного действия КПД теплового двигателя называется отношение работы совершаемой двигателем к количеству теплоты полученному от нагревателя η=Q1Q2 Q1 КПД тепловой машины всегда меньше единицы η=1Q2 Q1 Следовательно невозможно всю теплоту превратить в работу. Отсюда Q2 T2≥Q1 T1 На основании этого неравенства можно прийти к понятию энтропия и второму началу термодинамики. Второе начало термодинамики ...
32774. Энтропия идеального газа при обратимых и необратимых процессах 33.5 KB
  К определению энтропии S можно прийти на основе анализа работы тепловых машин. ∆S=∆Q T Для тепловой машины изменение энтропии нагревателя и холодильника равны: ∆S1=Q1 T1 и ∆S2=Q2 T2 Формула ∆S=∆Q T справедлива для изотермического процесса и представляет собой термодинамическое определение энтропии. Для любого процесса можно найти бесконечно малое изменение энтропии т. ее дифференциал dS=δQ T где δQ элементарная теплота В интегральной форме для любого процесса изменение энтропии равно Найдем изменение энтропии за один цикл для тепловой...
32775. Статистическое толкование энтропии 31 KB
  Рассматривая Вселенную как изолированную систему и распространяя на неё второй закон термодинамики Р. Из сказанного в предыдущем разделе следует что к Вселенной в целом как изолированной системе F = 0 второе начало термодинамики неприменимо по определению. При этом второй закон термодинамики формулируется следующим образом: природа стремится от состояния менее вероятного к состоянию более вероятному. Таким образом являясь статистическим законом второй закон классической термодинамики выражает закономерности хаотического движения большого...
32776. Термодинамические потенциалы. Направление течения процессов в неравновесных состояниях 33.5 KB
  Потенциалы термодинамические определённые функции объёма V давления р температуры Т энтропии S числа частиц системы N и др. К Потенциалы термодинамические относятся: внутренняя энергия U = U S V N xi; энтальпия Н = Н S р N xi; Гельмгольцева энергия свободная энергия или изохорноизотермический потенциал обозначается А или F F = F V T N xi Гиббсова энергия изобарноизотермический потенциал обозначается Ф или G G = G p Т N xi и др. Зная Потенциалы термодинамические как функцию указанных...
32777. Термодинамика необратимых процессов. Явления переноса в термодинамически неравновесных системах. Опытные законы диффузии, теплопроводности и внутреннего трения 48.5 KB
  Термодинамика необратимых процессов. ТЕРМОДИНАМИКА НЕОБРАТИМЫХ ПРОЦЕССОВ неравновесная термодинамика изучает общие закономерности поведения систем не находящихся в состоянии термодинамического равновесия. процессов изменение энтропии системы dS равно: где deS = Q T внешнее изменение энтропии связанное с обратимым теплообменом с окружающей средой Qбесконечно малое колво теплоты Tабс. тра diS внутреннее изменение энтропии обусловленное самопроизвольным протеканием в системе необратимых процессов.
32778. ИЗУЧЕНИЕ ЗАКОНОВ ВРАЩАТЕЛЬНОГО ДВИЖЕНИЯ С ПОМОЩЬЮ МАЯТНИКА ОБЕРБЕКА 3.8 MB
  Определить момент инерции системы тел. Исследовать зависимость углового ускорения от величины момента приложенных сил с учётом сил трения. 2 Угловая скорость и угловое ускорение для всех точек тела одинаковы в данный момент времени однако для различных точек тела линейные скорости движения по окружности разные так как зависят от расстояния R точки до оси вращения. Сила – равнодействующая внешних и внутренних сил приложенных к iму элементарному объему телу создаёт относительно произвольно взятой точки на оси вращения момент силы ...
32779. Определение коэффициентов трения качения и скольжения методом наклонного маятника 201 KB
  Северодвинске ФАКУЛЬТЕТ: IV КАФЕДРА: ФИЗИКИ Лабораторная работа Определение коэффициентов трения качения и скольжения методом наклонного маятника Северодвинск 2007 Лабораторная работа ФМ 16 Наклонный маятник Ι. Цель работы Цель работы: определение коэффициентов трения качения и трения скольжения. Основные теоретические положения При относительном перемещении двух соприкасающихся тел или при попытке вызвать такое перемещение возникают силы трения. Различают три вида трения возникающего при контакте твердых тел: трение скольжения покоя и...
32780. Изучение законов сохранения импульса 538.5 KB
  Определить коэффициенты восстановления скорости и энергии для случая частично упругого удара. Существует два предельных вида удара: абсолютно упругий и абсолютно неупругий. Абсолютно упругим называется такой удар при котором механическая энергия тел не переходит в другие немеханические виды энергии а размеры и форма тел полностью восстанавливаются после удара. Абсолютно неупругим ударом называется такой удар при котором размеры и форма тел не восстанавливаются после удара.
32781. Определение коэффициентов восстановления скорости и энергии шаров 150.23 KB
  Схема лабораторной установки схема проведения эксперимента Установка включает в свой состав: 1 основание; 2 вертикальную стойку; 3 верхний кронштейн; 4 корпус; 5 электромагнит; 6 нити для подвески металлических шаров; 7 провода для обеспечения электрического контакта шаров с клеммами 10. Основание снабжено тремя регулируемыми опорами 8 и зажимом 9 для фиксации вертикальной стойки 2 выполненной из металлической трубы ; на верхнем кронштейне 3 предназначенном для подвески шаров расположены узлы регулировки обеспечивающие...