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.

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


 

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

39775. Виртуальные драйверы и виртуальные машины Windows 119 KB
  Основное назначение виртуального драйвера виртуализация устройства т. Разработка нового виртуального драйвера может понадобиться при установке на компьютер новой аппаратуры или нового программного обеспечения предназначенного для обслуживания других приложений которая будет использоваться в многозадачном режиме и для которой в системе Windows не предусмотрено средств виртуализации. В первом случае речь идет о приложениях работающих в плоской модели памяти на уровне привилегий 3 это характерно для 32разрядных приложений Windows;...
39776. ЭКОНОМИКА СТРОИТЕЛЬСТВА. УЧЕБНИК 4.49 MB
  Помимо традиционных тем, такие как ресурсы отрасли, себестоимость, прибыль и рентабельность в строительстве, в учебном пособии представлены новые материалы по бизнес-планированию, экономической безопасности предприятий отрасли, SWOT и STEP анализу.
39777. Понятие об уроке технологии. Особенности уроков технологии 107.5 KB
  Перспективный план отражает: Объект труда Практическую работу Домашнюю подготовку учащихся Технические средства обучения Раздаточный материал Учебнонаглядные пособия Лабораторные работы Контрольные работы зачеты защиту проектов Инструктаж по технике безопасности Хороший планконспект урока условие высокого уровня учебной работы педагога и ученика. Правильный подбор учебного материала для урока в целом и каждой его части изложение и закрепление теоретического материала организация практической работы учащихся и т. Материал подбирается...
39778. Первые преобразования большевиков 53.5 KB
  II съезд Советов в отсутствие правых эсеров меньшевиков представителей других социалистических партий они покинули заседание протестуя против свержения Временного правительства принял Декрет о мире выход России из войны Декрет о земле ликвидация помещичьего землевладения передача земли крестьянам на уравнительных началах Декрет о власти установление власти Советов образование Совета Народных Комиссаров во главе с В. Исполнительным органом власти стал ВЦИК в который были избраны большевики и левые эсеры. Наконец триумфальное...
39779. Гражданская война в России 1918 1922 63 KB
  Гражданская война всегда тяжелейшая социальная катастрофа достаточно напомнить что в годы Гражданской войны в США американцы потеряли убитыми больше чем в годы Второй мировой войны. В полотно Гражданской войны вплетены и различные религиозные национальные культурные противоречия и образы доведенные иногда до кульминации эмоциональным накалом того времени. Гражданская война была и результатом нерешенных проблем ускоренной российской модернизации начала XX века и мирового катаклизма в лице Первой мировой войны и духовного голода...
39780. Индустриализация и коллективизация в СССР 73.5 KB
  Индустриализация и коллективизация в СССР Курс на форсированную индустриализацию В аграрной стране средства можно найти внутри страны перекачивая их в тяжелую промышленность из легкой промышленности и сельского хозяйства. на XV съезде ВКПБ возобладал курс на форсирование индустриализации: за десять лет пробежать расстояние в 50 100 лет на которые отстал СССР от передовых стран Запада. Ценой неимоверных усилий СССР обогнал некоторые крупнейший государства мира.
39781. СССР и международные отношения накануне Второй мировой войны 45.5 KB
  СССР и международные отношения накануне Второй мировой войны Мировой кризис и угроза фашизма в Европе Мировой экономический кризис 19291933 гг. Внешняя политика СССР в 1933 1939 гг. В то время как Япония и Германия вышли из Лиги Наций СССР в 1934 г.
39782. СССР в годы Великой Отечественной войны 130 KB
  СССР в годы Великой Отечественной войны Боеспособность вооруженных сил Германии и СССР накануне войны К войне против Советского Союз Германия готовилась тщательно всесторонне и длительное время. Располагая материальными и людскими ресурсами оккупированных стран Германия более чем вдвое превзошла СССР по военноэкономическому потенциалу и смогла гораздо быстрее оснастить свою армию новейшим вооружением. К началу 40х годов началась непосредственная подготовка к нападению на СССР занявшая целый год.
39783. Советский Союз в 1946 – 1953 гг 87 KB
  Победа СССР в Великой Отечественной войне способствовала росту в стране демократических настроений укреплению надежд на либерализацию внутриполитического курса. В первые послевоенные годы происходили некоторые изменения в политической системе СССР. Совнарком СССР был преобразован в Совет Министров СССР что сопровождалось резким увеличением количества министерств и ведомств. Были проведены новые выборы в Верховный совет СССР.