50163

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

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

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

Блондинка - рыжая - брюнетка unit Unit1; interfce uses Windows Messges SysUtils Vrints Clsses Grphics Controls Forms Dilogs ComCtrls StdCtrlsmth TeEngine Series ExtCtrls TeeProcs Chrt; type TForm1 = clssTForm Chrt1: TChrt; Series1: TLineSeries; Series2: TLineSeries; Series3: TLineSeries; Series4: TBrSeries; TrckBr1: TTrckBr; Lbel1: TLbel; Lbel5: TLbel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Lbel6: TLbel; Lbel2: TLbel; Lbel3:...

Русский

2014-01-17

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

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


 

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

31200. Система наблюдений с ортогональной геометрией ЛПП и ЛПВ 31 KB
  Для полного понимания особенностей той или иной системы наблюдений всегда принято расчитывать и приводить графические материалы иллюстрирующие качественные особенности конкретной системы наблюдений в виде изображения основных параметров системы распределения кратности удалений Хгшп и Хтах азимутов подхода лучей и др. Однако кроме рассмотренных выше систем наблюдений с ортогональной геометрией основанных на крестовой расстановке существует еще большое количество и других достаточно оригинальных систем наблюдений этого типа обладающих...
31201. Система наблюдений с параллельной геометрией ЛПП и ЛПВ 30 KB
  Система наблюдений по технологии ШП реализуемая на суше с применением линейных станций ограниченной канальности представляет собой совокупность из профилей возбуждения расположенных параллельно и симметрично одному профилю приема рис. В результате суммарная кратность перекрытий на профиле наблюдений Ро1ат г= Ро1а^ РоМу будет равна 32. Линии проекций общих глубинных точек на поверхность наблюдений параллельны линиям возбуждения.
31202. Сейсмические форматы и запись на магнитную ленту 30 KB
  По рекомендации SEG Общества геофизиковразведчиков в сейсморазведочных станциях в качестве стандартных для 9дорожечных магнитофонов при записи на ленту приняты следующие основные мультиплексные форматы: SEGB с длиной сейсмического слова 25 байта; SEGD с длиной сейсмического слова 4 байта. В качестве демультиплексных форматов в сейсморазведке по рекомендации SEG в настоящее время наиболее широко используются следующие: SEGD801520битный формат с длиной сейсмического слова в 25 байта; SEGD804832битный формат с длиной...
31203. Сейсморазведочная аппаратура первого поколения 30 KB
  Сейсморазведочная станция СС30 6056 конструкции 1956 года содержала уже 60 сейсмических каналов группы по 15 каналов с раздельными фильтрами НЧ и ВЧ. Она была смонтирована в виде набора блоков два блока усилителей по 12 каналов осциллограф пульт управления блок питания переносная фотолаборатория соединительные кабели. Сейсморазведочная станция СС605 содержала 60 сейсмических каналов и была первой отечественной широкодиапазонной станцией приспособленной для регистрации колебаний в диапазоне от 15 до 350 Гц.
31204. Сейсморазведочные станции с промежуточной аналоговой записью 30 KB
  Главным средством создания воспроизводимой сейсмической записи оказалась магнитная аналоговая запись. Сейсморазведочные станции этого типа состоят из двух основных частей: блока записи и блока воспроизведения. Сейсморазведочная станция СС2461М имела 24 основных канала записи и 4 вспомогательных канала для регистрации марок времени отметки моментов взрыва и вертикального времени. Использовался прямой способ записи на ленту с высокочастотным подмагничиванием.
31205. Сейсморазведочные станции с цифровой магнитной регистрацией 30 KB
  Первой отечественной цифровой сейсморазведочной станцией была станция ССЦ1 созданная в 1966 г. Сейсморазведочная станция ССЦ2 была первой отечественной цифровой сейсморазведочной станцией которая достаточно успешно и сравнительно долго 1970 1976 гг. Сейсморазведочная станция ССЦ3 была разработана институтом ВНИИГеофизика Москва при участии фирмы SERSEL Франция в 1972 году. С 1976 года выпускался модернизированный вариант станции под маркой ССЦ4.
31206. Сети наблюдений 36.5 KB
  Сейсморазведочные работы 2D проводятся для изучения строения земной коры по отдельным профилям или сети профилей с целью решения задач на региональном поисковом детальном а иногда даже на детализационном этапах геологоразведочного процесса. Цели и задачи конкретной сейсмической съемки определяются этапом геологоразведочных работ на данной территории. Как известно в России принято выделять три этапа геологоразведочных работ региональный поисковый и детальный. Исследования по отдельным протяженным профилям на региональном этапе работ...
31207. Системы записи и предварительной обработки сейсмической информации 33 KB
  С точки зрения технологии применения сейсмической разведки в главном направлении в области поисков и разведки углеводородов всю выпускаемую аппаратуру можно условно разделить на два класса: аппаратура и оборудование для исследований по отдельным профилям линиям с использованием относительно ограниченного числа каналов. В ее названии присутствует индекс Л или L ; аппаратура и оборудование для исследований на площадях достаточно больших размерив с одновременной регистрацией волнового поля большим числом каналов. Для сейсморазведочных...
31208. Системы наблюдений со сложными но форме линиями приема или возбуждения 28.5 KB
  Система наблюдений при правильном планировании может обладать хорошим распределением удалений и азимутов. Предложено и ряд систем наблюдений регулярного типа в которых используются сложные по форме линии приема ЛПП или возбуждения ЛПВ. Среди систем наблюдений такого типа следует прежде всего указать на системы типа звезда и радиальная .