Научная статья на тему 'Нечеткое программирование. Нечетские системы в Matlab'

Нечеткое программирование. Нечетские системы в Matlab Текст научной статьи по специальности «Математика»

CC BY
387
89
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Соколов Д. П.

Приведена программная реализация системы нечеткого вывода Мамдани в среде MATLAB для решения задачи оценки качества обслуживания нагрузки в IP-сетях.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Нечеткое программирование. Нечетские системы в Matlab»

16 декабря 2011 г. 18:01

Т-Сотт #10-2010

(Технологии информационного общества)

Нечеткое программирование. Нечетские системы в МАТЬАВ

Приведена программная реализация системы нечеткого вывода Мамдани в среде МЛ ТІ.АВ для решения задачи оценки качества обслуживания нагрузки в /Р-сетях.

Соколов Д.П.,

МТУ СИ каф. СУ ПС

Рассмотрев средства нечеткого программирования в [ 1 ] остановимся более подробно на реализации нечетких систем в среде МАТ|_АВ. Рассмотрим задачу реализации нечеткой системы оценки качества обслуживания голосового трафика в 1Р-сстях. Система будет оперировать четырьмя лингвистическими переменными, три входные - задержка, джиттер, потери - и одна выходная - качество обслуживания. Как было указано в [2], лингвистические переменные описываются вектором (14. Т. и, в. М), где

• N - имя переменной;

• Т - терм-множество, элементы которого задаются нечеткими множествами на универсальном множестве

и:

• О - синтаксические правила, порождающие название термов;

• М - семантические правила, определяющие функции принадлежности нечетких термов, порожденных синтаксическими правилами из в.

Для краткости все переменные сведены в табл. 1.

Таблица 1

Определения лингвистических переменных

имя переменной^! > задержка (ТР)

Х| терм-множество (Т) {низкая, средняя, высокая}

пределы значений (Ц) |0. 450]_мс

имя переменной (Ы) джиттер (РУ)

Х-. терм-множество (Т) {низкий, высокий}

пределы шачений (1)» [0. 90] мс

имя переменной (Ы) потери (ЬЮ

терм-множество ^Т) {низкие, высокие)

пределы значений (и) |10 10 ‘1

имя переменной £Ы) качество обслуживания (ОоЯ)

V терм-множество (Т) {низкое, среднее, высокое}

пределы значений ГШ И ;

Правила системы можно записать в символической форме как:

1. (задержка-низкая) & (джиттер-низкий) & (потери-низкие) -> & (качество-высокос)

2. (задержка-средняя) & (джиттер-низкий) & (потсри=низкис) => & (качсство=срсднсс)

3. (задержка-низкая) & (джиттер-высокий) & (потери-низкие) => & (качество“низкое)

4. (задержка-средняя) & (джиттер_высокнй) & (потери-низкие) -> & (качсство-низкое)

5. (задержка-высокая) & (джиттср-высокий) & (потери-низкие) “> & (качество-низкос)

6. (потери-высокис) -> & (качество^низкое)

Семантические правила М зададим функциями принадлежности, определив степени принадлежности определенных элементов множества и к элементам из множества 'Г и интерполировав значения. Степени принадлежности, в свою очередь, определим как соответствующие координаты вектора собственных значений матриц парных сравнений, оценивая для каждой пары

элементов универсального множества И преимущество щ(и,) одного элемента над другим по отношению к свойству нечеткого множества. Уровень преимущества определим по девятибалльной шкале Саати:

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

3 - если преимущество элемента и, над и, слабое; р,|(и,) =

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

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

9 - если преимущество элемента и, над и, абсолютное.

>

(1)

Согласно табл. 1 всего необходимо задать 7 функций принадлежности (матриц парных сравнений). В среде МАИ. А В матрица парных сравнений задается в виде двумерного массива. Степени принадлежности проще всего вычислить оператором собственных значений мат-

