50151

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

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

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

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

Русский

2014-01-16

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

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


 

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

20062. Показатели качества оптических деталей 90.5 KB
  : 1 N – допустимое отклонение в кольцах Ньютонас =550нм. Допустимое отклонение стрелки прогиба поверхности детали от стрелки прогиба пробного стекла данного радиуса характеризующее отклонение от заданной сферысм. 1; 2 это отклонение от правильной сферы или плоскости – разность числа колец по 2м взаимно диаметрам детали или искривлении полос; 3 С – допустимая децентрировка или смещение центров кривизны поверхности или точки фокуса геометрической оси или разнотол – щинности в мм.
20063. Изготовление плоскопараллельных пластин и клиньев 29.5 KB
  Технология изготовления призм. Для обработки исполнительных поверхностей и подгонки углов призм заготовки склеиваются в столбик длина которого по отношению к высоте призмы составляет б:1. Блокирование призм в приспособлениях осуществляется приклеиванием или механическим зажимом. После обработки призм в столбиках наносят фаски на ребрах контролируют расклеивают столбики и промывают призмы.
20064. Обработка деталей на станках с жестко устанавливаемым инструментом. Способ свободной притирки 27.5 KB
  Инструмент устанавливается под углом относительно оси вращения блока. Соотношение между радиусом сферы R диаметром инструмента d и углом α : R=d 2sinα.
20065. Изготовление пробных стекол. Изготовление шкал и сеток 393 KB
  Для получения точных плоских поверхностей принимают одно стекло например 1 на рис.31 б в Рис. При наложении стекол 2 и 3 друг на друга общий €œбугор€ составит 2 полосы рис 4. Эллиптические зеркала большого диаметра изготавливают за несколько переходов с промежуточным отжигом из тонкого латунного листа 1 выдавливанием на токарном станке с помощью приспособления 2 имеющего выпуклую форму с наружной асферической поверхностью рис.
20066. Способы формообразования сферических и плоских поверхностей. Шлифование стекла свободным абразивом. Полирование стекла 39 KB
  Шлифование стекла свободным абразивом. Шлифование используется для придания необходимых форм размеров и образования поверхностей с тонкой структурой. Для формообразования поверхности с постепенным снижением шероховатости производят последовательно грубое среднее и тонкое шлифование. Грубое шлифование плоских поверхностей выполняют алмазными кругами на спец фрезерных или плоскошлифовальных станках.
20067. Влияние основных технологических факторов на процессы шлифования и полирования стекла. Обработка деталей на станках с жестко устанавливаемым инструментом. Способ свободной притирки 28.5 KB
  Обработка деталей на станках с жестко устанавливаемым инструментом. Обработка деталей на станках с жестко устанавливаемым инструментом. Для обработки оптических деталей способом свободного притира используются шлифовальнополировальные станки.
20068. Инструмент и приспособления для механического креплением заготовок. Блокировка оптических деталей 77.5 KB
  Приспособления с механическим креплением заготовок применяют на операциях обработки граней призм кругления дисков и т. Приспособления для обработки 3х граней призм плоскошлифовальном станкерис. Грани призм обрабатывают последовательно устанавливая приспособление на столе ст. Гипсованиерис крепят призмы с невысокими требованиями точности изготовления углов 3’ а также пластины.
20069. Классификация и технологичность конструкции. Заготовки и способы закрепления. Основные варианты изготовления осей и валов. Обработка многоступенчатых валов на многорезцовых токарных полуавтоматах 158.5 KB
  Основные варианты изготовления осей и валов. Обработка многоступенчатых валов на многорезцовых токарных полуавтоматах. При изготовлении валов исходные заготовки получают либо путем пластической деформации либо путем резки сортового или калиброванного проката.95 для единичного и мелкосерийного при изготовлении валов с небольшим перепадом диаметров используют горячекатаный нормальный прокат который разрезают на штучные заготовки.
20070. Структурные схемы приборов. Схема с последовательным соединением звеньев. Чувствительность. Погрешность 253.5 KB
  Структурной схемой называют схему содержащую предельно упрощенное обозначение функциональных узлов прибора или устройства а также логические связи этих узлов друг с другом. При эксплуатации прибора на его вход воздействует информативный параметр х измеряемая величина а также неинформативные параметры g1 g2 gn. При прохождении сигнала по компонентам прибора на подсистемы подузлы прибора воздействуют внутренние дестабилизирующие факторы q1 q2 qm которые так или иначе влияют на работоспособность этих узлов а следовательно и на...