MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Проектирование систем управления\Fuzzy Logic Toolbox

С.Д.Штовба "Введение в теорию нечетких множеств и нечеткую логику"

В оглавление книги \ К следующему разделу \ К предыдущему разделу

13.2. Построение функций принадлежности на основе парных сравнений

Исходной информацией для построения функций принадлежности являются экспертные парные сравнения. Для каждой пары элементов универсального множества эксперт оценивает преимущество одного элемента над другим по отношению к свойству нечеткого множества. Парные сравнения удобно представлять следующей матрицей:

,

где   - уровень преимущество элемента над (), определяемый по девятибальной шкале Саати:

1  - если отсутствует преимущество элемента над элементом ;

3  - если имеется слабое преимущество над ;

5  - если имеется существенное преимущество над ;

7  - если имеется явное преимущество над ;

9  - если имеется абсолютное преимущество над ;

2,4,6,8 - промежуточные сравнительные оценки.

Матрица парных сравнений является диагональной () и обратно симметричной (, ).

Степени принадлежности принимаются равными соответствующим координатам собственного вектора матрицы парных сравнений:

, . (12.2)

Собственный вектор находится из следующей системы уравнений:

, (12.3)

где   - максимальное собственное значение матрицы A.

Пример 12.2. Построить функцию принадлежности нечеткого множества "высокий мужчина" на универсальном множестве {170, 175, 180, 185, 190, 195}.

Парные сравнения зададим следующей матрицей:

.

Собственные значения этой матрицы парных сравнений равны:

6.2494;

0.0318 + 1.2230i;

0.0318  - 1.2230i;

- 0.1567 + 0.2392i;

- 0.1567  - 0.2392i;

0.0004.

Следовательно, . Степени принадлежности, найденные по формулам (12.3) и (12.2), приведены в табл. 12.3. Нечеткое множество получилось субнормальным. Для нормализации разделим все степени принадлежности на максимальное значение, т.е. на 0.3494. Графики функций принадлежности субнормального и нормального нечеткого множества "высокий мужчина" приведены на рис. 12.2.

Таблица 12.3 - К примеру 12.2: функции принадлежности нечеткого множества "высокий мужчина"

170

175

180

185

190

195

(субнормальное нечеткое множество)

0.0284

0.0399

0.0816

0.1754

0.3254

0.3494

(нормальное нечеткое множество)

0.0813

0.1141

0.2335

0.5021

0.9314

1.0000

Рисунок 12.2 - К примеру 12.2: функции принадлежности нечеткого множества "высокий мужчина"

Отклонение от n может служить мерой несогласованности парных сравнений эксперта. В примере 12.2 , а . Следовательно, мера несогласованности равна 0.2494. При согласованных парных сравнениях процедура построения функций принадлежности значительно упрощается.

При согласованных мнениях эксперта матрица парных сравнений обладает следующими свойствами:

  • она диагональная‚ т. е. aii=1 ‚ i=1..n ;
  • она обратно симметрична‚ т. е. элементы‚ симметричные относительно главной диагонали‚ связаны зависимостью aij=1/aji , i,j=1..n ;
  • она транзитивна‚ т. е. aikakj=aij , i,j,k=1..n .
Наличие этих свойств позволяет определить все элементы матрицы парных сравнений, если известны (n-1) недиагональных элементов. Например, если известна k-тая строка‚ т. е. элементы akj , i,j=1..n ‚ то произвольный элемент aij определяется так:

(12.4)

После определения всех элементов матрицы парных сравнений степени принадлежности‚ нечеткого множества вычисляются по формуле:

(12.5)

Формула (12.5), в отличие от формул (12.2) - (12.3) не требует выполнения трудоемких вычислительных процедур, связанных с нахождением собственного вектора матрицы A.

Пример 12.3. Построить функцию принадлежности нечеткого множества "высокий мужчина" на универсальном множестве {170, 175, 180, 185, 190, 195}, если известны такие экспертные парные сравнения:

  • абсолютное преимущество 195 над 170;
  • явное преимущество 195 над 175;
  • существенное преимущество 195 над 180;
  • слабое преимущество 195 над 185;
  • отсутствует преимущество 195 над 190.

Приведенным экспертным высказываниям соответствует такая матрица парных сравнений:

Полужирным шрифтом выделенные элементы, соответствующие парным сравнениям из условия примера. Остальные элементы найдены по формуле (12.4). Применяя формулы (12.5) находим степени принадлежности (табл. 12.4). Для нормализации нечеткого множества разделим все степени принадлежности на максимальное значение, т.е. на 0.3588. Графики функций принадлежности субнормального и нормального нечеткого множества "высокий мужчина" приведены на рис. 12.3.

Таблица 12.4 - К примеру 12.3: функции принадлежности нечеткого множества "высокий мужчина"

