Полиномы Жигалкина. Построение полиномов Жигалкина.
Каждую логическую функцию можно представить в виде полинома Жигалкина, представляющего собой элементарные конъюнкции соединены операцией исключающего или Å. Например: f(x,y,z) = (y & z) Å (x & z) Å (x & y & z)
Процедура построения Полинома Жигалкина
По таблице истинности строим СДНФ.
СДНФ приводим к минимальной ДНФ
Выражаем дизъюнкции Ú и отрицания ù через операции конъюнкции & и исключающего или Å.
xÚy = xÅyÅ(x & y)ùx = xÅ1
4) Раскрываем скобки используя дистрибутивность x & (y Å z) = (x & y) Å (x & z), (x Å y) & z = (x & z) Å (y & z). В результате могут получится формула двух видов
(xa & xb & ...) Å ... Å (xc & xd & ...) или (xa & xb & ...) Å ... Å (xc & xd & ...) Å 1
Сокращаются повторяющиеся элементы внутри скобок при помощи a&a=a, a&1=a, 1&a=a
Сокращаются одинаковые скобки при помощи поглощения aÅa=0, aÅ0=a, 0Åa=a.
Пример: построение полинома Жигалкина
Пусть для функции получена минимальная ДНФ:
f(x,y,z) = (ùx & y & z)Ú(x &ùz)
Используя ù a = a Å 1заменим отрицание:
f(x,y,z) = ((xÅ1) & y & z)Ú(x & (zÅ1))
Используя a Ú b = a Å b Å (a & b)заменим дизъюнкцию:
f(x,y,z) = ((xÅ1) & y & z)Å(x & (zÅ1))Å((xÅ1) & y & z & x & (zÅ1))
Используя дистрибутивность раскроем скобки:
f(x,y,z) = (x & y & z)Å(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)
Применим законы поглощения внутри скобок:
f(x,y,z) = (x & y & z)Å(y & z)Å(x & z)ÅxÅ(y & x & z)Å
Å(y & x & z)Å(y & z & x)Å(y & z & x)
Применим законы поглощения для одинаковых скобок
f(x,y,z) = (x & y & z)Å(y & z)Å(x & z)Åx
Классы логических функций: сохраняющие 0, сохраняющие 1, монотонные, линейные, двойственные, самодвойственные. Критерий поста.
Классы логических функций
Класс S0: Функции «сохраняющие 0»- это логические функции, значение которых равны 0, если все аргументы равны 0: f(0,0,...,0)=0. Например Ú
Класс S1: Функции «сохраняющие 1»- это логические функции, значение которых равны 1, если все аргументы равны 1: f(1,1,...,1)=1. Например &
Класс M: "Монотонные" функции-это логические функции, которые можно выразить через & и Ú.
Монотонную функцию можно распознать по ее таблице истинности. Для этого нужно взять все пары наборов переменных, которые отличаются всего в одном столбце. Например: 0,0,0,0 и 0,0,0,1; 1,0,0,1 и 1,1,0,1. Пусть в одном наборе переменных в некотором столбце стоит "0", а в другом наборе переменных в этом же столбце стоит "1". Нельзя, чтобы значение функции при этих наборах было "1", а потом "0" соответственно. Пример монотонной функции: Ú .
Наборы переменных Значение функций
00; 01 0; 1
00; 10 0; 1
01; 11 1; 1
10; 11 1; 1
Класс L:"Линейные" функции – этологические функции, которые можно выразить через Å, 0 и 1.
Чтобы узнать, линейна ли функция, надо выразить ее через полином Жегалкина и посмотреть, не встречается ли там операция &. Если нет, то функция линейна.
Класс D: «Двойственные» функции f и g,т.е. функции
удовлетворяющие условию f(ù x1, ù x2,..., ù xN) = ù g(x1,x2,...,xN)
Двойственные функции легко обнаружить с помощью простого приема. Надо заменить в таблице истинности все "0" на "1", а все "1" на "0". Полученная таблица истинности и будет таблицей двойственной функции. Пример & и Ú.
Класс S:"Самодвойственные" функции, т.е. функции, которые двойственны сами себе:
f(ù x1, ù x2,..., ù xN) = ù f(x1, x2,..., xN).
Критерий Поста
Система булевых функций F является полной тогда и только тогда, когда она не содержится ни в одном из классов S0, S1, S, L, M. T.е. когда в ней имеется хотя бы одна функция, не сохраняющая 0, хотя бы одна функция, не сохраняющая 1, хотя бы одна несамодвойственная функция, хотя бы одна немонотонная функция и хотя бы одна нелинейная функция.
Упрощение СДНФ при помощи Карты Карно. Булева алгебра и коммутационные схемы. Анализ и синтез коммутационных схем. Проектирование полубитного сумматора.