Это - еще один способ выразить произвольную булеву функцию
через бинарные операции. Мы уже знаем, что произвольную булеву
функцию можно выразить через &, и ~ в виде СДНФ. Мы
также знаем, что
и ~ можно выразить через & и
:
y = x
y
(x & y)
1
Применив эти формулы, мы всякую булеву функцию выразим через
операции & и .
Дальше мы можем раскрыть все скобки, кроме самого последнего уровня, применяя правила дистрибутивности (в точной аналогии с тем, как это делалось в школе с раскрытием скобок и приведением подобных членов):
z) = (x & y)
(x & z)
y) & z = (x & z)
(y & z)
В результате получится формула вида:
...
(xc & xd & ...)
или вида:
...
(xc & xd & ...)
1
где в скобках стоят те или иные наборы аргументов, объединенные операцией &, а сами скобки
объединены операцией . После этого формулу можно сократить, убрав повторяющиеся
элементы внутри скобок с помощью законов поглощения
Затем выполним дополнительное сокращение, убрав одинаковые скобки с помощью законов поглощения
a = 0, a
0 = a, 0
a = a
В результате получится формула, которая и называется полиномом Жегалкина.
Возьмем СДНФ нашей функции, и упростим его, насколько возможно:
(x & ~z)
Теперь преобразуем инверсии:
1) & y & z)
(x & (z
1))
Теперь преобразуем операцию :
1) & y & z)
(x & (z
1))
((x
1) & y & z & x & (z
1))
Раскроем скобки:
(1 & y & z)
(x & z)
(x & 1)
(x & y & z & x & z)
(1 & y & z & x & z)
(x & y & z & x & 1)
(1 & y & z & x & 1)
Применим законы поглощения внутри скобок:
(y & z)
(x & z)
x
(y & x & z)
(y & x & z)
(y & z & x)
(y & z & x)
Применим законы поглощения для одинаковых скобок, учитывая, что переменные, соединенные знаками & можно менять местами:
(x & z)
x
(x & y & z)
Это - и есть полином Жегалкина. Таким образом, любую
логическую функцию можно выразить в виде полинома Жегалкина:
цепочки элементов,
соединенных операцией . Каждый элемент - 0, 1,
переменная или скобка, в которой несколько переменных,