Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 09 Булевы функции.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
677.38 Кб
Скачать

Алгоритм приведения формулы к днф.

1. Выразить все логические операции, участвующие в построении формулы, через дизъюнкции, конъюнкции и отрицания, используя эквивалентности

~

~

и определения операций:

штрих Шеффера (антиконъюнкция) ,

стрелки Пирса (антидизъюнкция)

сумма по модулю два (антиэквивалентность) .

2. Используя законы де Моргана, переносим все отрицания к переменным и сокращаем двойные отрицания по правилу

~ φ

3. Используя закон дистрибутивности

~ ,

преобразуем формулу так, чтобы все конъюнкции выполнялись раньше дизъюнкций. В результате применения пп. 1-3 получается ДНФ данной формулы.

Пример 6. Привести к ДНФ формулу .

Решение. Выразим логические операции и через , и :

φ ~ ~ ~ .

В полученной формуле перенесем отрицание к переменным и сократим двойные отрицания:

φ ~ ~ ~ .

Используя закон дистрибутивности, приводим формулу к ДНФ:

φ ~ .

Приведение формулы к КНФ производится аналогично приведению ее к ДНФ, только вместо п. 3 применяется пункт

3'. Используя закон дистрибутивности ~ , преобразуем формулу так, чтобы все дизъюнкции выполнялись раньше, чем конъюнкции.

Пример 6. Привести к КНФ формулу ,

Решение. Преобразуем формулу φ к формуле, не содержащей :

φ ~ ~

В полученной формуле перенесем отрицание к переменным и сократим двойные отрицания: φ ~ ~

По закону дистрибутивности получаем, что формула φ эквивалентна формуле

φ ~ ,

являющейся КНФ.

Упростим полученную формулу:

1) используем закон дистрибутивности

~

2) используем закон эквивалентность φ φ0 ~ φ,

~

3) используем закон поглощения

~ .

Таким образом, формула φ из примера 6.1.1 эквивалентными преобразованиями приводится к формуле (являющейся одновременно ДНФ и КНФ формулы φ).

~ ~ ~

Построить таблицу истинности

Любая булева функция может иметь бесконечно много представлений в виде ДНФ и КНФ. Особое место среди этих представлений занимают совершенные ДНФ (СДНФ) и совершенные КНФ (СКНФ).

Совершенные днф (сднф) и кнф (скнф).

Пусть (x1,..., xn) — набор логических переменных, Δ = (δ1,,.., δп) набор нулей и единиц.

Конституентой единицы набора Δ называется конъюнкт K11 ... δп) = .

Конституентой нуля набора Δ называется дизъюнкт K01 … δп) = .

Отметим, что K11 ... δп) = 1, а K01 … δп) = 0 тогда и только тогда, когда х1 = δ1, х2 = δ2, хn = δn.

Совершенной ДНФ называется дизъюнкция некоторых конституент единицы, среди которых нет одинаковых.

Совершенной КНФ называется конъюнкция некоторых конституент нуля, среди которых нет одинаковых.

Таким образом, СДНФ (СКНФ) есть ДНФ (КНФ), в которой в каждый конъюнкт (дизъюнкт) каждая переменная хi из набора {x1,..., xn} входит ровно один раз, причем входит либо сама хi, либо ее отрицание .

Пример 7. Формула есть конституента единицы К1(1,0,1).

Формула есть конституента нуля К0(0,0,1).

Формула СДНФ.

Формула СКНФ.

Формула не является СДНФ.

Для решения задачи нахождения СДНФ и СКНФ, эквивалентных исходной формуле φ, предварительно рассмотрим разложения булевой функции f(x1, х2,...,xп) по k; переменным (для определенности по x1, х2,...,xk) — разложения Шеннона.

Теорема (первая теорема Шеннона). Любая булева функция f(x1, х2,...,xп) представима в виде разложения Шеннона:

Доказательство. Прежде всего, заметим, что . Подставим произвольно вместо первых k переменных их значения: . Тогда левая часть доказываемой формулы равна Правая часть представляет собой дизъюнкцию 2k конъюнкций вида , которые этой подстановкой разбиваются на два класса. К первому классу относится конъюнкция, у которой набор 1, δ2,...,δk) совпадает с набором :

=

= 1 1 ... 1 =

Эта конъюнкция равна левой части формулы. Ко второму классу относится 2k-1 конъюнкций, у каждой из которых хотя бы в одной переменной xi, выполнено условие . Следовательно, каждая из них равна нулю. Используя закон , получаем, что левая и правая части формул равны при любой подстановке переменных x1, x2..., xn.

В силу принципа двойственности для булевых алгебр справедлива

Теорема 6.4.3 (вторая теорема Шеннона). Любая булева функция f(x1, х2,...,xп) представима в виде разложения Шеннона:

В предельном случае, когда k = n, для булевой функции f(x1, х2,...,xп), не равной нулю, получаем ее представление в виде совершенной ДНФ:

Аналогично для булевой функции f(x1, х2,...,xп), не равной единице, получаем ее представление в виде совершенной КНФ:

Приведенные формулы позволяют сформулировать следующую теорему о функциональной полноте.