Fuzzy logic прямой обратный логический вывод. Прямой нечеткий логический вывод

Понятие нечеткого вывода занимает важнейшее место в нечеткой логике Алгоритм Mamdani, Алгоритм Tsukamoto, Алгоритм Sugeno, Алгоритм Larsen, Упрощенный алгоритм нечеткого вывода, Методы приведения к четкости.

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

П1: если х есть A 1 , тогда у есть B 1 ,

П2: если х есть А 2 , тогда у есть В 2 ,

·················································

П n : если х есть А n , тогда у есть В n , где х — входная переменная (имя для известных значений дан-ных), у — переменная вывода (имя для значения данных, которое будет вычислено); А и В — функции принадлежности, определен-ные соответственно на x и у .

Пример подобного правила

Если х — низко, то у — высоко.

Приведем более детальное пояснение. Знание эксперта А → В отражает нечеткое причинное отношение предпосылки и заключе-ния, поэтому его можно назвать нечетким отношением и обозна-чить через R :

R = А → В,

где «→» называют нечеткой импликацией.

Отношение R можно рассматривать как нечеткое подмножество прямого произведения Х×У полного множества предпосылок X и заключений Y . Таким образом, процесс получения (нечеткого) результата вывода В" с использованием данного наблюдения А" и знания А → В можно представить в виде формулы

В" = А" ᵒ R = А" ᵒ (А → В),

где «о» — введенная выше операция свертки.

Как операцию композиции, так и операцию импликации в ал-гебре нечетких множеств можно реализовывать по-разному (при этом, естественно, будет разниться и итоговый получаемый ре-зультат), но в любом случае общий логический вывод осуществля-ется за следующие четыре этапа.

1. Нечеткость (введение нечеткости, фазификация, fuzzifica-tion). Функции принадлежности, определенные на входных пере-менных применяются к их фактическим значениям для определе-ния степени истинности каждой предпосылки каждого правила.

2. Логический вывод. Вычисленное значение истинности для предпосылок каждого правила применяется к заключениям каж-дого правила. Это приводит к одному нечеткому подмножеству, которое будет назначено каждой переменной вывода для каждого правила. В качестве правил логического вывода обычно исполь-зуются только операции min(МИНИМУМ) или prod(УМНОЖЕ-НИЕ). В логическом выводе МИНИМУМА функция принадлежно-сти вывода «отсекается» по высоте, соответствующей вычислен-ной степени истинности предпосылки правила (нечеткая логика «И»). В логическом выводе УМНОЖЕНИЯ функция принадлеж-ности вывода масштабируется при помощи вычисленной степени истинности предпосылки правила.

3. Композиция. Все нечеткие подмножества, назначенные к каждой переменной вывода (во всех правилах), объединяются вме-сте, чтобы формировать одно нечеткое подмножество для каждой переменной вывода. При подобном объединении обычно использу-ются операции max(МАКСИМУМ) или sum(СУММА). При ком-позиции МАКСИМУМА комбинированный вывод нечеткого под-множества конструируется как поточечный максимум по всем не-четким подмножествам (нечеткая логика «ИЛИ»). При композиции СУММЫ комбинированный вывод нечеткого подмножества кон-струируется как поточечная сумма по всем нечетким подмноже-ствам, назначенным переменной вывода правилами логического вывода.

4. В заключение (дополнительно) — приведение к четкости (дефазификация, defuzzification), которое используется, когда по-лезно преобразовать нечеткий набор выводов в четкое число. Име-ется большое количество методов приведения к четкости, некото-рые из которых рассмотрены ниже.

Пример .Пусть некоторая система описывается следующими нечет-кими правилами:

П1: если х есть А, тогда ω есть D,

П2: если у есть В, тогда ω есть Е,

П3: если z есть С, тогда ω есть F, где х, у и z — имена входных переменных, ω — имя переменной вывода, а А, В, С, D, Е, F— заданные функции принадлежности (треугольной формы).

Процедура получения логического вывода иллюстрируется рис. 1.9.

Предполагается, что входные переменные приняли некоторые кон-кретные (четкие) значения — х о, y о и z о.

