50177

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

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

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

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

Русский

2014-01-17

67 KB

1 чел.

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

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

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


 

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

83895. Хирургическая анатомия тонкой кишки. Отделы, особенности кровоснабжения. Брыжеечные синусы 52 KB
  Отделы тонкой кишки: двенадцатиперстная кишка рассматривалась выше; тощая кишка; подвздошная кишка. Между листками брюшины по мезентериальному краю выделяют так называемое внебрюшинное поле re nud вдоль которого в стенку кишки вступают прямые артерии а из нее выходят прямые вены и экс траорганные лимфатические сосуды. Скелетотопия: корень брыжейки тонкой кишки начинается от L2 позвонка и опускается слева направо до крестцово подвздошного сустава пересекая горизонтальную часть двенадцатиперстной кишки аорту нижнюю полую вену...
83896. Хирургическая анатомия толстой кишки. Отделы, кровоснабжение, венозный отток. Боковые каналы 50.73 KB
  Отделы толстой кишки: Слепая кишка Восходящая ободочная кишка Правый изгиб ободочной кишки Поперечная ободочная кишка Левый изгиб ободочной кишки Нисходящая ободочная кишка Сигмовидная ободочная кишка Прямая кишка Кровоснабжение ободочной кишки осуществляется верхней и нижней брыжеечными артериями. Ветви верхней брыжеечной артерии: Подвздошноободочная артерия отдает ветви к терминальному отделу подвздошной кишки червеобразному отростку передние и задние слепокишечные артерии и восходящую артерию кровоснабжающую начальную...
83897. Хирургическая анатомия слепой кишки. Техника выполнения аппендэктомии при ретроперитонеальном расположении червеобразного отростка 50.91 KB
  Техника выполнения аппендэктомии при ретроперитонеальном расположении червеобразного отростка. Червеобразный отросток Варианты положения периферической части отростка нисходящее верхушка отростка обращена вниз и влево и достигает пограничной линии а иногда опускается в малый таз наиболее частый вариант; медиальное вдоль концевого отдела подвздошной кишки; латеральное в правом боковом канале; восходящее вдоль передней стенки слепой кишки; ретроцекальное и ретроперитонеальное в забрюшинной клетчатке. Проекция основания отростка...
83898. Аппендэктомия. Доступ, техника выполнения, особенности операции при перитоните и гангренозном аппендиците 53.03 KB
  Аппендэктомия ppendectomi удаление червеобразного отростка. Показания: острые или хронические воспалительные изменения червеобразного отростка доброкачественные и злокачественные его новообразования. Оперативный прием При пересечении брыжейки отростка порциями со стороны свободного ее конца накладывают кровоостанавливающий зажим ближе к основанию пересекают брыжейку над зажимом после чего часть брыжейки под зажимом прошивают лигатуру завязывают. Культя отростка погружается в кисет.
83899. Ретроградная аппендэктомия. Доступ, показания, техника выполнения, опасности и профилактика осложнений 46.28 KB
  Показания: спаечный процесс в области червеобразного отростка ретроцекальное или ретроперитонеальное его положение невозможно вывести отросток в рану. Технические приемы: Отыскивание начального отдела слепой кишки и отростка. Проделывание окна в брыжейке отростка у его основания перевязка отростка. Пересечение отростка погружение культи в стенку слепой кишки по описанному выше способу.
83900. Хирургическое лечение рака толстой кишки 49.17 KB
  Радикальное иссечение опухоли тослтой кишки вместе с соответствующей частью брыжейки с сосудами и сопровождающими лимфатическими сосудами и узлами является наиболее подходящей операцией для локального устранения опухоли. Виды резекции толстой кишки в зависимости от локализации патологического процесса: Правосторонняя гемиколэктомия удаление всей правой половины толстой кишки захватывая 1015 см конечного отрезка подвздошной кишки слепую восходящую ободочную правый изгиб и правую треть поперечной ободочной кишки с последующим наложением...
83901. Операция Гартмана. Показания, техника выполнения 50.66 KB
  Операция заключается в одномоментной резекции пораженного отрезка сигмовидной ободочной и части прямой кишки с наложением одноствольного противоестественного заднего прохода. Показания: операция показана у ослабленных и пожилых больных при раке сигмовидной ободочной кишки или ректосигмоидного отдела осложненном непроходимостью или перфорацией а также при завороте сигмовидной ободочной кишки с гангреной ее и перитонитом. После ревизии брюшной полости производят мобилизацию сигмовидной ободочной кишки а при раке ректосигмовидного отдела...
83902. Хирургическая анатомия прямой кишки. Хирургическое лечение геморроя 50.85 KB
  Хирургическая анатомия прямой кишки Скелетотопия: начало соответствует уровню верхнего края S2 позвонка. Строение: В зависимости от местоположения кишки в ней выделяют тазовую лежит выше диафрагмы и содержит надампулярную часть и ампулу и промежностную анальный канал части. Покрытие брюшиной: надампулярный отдел прямой кишки покрыт брюшиной интраперитонеально в области ампулы брюшина покрывает переднюю и частично боковые стенки кишки переходя на матку у мужчин на мочевой пузырь и на боковые стенки таза.
83903. Виды операций на прямой кишке 48.36 KB
  Сфинктеросохраняющие операции: передняя резекция прямой кишки; брюшноанальная резекция прямой кишки с низведением Сфинктеронесохраняющие операции связанные с удалением замыкательного аппарата и наложением противоестественного заднего прохода: брюшнопромежностная экстирпация прямой кишки; обструктивная резекция прямой кишки. Передняя резекция прямой кишки показана при раке верхнеампулярного и ректосигмоидного отделов нижняя граница опухоли располагается на 10 см выше прямокишечнозаднепроходной линии. Брюшноанальную резекцию прямой...