- •Часть 5
- •Булевы функции §1.Основные понятия и определения.
- •§2.Представление функций формулами. Равносильные формулы.
- •§3. Принцип двойственности
- •§4. Дизъюнктивные и конъюнктивные нормальные формы.
- •§5. Совершенные днф и кнф.
- •§6. Минимизция булевых функций в классе днф
- •§9. Многочлены Жегалкина
- •§7. Замыкание множества булевых функций.
- •§8. Полнота множества булевых функций.
§5. Совершенные днф и кнф.
|
Любая булева функция может иметь бесконечно много представлений в виде ДНФ и КНФ. Особое место среди этих представлений занимают совершенные ДНФ (СДНФ) и совершенные КНФ (СКНФ).
Пусть
(x1,...,хn)
— набор логических переменных,
Конституентой
единицы
набора
называется конъюнкт
Конституентой
нуля
набора
называется дизъюнкт
Отметим,
что
Пример
4.1
- Формула
Совершенной ДНФ называется дизъюнкция всех конституент единицы, а совершенной КНФ называется конъюнкция всех конституент нуля, среди которых нет одинаковых.
Таким
образом; СДНФ (СКНФ)
есть
ДНФ (КНФ), в которой в каждый конъюнкт
(дизъюнкт)
каждая
переменная xi
из набора {xi,...,
хn}
входит
ровно один
раз,
причем входит либо сама xi
,либо ее отрицание
Пример
4.2
формула
формула
а
формула
Для решения задачи нахождения СДНФ и СКНФ, эквивалентных исходной формуле , предварительно рассмотрим разложения булевой функции f{x1,x2,... ,хn) по m переменным (для определенности по х1, х2, ..., хm) - разложения Шеннона.
ТЕОРЕМА (О разложении булевой функции по переменным)
Где
дизъюнкция берется
по всем возможным наборам (
Доказательство.
ЗАМЕЧАНИЕ. Здесь доказывается, что некоторая формула реализует заданную функцию. Для этого достаточно взять произвольный набор значений аргументов функции, вычислить на этом наборе значение формулы, и если оно окажется равным значению функции на этом наборе аргументов, то из этого следует доказываемое утверждение.
СЛЕДСТВИЕ 1.
СЛЕДСТВИЕ 2.
Предельное представление (т.е. когда n=m ) булевой функции f(x1 ,x2 ,…, xn ) в виде
называется совершенной дизъюнктивной нормальной формой (СДНФ). ЗАМЕЧАНИЕ. СДНФ называется совершенной, потому что каждое слагаемое в дизъюнкции включает все переменные; дизъюнктивной, потому что главная операция — дизъюнкция, а почему она называется нормальной, объяснено в следующем отступлении.
ТЕОРЕМА. Всякая булева функция (кроме 0) имеет единственную СДНФ.
Доказательство.
ТЕОРЕМА. Всякая булева функция может быть выражена через дизъюнкцию, конъюнкцию и отрицание:
доказательство
ТЕОРЕМА. Всякая булева функция (кроме 1) может быть единственным образом выражена в виде совершенной конъюнктивной нормальной формы (СКНФ):
Доказательство. По принципу двойственности из предыдущей теоремы.
Пример 4.2. Построим совершенные ДНФ и КНФ булевой функции f(x1, х2, х3), заданной таблицей истинности (табл. 4.1).
Таблица 4.1 С
f(x1,
х2,
х3)
=
f(x1,
х2,
х3)
=
Описанный способ нахождения СДНФ и СКНФ по таблице истинности бывает часто более трудоемким, чем следующий алгоритм.
Алгоритм нахождения СДНФ функции, заданной таблицей истинности. Для нахождения СДНФ данную формулу приводим сначала к ДНФ, а затем преобразовываем ее конъюнкты в конституенты единицы с помощью следующих действий: а) если в конъюнкт входит некоторая переменная вместе со своим отрицанием, то мы удаляем этот конъюнкт из ДНФ;
б) если в конъюнкт
одна и та же литера
в) если в некоторый
конъюнкт
г) если в полученной ДНФ имеется несколько одинаковых конституент единицы, то оставляем только одну из них. В результате получается СДНФ.
|
