50207

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

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

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

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

Русский

2014-01-18

68 KB

3 чел.

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

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

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


 

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

49491. Расчет компаратора для однополярных напряжений с гистерезисной характеристикой 89.5 KB
  Выбор и анализ схемы. Принцип работы схемы. Расчет схемы. Выбор и анализ схемы Выбор ОУ производился исходя из значений Tокр.
49492. Проект ОКС 7 на ГТС с УВС 1.27 MB
  Список всех возможных нормальных сигнальных маршрутов сети ОКС для каждой пары пунктов сигнализации ПСi ПСj формируется по следующим правилам: нормальный маршрут должен быть либо прямым без транзитов либо если прямых маршрутов нет проходить через минимальное число транзитных пунктов STP SP STP. телефонным Указатель выбранных нормальных маршрутов Исх i Вхд j...
49493. Vетоды проектирования линейной части цифровой волоконно-оптической системы передачи данных 1.3 MB
  Разработана линейная часть волоконнооптической системы передачи данных со следующими параметрами: а число каналов 4320 288 из них не заняты; б рабочая длины волны 1310 мкм; в протяженностью трассы 612 км; г метод прокладки: подвес вдоль ж д; д минимальный энергетический запас 4 дБ; е компенсация дисперсии на трассе не требуется; ж оптическое волокно марки OFS llWve; з марка кабеля ОФС ДТ 865 8; и семь регенерационных пунктов; к избыточностью системы 67; л стоимостью каналокилометра: ; м коэффициентом готовности 0. Так...
49495. Определение в планируемом периоде количества ТО и КР 287.5 KB
  Каждому типу машин присуще свое определенное распределение трудоемкости по видам работ. Удельный вес видов работ в общем, объеме трудоемкость остается без существенных изменений, несмотря на совершенствование технологии ремонта и снижение общих трудозатрат на ремонт машин данного типа.
49496. Разработка стенда для диагностирования системы охлаждения 1.15 MB
  Ремонтно-механические мастерские, как правило, работают в одну смену, и только при большой загрузке и в целях лучшего использования дорогостоящего оборудования механические отделения и некоторые другие участки иногда работают в две смены.
49497. Проект ОКС 7 на ГТС с УВС и УИС 717 KB
  ОКС7 предоставляет универсальную структуру для организации сигнализации сообщений сетевого взаимодействия и технического обслуживания телефонной сети. SS5 и более ранние версии использовали принцип сигнализации в линии где информация необходимая для соединения передавалась специальными тонами DTMF в телефонной линии известной как Bканал. Такой тип сигнализации создавал уязвимость в безопасности протокола поскольку злоумышленник мог эмулировать набор служебных...
49498. Система автоматического регулирования частоты вращения ДПТ 857 KB
  Область применения системы. Принцип работы системы. Передаточные функции системы. Анализ структурной устойчивости САР 20 Коэффициент усиления системы в разомкнутом состоянии.
49499. РАЗРАБОТКА ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА ИЗГОТОВЛЕНИЯ ДЕТАЛИ 671 KB
  Физическая сущность процесса сварки заключается в образовании прочных связей между атомами или молекулами на соединяемых поверхностях заготовок. Экономическая эффективность применения сварки по сравнению с механическими способами соединения деталей и литьем заключается в экономии металла снижении трудоемкости работ и технологической гибкости процесса.д Все способы сварки условно делятся на две группы. К первой относятся способы сварки при которых соединение получается за счет расплавления металла.