В соответствии с приведенными этапами, на этапе 1 для данных зна-чений и исходя из функций принадлежности А, В, С, находятся степени истинности α (х о ), α (у о α (z o )для предпосылок каждого из трех при-веденных правил (см. рис. 1.9).

На этапе 2 происходит «отсекание» функций принадлежности за-ключений правил (т.е. D, Е, F) на уровнях α (х о ), α (у о ) и α (z o ).

На этапе 3 рассматриваются усеченные на втором этапе функции при-надлежности и производится их объединение с использованием операции max, в результате чего получается комбинированное нечеткое подмноже-ство, описываемое функцией принадлежности μ ∑ (ω) и соответствующее логическому выводу для выходной переменной ω .

Наконец, на 4-м этапе — при необходимости — находится четкое значение выходной переменной, например, с применением центроидного метода: четкое значение выходной переменной определяется как центр тяжести для кривой μ ∑ (ω), т.е.

Рассмотрим следующие наиболее часто используемые модифи-кации алгоритма нечеткого вывода, полагая, для простоты, что базу знаний организуют два нечетких правила вида:

П1: если х есть A 1 и у есть B 1 , тогда z есть C 1 ,

П2: если х есть А 2 и у есть В 2 , тогда z есть С 2 , где x и у — имена входных переменных, z — имя переменной вы-вода, A 1 , А 2 , B 1 , В 2 , C 1 , С 2 — некоторые заданные функции при-надлежности, при этом четкое значение z 0 необходимо определить на основе приведенной информации и четких значений x 0 и у 0 .

Рис. 1.9. Иллюстрация к процедуре логического вывода

Алгоритм Mamdani

Данный алгоритм соответствует рассмотренному примеру и рис. 1.9. В рассматриваемой ситуации он математически может быть описан следующим образом.

1. Нечеткость: находятся степени истинности для предпосылок каждого правила: А 1 (x 0), А 2 (x 0), B 1 (y 0), В 2 (y 0).

2. Нечеткий вывод: находятся уровни «отсечения» для пред-посылок каждого из правил (с использованием операции МИНИМУМ)

α 1 = A 1 (x 0) ˄ B 1 (y 0)

α 2 = A 2 (x 0) ˄ B 2 (y 0)

где через «˄» обозначена операция логического минимума (min), затем находятся «усеченные» функции принадлежности

3. Композиция: с использование операции МАКСИМУМ (max, далее обозначаемой как «˅») производится объединение найден-ных усеченных функций, что приводит к получению итогового не-четкого подмножества для переменной выхода с функцией принад-лежности

4. Наконец, приведение к четкости (для нахождения z 0 ) прово-дится, например, центроидным методом.

Алгоритм Tsukamoto

Исходные посылки — как у пре-дыдущего алгоритма, но в данном случае предполагается, что функ-ции C 1 (z ), С 2 (z ) являются монотонными.

1. Первый этап — такой же, как в алгоритме Mamdani.

2. На втором этапе сначала находятся (как в алгоритме Mam-dani) уровни «отсечения» α 1 и α 2 , а затем — посредством решения уравнений

α 1 = C 1 (z 1), α 2 = C 2 (z 2)

— четкие значения (z 1 и z 2 )для каждого из исходных правил.

3. Определяется четкое значение переменной вывода (как взве-шенное среднее z 1 и z 2 ):

в общем случае (дискретный вариант центроидного метода)

Пример. Пусть имеем A 1 (x 0) = 0,7, A 2 (x 0) = 0,6, B 1 (y 0) = 0,3, В 2 (y 0) = 0,8, соответствующие уровни отсечения

a 1 = min (A 1 (x 0), B 1 (y 0)) = min(0,7; 0,3) = 0,3,

a 2 = min (А 2 (x 0), В 2 (y 0)) = min (0,6; 0,8) = 0,6

и значения z 1 = 8 и z 2 = 4, найденные в результате решения уравнений

C 1 (z 1) = 0,3 , C 2 (z 2) = 0,6.


Рис. 1.10. Иллюстрации к алгоритму Tsukamoto

При этом четкое значение переменной вывода (см. рис. 1.10)

z 0 = (8·0,3 + 4·0,6) / (0,3 + 0,6) = 6.

Алгоритм Sugeno

Sugeno и Takagi использовали набор правил в следующей форме (как и раньше, приводим пример двух правил):

П 1: если х есть A 1 и у есть B 1 , тогда z 1 = а 1 х + b 1 у,

П 2: если х есть A 2 и у есть В 2 , тогда z 2 = a 2 x + b 2 y .

Представление алгоритма

2. На втором этапе находятся α 1 = A 1 (x 0) ˄ B 1 (y 0), α 2 = А 2 (x 0) ˄ В 2 (у 0) и индивидуальные выходы правил:

З. На третьем этапе определяется четкое значение переменной вывода:

Иллюстрирует алгоритм рис. 1.11.

Рис. 1.11. Иллюстрация к алгоритму Sugeno

Алгоритм Larsen

В алгоритме Larsen нечеткая импли-кация моделируется с использованием оператора умножения.

Описание алгоритма

1. Первый этап — как в алгоритме Mamdani.

2. На втором этапе, как в алгоритме Mamdani вначале нахо-дятся значения

α 1 = A 1 (x 0) ˄ B 1 (y 0),

α 2 = А 2 (x 0) ˄ В 2 (y 0),

а затем — частные нечеткие подмножества

α 1 C 1 (z ), a 2 C 2 (z ).

3. Находится итоговое нечеткое подмножество с функцией при-надлежности

μ s (z )= С (z )= (a 1 C 1 (z )) ˅ (a 2 C 2 (z ))

(в общем случае n правил).

4. При необходимости производится приведение к четкости (как в ранее рассмотренных алгоритмах).

Алгоритм Larsen иллюстрируется рис. 1.12.


Рис. 1.12. Иллюстрация алгоритма Larsen

Упрощенный алгоритм нечеткого вывода

Исходные пра-вила в данном случае задаются в виде:

П 1: если х есть A 1 и у есть B 1 , тогда z 1 = c 1 ,

П 2: если х есть А 2 и у есть В 2 , тогда z 2 = с 2 , где c 1 и с 2 — некоторые обычные (четкие) числа.

Описание алгоритма

1. Первый этап — как в алгоритме Mamdani.

2. На втором этапе находятся числа α 1 = A 1 (x 0) ˄ B 1 (y 0), α 2 = A 2 (x 0) ˄ B 2 (y 0).

3. На третьем этапе находится четкое значение выходной пе-ременной по формуле

или — в общем случае наличия n правил — по формуле

Иллюстрация алгоритма приведена на рис. 1.13.


Рис. 1.13. Иллюстрация упрощенного алгоритма нечеткого вывода

Методы приведения к четкости

1. Выше уже был рассмотрен один из данных методов — троидный. Приведем соответствующие формулы еще раз.

Для непрерывного варианта:

для дискретного варианта:

2. Первый максимум (First-of-Maxima). Четкая величина пере-менной вывода находится как наименьшее значение, при котором достигается максимум итогового нечеткого множества, т.е. (см. рис. 1.14а)


Рис. 1.14. Иллюстрация к методам приведения к четкости: α — первый максимум; б — средний максимум

3. Средний максимум (Middle-of-Maxima). Четкое значение находится по формуле

где G — подмножество элементов, максимизирующих С (см. рис. 1.14 б).

Дискретный вариант (если С — дискретно):

4. Критерий максимума (Max-Criterion). Четкое значение вы-бирается произвольно среди множества элементов, доставляющих максимум С, т. е.

5. Высотная дефазификация (Heightdefuzzification). Элементы области определения Ω для которых значения функции принад-лежности меньше, чем некоторый уровень α в расчет не принима-ются, и четкое значение рассчитывается по формуле

где Сα — нечеткое множество α -уровня (см. выше).

Нисходящие нечеткие выводы

Рассмотренные до сих пор нечеткие выводы представляют собой восходящие выводы от предпосылок к заключению. В последние годы в диагностических нечетких системах начинают применяться нисходящие выводы. Рассмотрим механизм подобного вывода на примере.

Возьмем упрощенную модель диагностики неисправности ав-томобиля с именами переменных:

х 1 — неисправность аккумулятора;

x 2 — отработка машинного масла;

y 1 — затруднения при запуске;

y 2 — ухудшение цвета выхлопных газов;

y 3 — недостаток мощности.

Между x i и y j существуют нечеткие причинные отношения r ij = x i y j , которые можно представить в виде некоторой ма-трицы R с элементами r ij ϵ . Конкретные входы (предпо-сылки) и выходы (заключения) можно рассматривать как нечет-кие множества А и В на пространствах X и Y . Отношения этих множеств можно обозначить как

В = А R ,

где, как и раньше, знак «о» обозначает правило композиции не-четких выводов.

В данном случае направление выводов является обратным к направлению выводов для правил, т.е. в случае диагностики име-ется (задана) матрица R (знания эксперта), наблюдаются выходы В (или симптомы) и определяются входы А (или факторы).

Пусть знания эксперта-автомеханика имеют вид

а в результате осмотра автомобиля его состояние можно оценить как

В = 0,9/y 1 + 0,1/у 2 + 0,2/у 3 .

Требуется определить причину такого состояния:

А = a 1 /x 1 + a 2 /x 2 .

Отношение введенных нечетких множеств можно представить в виде

либо, транспонируя, в виде нечетких векторов-столбцов:

При использовании (max-mix)-композиции последнее соотно-шение преобразуется к виду

0,9 = (0,9 ˄ α 1) ˅ (0,6 ˄ α 2),

0,1 = (0,1 ˄ α 1) ˅ (0,5 ˄ α 2),

0,2 = (0,2 ˄ α 1) ˅ (0,5 ˄ α 2).

При решении данной системы заметим прежде всего, что в первом уравнении второй член правой части не влияет на правую часть, поэтому

0,9 = 0,9 ˄ α 1 , α 1 ≥ 0,9.

Из второго уравнения получим:

0,1 ≥ 0,5 ˄ α 2 , α 2 ≤ 0,1.

Полученное решение удовлетворяет третьему уравнению, та-ким образом имеем:

0,9 ≤ α 1 ≤ 1,0, 0 ≤ α 2 ≤ 0,1,

т.е. лучше заменить аккумулятор (α 1 — параметр неисправности аккумулятора, α 2 — параметр отработки машинного масла).

На практике в задачах, подобных рассмотренной, количество переменных может быть существенным, могут одновременно ис-пользоваться различные композиции нечетких выводов, сама схема выводов может быть многокаскадной. Общих методов решения по-добных задач в настоящее время, по-видимому, не существует.

Типовая структура процесса нечеткого вывода показана на рис. 17.

Рис, 17

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

На вход системы нечеткого вывода поступает вектор х* =[*,*,*2, »?**, ] четких значений лингвистических переменных д. Блок фаззификации (am. fuzzification - приведении к нечеткости) вычисляет степени принадлежности этих значений нечетким множествам значений лингвистических переменных. Для этого должны быть известны функции каждого терма лингвистической переменной.

Фаззификация производится следующим образом. Пусть для каждой входной лингвистической переменной д известно ее числовое значение х*. Рассматривается каждое высказывание подусловий, в котором фигурирует переменная д, например, " р. есть от ", где ос ( -терм с известной функцией принадлежности [лАх). Значение х* используется в качестве аргумента //(л), в результате чего находится = д (х*). При этом могут использоваться модификаторы. Таким образом вычисляются значения истинности всех подусловий системы нечеткого вывода. Высказывания в подусловиях заменяются числами. На выходе блока фаззификации формируется вектор m = , который является входом блока вывода.

Блок нечеткого логического вывода получает на входе вектор степени истинности всех подусловий т и вычисляет результирующую функцию принадлежности выходного значения (система вывода может иметь несколько выходов, тогда речь идет о выходном векторе). Вычисление результирующей функции принадлежности включает следующие процедуры (в скобках указаны названия процедур в соответствии с международным стандартом языков программирования контроллеров IEC 1131 - Programmable Controllers. Part 7 - Fuzzy Control Programming ):

  • - вычисление степени истинности условий (Aggregation - агрегирование);
  • - определение активизированных функций принадлежности заключений (Activftion - активизация);
  • - определение результирующих функций принадлежности выходных лингвистических переменных (Accumulation - аккумуляция).

В процедуре вычисления степени истинности условий по каждому из правил системы нечеткого вывода (агрегирование) рассматривается каждое условие правил системы нечеткого вывода и вычисляется степень истинности условий. Исходными данными являются степени истинности подусловий (вектор т ), вычисленные в блоке фаззификации. Если условие содержит одно нечеткое высказывание вида, то степень истинности условия равна степени истинности высказывания условия. Если условие состоит из двух подусловий, связанных конъюнкцией, или дизъюнкцией, степень выполнения условия вычисляется с помощью треугольных норм (раздел 1.5). Например, для условия правила ЕСЛИ "(3, есть а," И "Р 2 естьа 2 " получаем ц(ц,дс г ")= 7 ’(ц 11 (х;)ц„(л-;)),

х и х 2 - значения входных переменных л;, и х 2 ,

Т - один из операторов t-нормы, /и а (х) и М а, (*) - функции принадлежности термов «, и а 2 .

Аналогично для условия правила:

где S - один из операторов s-нормы. Если условие содержит множество подусловий, соединенных дизъюнкциями и конъюнкциями, то сначала вычисляются степени истинности подусловий, соединенных конъюнкциями, затем - дизъюнкциями. Как обычно, скобки нарушают порядок действий. Рекомендуется использовать согласованные правила расчета истинности. Например, если для вычисления нечеткой конъюнкции используется операция min-пересечения, то для вычисления нечеткой дизъюнкции следует применить операцию max-объединения.

Процедура определения активизированных функций принадлежности заключений (активизация) основана на операции нечеткой импликации (раздел 2.1). Входными данными для процедуры являются степени истинности условий правил и функции принадлежности выходных величин, выходными - функции принадлежности всех подзаключений. Рассмотрим пример . Пусть правило имеет вид ЕСЛИ (х= Л)ТО (у = В) , функции принадлежности ц А (х) и Мв(у) -треугольные (рис. 18), входное значение х* = 6,5, степень истинности условия /i, f (х*) = 0,5 (см. рис. 18).


Рис . 18 -

Используем импликацию Мамдаии:

Практически активизированная функция принадлежности заключения при использовании импликации Мамдани находится простым усечением функции принадлежности заключения Мв(у) Д° уровня степень истинности условия [л А (х*) (рис. 18). Можно использовать другие операторы нечеткой импликации.

Например, результат активизации заключения с использованием правила «произведение» показан на рис. 19.


Рис . 19

На практике, особенно при наличии в правилах нескольких позаключений, удобно использовать процедуру активизации, основанную на алгоритме вывода Мамдани (алгоритм будет рассмотрен в разделе 2.6). В этом алгоритме для каждого правила задастся весовой коэффициент /^е. Может быть F/= 1, такое значение принимают, если весовой коэффициент не задан явно. Для отдельных подзаключений одного правила могут быть заданы разные весовые коэффициенты. Степень истинности всех подзаключений /-го правила рассчитывается по формуле

Активизированная функция принадлежности j- го подзаключения /-го правила вычисляется по одной из формул, основанных на методе нечеткой композиции:

min-активизация /J* (д>) = min {с п (j")};

prod-активизация //* (у) = c t // (у).

Рассмотренный алгоритм особенно удобен, когда правила содержат по несколько подзаключений вида.

Так как подзаключения, относящиеся к одной и той же выходной лингвистической переменной, в общем виде принадлежат разным правилам, то необходимо построить единую результирующую функцию принадлежности для каждой выходной переменной. Эта процедура называется аккумуляцией. Аккумуляция производится объединением с помощью одной из s-норм активизированных функций принадлежности каждой выходной лингвистической переменной. В результате для каждой выходной переменной получается одна функция принадлежности, возможно, весьма сложной формы.

Дефаззификация (приведение к четности) - нахождение для каждой выходной лингвистической переменной четкого значения в некотором смысле наилучшим образом, представляющим нечеткую переменную. Необходимость в дефаззификации объясняется тем, что на выходе системы нечеткого вывода нужны, как правило, четкие значения, которые поступают, например, на исполнительный механизм. Так как возможны разные критерии представления чечеткой переменной одним числом, то существуют различные методы дефаззификации . В результате определения результирующих функций принадлежности выходных лингвистических переменных получаются результирующие функции принадлежности №res{y)- Для унимодальной функции принадлежности простейшим методом дефаззификации является выбор четкого числа, соответствующего максимальной степени принадлежности. Обобщением этого метода на многомодальные функции являются методы левого и правового модального значения.

В методе левого модального значения (LM - Lost Most Maxi mum), называемом еще метод первого максимума (FM - FirstofMaxima) , или наименьший из максимумов (SOM - Smallest Of Maximums) в качестве четкого значения берется у = min т }, где х т - модальное значение результирующей функции принадлежности. Другими словами, в качестве четкой выходной переменной берется наименьшая (самая левая) мода.

В методе правого модального значения (RM - RightMostMaximum), называемом еще метод последнего максимума (LM - LastofMaxima), или метод наибольшего максимума (LOM - Largest Of Maximums) в качестве четкого значения берется у = тах{х /и |, то есть наибольшая (самая правая) из мод. Примеры дефаззификации с использование левого и правого модальных значений представлены на рис. 20а и 206.

В методе среднего максимума (ММ - MidleofMaxima), или методе центра максимумов (MOM - MeanOfMaximums) находится среднее арифметическое элементов универсального множества, имеющих максимальные степени принадлежностей

где G - множество всех элементов из интервала, имеющих максимальную степень принадлежности нечеткому множеству. Пример дефаззификации с использование метода среднего максимума представлен на рис. 20в.

Дефаззификация по методу центра тяжести (CG - Center of Gravity, Centroid) производится по формуле определения центра тяжести плоской фигуры, ограниченной осями координат и графиком функции принадлежности нечеткого множества

где Min и Мах - левая и правая точки интервала носителя выходной переменной.

Пример дефаззификации с использование метода центра тяжести представлен на рис. 20в.


Рис. 20 - Примеры дефаззификации а) результат дефаззификации по методу левого модального значения у =у 1 ;

  • б) результат дефаззификации по методу правого модального значения у = у 2 ;
  • в) результат дефаззфификации по методу среднего максимума;
  • г) результат дефаззификации по методу центра тяжести. Дефаззификацияпо методу центра площади (СА - Center of

Area, Bisector of Area, Bisector) состоит в нахождении такого чис-

>’ Мах

ла у, что J //(x)dx= J //(x)dx . Геометрический смысл метода

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

Модус поненс выводит заключение "B есть истинно", если известно, что "A есть истинно" и существует правило "Если A, то B" (A и B - четкие логические утверждения). Однако, если прецедент отсутствует, то модус поненс не сможет вывести никакого, даже приближенного заключения. Даже в случае, когда известно, что близкое к A утверждение A" является истинным, модус поненс не может быть применен. Одним из возможных способов принятия решений при неопределенной информации является применение нечеткого логического вывода.

Определение 47. Нечетким логическим выводом называется получение заключения в виде нечеткого множества, соответствующего текущим значениях входов, с использованием нечеткой базы знаний и нечетких операций.

Основу нечеткого логического вывода составляет композиционное правило Заде.

Определение 48. Композиционное правило вывода Заде формулируется следующим образом: если известно нечеткое отношение между входной (x) и выходной (y) переменными, то при нечетком значении входной переменной , нечеткое значения выходной переменной определяется так:

где - максминая композиция.

Пример 12. Дано нечеткое правило "Если , то " с нечеткими множествами: и . Определить значение выходной переменной , если .

В начале рассчитаем нечеткое отношение, соответствующее правилу "Если , то ", применяя в качестве t-нормы операцию нахождения минимума:

.

Теперь, по формуле рассчитаем нечеткое значение выходной переменной:

Нечеткий логический вывод Мамдани

Нечеткий логический вывод по алгоритму Мамдани выполняется по нечеткой базе знаний:

,

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

Функция принадлежности входа нечеткому терму , т.е. , .

Функция принадлежности выхода нечеткому терму , т.е. , .

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

где - операция из s-нормы (t-нормы), т.е. из множества реализаций логической операций ИЛИ (И). Наиболее часто используются следующие реализации: для операции ИЛИ - нахождение максимума и для операции И - нахождение минимума.

В результате получаем такое нечеткое множество , соответствующее входному вектору :

.

Особенностью этого нечеткого множества является то, что универсальным множеством для него является терм-множество выходной переменной . Такие нечеткие множества называются нечеткими множествами второго порядка.

Для перехода от нечеткого множества, заданного на универсальном множестве нечетких термов к нечеткому множеству на интервале необходимо: 1) "срезать" функции принадлежности на уровне ; 2) объединить (агрегировать) полученные нечеткие множества. Математически это записывается следующим образом:

