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
каждой альтернативы вычислим уровневые множества и их мощности (Ejα и M(Ejα)), а затем и сами точечные оценки:
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
E1α = {0; 0,1; 0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E1α) = 0,5; для 0,5<α<0,6; dα = 0,1
E1α = {}; M(E1α) = 0; для 0,6<α<0,7; dα = 0,1 E1α = {1}; M(E1α) = 1; для 0,7<α<0,8; dα = 0,1 E1α = {}; M(E1α) = 0; для 0,8<α<0,9; dα = 0,1 E1α = {}; M(E1α) = 0;
для 0,9<α<1; dα = 0,1 E1α = {}; M(E1α) = 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
E2α = {0; 0,1; 0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E2α) = 0,5; для 0,5<α<0,6; dα = 0,1
E2α = {0,1; 0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E2α) = 0,55; для 0,6<α<0,7; dα = 0,1
E2α = {0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E2α) = 0,6; для 0,7<α<0,8; dα = 0,1
E2α = {0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E2α) = 0,68; для 0,8<α<0,9; dα = 0,1
E2α = {0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E2α) = 0,7;
для 0,9<α<1; dα = 0,1
E1α = {0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E2α) = 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
E3α = {0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E3α) = 0,6; для 0,5<α<0,6; dα = 0,1
E3α = {0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E3α) = 0,65; для 0,6<α<0,7; dα = 0,1
E3α = {0,4; 0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E3α) = 0,7; для 0,7<α<0,8; dα = 0,1
E3α = {0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E3α) = 0,75; для 0,8<α<0,9; dα = 0,1
E3α = {0,6; 0,7; 0,8; 0,9; 1}; M(E3α) = 0,8;
для 0,9<α<1; dα = 0,1
E3α = {0,7; 0,8; 0,9}; M(E3α) = 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
E4α = {0,5; 0,6; 0,7; 0,8; 0,9; 1}; M(E4α) = 0,75; для 0,5<α<0,6; dα = 0,1
E4α = {0,6; 0,7; 0,8; 0,9; 1}; M(E4α) = 0,8; для 0,6<α<0,7; dα = 0,1
E4α = {0,7; 0,8; 0,9; 1}; M(E4α) = 0,85; для 0,7<α<0,8; dα = 0,1
E5α = {1}; M(E5α) = 1; для 0,8<α<0,9; dα = 0,1
E4α = {0,8; 0,9}; M(E4α) = 0,95;
для 0,9<α<1; dα = 0,1 E4α = {}; M(E3α) = 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}; E5α = {1}; M(E5α) = 1;
29
для 0<α<0,5; dα = 0,5 E5α = {}; M(E5α) = 0; для 0,5<α<0,6; dα = 0,1 E5α = {}; M(E5α) = 0; для 0,6<α<0,7; dα = 0,1 E5α = {}; M(E5α) = 0; для 0,7<α<0,8; dα = 0,1 E5α = {}; M(E5α) = 0; для 0,8<α<0,9; dα = 0,1 E5α = {1}; M(E4α) = 1; для 0,9<α<01; dα = 0,1
E5α = {0; 0,1; 0,2; 0,3; 0,4; 0,5; 0,6; 0,7; 0,8; 0,9}; M(E5α) = 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.