Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diskretnaya_matematika.pdf
Скачиваний:
1262
Добавлен:
12.03.2015
Размер:
2.47 Mб
Скачать

67

Пример. Пусть имеем конституенту единицы: x1& x2&x3&...&xn.

Ясно, что эта конституента единицы принимает значение 1 на наборе (1,0,1,1,...1) и значение 0 на остальных наборах.

§ 9. Дизъюнктивные и конъюнктивные нормальные формы

Дизъюнктивной нормальной формой (д.н.ф.) называется дизъюнкция элементарных произведений. Одно элементарное произведение тоже будем считать д.н.ф. Примеры д.н.ф.:x y, x y&z, x x&z x&y& z.

Теорема 3.10. Для каждой формулы существует равносильная ей д.н.ф. (не единственная).

Доказательство. Ранее было показано, что для любой формулы существует равносильная ей формула, содержащая только связки , &, , причем связка относится только к отдельным переменным. Еще раньше было замечено, что с формулой, содержащей связки &, , можно проводить операции раскрытия скобок (см. законы дистрибутивности). В результате получаем дизъюнкцию элементарных произведений, т.е. д.н.ф.

Пример. Пусть задана формула (xy)&z. Исключим связку , затем :

((x y)&(y x))&z,(( x y)&( y x))&z.

Теперь добьемся, чтобы относилась только к переменным: (x& y y& x)&z.

Раскрыв скобки, получим x& y&z y& x&z. Последнее и есть д.н.ф. Полученная д.н.ф., очевидно, равносильна следующей д.н.ф.: x& y&z

x&y&z x& x. Из примера видно, что д.н.ф., равносильная заданной формуле, определяется не единственным образом.

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

Теорема 3.11. Для каждой формулы существует равносильная ей к.н.ф. (не единственная).

Можно сформулировать правила для нахождения д.н.ф. и к.н.ф., равносильных заданной формуле. Пусть задана формула А:

1)исключить из А все связки, кроме , &, ,

2)добиться, чтобы относилась только к переменным,

68

3)если раскрыть скобки по первому дистрибутивному закону, то получится д.н.ф.,

4)если сгруппировать полученный результат в скобки, пользуясь вторым дистрибутивным законом, то получится к.н.ф.

Имеет место теорема.

Теорема 3.12. Для того, чтобы формула А была противоречием, необходимо и достаточно, чтобы равносильная ей д.н.ф. содержала в каждом слагаемом хотя бы одну пару множителей, из которых один - некоторая переменная, а второй - отрицание этой переменной.

Доказательство. Пусть для А равносильной ей д.н.ф. является форма

В1 В2 ... Вk (k 1),

(3.14)

где Вi ( 1ik ) есть элементарное произведение. Дизъюнкция (3.14) будет противоречием тогда и только тогда, когда будет противоречием каждая Вi (1ik). Вi - элементарное произведение и по теореме 3.10 будет противоречием тогда и только тогда, когда содержит хотя бы одну пару множителей, из которых один - некоторая переменная, а второй - отрицание этой переменной. Теорема доказана.

Следствие 3.1. Формула А будет выполнимой, если равносильная ей д.н.ф. содержит хотя бы одно слагаемое, в котором нет таких множителей, что один из них - некоторая переменная, а другой множитель - отрицание этой переменной.

Также просто доказать следующую теорему.

Теорема 3.13. Для того, чтобы формула А была тавтологией, необходимо и достаточно, чтобы равносильная ей к.н.ф. содержала в каждом множителе хотя бы одну переменную вместе с отрицанием этой же переменной.

§ 10. Представление произвольной булевой функции в виде формул

Известно, что булеву функцию можно задавать табличным и графическим способами, словесным описанием, порождающей процедурой или в аналитическом виде, т.е. в виде формул. Спрашивается, всегда ли можно для булевой функции f(x1,x2,…,xn) найти такую формулу, чтобы значения функции и формулы совпадали при одинаковых значениях переменных, т.е. можно ли представить f(x1,x2,…,xn) посредством формулы.

 

 

69

 

Введем обозначение:

 

 

 

x a =

x,

åń-č a = 1

 

 

 

 

 

x, åń-č a = 0.

 

Очевидно, что xa=a& x a& x и

 

 

 

1,

åń-č x = a

 

xa =

 

åń-č x a.

(3.15)

0,

 

Теорема 3.14. (О разложении булевой функции по переменным.) Для любой булевой функции f(x1, x2,…, xn) и любого m, 1mn, имеет место следующее равенство:

f(x1, x2,…, xm, xm+1,…, xn)=

(3.16)

= x a1

& xa2

&& x am & f(a1, a2,…, am, xm+1,…, xn)

( a1 ,a2 ,...,am )

1

2

m

 

 

 

где дизъюнкция берется по всем возможным наборам (a1, a2…, am).

Доказательство. Выберем произвольные значения для аргументов x1, x2,…, xn, пусть, например, x1=b1, x2=b2,…, xn=bn. Тогда в правой части соотношения (3.16) получим:

 

 

 

ba1

& ba2

&& bam & f(a1, a2,…, am, bm+1,…, bn)

(3.17)

( a ,a ,...,a

 

)

1

2

m

 

m

 

 

 

 

1 2

 

 

 

 

 

Если хотя бы для одного множителяbiai , 1im, окажется, что bi ai,

то из (3.15) следует, что biai =0 и тогда всё слагаемое в (3.17), содержащее biai , обратится в нуль. Следовательно, в выражении (3.17) останется только

одно слагаемое, в котором bi= ai для всех i, 1im. В результате получим, что дизъюнкция (3.17) сводится к одному слагаемому:

b1b1 & b2b2 && bmbm & f(b1, b2,…, bn).

Учитывая, что bibi =1, получим, что дизъюнкция (3.17) равна f(b1, b2,…, bn), т.е. равна левой части равенства (3.16) при выбранных значениях переменных.

Представление функции f в виде (3.16) называют разложением Шеннона.

Следствие 3.2.

f(x1, x2,…, xn-1, xn) = xn& f(x1, x2,…, xn-1, 1) xn& f(x1, x2,…, xn-1, 0).

Следствие 3.3. Если f(x1, x2,…, xn) не тождественно равна 0, то:

70

f(x1, x2,…, xn) =

 

x a1

& xa2

&& xan .

(3.18)

( a1

,a2

,...,an ),

1

2

n

 

 

 

 

 

f ( a1

,a2

,...,an )=1

 

 

 

 

Здесь дизъюнкция берется только по тем наборам (a1, a2…, an), для которых f(a1, a2…, an)=1.

Доказательство. Очевидно, что в правой части соотношения (3.16) слагаемые с f(a1,a2…,an)=0 можно отбросить, в результате получим (3.18).

Теорема 3.15. Для любой булевой функции f(x1, x2…, xn) и любого m, 1m n, имеет место следующее равенство:

 

f(x1, x2,…, xm, xm+1,…, xn) =

(3.19)

=

&

( x1−a1

x1−a2

… x

1am f(a1, a2,…, am, xm+1,…, xn)),

 

 

( a1 ,a2 ,...,am )

1

2

 

m

 

 

 

 

 

 

 

где конъюнкция берется по всевозможным наборам (a1, a2…, am).

Доказательство проводится аналогично доказательству теоремы 3.17.

Следствие 3.4. Если f(x1, x2,…, xn) не тождественно равна 1, то

f(x1, x2,…, xn)=

&

1−a1

 

1−a2

 

x1an

).

(3.20)

( x1

 

x2

 

n

 

( a1

,a2 ,...,an ),

 

 

 

 

 

 

 

 

f ( a1

,a2 ,...,an )=0

 

 

 

 

 

 

 

 

Здесь конъюнкция берется только по тем наборам (a1, a2…, an), для которых f(a1, a2…, an)=0.

§ 11. Совершенные нормальные формы

Правая часть разложения (3.18) называется совершенной дизъюнктивной нормальной формой (с.д.н.ф.) для f, т.е. с.д.н.ф. это представление функции f в виде:

f(x1, x2,…, xn)=

 

x a1

& xa2

&& x an .

( a1

,a2

,...,an ),

1

2

n

 

 

 

f ( a1

,a2

,...,an )=1

 

 

 

Очевидно, что с.д.н.ф. функции f(x1, x2,…, xn) это д.н.ф. этой функции, удовлетворяющая следующим условиям:

- нет одинаковых слагаемых;

71

- в каждое слагаемое входят все переменные x1,x2,…,xn один и только один раз (и только они) с отрицанием либо без отрицания.

С.д.н.ф. для функции f можно построить по таблице истинности этой функции. Для этого выбираем строки, где функция f равна 1; пусть это будут строки k1,k2,…,km. Для каждой выбранной строки ki, 1i m, строим конституенту единицы Ki следующим образом. Если в выбранной строке ki переменная xj принимает значение 1, то в Ki она входит без отрицания, если же xj=0, то в Ki она входит с отрицанием. Дизъюнкция построенных конституент единицы и будет с.д.н.ф.

Конституенты единицы, построенные для строк, где функция f равна 1,

называются собственными конституентами единицы функции f.

Рассмотрим пример на построение с.д.н.ф.

Пример. Пусть функция f(x,y,z) равна нулю тогда и только тогда, когда принимает значение нуль один и только один из аргументов функции. Найти с.д.н.ф. для f(x,y,z).

Решение. Составим таблицу истинности, исходя из задания функции.

x

y

z

f(x,y,z)

Выберем строки, где f принимает значение 1, т.е.

строки с номерами: 1,2,3,5 и 8. Для первой строки

0

0

0

1

конституента единицы представляется в виде

0

0

1

1

конъюнкции x& y& z, для второй - x& y& z.

0

1

0

1

Построив таким образом собственные конституенты

единицы данной функции, получим с.д.н.ф.:

0

1

1

0

x& y& z x& y& z x&y& z x& y& z x&y&z.

1

0

0

1

Второй метод нахождения с.д.н.ф. – метод

 

 

 

 

1

0

1

0

равносильных преобразований. Он применяется, когда

1

1

0

0

булева функция задана в виде формулы и состоит в

1

1

1

1

следующем. Для заданной формулы А находим д.н.ф.

(которая всегда существует) и пусть д.н.ф. равна:

 

 

 

 

D1 D2 … Dm (m 1),

где Di (1im) – элементарное произведение. Построенная д.н.ф. может удовлетворять указанным условиям, тогда это с.д.н.ф.

Если в некоторое Di входит хотя бы одна переменная вместе с ее отрицанием, то Di – противоречие и из д.н.ф. Di можно исключить. Если при такой процедуре нужно отбросить все слагаемые из д.н.ф., то А – противоречие и с.д.н.ф. не существует.

Если в некоторое Di не входит одна из переменных xj формулы А, то заменяем Di на равносильную:

(Di& xj) ( Di& xj).

Таким образом, добиваемся, чтобы каждое слагаемое содержало все аргументы формулы А.

Если в полученной форме окажутся одинаковые слагаемые, то оставляем только одно из них. В результате получим с.д.н.ф.

Правая часть разложения (3.20):

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]