,

где - агрегирование нечетких множеств, которое наиболее часто реализуется операцией нахождения максимума.

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

В 1965 г. в журнале «Information and Control» была опубликована работа Л.Заде под названием «Fuzzy sets». Это название переведено на русский язык как нечеткие множества . Побудительным мотивом стала необходимость описания таких явлений и понятий, которые имеют многозначным и неточный характер. Известные до этого математические методы, использовавшие классическую теорию множеств и двузначную логику, не позволяли решать проблемы этого типа.

При помощи нечетких множеств можно формально определить неточные и многозначные понятия, такие как «высокая температура» или «большой город». Для формулирования определения нечеткого множества необходимо задать так называемую област рассуждений. Например, когда мы оцениваем скорость автомобиля, мы ограничимся диапазоном X = , где Vmax - максимальная скорость, которую может развить автомобиль. Необходимо помнить, что X - четкое множество.

Основные понятия

Нечетким множеством A в некотором непустом пространстве X называется множество пар

Где

- функция принадлежности нечеткого множества A. Эта функция приписывает каждому элементу x степень его принадлежности нечеткому множеству A.

Продолжив предыдущий пример, рассмотрим три неточные формулировки:
- «Малая скорость автомобиля»;
- «Средняя скорость автомобиля»;
- «Большая скорость автомобиля».
На рисунке представлены нечеткие множества, соответствующие приведенным формулировкам, с помощью функций принадлежности.


