Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

5575

.pdf
Скачиваний:
1
Добавлен:
13.11.2022
Размер:
1.95 Mб
Скачать

21

Рисунок 1 – Схема нечёткого вывода по Мамдани

Рисунок 2 – Схема нечёткого вывода по Цукамото

22

Рисунок 3 – Схема нечёткого вывода по Ларсену

Пример выполнения лабораторной работы

Выбор выпускником вуза места будущей работы методом нечёткого логического вывода

Выпускник рассматривает несколько вариантов места будущей работы, подходящих по специальности. Требуется выявить наиболее подходящее место работы, руководствуясь его мнением.

Мнение студента представлено в виде выражений:

d1: «Если заработная плата достойная, число отпускных дней достаточное и имеются неплохие социальные гарантии, то работа – удовлетворяет требованиям».

d2: «Если вдобавок к d1 имеется перспектива карьерного роста, то работа – более чем удовлетворяет требованиям».

d3: «Если дополнительно к условиям d2 работа находится недалеко от места жительства, то она – безупречна».

d4: «Если имеется всё оговорённое в d1, но работа находится далеко от места жительства студента, то работа – хорошо удовлетворяет требования».

d5: «Если из условия d4 исключить условие наличия достаточного количества отпускных дней, то работа – удовлетворяет требованиям».

23

d6: «Если заработная плата недостаточна и нет социальных гарантий, то работа – не удовлетворяет требованиям».

Критерии, используемые для принятия решения: X1 – заработная плата;

X2 – число отпускных дней;

X3 – социальные гарантии;

X4 – перспективы карьерного роста;

X5 – месторасположение работы; Y – удовлетворительность.

Правила оценки работы, с учётом определённых лингвистических переменных:

d1: «Если X1 = ДОСТОЙНАЯ и Х2 = ДОСТАТОЧНО, и Х3 = ИМЕЮТСЯ СОЦГАРАНТИИ, то Y = УДОВЛЕТВОРЯЮЩАЯ»;

d2: «Если X1 = ДОСТОЙНАЯ и Х2 = ДОСТАТОЧНО, и Х3 = ИМЕЮТСЯ СОЦГАРАНТИИ, и Х4 = ЕСТЬ ПЕРСПЕКТИВЫ, то Y = БОЛЕЕ ЧЕМ УДОВЛЕТВОРЯЮЩАЯ»;

d3: «Если X1 = ДОСТОЙНАЯ и Х2 = ДОСТАТОЧНО, и Х3 = ИМЕЮТСЯ

СОЦГАРАНТИИ, и Х4 = ЕСТЬ ПЕРСПЕКТИВЫ, и Х5 = НЕДАЛЕКО, то

Y

= БЕЗУПРЕЧНАЯ»;

 

d4: «Если X1 = ДОСТОЙНАЯ и Х2 = ДОСТАТОЧНО, и Х3 = ИМЕЮТСЯ СОЦГАРАНТИИ и Х5 = ДАЛЕКО, то Y = ХОРОШО УДОВЛЕТВОРЯЮЩАЯ»;

d5: «Если X1 = ДОСТОЙНАЯ и Х2 = НЕДОСТАТОЧНО, и Х3 = ИМЕЮТСЯ СОЦГАРАНТИИ, и Х5 = ДАЛЕКО, то Y = УДОВЛЕТВОРЯЮЩАЯ»;

d6: «Если X1 = НЕ ДОСТОЧНАЯ и

Х3 = НЕТ СОЦГАРАНТИЙ, то Y =

НЕУДОВЛЕТВОРЯЮЩАЯ»;

 

 

 

 

Переменная Y задана на множестве J ={0; 0,1; 0,2; ….; 1}.

 

 

Значение переменной Y заданы с помощью следующих функций

принадлежности:

 

 

 

 

S=УДОВЛЕТВОРЯЮЩАЯ определёна, как S (x) x, x J ;

 

 

 

 

 

MS=БОЛЕЕ ЧЕМ УДОВЛЕТВОРЯЮЩАЯ определёна, как MS (x)

x, x J ;

 

1,

если x 1, x J

 

 

P=БЕЗУПРЕЧНАЯ определёна, как P

 

;

 

 

(x)

 

 

 

0,

если x 1

 

 

 

 

 

 

 

24

VS=ОЧЕНЬ УДОВЛЕТВОРЯЮЩАЯ определёна, как VS (x) x2 , x J ; US=НЕУДОВЛЕТВОРЯЮЩАЯ определёна, как US (x) 1 x, x J .

