DisMathTPU_new
.pdfЭта формула не является полиномом Жегалкина, если содержит переменные с инверсиями. От инверсий избавимся, используя равносильность x = x 1. Раскрыв в полученной формуле скобки на основе за-
кона дистрибутивности, получим сумму положительных конъюнкций. Она не является полиномом Жегалкина, если конъюнкции повторяются. Используя равносильности x x = 0 и x 0 = x, удалим пары
одинаковых конъюнкций. Получим полином Жегалкина.
Лемма о числе положительных конъюнкций. Число
различных положительных конъюнкций переменных из множества
X = fx1; : : : ; xng равно 2n.
Доказательство. Положительная конъюнкция представляется подмножеством переменных из X, то есть булевым вектором длины n, и
наоборот, каждый вектор длины n задает подмножество переменных из X. Значит, число положительных конъюнкций равно числу векторов длины n, то есть (по теореме о числе булевых векторов) 2n.
Определение. Форму представления полинома Жегалкина
P = c0K0+ c1K1+ : : : c2n 1K2+n 1
булевой функции f(x1; : : : ; xn), ãäå ci
формой с коэффициентами.
Число 2n положительных конъюнкций Ki+ определяется леммой. Договоримся однозначно связывать с номером конъюнкции Ki+ åå
вид по следующему правилу: число i представлять булевым вектором
a1 : : : an, который, в свою очередь, задаст подмножество переменных,
составляющих конъюнкцию Ki+.
Пример. При n = 3 конъюнкция K5+ = x1x3, так как число 5 представляется булевым вектором 101, который задает подмножество переменных fx1; x3g множества fx1; x2; x3g.
Значит, полином Жегалкина булевой функции n аргументов од-
нозначно определяется вектором коэффициентов = c0c1 : : : c2n 1, è наоборот, любой булев вектор длины 2n однозначно определяет поли-
ном Жегалкина функции n аргументов. Пример. Полином Жегалкина
P= 1 x xz yz xyz = K0+ K4+ K5+ K3+ K7+ =
=1K0+ 0K1+ 0K2+ 1K3+ 1K4+ 1K5+ 0K6+ 1K7+
представляется вектором коэффициентов = 10011101.
141
Теорема о единственности полинома Жегалкина. Каждая булева функция имеет единственный полином Жегалкина.
Доказательство. Как следует из последних рассуждений, число различных полиномов Жегалкина булевых функций n аргументов
равно числу булевых векторов длины 2n, то есть равно 22n. Но число различных булевых функций n аргументов тоже равно 22n (по теоре-
ме о числе булевых функций), и каждая булева функция представима полиномом Жегалкина (по теореме о существовании полинома), следовательно, на каждую булеву функцию приходится ровно по одному полиному Жегалкина.
Таким образом, наряду с совершенной ДНФ, совершенной КНФ и сокращенной ДНФ, полином Жегалкина является еще одной канони- ческой формой представления булевых функций.
15.3.2. Алгоритмы построения полинома Жегалкина
Рассмотрим алгоритмы построения полинома Жегалкина булевой функции, заданной различными способами, а именно: совершенной ДНФ, произвольной ДНФ, формулой и таблицей истинности.
Алгоритм построения полинома Жегалкина по СовДНФ
(основан на доказательстве теоремы о существовании полинома Жегалкина).
Начало. Задана совершенная ДНФ функции f(x1; : : : ; xn).
Шаг 1. Заменяем символы дизъюнкции на символы дизюнкции с исключением.
Шаг 2. Заменяем все переменные с инверсией x формулами x 1:
Шаг 3. Раскрываем скобки.
Шаг 4. Вычеркиваем из формулы пары одинаковых слагаемых. Конец. Получен полином Жегалкина функции f(x1; : : : ; xn). Пример. Найдем полином Жегалкина мажоритарной булевой функ-
ции по ее совершенной ДНФ.
СовДНФ = x y z _ x y z _ x y z _ x y z = = x y z x y z x y z x y z =
= (1 x) y z x (1 y) z x y (1 z) x y z =
= y z x y z x z x y z x y x y z x y z = |
|||
|
|
|
|
|
|
|
|
= y z x z x y = P:
142
Алгоритм построения полинома Жегалкина по ДНФ (основан на равносильности K1 _ K2 = K1 K2 K1K2).
Начало. Задана произвольная ДНФ функции f(x1; : : : ; xn).
Шаг 1. Разбиваем ДНФ на пары конъюнкций, лучше ортогональных (если число конъюнкций нечетно, одна из них остается без пары).
Шаг 2. Заменяем каждую дизъюнкцию конъюнкций K1 _ K2 ôîð- мулой K1 K2 K1K2 (èëè K1 K2, åñëè K1 è K2 ортогональны).
Шаг 3. В полученной формуле находим очередную дизъюнкцию A1 _ A2 и заменяем ее формулой A1 A2 A1A2. Повторяем шаг 3 до тех пор, пока это возможно.
Шаг 4. Заменяем все переменные с инверсией x формулами x 1:
Шаг 5. Раскрываем скобки.
Шаг 6. Вычеркиваем из формулы пары одинаковых слагаемых. Конец. Получен полином Жегалкина функции f(x1; : : : ; xn).
Пример. Найдем полином Жегалкина мажоритарной функции по ее ДНФ.
ÄÍÔ = x y z _ x z _ y z = (x y z _ x z) _ y z =
= (x y z x z) _ y z = (x y z x z) y z (x y z x z) y z =
= x y |
|
x z y z x y z = x y (1 z) x z y z x y z = |
|
z |
|||
= x y x y z x z y z x y z = x y x z y z = P: |
|||
|
|
|
|
|
|
|
|
Отметим, что полиномы мажоритарной функции из двух последних примеров совпадают с точностью до порядка конъюнкций, и это естественно (по теореме о единственности полинома Жегалкина).
Алгоритмы построения полинома Жегалкина по формуле. Способ 1 основан на предварительном преобразовании формулы
âДНФ (любым известным нам способом). Затем ДНФ преобразуется
âполином Жегалкина по только что изученному алгоритму.
Примеры. Получим полиномы Жегалкина двух элементарных булевых функций: импликации и эквивалентности, представив их предварительно кратчайшими ДНФ.
a ! b = a _ b = a b a b = (1 a) b (1 a)b =
|
|
|
= 1 a b b a b = 1 a a b; |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
= |
|
|
|
_ |
|
= |
|
|
|
= |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
a |
|
b |
|
|
b |
|
a b |
|
|
b |
a b |
(1 |
a)(1 |
|
b) |
|
a b = |
||
|
|
a |
|
|
a |
|
|
||||||||||||
|
|
|
= 1 a b a b a b = 1 a b: |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143
Аналогично можно получить полиномы Жегалкина всех элементарных булевых функций (оставим читателю их вывод).
a _ b=a b a b |
a ! b=1 a a b |
|
a b=1 a b |
a |
b=1 b a b |
a # b=1 a b a b |
a ,! b=a a b |
|
a=b=1 a b |
a |
- b=b a b |
Константы 0 и 1, тождественная функция, а также конъюнкция a b и дизъюнкция с исключением a b уже являются полиномами Жегалкина. Полином Жегалкина инверсии a = 1 a.
Заметим, что некоторые из приведенных полиномов могут быть получены гораздо проще, в частности,
a b = a b = 1 a b:
Способ 2. Если булева функций задана произвольной формулой, то ее полином Жегалкина можно получить подстановкой в формулу вместо элементарных булевых функций их полиномов.
Пример. Найдем полином Жегалкина мажоритарной функции, заданной формулой:
F = x y z = (x ! y) = ((x y) z) = (x ! y) =
[ подставим в формулу полином Жегалкина штриха Шеффера 1 ab
ïðè a = (x y) z, b = x ! y ]
= 1 ((x y) z) (x ! y) =
[ подставим полиномы Жегалкина обратной импликации 1 b ab при a = x y, b = z и импликации 1 a ab при a = x, b = y ]
= 1 (1 z (x y) z) (1 x x y) =
[ подставим полином Жегалкина эквивалентности 1 x y, раскроем скобки и вычеркнем появившиеся пары одинаковых слагаемых ]
= 1 (1 z (1 x y) z) (1 x x y) = |
||||||||
= 1 (1 z z x z y z) (1 x x y) = |
||||||||
|
|
|
) |
|
|
|
|
|
= 1 (1 |
x z |
y z |
x |
x y) = |
||||
|
|
(1 |
|
|
= 1 1 x z y z x x z x y z x y x y z = |
||
|
|
|
144