В фиксированной точке X=40км/ч. функция принадлежности нечеткого множества «малая скорость автомобиля» принимает значением 0,5. Такое же значение принимает функция принадлежностинечеткого множества «средняя скорость автомобиля», тогда как для множества «большая скорость автомобиля» значение функции в этой точке равно 0.

Функция T двух переменных T: x -> называется T-нормой , если:
- является не возрастающей относительно обоих аргументов: T(a, c) < T(b, d) для a < b, c < d;
- является коммутативной: T(a, b) = T(b, a);
- удовлетворяет условию связности: T(T(a, b), c) = T(a, T(b, c));
- удовлетворяет граничным условиям: T(a, 0) = 0, T(a, 1) = a.

Прямой нечеткий вывод

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

Основным правилом вывода в традиционной логике является правило modus ponens, согласно которому мы судим об истинности высказывания B по истинности высказываний A и A -> B. Например, если A - высказывание «Степан - космонавт», B - высказывание «Степан летает в космос», то если истинны высказывания «Степан - космонавт» и «Если Степан - космнавт, то он летает в космос», то истинно и высказывание «Степан летает в космос».

Однако, в отличие от традиционной логики, главным инструментом нечеткой логики будет не правило modus ponens, а так называемое композиционное правило вывода, весьма частным случаем которого является правило modus ponens.