Выбор производится из пяти вариантов будущей работы, представленных на множестве U={u1, u2, u3, u4, u5}

В рассматриваемой задаче оценки работы заданы следующими нечёткими множествами:

ДОСТОЙНАЯ (заработная плата)A={0,7/u1, 0,5/u2, 0,7/u3, 0,8/u4, 0,9/u5} ДОСТАТОЧНОЕ (число отпускных дней) B={0,5/u1, 0,2/u2, 0,7/u3, 0,6/u4,

0/u5}

ИМЕЮТСЯ СОЦГАРАНТИИ (социальные гарантии) C={0,7/u1, 0,9/u2, 0,9/u3, 0/u4, 0,4/u5}

ЕСТЬ ПЕРСПЕКТИВЫ (перспективы карьерного роста) D={0,7/u1, 0,5/u2, 0,7/u3, 1/u4, 0,9/u5}

НЕДАЛЕКО (месторасположение работы) F={1/u1, 0/u2, 0/u3, 1/u4, 1/u5} C учётом введённых обозначений получим:

d1: «Если X = A и B и C то Y = S»;

d2: «Если X = A и B и C и D то Y = MS»; d3: «Если X = A и B и C и D и E то Y = P»; d4: «Если X = A и B и C и Е то Y = VS»;

d5: «Если X = A и не B и C и не Е то Y = S»; d6: «Если X = не A и не C то Y = US».

Вычислим функции принадлежности Mi для левых частей приведённых правил:

для d1: M1(u) min( MA (u), MB (u), MC (u)) ; M1={0,5/u1; 0,2/u2; 0,7/u3; 0/u4; 0/u5};

для d2: M2 (u) min( MA (u), MB (u), MC (u), MD (u)) ; M2={0,5/u1; 0,2/u2; 0,5/u3; 0/u4; 0/u5};

для d3: M3 (u) min( MA (u), MB (u), MC (u), MD (u), ME (u)) ; M3={0,5/u1; 0/u2; 0/u3; 0/u4; 0/u5};

для d4: M4 (u) min( MA (u), MB (u), MC (u), ME (u)) ; M4={0,5/u1; 0 /u2; 0/u3; 0,7/u4; 0/u5};

для d5: M5 (u) min( MA (u),1 MB (u), MC (u),1 ME (u)) ; M5={0/u1; 0,5/u2; 0,3/u3; 0/u4; 0/u5};

25

для d6: M6 (u) min(1 MA (u),1 MC (u)) ; M6={0,3/u1; 0,1/u2; 0,1/u3; 0,2/u4; 0,1/u5};

Теперь правила можно записать в виде: d1: «Если X = M1, то Y = S»;

d2: «Если X = M2, то Y = MS»; d3: «Если X = M3, то Y = P»; d4: «Если X = M4, то Y = VS»; d5: «Если X = M5, то Y = S»; d6: «Если X = M6, то Y = US».

Преобразуем полученные правила с помощью импликации Лукасевича в представленные ниже нечёткие отношения на множестве U*J:

 

 

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u1

0,5

0,6

0,7

0,8

0,9

1

1

1

1

1

1

D1=

u2

0,8

0,9

1

1

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

u3

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

1

1

1

 

 

u4

1

1

1

1

1

1

1

1

1

1

1

 

u5

1

1

1

1

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u1

0,5

0,81

0,94

1

1

1

1

1

1

1

1

D2=

u2

0,8

1

1

1

1

1

1

1

1

1

1

u3

0,5

0,81

0,94

1

1

1

1

1

1

1

1

 

 

u4

1

1

1

1

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u5

1

1

1

1

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u1

0,5

0,5

0,5

0,5

0,5

0,5

0,5

0,5

0,5

0,5

1

D3=

u2

1

1

1

1

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

u3

1

1

1

1

1

1

1

1

1

1

1

 

 

u4

1

1

1

1

1

1

1

1

1

1

1

 

u5

1

1

1

1

1

1

1

1

1

1

1

26

 

 

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

 

0,8

0,9

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u1

0,5

0,51

0,54

0,59

0,66

0,75

0,86

0,99

 

1

1

 

1

D4=

u2

1

1

1

1

1

1

1

1

 

1

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u3

1

1

1

1

1

1

1

1

 

1

1

 

1

 

 

 

 

u4

0,3

0,31

0,34

0,39

0,46

0,55

0,66

0,79

 

0,94

1

 

1

 

u5

1

1

1

1

1

1

1

1

 

1

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

 

0,8

0,9

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u1

1

1

1

1

1

1

1

1

 

1

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D5=

u2

0,5

0,6

0,7

0,8

