Матричная логика
М.А.Марценюк, профессор, Пермский государственный национальный исследовательский университет, [email protected]
Рассматривается матричное представление логики, позволяющее с единых позиций рассмотреть 1) операции обычной («четкой») логики,
2) обобщение логики на случай нечетких логических переменных и 3) сети Байеса. Эффективность подхода демонстрируется на примерах.
Введение
В настоящее время получило широкое распространение алгебраическое представление логики. Однако, как хорошо известно, любая алгебра имеет матричное представление. В работе Мизражи [1] было предложено векторное представление логических переменных и тензорное представление логических операций. В дальнейшем в работах автора [2,
3] этот аппарат был обобщен на случай нечетких логических переменных и сетей Байеса, включая зависимые переменные. Цель данного сообщений состоит в том, чтобы показать возможности матричного представления логики и ее обобщений в рамках единого аппарата позволяющего охватить широкий круг практических задач, эффективность его применения в учебном процессе. Отметим, что большую роль в этом подходе играет реализация логических операций в виде операторно-логических схем [4]. План сообщения следующий. В разделе 2 введен аппарат матричной логики и дано его обобщение на случай нечетких переменных. Рассмотрены примеры нечеткого логического вывода (нечеткий метод резолюции). В разделе 3 аппарат обобщен на случай зависимых логических переменных (сети Байеса).
Матричное представление нечеткой логики
В матричном представлении каждой логической переменной сопоставляются двухмерный вектор х. Если ввести базисные векторы
е(0) ^ е(1), то вектор х может быть представлен в виде
х = х0е(0) + х1е(1>, (1)
причем компоненты вектора х - числа х0, Х1 - удовлетворяют условиям
0 < Хо,X < 1, Хо + х1 = 1 . (2)
Благодаря этим условиям числа х0, Х1 можно интерпретировать как вероятности наступления некоторого события А. В частном случае,
когда х = еили х = е(1) , вектор описывает переменную обычной («четкой») логики.
Мерой нечеткости переменной х служит энтропия, которая вычисляется по формуле Больцмана-Шеннона
х) = -хо 1од2 Хо - х 1од2 х1. (3)
Для двух нечетких логических переменных х' у можно ввести логические операции, которые мыслятся как отображения прямого произведения векторов х' у на некоторый вектор 2
х ® у-2 , (4)
где символ Р указывает код отображения. В явном виде соотношение (4) можно записать как тензорное равенство
= тЦЦк Х У к , (5)
где тензорный индексы *> 3'к пробегают значения 0' 1, а по повторяющимся индексам подразумевается суммирование. Компоненты тензора
т;',},к принимают значения 0 или 1. Этим обеспечивается совпадение
всех операций Р с операциями четкой логики, когда векторы х' у принимают четкие значения.
Не трудно подсчитать, что всего существует 16 логических операций. Компоненты результирующего вектора 2 оказываются равными
линейным комбинациям четырех произведений Хоуо, Хоу1, Х1 уо, Х1 у1. Например, для конъюнкции имеем
2о = Хо У о + Хо У1 + Х1У о, 21 = Х1У1 . (6)
Большое значение для понимания работы нечетких логических сетей имеет возможность их представления в виде электрических схем, которое называют реализацией. Как показано в [2], нечеткую переменную можно реализовать как непрерывный делитель (или разветвитель)
тока (рис.1). При этом компоненты Хо' Х1 вектора х определяют доли входного тока J, попадающего в ветви делителя. В точке разветвления должен выполняться закон сохранения тока (первый закон Кирхгофа) ХоJ + Х^ = J , что обеспечено условиями (2).
Рис. 1. Реализация нечеткой логической переменной в виде непрерывного делителя тока
Реализация прямого произведения логических векторов, а также операций конъюнкции и дизъюнкции показана на рис. 2. Отметим, что для нечетких логических операций выполняются свойства коммутатив-
ности и ассоциативности, а свойства идемпотентности и дистрибутивности не имеют места. Также в нечеткой логике нарушается закон исключения третьего и закон противоречия (см. подробнее [2]).
УсМ \ z,J=(y1x0r+y[pc14y1x1)J
y,x,J /
Рис. 2. Реализация прямого произведения логических векторов (а), операций конъюнкции (б) и дизъюнкции (в)
Логические операции конъюнкции и дизъюнкции можно также следующим образом представить в матричном виде. Сопоставим вектору x конъюнктивную C( x),
дизъюнктивную D( x )
и импликативную
\( x )
матрицы размером 2 x 2, образованные из его компонент
C(x)-с::). D(x):).. w0). (7)
С помощью этих матриц логические операции над нечеткими переменными могут быть представлены в виде
x л y - C(x) ■ y; x v y - D(x) ■ y; x ^ y - \(x) ■ y, (8)
где вектор y следует мыслить как матричный столбец : x 2, составленный из компонент этого вектора, а точка обозначает матричное умножение.
Рассмотрим нечеткое логическое правило modus ponens. В четкой логике, если логическая переменная x истинна (x - true) и импликация x ^ y - z тоже истинна (z - true), то из этого следует, что переменная y тоже истинна. Например, если объект A - человек, а всякий человек смертен, то А тоже смертен. В нечеткой логике задача ставится
таким образом. Пусть известна нечёткая переменная x - (X:, x:) , а также нечёткая переменная z, определяющая нечёткость правила x ^ y - z. Спрашивается, какой вывод можно сделать о нечеткости переменной y ? Как следует из соотношений (7)-(8), эта задача сводится к решению линейного алгебраического уравнения \( x) ■ y относительно неизвестного вектора y :
x: »£). -Как известно, линейная система имеет решение, если определитель матрицы коэффициентов не равен нулю. В данном случае мы должны
потребовать, чтобы было det (XxJ) — X1 * 0. То есть вероятность истинности переменной x не должна быть равна нулю. Тогда компоненты неизвестной переменной y принимают значения:
y — v y —1 -v (1°)
Полученное решение имеет смысл только если компонента у1 положительна. Поэтому кроме условия Х1 * 0 получаем дополнительно, что xi - z0 . Отметим, что при xi — 1, zi — 1 из (10) имеем результат
правила modus ponens в четкой логике y0 — 0' yi — 1-
Представляет интерес рассмотреть нечеткое правило резолюции, которое формулируется следующим образом. Пусть нам известны две нечеткие импликации x ^ y — u и y ^ z — v, где u и v - заданные нечеткие переменные. Задача состоит в том, чтобы исключив переменную y найти нечеткость импликации x ^ z — w , значение которой мы обозначили символом w. После простых преобразований можно
v0v0
найти [2], что w0 —-> wi — 1 .
x1 - u0 xi - u0
Если оба вектора u и v истинны, то и из полученного результата следует, что и вектор w тоже истинный. В нечеткой логике результат зависит не только от степени истинности исходных импликаций u и v , но и от истинности посылки x. Чтобы избежать громоздких вычислений в современной нечеткой логике предложены различные эмпирические формулы, позволяющие реализовать нечёткие алгоритмы на уровне простейших управляющих микросхем.
2. Сети Байеса
Аппарат матричной логики, развитый в предыдущем разделе предполагает, что переменные x и y , над которыми выполняются операции, независимы друг от друга. Однако, при решении практических задач приходится иметь дело с зависимыми переменными, точнее, с зависящими друг от друга событиями (см. рассмотренный ниже пример). Будем считать одну из переменных, скажем, x независимой, а вторую
переменную, y , - зависимой от x :
У (x) . Компоненты вектора x определяют вероятность наступления некоторого события A:
*0 — Р(A), xi — p( A .
Функция y (x) интерпретируется как условная вероятность наступления события B . В дальнейшем вместо функции
у (x) введем векторы условных вероятностей yи y(11.
Компоненты вектор у считаем равными вероятностям наступления событий В, В при условии, что наступило событие А, у1 = р(В | Л), у)1' = р(В | Л), а компоненты вектора у- равными вероятностям наступления событий В , В при условии, что наступило
событие А : УГ) = Р(В | А), у00) = р(В | А). При этом для компо-
У(0) = ( У(0) у(0) ) у (1) = ( у(1) у(1) ) нент каждого из векторов У - \Уо , у1 ) и У - \Уо , у1 ) как
обычно выполняются условия (2):
0 < У0), к) < 1, У0) + у?) = 1, к = 0,1.
Для независимых событий А и В вероятность наступления события
В не меняется от того, какое из событий наступило - А или А - и в
этом случае векторы у(1 и у(совпадают между собой: у(0) = у(1).
Когда мы считали, что переменные х и У независимы, компоненты
прямого произведения х ® у были равны Х0у0, Х0у1, Х1 у0, Х1 у1. Для
зависимых переменных компоненты прямого произведения х ® у (х) с учетом введенных выше обозначений следует считать равными соответ-
Х у(0) Х у(0) Х ..(1) Х ..(1) О - Л
ственно Х0у0 , Х0у1 , х1у0 , х1у1 . В дальнейшем удобно из компонент векторов У(0^ и У(1 образовать матричный 2 х 2 массив Y :
ч ( у (0) У (1) ^
у = (\к ) = (У?) ) = (У0 У0
^ (11)
ч УГ У1
Для прямого произведения х ® у (х) также введем матричный 2 х 2 массив 2 :
2 = 2к ) = [(х ® У(х)). к ] = [• Хк ]
У(о ) • Х0 у1 • Х1
У10) • Х0 у11) • хг
(12)
Отметим, что для независимых переменных матрица 2 факторизу-ется, то есть представляется в виде произведения матриц следующего вида:
2 = {У0!(Х0 Х1 ) = (У0Х0 У0Х1 \ (13)
IУ1 г У У1Х0 У1Х1) к '
Для логических операций, применительно к зависимым переменным используются формулы
4Р) = X }к Х] У к (Х] ) = X }к ^к,] (14)
],к ],к ^^
т( р)
с теми же тензорами т1,],к , что и для независимых переменных.
Не трудно установить отличие в реализации независимых и зависимых переменных в виде электрических схем. В первом случае на схеме, представленной рис. 2, в обеих ветвях цепи деление токов
Х1^ делителями у производится в одинаковом отношении. Во втором случае (зависимые переменные) имеем схему, представленную на
рис. 3, с двумя разными делителями тока У(и у(1. Токи хоХ1^ делятся теперь в двух разных отношениях, определяемых компонентами У (0
векторов У емых цепей.
векторов у (0) и у (1). В этом и состоит главное различие рассматрива-
Л' _ Рис. 3. Реализация прямого произведения
зависимых векторов х ® у (х) в виде электрической схемы с тремя делителями тока
В проведенном выше рассмотрении мы считали независимой переменной х, а переменная у была зависимой от х, т.е. у (х). При практических решении задач часто бывает необходимо сделать замену независимой переменной и считать у независимой, а х - зависимой от , т.е.
х (у) . Между функциями у (х) и х (у ) существует связь, к выводу которой мы сейчас и перейдем.
Будем исходить из закона умножения вероятностей зависимых событий А и В , согласно которому вероятность произведения двух событий
Р( А, В)
равна произведению вероятности Р( А) наступления события А на условную вероятность
р(В | А)
наступления события В
при условии, что событие А имело место:
р( А, В) - р(А)р(В I А). (!5)
Эквивалентное представление закона умножения вероятностей имеет вид
р(А, В) - р(В)р(А I В). (!б)
Приравнивая друг другу правые части этих равенств, мы можем выразить условную вероятность
р(А I В)
через вероятность Р(В I А)
Р(А I В) - Й». (17)
Эту формулу называют правилом Байеса (теорема гипотез).
В наших обозначениях условные вероятности Р(В I А)
(точнее,
четыре вероятности Р(В I А), р(В I А), р(В I А) и Р(В I А))
представлены 2 х 2 матрицей Y . Формула умножения вероятностей в виде (13)
- матрицей ^ — х ® у(х) или токами на выходе электрической схемы, показанной на рис. 3.
Для перехода к новой независимой переменной следует найти вектор
у и функцию х( у ) . Компоненты вектора у по смыслу совпадают с
вероятностями р(В) — уо , р(В) — у1, которые могут быть найдены по формулам
р(В) — р(В I А)р(А) + р(В I А)р(А); р(В) — р(В I А)р(А) + р(В I А)р(А). (18) Согласно приведенным выше формулам входящие в эти выражения условные вероятности р(В | А),--- выражаются через компоненты векторов у(0) и у(1), а вероятности р(А), р(А) - через компоненты вектора х. Это дает возможность переписать выражения (18) в виде
у — Хо у(0} + ху1 — Е х у *}, 1= 0
(19)
Это значит, что вектор у равен средне взвешенному вектору от векторов у (0) и у (1) с вероятностями (весовыми коэффициентами) Хо, Х1. Используя введенный выше массив Y , мы можем переписать выражение (19) также в матричном виде
у — Y ■х , (20)
где точка обозначает матричное умножение, или в более подробной записи
у —
( у00 )
Уо
(1) Л
у10 ) у1
( у00 ) Хо + у1 х1 Л
у10 ) Хо + у1 Х1
(21)
Наряду с функцией х( у ) введем векторы х(0), х(11, компоненты которых выражаются через условные вероятности следующим образом х1 — р(А I В), х(1) — р(А I В), х0о) — р(А I В), х10) — р(А I В). (22) В дальнейшем мы также будем использовать матричный массив X ,
х(0) х(1)
составленный из компонент векторов х , х
X — (Х,к) — (¿к ) =
( х(0) х(1) Л л0 л0
(23)
х,
о
X
х(0) х1
Согласно приведенной выше формуле (17) (правило Байеса) для матрицы (23) получаем выражение
Х1,к = Х1 Ук • (24) где были использованы обозначения (14), (16), или, с учетом связей (20), (23)
Хк) = Х IУ к . (25)
Мы можем также выразить полученный результат с помощью введенного выше матричного массива 2
Х1,к = 2к, Ук . (26) Таким образом, используя формулу Байеса (17), мы совершили переход к новой независимой переменной, выразив неизвестные величины
У, х через известные х и У .
Для неопределенности системы независимых переменных x, У имеет место закон аддитивности энтропии:
х, У) = х) + S(y), (27)
Пусть теперь переменные x, У зависимы. Вероятности состояний сложной системы определяются произведениями
Х у(0) Х у(0) Х у(1) Х у(1)
х0у0 , х0у1 , х1 у0 , Х1у1 , а энтропия равна
в(х, У) = -Х Х Юд2Х1 ^ =-Х Х ЮЯХ X ^ -X Х X № Юд2Ук).
I,к I к I к
В правой части полученного выражения учтем, что согласно услови-
X У Р = 1
ям (7) к к . Введем «парциальную» условную энтропию
S(y(п) = -Х /Р/одУ'К
к
а также полную (или среднюю) условную энтропию
S(y | х) = -X Х X Ук ]1°д2У{к) = X Хв( У(п).
I к I
В результате, с учетом (25), энтропия сложной системы может быть представлена в виде
^х,У) = S(х) + S(y | х). В качестве примера рассмотрим задачу оценка вероятности заболевания гриппом (пример адаптирован из книги [5]). Пусть априорная вероятность заболевания гриппом во время эпидемии равна 0,001. Вероятность высокой температуры при заболевании гриппом равна 1,0. Если же человек не болен гриппом, то появление у него высокой темпера-
туры имеет вероятность 0,01. Больной пришел к врачу с высокой температурой. Какова вероятность того, что он болен гриппом?
Решение. Введем вектор x с компонентами xo " 0,999, xi = 0,001, описывающий априорную вероятность заболевания гриппом. По усло-
.,(0) У(1)
вию задачи векторы условной вероятности У и У имеют компоненты (0,99 0,01) и i0,0 10) соответственно. Образуем массивы исходных данных
(0.999Л (0.99 0
0.001 J '"ly 0.01 1
После простых вычислений получим ( 0.989 Л ( 1 0.909
У "l0.011J 0 0.091
Отсюда следует, что вероятность заболевания гриппом при наличии свидетельства «высокая температура» равна X1,1 " 0,091. Отметим, что неопределенность этой задачи мала и равна 0.092 бит. 4. Заключение
Полученные результаты, кратко описанные в этом сообщении, показывают, что «четкая» логика, нечёткая логика и сети Байеса могут быть рассмотрены на основе матричного представления. Представленный аппарат допускает не только простую алгоритмизацию необходимых вычислений, но и оценку неопределённостей величин, которая может быть найдена на каждом шаге производимых расчетов.
Литература
1. Mizraji E. Modalities in Vector Logic. // Notre Dame Journal of Formal Logic.
1994. Vol. 35, N.2, P. 272 282
2. Марценюк М. А. Матричное представление нечеткой логики// Нечеткие системы и мягкие вычисления. Научный журнал Российской ассоциации нечетких систем и мягких вычислений. 2007. Т. 2, № 3. С. 7-35.
3. Марценюк М.А. Матричное представление нечетких логических сетей/Вестник Пермского университета. Вып. Информационные системы и технологии. 2009. № 9(35) . С. 46-63.
4. Марценюк М.А. Операторно-логические схемы как средство изучения алгоритмов в учебных курсах по математике и информатике // Прикладная ин-фоматика № 5(29)2010. С. 43-54.
5. Черноруцкий И.Г. Методы принятия решений. - СПб.: БХВ-Петербург, 2005. - 416 с.