Предположим, что имеется кривая y=f(x) и задано значение x=a. Тогда из того, что y=f(x) и x=a, мы можем заключить, что y=b=f(a).


Обобщим теперь этот процесс, предположив, что a - интервал, а f(x) - функция, значения которой суть интервалы. В этом случае, чтобы найти интервал y=b, соответствующий интервалу a, мы сначала построим множество a" с основанием a и найдем его пересечение I с кривой, значения которой суть интервалы. Затем спроектируем это пересечение на ось OY и получим желаемое значение y в виде интервала b. Таким образом, из того, что y=f(x) и x=A - нечеткое подмножество оси OX, мы получаем значение y в виде нечеткого подмножества B оси OY.

Пусть U и V - два универсальных множества с базовыми переменными u и v, соответственно. Пусть A и F - нечеткие подмножества множеств U и U x V. Тогда композиционное правило вывода утверждает, что из нечетких множеств A и F следует нечеткое множество B = A * F.

Пусть A и B - нечеткие высказывания и m(A), m(B) - соответствующие им функции принадлежности. Тогда импликации A -> B будет соответствовать некоторая функция принадлежности m(A -> B). По аналогии с традиционной логикой, можно предположить, что

Тогда

Однако, это не единственное обобщение оператора импликации, существуют и другие.

Реализация

Для реализации метода прямого нечеткого логического вывода нам понадобится выбрать оператор импликации и T-норму.
Пуская T-норма будет функция минимума:

а оператором импликации будет функция Гёделя:


Входные данные будут содержать знания (нечеткие множества) и правила (импликации), например:
A = {(x1, 0.0), (x2, 0.2), (x3, 0.7), (x4, 1.0)}.
B = {(x1, 0.7), (x2, 0.4), (x3, 1.0), (x4, 0.1)}.
A => B.

Импликация будет представлена в виде декартовой матрицы, каждый элемент которой рассчитывается с помощью выбранного оператора импликации (в данном примере - функции Гёделя):

  1. def compute_impl (set1, set2):
  2. """
    Computing implication
    """
  3. relation = {}
  4. for i in set1.items():
  5. relation[i] = {}
  6. for j in set2.items():
  7. v1 = set1.value(i)
  8. v2 = set2.value(j)
  9. relation[i][j] = impl(v1, v2)
  10. return relation

Для данных выше это будет:
Conclusion:
A => B.
x1 x2 x3 x4
x1 1.0 1.0 1.0 1.0
x2 1.0 1.0 1.0 0.1
x3 1.0 0.4 1.0 0.1
x4 0.7 0.4 1.0 0.1
  1. def conclusion (set, relation):
  2. """
    Conclusion
    """
  3. conl_set =
  4. for i in relation:
  5. l =
  6. for j in relation[i]:
  7. v_set = set .value(i)
  8. v_impl = relation[i][j]
  9. l.append(t_norm(v_set, v_impl))
  10. value = max (l)
  11. conl_set.append((i, value))
  12. return conl_set

Результат:
B" = {(x1, 1.0), (x2, 0.7), (x3, 1.0), (x4, 0.7)}.

Источники

  • Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И. Д. Рудинского. - М.: Горячая линия - Телеком, 2006. - 452 с.: ил.
  • Zadeh L. A. Fuzzy Sets, Information and Control, 1965, vol. 8, s. 338-353

Понятие нечеткого вывода занимает важнейшее место в нечеткой логике Алгоритм Mamdani, Алгоритм Tsukamoto, Алгоритм Sugeno, Алгоритм Larsen, Упрощенный алгоритм нечеткого вывода, Методы приведения к четкости.

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

П1: если х есть A 1 , тогда у есть B 1 ,

П2: если х есть А 2 , тогда у есть В 2 ,

·················································

П n : если х есть А n , тогда у есть В n , где х — входная переменная (имя для известных значений дан-ных), у — переменная вывода (имя для значения данных, которое будет вычислено); А и В — функции принадлежности, определен-ные соответственно на x и у .

Пример подобного правила

Если х — низко, то у — высоко.

Приведем более детальное пояснение. Знание эксперта А → В отражает нечеткое причинное отношение предпосылки и заключе-ния, поэтому его можно назвать нечетким отношением и обозна-чить через R :

R = А → В,

где «→» называют нечеткой импликацией.

Отношение R можно рассматривать как нечеткое подмножество прямого произведения Х×У полного множества предпосылок X и заключений Y . Таким образом, процесс получения (нечеткого) результата вывода В" с использованием данного наблюдения А" и знания А → В можно представить в виде формулы

В" = А" ᵒ R = А" ᵒ (А → В),

где «о» — введенная выше операция свертки.

Как операцию композиции, так и операцию импликации в ал-гебре нечетких множеств можно реализовывать по-разному (при этом, естественно, будет разниться и итоговый получаемый ре-зультат), но в любом случае общий логический вывод осуществля-ется за следующие четыре этапа.

1. Нечеткость (введение нечеткости, фазификация, fuzzifica-tion). Функции принадлежности, определенные на входных пере-менных применяются к их фактическим значениям для определе-ния степени истинности каждой предпосылки каждого правила.

2. Логический вывод. Вычисленное значение истинности для предпосылок каждого правила применяется к заключениям каж-дого правила. Это приводит к одному нечеткому подмножеству, которое будет назначено каждой переменной вывода для каждого правила. В качестве правил логического вывода обычно исполь-зуются только операции min(МИНИМУМ) или prod(УМНОЖЕ-НИЕ). В логическом выводе МИНИМУМА функция принадлежно-сти вывода «отсекается» по высоте, соответствующей вычислен-ной степени истинности предпосылки правила (нечеткая логика «И»). В логическом выводе УМНОЖЕНИЯ функция принадлеж-ности вывода масштабируется при помощи вычисленной степени истинности предпосылки правила.

3. Композиция. Все нечеткие подмножества, назначенные к каждой переменной вывода (во всех правилах), объединяются вме-сте, чтобы формировать одно нечеткое подмножество для каждой переменной вывода. При подобном объединении обычно использу-ются операции max(МАКСИМУМ) или sum(СУММА). При ком-позиции МАКСИМУМА комбинированный вывод нечеткого под-множества конструируется как поточечный максимум по всем не-четким подмножествам (нечеткая логика «ИЛИ»). При композиции СУММЫ комбинированный вывод нечеткого подмножества кон-струируется как поточечная сумма по всем нечетким подмноже-ствам, назначенным переменной вывода правилами логического вывода.