0,9

1

1

1

 

1

1

 

1

u3

0,7

0,8

0,9

1

1

1

1

1

 

1

1

 

1

 

 

 

 

u4

1

1

1

1

1

1

1

1

 

1

1

 

1

 

u5

1

1

1

1

1

1

1

1

 

1

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

 

0,8

0,9

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u1

1

1

1

1

1

1

1

1

 

0,9

0,8

 

0,7

D6=

u2

1

1

1

1

1

1

1

1

 

1

1

 

0,9

u3

1

1

1

1

1

1

1

1

 

1

1

 

0,9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u4

1

1

1

1

1

1

1

1

 

1

0,9

 

0,8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u5

1

1

1

1

1

1

1

1

 

1

1

 

0,9

В результате пересечения отношений D1,…,D6

получаем

общее

функциональное решение:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

 

0,8

0,9

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u1

0,5

0,5

0,5

0,5

0,5

0,5

0,5

0,5

 

0,5

0,5

 

0,7

D=

u2

0,5

0,6

0,7

0,8

0,9

1

1

1

 

1

1

 

0,9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u3

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

 

1

1

 

0,9

 

 

 

 

u4

0,3

0,31

0,34

0,39

0,46

0,55

0,66

0,79

 

0,94

0,9

 

0,8

 

u5

1

1

1

1

1

1

1

1

 

1

1

 

0,9

Вычислим удовлетворительность каждой альтернативы на основе точечных оценок (FEi) (с использованием композиционного правила вывода). Для этого для

27

каждой альтернативы вычислим уровневые множества и их мощности (Eи M(E)), а затем и сами точечные оценки:

E1={0,5/0; 0,5/0,1; 0,5/0,2; 0,5/0,3; 0,5/0,4; 0,5/0,5; 0,5/0,6; 0,5/0,7; 0,5/0,8; 0,5/0,9; 0,7/1};

для 0<α<0,5; dα = 0,5

E= {0; 0,1; 0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,5; для 0,5<α<0,6; dα = 0,1

E= {}; M(E) = 0; для 0,6<α<0,7; dα = 0,1 E= {1}; M(E) = 1; для 0,7<α<0,8; dα = 0,1 E= {}; M(E) = 0; для 0,8<α<0,9; dα = 0,1 E= {}; M(E) = 0;

для 0,9<α<1; dα = 0,1 E= {}; M(E) = 0;

F(E1)=0,5*0,5+0,1*1=0,35.

E2={0,5/0; 0,6/0,1; 0,7/0,2; 0,8/0,3; 0,9/0,4; 1/0,5; 1/0,6; 1/0,7; 1/0,8; 1/0,9; 0,9/1}; для 0<α<0,5; dα = 0,5

E= {0; 0,1; 0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,5; для 0,5<α<0,6; dα = 0,1

E= {0,1; 0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,55; для 0,6<α<0,7; dα = 0,1

E= {0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,6; для 0,7<α<0,8; dα = 0,1

E= {0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,68; для 0,8<α<0,9; dα = 0,1

E= {0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,7;

для 0,9<α<1; dα = 0,1

E= {0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,7; F(E2)=0,5*0,5+0,1*0,55+0,1*0,6+0,1*0,68+0,1*0,7+0,1*0,7=0,573.

28

E3={0,3/0; 0,4/0,1; 0,5/0,2; 0,6/0,3; 0,7/0,4; 0,8/0,5; 0,9/0,6; 1/0,7; 1/0,8; 1/0,9; 0,9/1};

для 0<α<0,5; dα = 0,5

E= {0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,6; для 0,5<α<0,6; dα = 0,1

E= {0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,65; для 0,6<α<0,7; dα = 0,1

E= {0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,7; для 0,7<α<0,8; dα = 0,1

E= {0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,75; для 0,8<α<0,9; dα = 0,1

E= {0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,8;

для 0,9<α<1; dα = 0,1

E= {0,7; 0,8; 0,9}; M(E) = 0,8; F(E3)=0,5*0,6+0,1*0,65+0,1*0,7+0,1*0,75+0,1*0,8+0,1*0,8=0,67.

E4={0,3/0; 0,31/0,1; 0,34/0,2; 0,39/0,3; 0,46/0,4; 0,55/0,5; 0,66/0,6; 0,79/0,7; 0,94/0,8; 0,9/0,9; 0,8/1};

для 0<α<0,5; dα = 0,5

E= {0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,75; для 0,5<α<0,6; dα = 0,1

E= {0,6; 0,7; 0,8; 0,9; 1}; M(E) = 0,8; для 0,6<α<0,7; dα = 0,1

E= {0,7; 0,8; 0,9; 1}; M(E) = 0,85; для 0,7<α<0,8; dα = 0,1

E= {1}; M(E) = 1; для 0,8<α<0,9; dα = 0,1

E= {0,8; 0,9}; M(E) = 0,95;

для 0,9<α<1; dα = 0,1 E= {}; M(E) = 0;

F(E4)=0,5*0,75+0,8*0,1+0,85*0,1+1*0,1+0,95*0,1=0,735.

E5={1/0; 1/0,1; 1/0,2; 1/0,3; 1/0,4; 1/0,5; 1/0,6; 1/0,7; 1/0,8; 1/0,9; 0,9/1}; E= {1}; M(E) = 1;

29

для 0<α<0,5; dα = 0,5 E= {}; M(E) = 0; для 0,5<α<0,6; dα = 0,1 E= {}; M(E) = 0; для 0,6<α<0,7; dα = 0,1 E= {}; M(E) = 0; для 0,7<α<0,8; dα = 0,1 E= {}; M(E) = 0; для 0,8<α<0,9; dα = 0,1 E= {1}; M(E) = 1; для 0,9<α<01; dα = 0,1

E= {0; 0,1; 0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9}; M(E) = 0,45; F(E5)=1*0,1+0,45*0,1=0,055.

В качестве лучшей выбираем альтернативу, имеющую наибольшую точечную оценку. Следовательно, студенту следует выбрать четвёртый вариант места работы, так как эта работа максимально удовлетворяет его предпочтениям.

Для решения аналогичной задачи в среде Matlab версии 6.5 воспользуемся средствами для моделирования нечёткой системы. В составе программы присутствуют пять средств – редакторы системы нечёткого вывода (СНВ), редактор функций принадлежности (ФП), редактор правил вывода, средства просмотра правил и средства просмотра поверхности вывода. Редактор СНВ предоставляет возможность формирования проектируемой системы заданием количества входных и выходных переменных и наименование переменных. Редактор ФП используется для определёния формы функций принадлежности для каждой переменной. Редактор правил вывода применяется для редактирования списка правил. Средство просмотра правил вывода используется в целях диагностики ошибок, допущенных при создании системы. Средство просмотра поверхности вывода используется для отображения зависимостей выхода системы от одного или двух входов.

Моделирование начинается с добавления в систему входных и выходных переменных. В командной строке среды Matlab задаём команду fuzzy. После чего появляется редактор систем нечёткого вывода. Редактор СНВ использует

30

по умолчанию нечёткий вывод Мамдани, но система также позволяет произвести расчёт по Суджено.

Чтобы добавить новую переменную, надо выбрать в меню Edit пункт Add input – для входной переменной или Add output – для выходной. Для изменения имени переменной её необходимо отметить, а затем в поле редактирования переменной изменить наименование.

Сохранить проектируемую систему в рабочее пространство Matlab можно командой File – Save to workspace as…, тогда данные сохранятся до окончания сеанса работы с программой. Для сохранения данных на диск после окончания работы используется команда File – Save to disk as…

Далее необходимо сопоставить функции принадлежности с каждой из входных

ивыходных переменных одним из трёх способов:

-выбором в меню View пункта Edit membership Functions…;

-двойным щелчком на изображении соответствующей переменной;

-набором в командной строке оператора mfedit.

С помощью редактора ФП можно отображать и редактировать любые функции принадлежности, связанные со всеми входными и выходными переменными разрабатываемой системы нечёткого вывода.

Для связывания ФП с именем переменной переменная по имени выбирается из набора графических объектов окна редактора СНВ. Затем указывается диапазон изменения значений для базовой и видимый диапазон для текущей переменных. После этого, в меню Edit выбирается пункт Add MFs…, а в появившемся окне выбираются вид ФП и их количество. Редактировать ФП текущей переменной можно используя графическое окно ФП или изменяя характеристики ФП. При редактировании ФП через графическое окно можно также изменить кривую.

Когда указано количество входных и выходных переменных, определёны их наименования и построены соответствующие ФП, в СНВ необходимо включить правила вывода. Для этого в меню View выбирается пункт Edit Rules… или в командной строке Matlab набирается команда ruleedit.

Редактор правил вывода формирует структуру правила автоматически, основываясь на описаниях входных и выходных переменных. Требуется только связать значения входных и выходных переменных, выбирая из списка заданных ранее ФП и определить логические связки между ними. Допускается использование логического отрицания (НЕ) и изменение весов правил в диапазоне от 0 до 1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]