6.1

Т-Comm #10-2010

(Технологии информационного общества)

Используя перечисленные свойства матриц парных сравнений можно существенно упростить составление семантических правил. Из (4) и (3) получаем

U^kj/Ukj ijjc=l.ji (5)

Таким образом, можно восстановить все значения матрицы по известной k-той строке. Степени принадлежности нечеткого множества можно вычислить по формуле:

p(U,)=l/(U,)+U5+U1,+ ...+U|„) (6)

С учетом изложенного вычислим функции принадлежности для переменной «джиттер» на интервале 0-90 мс по опорным точкам с шагом 10 мс в виде:

% DV 1 (низкий джиттер)

А( 1,1 )= I :А< 1.2 )= 1; Л( 1,3 )= I ;Л< 1,4 )= 1: А( 1.5 >=■ 1 :А<! .6 )»3 :Л( 1.7 И 7:Л( 1,8)=9:А( 1.9)=9:А< 1. 10)=9: for i=2:10 for j=1:10 A(i,j)=A(l.j) A(l.i): end end

V = zeros! 1.10):

Гог j= 1:10

V(lj) -

I (A( 1 j)+A(2j)+A(3.j)+A(4j)+A(5j)+A(6,j)+A(7j)+A(8.j)+A(9.j )+A( I0.j»: end

DV_l=V/max(V);

% LR 2 (высокий джиттер)

A( 1.1 )= I :Л( 1.2)= I ;Л( 1.3)= I :A( 1.4)= I :Л( 1.5)= 1 :Л( 1.6)= I /3: A( 1.7 )= I 7:A(l,8)=l /9;A(1.9)= I 9:A(1.10)= I У: fori=2:IO for j=I: 10 A(ij)=A(l j) A(l.i): end end

V - zeros! 1.10): for j=l: 10

V(lj) =

I (A! l.j)+A(2.j)+A(3j)+A(4j)+A(5.j)+A(6.j)+A(7j)+A(8j)+A(9j )+A(l0j)): end

DV2=V max! V):

\={0 10 20 30 40 50 60 70 80 90]: plo«x.DV_l,x.DV_2)

Функции принадлежности нечетких множеств «низкий джиттер» и «высокий джиттер» приведены на рис. 2.

Окончательно рассчитаем функции принадлежности для переменной «потерн» с применением кубической

интерполяции (Piecewise Cubic Hermite Interpolating Polynomial. PCHIP) на интервале от 10"'ло I О'1.

% LR I (низкие потери)

V = zeros! 1.10):

A = zeros(IO.IO):

A( 1,1:10) = [1 МММ 379); for i=2:10 lor j= 1:10 A(i.j)=A(l.j)A(l.i); end end

for j=l:IO d=0: for j—1:10 d=d+A(i,j): end

VO)-I/d: end

LR_l=V7max(V):

% LR 2 (высокие потери)

V = zeros( 1.10):

A = zeros! 10.10):

A(I.I:I0) = [I II II II 13 19 1/9): for i-2:10 for j=l:10 A(ij)=A(lj) A(l.i); end end

forj 1:10 d-0; for i=l:IO d=d+A(i.j): end

VO) = l/d: end

LR 2-V max! V):

x-l-10 -9 -8 -7 -6 -5 -4 -3 -2 -I):

XX—10:0.l:-l;

a=inierpl(x.LR_l.xx.,pchip’): b=inlerpl(x.LR 2,xx,'pehip'): plol(xx.a.\x.b)

Соответствующие функции принадлежности приведены на рис. 3.

После того, как все лингвистические переменные заданы. воспользуемся инструментом MATLAB FIS Editor и сформируем нечеткую систему вывода Мамдани так. как это показано на рис. 4.

Рис. 2. Функции принадлежности множеств: ▼ низкий джиттер. А - высокий джиттер

65

i Надоели баннеры? Вы всегда можете отключить рекламу.