Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

discr_math

.pdf
Скачиваний:
69
Добавлен:
14.05.2015
Размер:
2 Mб
Скачать

30

3 х1,

12 x1 ,

(переменная x1 )

(отрицание переменной x1 )

4

 

,

 

11 x2 x1,

x2 x1

(отрицание импликации )

(импликация)

5 x2 ,

10

 

,

 

x2

(переменная x2 )

(отрицание переменной x2 )

6

 

,

9 x1 x2 ,

(x1 x2 )

(отрицание эквиваленции,

(эквиваленция)

неравнозначность

 

 

 

 

 

или сложение по модулю 2 x1 x2 )

 

 

 

 

 

7 x1 x2 ,

8

 

.

x1 x2

(дизъюнкция)

(отрицание дизъюнкции,

 

 

 

 

 

“не «или»” (not or)),

 

 

 

 

 

или стрелка Пирса x1 x2 )

Нетрудно заметить, что все «горизонтальные» пары функций —

0 и 15 , 1 и 14 , …, 7 и 8 связаны между собой операцией

отрицания. Например, 2 13 , 7 8 .

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

В этом разделе мы покажем, что любую логическую функ-

цию можно представить в виде суперпозиции трех операций – конъюнкции, дизъюнкции и отрицания.

Сначала докажем простую лемму.

31

Лемма. Для любой логической функции f (x1, ,xn) справедливо

следующее представление3:

f (x1,...,xi ,...,xn ) xi f (x1,...,xi 1,1,xi 1,...,xn )

 

xi f (x1,...,xi 1,0,xi 1,...,xn) .

(3.1)

 

► Доказательство леммы достаточно тривиально. Перемен-

ная xi

может принимать только два значения:

0 или 1.

 

1.

Если xi 0, то подстановка этого значения в (3.1) приводит

 

к равенству:

 

 

 

f (x1,...,0,...,xn) 0 f (x1,...,1,...,xn) 1 f (x1,...,0,...,xn),

которое, в силу соотношений 0 f 0,

1 f f , 0 f

f ,

можно записать в виде:

 

 

f(x1,...,0,...,xn) 0 f (x1,...,0,...,xn) f (x1,...,0,...,xn).

Врезультате мы пришли к тождеству, справедливому для лю-

бых наборов значений переменных x1, xi 1,xi 1, ,xn .

2. Если же xi 1, то из (3.1) получим:

f (x1,...,1,...,xn) 1 f (x1,...,1,...,xn) 0 f (x1,...,0,...,xn)

f (x1,...,1,...,xn) 0 f (x1,...,1,...,xn).◄

Пусть f (x1,...,xn) – произвольная логическая функция. При-

меним лемму, полагая xi x1 . Тогда

3 Равенство двух логических функций обозначается символом и понимается как равенство двух отображений. Символ в логике высказываний соответствует тавтологичности эквиваленции.

32

f (x1,...,xn) x1 f (1,...,xn) x1 f (0,...,xn).

(3.2)

Как мы уже отмечали, запись правой части можно немного упро-

стить, опуская символы конъюнкции:

f (x1,...,xn) x1 f (1,...,xn) x1 f (0,...,xn ) .

(3.3)

На следующем шаге применим лемму по переменной x2

к функци-

ям f (1,x2,...,xn) и f (0,x2,...,xn) :

 

f (1,x2,...,xn) x2 f (1,1,...,xn)

 

f (1,0,...,xn ),

 

x2

 

f (0,x2,...,xn ) x2 f (0,1,...,xn)

 

f (0,0,...,xn ).

(3.4)

x2

Подставляя (3.4) в (3.3), получим (для сокращения формы записи вместо f (1,1, ,xn ) используем обозначение f (1,1)):

f (x1,...,xn) x1(x2 f (1,1) x2 f (1,0)) x1(x2 f (0,1) x2 f (0,0)).

Раскрывая здесь скобки, в силу дистрибутивности операций и ,

получим:

f (x1,...,xn) x1x2 f (1,1,...,xn) x1 x2 f (1,0,...,xn)

x1 x2 f (0,1,...,xn) x1 x2 f (0,0,...,xn) . (3.5)

Теперь введем следующие обозначения:

 

 

x

i

,

если

 

i

1,

 

i

 

 

 

 

i 1,2.

 

xi

 

 

 

 

 

 

 

(3.6)

 

 

 

,

если

i

 

 

xi

0;

 

 

 

 

 

 

 

 

 

 

 

В этих обозначениях равенство (3.5) можно записать в компактной форме:

f (x1,x2,...,xn)

 

x1 1 x2 2

f ( 1, 2,x3,...,xn).

(3.7)

 

( 1 , 2 ) B2

 

 

 

33

Здесь В2 В В {(0,0), (0,1), (1,0), (1,1)}, и правая часть в (3.7)

представляет собой дизъюнкцию («сумму») некоторых конъюнкций

(т.е. выражений вида

x 1 x

2

f (

,

2

,x ,...,x

n

) ) по всевозможным

 

1

2

1

 

3

 

упорядоченным парам

( 1, 2) B

2 .

 

 

 

 

Равенство (3.7)

называют дизъюнктивной нормальной фор-

мой (сокращенно – ДНФ) или дизъюнктивным разложением логи-

ческой функции f (x1,x2 ,...,xn ) по переменным x1 и x2 . Если мы последовательно продолжим вышеописанную процедуру для пере-

менных x3,x4 ,...,xn , то после конечного числа шагов получим ра-

венство, в котором все аргументы функции f в правой части будут заменены символами 1 или 0:

f (x1,x2,...,xn)

 

x1 1 x2 2 xn n f ( 1, 2,..., n).

(3.8)

 

 

 

 

 

( 1, 2 , , n ) Bn

 

В (3.8) выражения

x i задают формулой (3.6), где i 1,2,...,n , и

 

 

 

 

 

 

i

 

 

дизъюнкция

ведется по

всевозможным упорядоченным

наборам

( ,

2

,...,

n

)

из Bn

B ... B (n раз). Таким образом, мы прихо-

1

 

 

 

 

 

 

дим к следующей теореме.

Теорема 3.4. Любая логическая функция f (x1,...,xn) может быть представлена в виде (3.8).

Определение 3.13. Равенство (3.8) называется совершенной дизъ-

юнктивной нормальной формой (СДНФ) логической функции

f (x1,...,xn).

34

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

Исходные данные для построения СДНФ содержатся в таблице зна-

чений истинности функции.

Пример 3.22. Построить СДНФ логической функции, заданной таблицей 3.19.

x1

x2

x3

f (x1,x2,x3)

 

0

0

0

1

 

0

0

1

0

 

0

1

0

0

 

0

1

1

1

 

1

0

0

0

 

1

0

1

1

 

1

1

0

0

 

1

1

1

0

Табл. 3.19

 

 

 

 

Используя последний столбец таблицы, составим элементарные конъюнкции:

значению f (0,0,0) 1 в первой строке таблицы соответству-

ет конъюнкция x1 x2 x3 f (0,0,0) x1 x2 x3 1 x1 x2 x3 ;

значению f (0,0,1) 0

соответствует конъюнкция x1 x2 x3 0 ,

которая является противоречивой x1 x2 x3 0 0. Поэтому при составлении СДНФ мы можем каждый раз пропускать все строки таблицы, где значение f 0 ;

35

четвертая и шестая строки таблицы порождают элементар-

ные конъюнкции x1 x2 x3 и x1 x2 x3 соответственно.

В итоге СДНФ логической функции, заданной таблицей 3.19,

имеет вид

f (x1,x2,x3) x1 x2 x3 x1 x2 x3 x1 x2 x3 .

Пример 3.23. Логическую функцию

f (x1,x2) (x1 x2)

предста-

вить в виде СДНФ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Составим таблицу 3.20 значений функции f (x1,x2)

 

 

x1

 

x2

 

 

x1 x2

 

 

 

 

 

 

 

 

 

 

 

x1 x2

 

 

 

 

0

 

0

 

 

1

 

0

 

 

 

 

0

 

1

 

 

0

 

1

 

 

 

 

1

 

0

 

 

0

 

1

 

 

 

 

1

 

1

 

 

1

 

0

 

Табл. 3.20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СДНФ логической функции имеет следующий вид:

 

 

 

 

 

 

x2 x1

 

.

 

 

(3.9)

 

 

x1 x2

x1

x2

 

 

Наряду с СДНФ для логической функции существует «сим-

метричное» представление в вид конъюнкции элементарных дизъ-

юнкций – равенство, называемое совершенной конъюнктивной нор-

мальной формой (СКНФ).

Теорема 3.5. Для любой логической функции f (x1,...,xn) справедли-

во представление вида:

36

f (x1,...,xn)

 

 

(x11 1 x12 2 x1n n f ( 1, 2, , n)), (3.10)

 

( 1 , 2 , , n ) Bn

 

в котором конъюнкция проводится по всевозможным упорядочен-

ным наборам из Bn , а выражения xi1 i задаются равенствами, ана-

логичными соотношениям (3.6):

1

 

 

 

,если

 

 

1,

 

 

x

i

i

,n.

xi

i

 

,если

 

i 1,

 

 

x

i

i

0,

 

 

 

 

 

 

 

 

Пример 3.24. Представить функцию неравнозначности

f(x1,x2) (x1 x2) (табл.3.20) в виде СКНФ:

строке f (0,0) 0 таблицы соответствует элементарная дизъюнкция x11 0 x21 0 0 x1 x2 ;

строке f (1,1) 0 соответствует дизъюнкция

x1 1x

1 1

0

x

 

x

;

 

 

1

2

1

2

 

 

 

строки, в которых значение

f (x1,x2) 1, можно не учиты-

вать, поскольку для любых функций и

1 1 и

1 .

 

 

 

 

 

В целом СКНФ неравнозначности имеет вид:

 

(x1 x2) (x1 x2)(x1 x2).

(3.11)

При построении совершенных нормальных форм часто ис-

пользуют следующий прием. Если таблица истинности функции f

содержит больше единиц, чем нулей, то для получения формулы,

37

представляющей логическую функцию, можно сначала записать СДНФ функции f , а затем с помощью операции отрицания вер-

нуться к исходной функции.

Пример 3.25. Составить логическую формулу, реализующую функ-

цию f (x1,x2,x3) , заданную табл. 3.21.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

x2

x3

f (x1,x2,x3)

 

f (x1,x2,x3)

 

 

0

 

 

0

0

1

0

 

 

0

 

 

0

1

1

0

 

 

0

 

 

1

0

1

0

 

 

0

 

 

1

1

1

0

 

 

1

 

 

0

0

1

0

 

 

1

 

 

0

1

1

0

 

 

1

 

 

1

0

1

0

 

 

1

 

 

1

1

0

1

Табл. 3.21

 

 

 

 

 

 

 

 

 

 

 

 

СДНФ для функции

 

имеет вид

 

x1 x2 x3 . Тогда, с учетом зако-

f

f

нов e Моргана, получим:

 

 

 

 

 

 

 

f ( f ) x1 x2 x3 x1 x2 x3 x1 x2 x3 .

Упрощение формы записи логических функций

Формулы 3.9 и 3.11 показывают, что одна и та же логическая функция может быть представлена различными по виду формулами.

При этом для последующего анализа свойств логической функции лучше использовать формулы, которые содержат меньшее количе-

38

ство символов. Поскольку любая формула (с большим или меньшим количеством символов) отражает структуру одной и той же таблицы истинности (соответствует одной и той же функции), мы можем на-

звать эти формулы эквивалентными. Такое понятие эквивалентности целиком согласовано с определением 3.11 и представляет собой от-

ношение эквивалентности на множестве логических формул.

Перечислим основные приемы (преобразования), которые

позволяют получать новые формулы, эквивалентные данным.

1. Пусть

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

f F1 и

f F2

. Тогда, очевидно, F1 F2 и для перехода от

F1 к F2

прежде всего будут использовать все эквивалентности, свя-

занные с основными законами логики.

2.Если правая часть равенства f F содержит в качестве подформулы некоторую формулу F1, то замена F1 на фор-

мулу F2 F1 не изменит логической функции f .

3.Использование операций (законов):

элементарного поглощения:

x xy x y ;

(3.12)

поглощения:

 

x xy x;

(3.13)

x(x y) x;

(3.14)

склеивания:

 

 

 

x;

(3.15)

xy xy

 

 

 

 

 

39

обобщенного склеивания:

 

 

 

 

 

 

(3.16)

xz yz

xy xz yz .

Мы уже доказывали законы (3.13), (3.15). Теперь проверим справед-

ливость формул (3.12) и (3.16).

Доказательство эквивалентности (3.12).

x xy

(воспользуемся дистрибутивностью дизъюнкции относительно конъюнкции)

(x x) (x y) 1 (x y) x y.◄

Доказательство эквивалентности (3.16).

xz yz xy

(для выражения xy применим формулу (3.15) xy xyz xyz)

xz yz xyz xyz

(в силу коммутативности дизъюнкции и конъюнкции перегруппиру-

ем «слагаемые»)

xz xzy yz yzx

(воспользуемся дистрибутивностью и «вынесем за скобки» выраже-

ния xz и yz )

zx(1 y) yz(1 x) xz1 yz1 xz yz .◄

Пример 3.26. Упростить СДНФ функции

f xyz xyz xyz xyz xyz .

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