Линейными являются булевы функции из табл. 6 - f0, f3 , f5 и т. д.
Прежде чем ввести понятие класса монотонных булевых функций, дадим следующее определение.
Определение. Двоичный набор
не меньше двоичного набора , (т.е. ), если для каждой пары справедливо соотношение .Так, набор 1011 ≥1010. Вместе с тем наборы 1011 и 0100 несравнимы в том смысле, что для них не выполняется ни соотношение
, ни .Определение. Булева функция f(x1,x2,...,xn) называется монотонной, если для любых двух наборов
и таких, что имеет место неравенство f f( )Монотонными являются булевы функции f0, f1,f3 , f5 (из табл. 6) и т.д.
Приведем без доказательства две формулировки теоремы о функциональной полноте.
Теорема. Для того чтобы система Sбулевых функций была функционально полной, необходимо и достаточно, чтобы эта система содержала хотя бы одну булеву функцию, не сохраняющую константу 0, хотя бы одну булеву функцию, не сохраняющую константу 1, хотя бы одну несамодвойственную булеву функцию, хотя бы одну нелинейную булеву функцию и хотя бы одну немонотонную булеву функцию.
Система булевых функций является функционально полной тогда и только тогда, когда она целиком не содержится ни в одном из предполных классов. При помощи функционально полной системы можно реализовать булеву функцию любой степени сложности.
Рассмотрим примеры ФПСБФ. К таким ФПСБФ, наиболее распространенным в практике построения цифровых автоматов, следует отнести: (
, НЕ); ( ,НЕ); (V, НЕ); ( , НЕ), ( ,1); где символами V, , , НЕ, 1 обозначены булевы функции: «дизъюнкция», «конъюнкция», «сумма по mod2», «отрицание», «константа 1», соответственно.При проектировании цифровых автоматов широко используются методы минимизации булевых функций, позволяющие получать рекомендации для построения экономичных схем цифровых автоматов. Общая задача минимизации булевых функций может быть сформулирована следующим образом: найти аналитическое выражение заданной булевой функции в форме, содержащей минимально возможное число букв. Следует отметить, что в общей постановке данная задача пока не решена, однако достаточно хорошо исследована в классе дизъюнктивно-конъюнктивных нормальных форм.
Определение. Элементарной конъюнкцией называется конъюнкция конечного числа различных между собой булевых переменных, каждая из которых может иметь или не иметь отрицания.
Определение. Дизъюнктивной нормальной формой (ДНФ) называется дизъюнкция элементарных конъюнкций.
Определение. Минимальной дизъюнктивной нормальной формой булевой функции называется ДНФ, содержащая наименьшее число букв (по отношению ко всем другим ДНФ, представляющим заданную булеву функцию). Определение. Булева функция g(x1,x2,...,xn) называется импликантой булевой функции f1(x1,x2,...,xn), если для любого набора переменных, на котором g = 1, справедливо f = 1. Пример. Булева функция fзадана таблицей 8. Там же приведены все ее импликанты. При записи функции и ее импликант в СДНФ имеем
f=
Ú Úg1=
g2=
g3=
V =g4=
g5=
vv =g6=
vvg7=
Ú ÚОпределение. Импликанта gбулевой функции f, являющаяся элементарной конъюнкцией, называется простой, если никакая часть импликанты g не является импликантой функции f.
Из примера видно, что импликанты g3 и g5 являются простыми импликантами функции f. Другие импликанты не являются простыми, так как их части являются импликантами функции f, например g3 является частью g1. Приведем без доказательства два утверждения, полезные при получении минимальной ДНФ.
1. Дизъюнкция любого числа импликант булевой функции f также является импликантой этой функции.
2. Любая булева функция f эквивалентна дизъюнкции всех своих простых импликант. Такая форма представления булевой функции называется сокращенной ДНФ.
Перебор всех возможных импликант для булевой функции fиз рассмотренного примера дает возможность убедиться, что простых импликант всего две: g3 и g5. Следовательно, сокращенная ДНФ функции fимеет вид:
f= g3 Vg5 =
VКак видно из табл. 6.8., импликанты g3 и g5 в совокупности покрывают своими единицами все единицы функции f. Получение сокращенных ДНФ является первым этапом отыскания минимальных форм булевых функций. Как уже отмечалось, в сокращенную ДНФ входят все простые импликанты булевой функции. Иногда из сокращенной ДНФ можно убрать одну или несколько простых импликант, не нарушая эквивалентности исходной функции. Такие простые импликанты назовем лишними. Исключение лишних простых импликант из сокращенных ДНФ — второй этап минимизации.
Определение. Сокращенная ДНФ булевой функции называется тупиковой, если в ней отсутствуют лишние простые импликанты.
Устранение лишних простых импликант из сокращенной ДНФ булевой функции не является однозначным процессом, т.е. булева функция может иметь несколько тупиковых ДНФ.
Утверждение. Тупиковые ДНФ булевой функции f, содержащие минимальное число букв, являются минимальными. Минимальных ДНФ тоже может быть несколько.
Рассмотрим несколько методов минимизации. Все они практически различаются лишь на первом этапе — этапе получения сокращенной ДНФ. Следует отметить, что, к сожалению, поиск минимальной ДНФ всегда связан с некоторым перебором решений. Существуют методы уменьшения этого перебора, однако он всегда остается.
Метод Квайна основывается на применении двух основных соотношений.
1. Соотношение склеивания
где А — любое элементарное произведение.
2. Соотношение поглощения
Справедливость обоих соотношений легко проверяется.
Теорема Квайна. Если в СДНФ булевой функции выполнить все возможные склеивания и поглощения, то в результате будет получена сокращенная ДНФ.
Метод применим к совершенной ДНФ. Из соотношения поглощения следует, что произвольное элементарное произведение поглощается любой его частью.
Для доказательства достаточно показать, что произвольная простая импликанта р =
может быть получена. В самом деле, применяя к р операцию развертывания (обратную операции склеивания): по всем недостающим переменным исходной функции f, получаем совокупность Sконституент единицы. При склеивании всех конституент из Sполучим импликанту р. Последнее очевидно, поскольку операция склеивания обратна операции развертывания. Множество Sконституент обязательно присутствует в совершенной ДНФ функции fпоскольку р — ее импликанта.