4. В заключение (дополнительно) — приведение к четкости (дефазификация, defuzzification), которое используется, когда по-лезно преобразовать нечеткий набор выводов в четкое число. Име-ется большое количество методов приведения к четкости, некото-рые из которых рассмотрены ниже.

Пример .Пусть некоторая система описывается следующими нечет-кими правилами:

П1: если х есть А, тогда ω есть D,

П2: если у есть В, тогда ω есть Е,

П3: если z есть С, тогда ω есть F, где х, у и z — имена входных переменных, ω — имя переменной вывода, а А, В, С, D, Е, F— заданные функции принадлежности (треугольной формы).

Процедура получения логического вывода иллюстрируется рис. 1.9.

Предполагается, что входные переменные приняли некоторые кон-кретные (четкие) значения — х о, y о и z о.

В соответствии с приведенными этапами, на этапе 1 для данных зна-чений и исходя из функций принадлежности А, В, С, находятся степени истинности α (х о ), α (у о α (z o )для предпосылок каждого из трех при-веденных правил (см. рис. 1.9).

На этапе 2 происходит «отсекание» функций принадлежности за-ключений правил (т.е. D, Е, F) на уровнях α (х о ), α (у о ) и α (z o ).

На этапе 3 рассматриваются усеченные на втором этапе функции при-надлежности и производится их объединение с использованием операции max, в результате чего получается комбинированное нечеткое подмноже-ство, описываемое функцией принадлежности μ ∑ (ω) и соответствующее логическому выводу для выходной переменной ω .

Наконец, на 4-м этапе — при необходимости — находится четкое значение выходной переменной, например, с применением центроидного метода: четкое значение выходной переменной определяется как центр тяжести для кривой μ ∑ (ω), т.е.

Рассмотрим следующие наиболее часто используемые модифи-кации алгоритма нечеткого вывода, полагая, для простоты, что базу знаний организуют два нечетких правила вида:

П1: если х есть A 1 и у есть B 1 , тогда z есть C 1 ,

П2: если х есть А 2 и у есть В 2 , тогда z есть С 2 , где x и у — имена входных переменных, z — имя переменной вы-вода, A 1 , А 2 , B 1 , В 2 , C 1 , С 2 — некоторые заданные функции при-надлежности, при этом четкое значение z 0 необходимо определить на основе приведенной информации и четких значений x 0 и у 0 .

Рис. 1.9. Иллюстрация к процедуре логического вывода

Алгоритм Mamdani

Данный алгоритм соответствует рассмотренному примеру и рис. 1.9. В рассматриваемой ситуации он математически может быть описан следующим образом.

1. Нечеткость: находятся степени истинности для предпосылок каждого правила: А 1 (x 0), А 2 (x 0), B 1 (y 0), В 2 (y 0).

2. Нечеткий вывод: находятся уровни «отсечения» для пред-посылок каждого из правил (с использованием операции МИНИМУМ)

α 1 = A 1 (x 0) ˄ B 1 (y 0)

α 2 = A 2 (x 0) ˄ B 2 (y 0)

где через «˄» обозначена операция логического минимума (min), затем находятся «усеченные» функции принадлежности

3. Композиция: с использование операции МАКСИМУМ (max, далее обозначаемой как «˅») производится объединение найден-ных усеченных функций, что приводит к получению итогового не-четкого подмножества для переменной выхода с функцией принад-лежности

4. Наконец, приведение к четкости (для нахождения z 0 ) прово-дится, например, центроидным методом.

Алгоритм Tsukamoto

Исходные посылки — как у пре-дыдущего алгоритма, но в данном случае предполагается, что функ-ции C 1 (z ), С 2 (z ) являются монотонными.

1. Первый этап — такой же, как в алгоритме Mamdani.

2. На втором этапе сначала находятся (как в алгоритме Mam-dani) уровни «отсечения» α 1 и α 2 , а затем — посредством решения уравнений

α 1 = C 1 (z 1), α 2 = C 2 (z 2)

— четкие значения (z 1 и z 2 )для каждого из исходных правил.

3. Определяется четкое значение переменной вывода (как взве-шенное среднее z 1 и z 2 ):

в общем случае (дискретный вариант центроидного метода)

Пример. Пусть имеем A 1 (x 0) = 0,7, A 2 (x 0) = 0,6, B 1 (y 0) = 0,3, В 2 (y 0) = 0,8, соответствующие уровни отсечения

a 1 = min (A 1 (x 0), B 1 (y 0)) = min(0,7; 0,3) = 0,3,

a 2 = min (А 2 (x 0), В 2 (y 0)) = min (0,6; 0,8) = 0,6

и значения z 1 = 8 и z 2 = 4, найденные в результате решения уравнений

C 1 (z 1) = 0,3 , C 2 (z 2) = 0,6.


Рис. 1.10. Иллюстрации к алгоритму Tsukamoto

При этом четкое значение переменной вывода (см. рис. 1.10)

z 0 = (8·0,3 + 4·0,6) / (0,3 + 0,6) = 6.

Алгоритм Sugeno

Sugeno и Takagi использовали набор правил в следующей форме (как и раньше, приводим пример двух правил):

П 1: если х есть A 1 и у есть B 1 , тогда z 1 = а 1 х + b 1 у,

П 2: если х есть A 2 и у есть В 2 , тогда z 2 = a 2 x + b 2 y .

Представление алгоритма

2. На втором этапе находятся α 1 = A 1 (x 0) ˄ B 1 (y 0), α 2 = А 2 (x 0) ˄ В 2 (у 0) и индивидуальные выходы правил:

З. На третьем этапе определяется четкое значение переменной вывода:

Иллюстрирует алгоритм рис. 1.11.

Рис. 1.11. Иллюстрация к алгоритму Sugeno

Алгоритм Larsen

В алгоритме Larsen нечеткая импли-кация моделируется с использованием оператора умножения.

Описание алгоритма

1. Первый этап — как в алгоритме Mamdani.

2. На втором этапе, как в алгоритме Mamdani вначале нахо-дятся значения

α 1 = A 1 (x 0) ˄ B 1 (y 0),

α 2 = А 2 (x 0) ˄ В 2 (y 0),

а затем — частные нечеткие подмножества

α 1 C 1 (z ), a 2 C 2 (z ).

3. Находится итоговое нечеткое подмножество с функцией при-надлежности

μ s (z )= С (z )= (a 1 C 1 (z )) ˅ (a 2 C 2 (z ))

(в общем случае n правил).

4. При необходимости производится приведение к четкости (как в ранее рассмотренных алгоритмах).

Алгоритм Larsen иллюстрируется рис. 1.12.


Рис. 1.12. Иллюстрация алгоритма Larsen

Упрощенный алгоритм нечеткого вывода

Исходные пра-вила в данном случае задаются в виде:

П 1: если х есть A 1 и у есть B 1 , тогда z 1 = c 1 ,

П 2: если х есть А 2 и у есть В 2 , тогда z 2 = с 2 , где c 1 и с 2 — некоторые обычные (четкие) числа.

Описание алгоритма

1. Первый этап — как в алгоритме Mamdani.

2. На втором этапе находятся числа α 1 = A 1 (x 0) ˄ B 1 (y 0), α 2 = A 2 (x 0) ˄ B 2 (y 0).

3. На третьем этапе находится четкое значение выходной пе-ременной по формуле

или — в общем случае наличия n правил — по формуле

Иллюстрация алгоритма приведена на рис. 1.13.


Рис. 1.13. Иллюстрация упрощенного алгоритма нечеткого вывода

Методы приведения к четкости

1. Выше уже был рассмотрен один из данных методов — троидный. Приведем соответствующие формулы еще раз.

Для непрерывного варианта:

для дискретного варианта:

2. Первый максимум (First-of-Maxima). Четкая величина пере-менной вывода находится как наименьшее значение, при котором достигается максимум итогового нечеткого множества, т.е. (см. рис. 1.14а)


Рис. 1.14. Иллюстрация к методам приведения к четкости: α — первый максимум; б — средний максимум

3. Средний максимум (Middle-of-Maxima). Четкое значение находится по формуле

где G — подмножество элементов, максимизирующих С (см. рис. 1.14 б).

Дискретный вариант (если С — дискретно):

4. Критерий максимума (Max-Criterion). Четкое значение вы-бирается произвольно среди множества элементов, доставляющих максимум С, т. е.

5. Высотная дефазификация (Heightdefuzzification). Элементы области определения Ω для которых значения функции принад-лежности меньше, чем некоторый уровень α в расчет не принима-ются, и четкое значение рассчитывается по формуле

где Сα — нечеткое множество α -уровня (см. выше).

Нисходящие нечеткие выводы

Рассмотренные до сих пор нечеткие выводы представляют собой восходящие выводы от предпосылок к заключению. В последние годы в диагностических нечетких системах начинают применяться нисходящие выводы. Рассмотрим механизм подобного вывода на примере.

Возьмем упрощенную модель диагностики неисправности ав-томобиля с именами переменных:

х 1 — неисправность аккумулятора;

x 2 — отработка машинного масла;

y 1 — затруднения при запуске;

y 2 — ухудшение цвета выхлопных газов;

y 3 — недостаток мощности.

Между x i и y j существуют нечеткие причинные отношения r ij = x i y j , которые можно представить в виде некоторой ма-трицы R с элементами r ij ϵ . Конкретные входы (предпо-сылки) и выходы (заключения) можно рассматривать как нечет-кие множества А и В на пространствах X и Y . Отношения этих множеств можно обозначить как

В = А R ,

где, как и раньше, знак «о» обозначает правило композиции не-четких выводов.

В данном случае направление выводов является обратным к направлению выводов для правил, т.е. в случае диагностики име-ется (задана) матрица R (знания эксперта), наблюдаются выходы В (или симптомы) и определяются входы А (или факторы).

Пусть знания эксперта-автомеханика имеют вид

а в результате осмотра автомобиля его состояние можно оценить как

В = 0,9/y 1 + 0,1/у 2 + 0,2/у 3 .

Требуется определить причину такого состояния:

А = a 1 /x 1 + a 2 /x 2 .

Отношение введенных нечетких множеств можно представить в виде

либо, транспонируя, в виде нечетких векторов-столбцов:

При использовании (max-mix)-композиции последнее соотно-шение преобразуется к виду

0,9 = (0,9 ˄ α 1) ˅ (0,6 ˄ α 2),

0,1 = (0,1 ˄ α 1) ˅ (0,5 ˄ α 2),

0,2 = (0,2 ˄ α 1) ˅ (0,5 ˄ α 2).

При решении данной системы заметим прежде всего, что в первом уравнении второй член правой части не влияет на правую часть, поэтому

0,9 = 0,9 ˄ α 1 , α 1 ≥ 0,9.

Из второго уравнения получим:

0,1 ≥ 0,5 ˄ α 2 , α 2 ≤ 0,1.

Полученное решение удовлетворяет третьему уравнению, та-ким образом имеем:

0,9 ≤ α 1 ≤ 1,0, 0 ≤ α 2 ≤ 0,1,

т.е. лучше заменить аккумулятор (α 1 — параметр неисправности аккумулятора, α 2 — параметр отработки машинного масла).

На практике в задачах, подобных рассмотренной, количество переменных может быть существенным, могут одновременно ис-пользоваться различные композиции нечетких выводов, сама схема выводов может быть многокаскадной. Общих методов решения по-добных задач в настоящее время, по-видимому, не существует.