ui 170 175 180 185 190 195
μ высокий мужчина (ui)
(субнормальное нечеткое множество)
0.0399 0.0513 0.0718 0.1196 0.3588/td> 0.3588
μ высокий мужчина (ui)
((нормальное нечеткое множество)
0.1111 0.1429 0.2000 0.3333 1.0000 1.0000

Рисунок 12.3 - К примеру 12.3: функции принадлежности нечеткого множества "высокий мужчина"

Для автоматизации расчетов при построении функций принадлежности предлагается пакет программ MFEB. Пакет содержит такие функции:

  • a2mu - рассчитывает степени принадлежности из матрицы парных сравнений по методу собственного вектора;
  • half2a - формирует матрицу парных сравнений из строк с парными сравнениями;
  • half2mu - рассчитывает степени принадлежности по строкам с парными сравнениями;
  • a2mu_r - рассчитывает степени принадлежностей из матрицы парных сравнений по методу Ротштейна А.П.;
  • string2a_r - формирует матрицу парных сравнений по одной строке, которой сравнивается один элемент со всеми остальными(включая и себя). Расчет элементов матрицы осуществляется по методу Ротштейна А.П.;
  • string2mu_r - рассчитывает по методу Ротштейна А.П. степени принадлежности по одной строке матрицы парных сравнений.

Синтаксис вызова функций следующий:

[norm_mu, mu]=a2mu(A);
[A, warning]=half2a(half_matr):
[norm_mu, mu, warning]=half2mu(half_matr);
[norm_mu, mu]=a2mu_r(A);
[A, warning]=string2a_r(comp_str);
[norm_mu, mu, warning]=string2mu_r(comp_str);

где

  • A - матрица парных сравнений;
  • mu - степени принадлежности;
  • norm_mu - степени принадлежноcти нормализованного нечеткого множества;
  • comp_str - одна строка матрицы парных сравнений, в которой один элемент сравнивается со всеми остальными (включая и себя). Сравнения осуществляют по шкале Саати, поэтому допустимыми значениями являются числа: 1/9, 1/8, 1/7, 1/6, 1/5, 1/4, 1/3, 1/2, 1, 2, 3, 4, 5, 6, 7, 8, 9;
  • warning - предупреждение. Возможные значения: 0 - все в порядке; -1 - матрица парных сравнений содержит элементы <1/9; 1 - матрица парных сравнений содержит элементы >9;
  • half_matr - строки с парными сравнениями, образующий треугольник матрицы парных сравнений, расположенный выше главной диагонали. Формат half_matr: {[2 3...N] [3 ...N] ... [N]}, где [2 3...N] - сравнивается 1-й элемент со всеми остальными; [3...N] - сравнивается 2-й элемент с 3-м, 4-м и т.д.; [N] - сравнивается (N-1)-й элемент с N-м. Допустимые значения элементов half_matr: 1/9, 1/8, 1/7, 1/6, 1/5, 1/4, 1/3, 1/2, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Примеры использования функций пакета.

Построим функции принадлежности для данных примера 12.2. Для этого напечатаем:

half_matr={[1/2 1/4 1/6 1/8 1/9] [1/3 1/5 1/7 1/8] [1/4 1/4 1/5] [1/3 1/3] 1};
A=half2a(half_matr)
[norm_mu, mu]=a2mu(A)

В результате получим матрицу парных сравнений, а также степени принадлежности нечеткого множества после и до нормализации:

A =
    1.0000    0.5000    0.2500    0.1667    0.1250    0.1111
    2.0000    1.0000    0.3333    0.2000    0.1429    0.1250
    4.0000    3.0000    1.0000    0.2500    0.2500    0.2000
    6.0000    5.0000    4.0000    1.0000    0.3333    0.3333
    8.0000    7.0000    4.0000    3.0000    1.0000    1.0000
    9.0000    8.0000    5.0000    3.0000    1.0000    1.0000

norm_mu =
    0.0813    0.1141    0.2335    0.5021    0.9314    1.0000

mu =
    0.0284    0.0399    0.0816    0.1754    0.3254    0.3494

Если информация о матрице парных сравнений не важна, тогда рассчитать степени принадлежности можно командой:

[norm_mu, mu]=half2mu(half_matr).

Построим функции принадлежности для данных примера 12.3. Для этого напечатаем:

comp_str=[9 7 5 3 1 1];
A=string2a_r(comp_str)
[norm_mu, mu]=a2mu_r(A)

В результате получим матрицу парных сравнений, а также степени принадлежности нечеткого множества после и до нормализации:

A =
    1.0000    0.7778    0.5556    0.3333    0.1111    0.1111
    1.2857    1.0000    0.7143    0.4286    0.1429    0.1429
    1.8000    1.4000    1.0000    0.6000    0.2000    0.2000
    3.0000    2.3333    1.6667    1.0000    0.3333    0.3333
    9.0000    7.0000    5.0000    3.0000    1.0000    1.0000
    9.0000    7.0000    5.0000    3.0000    1.0000    1.0000

norm_mu =
    0.1111    0.1429    0.2000    0.3333    1.0000    1.0000

mu =
    0.0399    0.0513    0.0718    0.1196    0.3588    0.3588

Если информация о матрице парных сравнений не важна, тогда рассчитать степени принадлежности можно командой:

[norm_mu, mu]=string2mu_r(comp_str).

Литература

  1. Борисов А.Н., Крумберг О.А., Федоров И.П. принятие решений на основе нечетких моделей: примеры использования. Рига: Зинатне. 1990. 184 С.
  2. Саати Т.Л. Взаимодействие в иерархических системах // Техническая кибернетика. 1979. №1. С. 68-84.
  3. Rotshtein A.P. Modification of Saaty Method for the Construction of Fuzzy Set Membership Functions. Proc. of the International Conference "Fuzzy Logic and its Applications", Zichron, Israel, 1997. P. 125-130.
  4. Ротштейн А.П., Штовба С.Д. Нечеткий многокритериальный анализ вариантов с применением парных сравнений // Известия РАН. Теория и системы управления.- 2001.- №3.- С.150-154.
  5. Zimmerman H.-J. Fuzzy Set Theory and its Applications. Dordrecht: Kluwer Academic Publishers. 1996. 315p.

В оглавление книги \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика