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

Тырсин А.Н. Учебное пособие по дискретной математике

.pdf
Скачиваний:
107
Добавлен:
28.11.2019
Размер:
2.65 Mб
Скачать

Искомая СДНФ логической функции f(x, y, z) равна

f (x, y, z) x y z x y z x y z x y z x y z .

Приведение к дизъюнктивной нормальной форме.

Определение 4.3. Дизъюнктивной нормальной формой (ДНФ)

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

Алгоритм приведения к ДНФ заключается в следующем:

1.Все отрицания довести до отдельных переменных с помощью (4.12),

(4.13).

2.Раскрыть скобки с помощью (4.3) – (4.6).

3.Удалить лишние конъюнкции и повторения переменных с помощью

(4.7) – (4.10).

4.Удалить константы с помощью (4.11).

Процедура приведения ДНФ к СДНФ состоит в расщеплении (обратном склеивании) путем использования (4.18) в обратную сторону всех элементарных конъюнкций, которые содержат не все переменные.

Приведение к конъюнктивной нормальной форме.

Определение 4.4. Конъюнктивной нормальной формой (КНФ)

называется конъюнкция элементарных дизъюнкций.

Пусть ДНФ имеет вид F = k1 k2 km, где k1, k2, , km – элементарные конъюнкции. Процедура приведения ДНФ к КНФ

заключается в следующем:

1. Наложить на F двойное отрицание

 

 

 

 

 

 

 

 

 

 

 

 

F k1 k2 km

 

 

 

 

 

 

 

 

 

 

 

 

 

 

к ДНФ k '

k '

k ' , где

k '

, k '

, , k '

 

и привести k

k

2

k

m

 

1

 

 

 

1

2

l

1

2

l

 

элементарные конъюнкции. Тогда

Fk1 k2 km k1 k2 km k1' k2' kl' .

2.С помощью правил де Моргана освободиться от второго отрицания и

преобразовать отрицания элементарных конъюнкций в элементарные дизъюнкции d1, d2, , dl. В результате получим

F k1' k2' kl' k1' k2' kl' d1 d2 dl .

Совершенной КНФ (СКНФ) называется КНФ, каждая элементарная дизъюнкция которой содержит все переменные.

31

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

f x y x ( y x z) (x ( y z) y z) .

Решение. Воспользуемся свойством дистрибутивности конъюнкции относительно дизъюнкции и правилом де Моргана:

f x y (x y x x z) (x ( y z)) y z .

Далее применим закон противоречия (4.9), свойства констант (4.11), правила де Моргана (4.13):

f x y x y (x y z) ( y z) .

Раскрываем скобки:

f x y x y (x y y z y x z y z z)

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

Снова используем закон противоречия (4.9), свойства констант (4.11) и идемпотентность конъюнкции (4.7):

f x y x y z .

Воспользуемся далее дистрибутивностью конъюнкции относительно дизъюнкции (4.5) и формулой (4.20) и получим ДНФ:

f y (x x z) y (x z) x y y z .

Полученную ДНФ приведем к СДНФ расщеплением (обратным склеиванием) по формуле (4.18) в обратную сторону всех элементарных конъюнкций, которые содержат не все переменные:

f x y y z x y 1 1 y z (x y (z z)) ((x x) y z)x y z x y z x y z x y z x y z x y z x y z .

Пример 4.6. Привести к КНФ и СКНФ формулу f x y x y x z .

Решение. Наложим на исходную формулу двойное отрицание и, используя правило де Моргана, опустим одно отрицание на переменные:

f x y x y x z (x y) (x y) (x z)

(x x y x x y y y) (x z).

Воспользовавшись законом противоречия (4.9), получим: f ( y x x y) (x z) .

Раскрывая скобки и снова используя законом противоречия (4.9) и идемпотентность конъюнкции (4.7), получим:

f y x x x y x y x z x y z x y x y z y x z .

Используя свойство поглощения (4.17), имеем:

f x y x y z .

32

Далее, применяя правило де Моргана, «опустим» отрицание на переменные и получим КНФ:

f (x y) (x y z) (x y) (x y z) .

Преобразуем КНФ к СКНФ. Для этого достаточно преобразовать выражение в скобках (x y). Используем закон противоречия (4.9), свойства констант (4.11) и дистрибутивность дизъюнкции относительно конъюнкции (4.6):

f (x y 0) (x y z) (x y z z) (x y z)(x y z) (x y z) (x y z) .

4.6. Принцип двойственности. Булева алгебра и теория множеств

Пусть имеем функцию f(x1, x2, , xn). Двойственной к f называется

функция g f (x1, x2 , ... , xn ).

Отношение двойственности симметрично. Если g двойственна к f, то f – двойственна к g.

Функция, двойственная к самой себе, называется самодвойственной.

Принцип двойственности:

Если в формуле F, представляющей функцию f, все знаки функций заменить соответственно на знаки двойственных функций, то полученная формула G будет представлять функцию g, двойственную f.

Теорема 4.3. Если функции равны, то и двойственные им функции также равны.

Принцип двойственности в булевой алгебре:

Если в формуле F, представляющей функцию f, все конъюнкции заменить на дизъюнкции, дизъюнкции на конъюнкции, 1 на 0, 0 на 1, то получим формулу G, представляющую функцию g, двойственную f.

Справедливы следующие теоремы:

Теорема 4.4. Если U R , то булева алгебра множеств (β(U); , , ) изоморфна булевой алгебре двоичных векторов (Bl; , , ).

Теорема 4.5. Если U 2n , то булева алгебра множеств (β(U); , , ) изоморфна булевой алгебре логических функций (P2(n); , , ).

33

Таким образом,

если

 

U

 

l 2n , то

 

(U )

 

 

 

B

 

 

 

P (n)

 

, и между

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

 

 

2

 

 

множествами β(U),

Bl,

P2(n) устанавливается взаимнооднозначное

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

Всякая алгебра, содержащая две бинарные и одну унарную операцию, называется булевой, если ее операции удовлетворяют основным равносильностям.

Примеры булевых алгебр:

1)(P2; , , ) – булева алгебра логических функций;

2)(P2(n); , , ) – булева алгебра логических функций n переменных,

являющаяся подалгеброй алгебры (P2; , , ), P2(n) P2;

3)(β(U); , , ) – булева алгебра множеств над U с операциями пересечения, объединения, дополнения.

4)(Bn; , , ) – булева алгебра двоичных векторов длины n.

Глава 5. Логика предикатов

5.1. Предикаты. Основные понятия

Логика предикатов представляет собой развитие логики высказываний.

Предикат – это функциональное высказывание. Высказывание в предикате является предикатной константой.

Предикат, содержащий n переменных, обозначается P(x1, x2, , xn),

где xi Mi , i 1, 2 , ... , n .

Предикаты могут объединяться с помощью логических связок и скобок в предикатные формулы.

Исследование предикатных формул и способов установления их истинности является предметом логики предикатов.

Логика предикатов – это расширение логики высказываний за счет использования предикатов в роли логических функций. Эти функции отличаются от булевых функций.

Булева функция однородна, так как для нее область значений функции и область изменений аргументов по типу одна и та же – логическая (либо «истина», либо «ложь»).

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

Рассмотрим примеры предикатных функций.

34

Пример 5.1. Пусть имеется ряд простых высказываний:

Р1 = «Иван читает Достоевского», Р2 = «Петр читает Достоевского»,

…………………………………….

Рn = «Степан читает Достоевского».

Если вместо конкретных имен в высказываниях Рi подставить переменную x и определить ее на множестве имен

x {Иван, Петр, … , Степан},

то получим одноместный предикат P(x), который передается словами:

P(x) = «x читает Достоевского».

Теперь изменим исходный ряд высказываний на другой:

Р1 = «Иван читает Достоевского», Р2 = «Петр читает Толстого»,

…………………………………….

Рn = «Степан читает Чехова».

В этом случае имеем двухместный предикат P(x, y) = «x читает y» c дополнительной предметной областью

y {Достоевский, Толстой, …, Чехов}.

Определение 5.1. n-местный предикат – это функция P(x1, x2, , xn)

от n переменных, которые принимают значения из некоторых заданных предметных областей xi Mi, i = 1, … , n, а сама функция P(x1, x2, , xn) может принимать только одно из двух логических значений – «истинно» или «ложно» ({1; 0}, {И; Л}).

Соответствия между предикатами, функциями и отношениями:

1. Для любых M, n существует взаимнооднозначное соответствие

между n-местными отношениями

R M n

и

n-местными

 

предикатами

P(x1, x2, , xn),

P : M n B , такое что:

 

 

 

 

 

 

 

 

 

 

-

любому

n-местному

отношению

R

соответствует

предикат

P(x1, x2, , xn),

такой

что

P(a1, a2, , an) = 1,

если

и

 

только

если

(a1, a2, , an) R;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

всякий

предикат P(x1, x2, , xn) определяет

отношение

R,

такое

что

(a1, a2, , an) R, если и только если P(a1, a2, , an) = 1.

 

 

 

 

 

 

В данном случае отношение R задает область истинности

предикатов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Любой функции

f (x , ... , x

n

), f : M n

M , соответствует предикат

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

P(x , ... , x

n

, x

) , P : M n 1 B , такой что

P(a , ... , a

n

, a

n 1

) 1, если и

 

1

 

n 1

 

 

 

 

 

 

1

 

 

 

 

 

только если

f (a1, ... , an ) an 1 .

 

 

 

 

 

 

 

 

 

 

 

 

35

Пример 5.2. Каким отношениям и функциям соответствуют следующие предикаты, определенные на множестве натуральных чисел N:

1.Предикат тождества E: N2 B, E(a1, a2) = 1, тогда и только тогда, когда a1 = a2.

2.Предикат разности Q: N3 B, Q(a1, a2, a3) = 1, тогда и только тогда,

когда a1 a2 = a3.

Решение.

1. Двухместному предикату тождества E = «x1 = x2» взаимно однозначно соответствуют:

- двухместное отношение R1 – «быть равным», R1 N2: (a1, a2) R1, тогда и только тогда, когда E(a1, a2) = 1;

- одноместная функция тождества f1(x) = x, f: N N.

2. Трехместному предикату разности Q = «x1 x2 = x3» взаимно однозначно соответствуют:

- трехместное отношение R2 N3: (a1, a2, a3) R2, тогда и только тогда,

когда Q(a1, a2, a3) = 1;

- двухместная функция – разность f2(x1, x2) = x3, где x1 x2 = x3.

5.2. Кванторы

Функциональная природа предиката влечет за собой введение еще одного понятия – квантора.

Кванторы – это собственные связки логики предикатов. Их два. Это квантор общности и квантор существования . Определим их.

Определение 5.2. Пусть P(x) – предикат, x M. Высказывание «для всех x из М P(x) – истинно» обозначается» x P(x). Знак x называется

квантором общности.

Определение 5.3. Высказывание «существует такой x из М, что P(x) – истинно» обозначается x P(x). Знак x называется квантором существования.

Переход от предиката P(x) к x P(x) или x P(x) называется

связыванием переменной x, или навешиванием квантора на переменную х.

Переменная, на которую навешен квантор, называется связанной. Несвязанная квантором переменная называется свободной. Выражения x P(x) и x P(x) не зависят от x, и при фиксированных P

и М представляют собой конкретные высказывания относительно всех x предметной области М.

Выставление кванторов перед предикатами усиливает или ослабляет их действие. Так, выражение x P(x) означает «для всех без исключения x

36

свойство P истинно». Это равносильно тому, что сказать «конъюнкция всех значений предикатной функции равна единице»:

x P(x) P(a) & P(b) & P(c) & ... 1.

Выражение x P(x) означает «существует по крайней мере одно значение x, для которого свойство Р истинно». Это равносильно тому, что сказать «дизъюнкция всех значений предикатной функции равна единице»:

x P(x) P(a) P(b) P(c) ...

1.

Навешивать кванторы можно и на многоместные предикаты и любые логические выражения.

Пример 5.3. Пусть Z(x) – предикат «x – целое число». Рассмотреть варианты навешивания кванторов. Проинтерпретировать полученные высказывания и определить их истинность.

Решение. x P(x) – высказывание «все числа – целые» истинно на любом множестве целых чисел и ложно, если множество М содержит хотя бы одно нецелое число, например дробное или рациональное.

x P(x) – высказывание «существует целое число x» истинно на любом множестве М, содержащем хотя бы одно целое число, и ложно в противном случае.

5.3. Выполнимость и истинность

Для формул логики предикатов выделяют три основных случая:

1. Формула F(x1, ... , xn ) называется выполнимой в области М, если в

этой области для формулы F существует хотя бы одна подстановка констант a1, …, an при которых F(a1, ... , an ) становится истинным

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

2. Формула F(x1, ... , xn ) называется тождественно истинной в

области М, если F выполнима в М при любых подстановках констант.

Формула F называется тождественно истинной или общезначимой, если она тождественно истинна в любых М.

3. Формула F называется тождественно ложной в области М, если F

невыполнима в М. Формула F называется тождественно ложной или противоречивой, если она тождественно ложна в любых М.

Пример 5.4. Доказать истинность формулы

x (P(x) & Q(x)) P(x) .

Решение. Предположим противное. Пусть формула ложна. Тогда найдется хотя бы одна константа а, при подстановке которой формула станет ложной. Это возможно, лишь тогда и только тогда, когда P(a) = 0 и

P(a) & Q(a) = 1.

37

P(a) & Q(a) = 1 тогда и только тогда, когда P(a) = 1 и Q(a) = 1.

Таким образом, должно быть одновременное выполнение двух взаимно противоречащих друг другу условий P(a) = 0 и P(a) = 1, что невозможно. Следовательно, исходная формула истинна.

5.4. Эквивалентные соотношения. Префиксная нормальная форма

Предикатные формулы, принимающие при любых подстановках констант, одинаковые значения, называются эквивалентными.

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

Поэтому в логике предикатов используется эквивалентные соотношения, позволяющие выполнить корректные преобразования предикатных формул.

Влогике предикатов справедливы:

1)Все эквивалентные соотношения логики высказываний;

2)Собственные эквивалентные соотношения включающие кванторы

и . Эти собственные эквивалентности следующие (здесь Y – переменное высказывание или формула, не содержащая x):

 

 

 

 

 

 

 

 

 

1.

 

x P(x) x P(x) .

 

 

(5.1)

 

 

 

 

 

 

 

 

 

2.

 

x P(x) x P(x) .

 

 

(5.2)

3.

x P (x) & P (x) x P (x) & x P (x) .

(5.3)

 

1

2

 

1

2

 

4.

 

x P (x) P (x) x P (x) x P (x) .

(5.4)

 

1

2

 

1

2

 

5.

x y P(x, y) y x P(x, y) .

 

(5.5)

6.

 

x y P(x, y) y x P(x, y) .

 

(5.6)

7.

x P(x) & Y x P(x) & Y .

 

(5.7)

8.

x P(x) Y x P(x) Y .

 

(5.8)

9.

x P(x) & Y x P(x) & Y .

 

(5.9)

10. x P(x) Y x P(x) Y .

 

(5.10)

В логике предикатов также как и в логике высказываний, существует эквивалентные нормальные формы представления любых предикатных формул. Одной из них является префиксная нормальная форма (ПНФ).

Определение 5.4. Префиксной нормальной формой называется формула, имеющая вид Q1x1Q2x2 QnxnF, где Q1x1, Q2x2, …, Qnxn – кванторы; F – формула, не имеющая кванторов, с операциями { , , }.

Процедура получения ПНФ:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Используем формулы P P (P P ) & (P P ) , P P P P

,

1

2

1

2

2

1

1

2

1

2

 

и заменяем операции , на , , .

38

2. Используем формулы (5.1), (5.2), а также закон двойного отрицания и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

правила де Моргана

P P ,

P P

P & P ,

P & P P P , и

 

 

 

1

2

1

2

 

1

2

1

2

 

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

3. Для

формул,

содержащих

подформулы

вида xP (x) xP (x) ,

 

 

 

 

 

1

2

xP (x) & xP (x) ,

xP (x) xP (x),

xP (x) & xP (x), вводим

новые

1

2

1

2

1

2

 

переменные, позволяющие использовать соотношения (5.7) – (5.10). 4. С помощью формул (5.3) – (5.10) представить формулу в виде ПНФ.

Пример 5.5. Получить ПНФ предикатной формулы:

 

x y P (x, y) & x y P (x, y)

 

1

2

 

Решение. Поскольку в данной предикатной формуле имеются два

высказывания

x y P (x, y) и

x y P (x, y) , объединенные связкой & и

 

 

1

2

общим отрицанием , то, применив правило де Моргана к исходной формуле, получим:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x yP (x, y) & x yP (x, y)

x yP (x, y) x yP (x, y) .

1

2

 

 

1

2

 

 

 

Воспользуемся далее эквивалентным соотношением (5.1):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x y P (x, y) x y P (x, y) x y P (x, y) x y P (x, y) .

1

2

 

 

1

2

 

 

 

Продолжая перемещение символов отрицания непосредственно к

символам предикатов, используем равенство (5.2):

 

 

 

 

 

 

 

 

 

 

x y P (x, y) x y P (x, y)

x y P (x, y) x y P (x, y) .

1

2

 

 

1

2

 

 

 

Так как

квантор общности

x не

дистрибутивен относительно

дизъюнкции , поменяем в одном из предикатов, например во втором, переменную x на переменную z:

 

 

 

 

 

 

 

 

 

 

 

 

x y P (x, y) x y P (x, y) x y P (x, y) z y P (z, y) .

1

2

 

1

 

2

 

 

Воспользовавшись дважды соотношением (5.8), получим:

 

 

 

 

 

 

 

 

 

x y P (x, y) x y P (x, y) x z ( y P (x, y) y P (z, y)) .

1

2

 

1

2

 

 

Так как

квантор существования

y

дистрибутивен относительно

дизъюнкции , то, применив равенство (5.4), окончательно получим ПНФ для исходной предикатной формулы:

x z ( y P (x, y) y P (z, y)) x z y (P (x, y) P (z, y)) .

1

2

1

2

39

Раздел III. Элементы комбинаторики

Комбинаторика – раздел математики, изучающий комбинации и перестановки элементов в конечных множествах. Комбинаторика возникла как «математика досуга», так как с ее помощью рассчитывались шансы участников карточных и других азартных игр. Возможности комбинаторики и круг ее приложений в связи с появлением мощной вычислительной техники резко расшились. Сейчас комбинаторные методы применяются в теории вероятностей, статистике, экономике, физике, химии, биологии и других областях науки.

Глава 6. Основные понятия комбинаторики

6.1. Основной принцип комбинаторики

Теорема 6.1. (Правило произведения). Пусть подсчитывается количество объектов, каждый из которых строится в результате последовательного выполнения n действий. Первое действие может быть выполнено а1 способами, второе а2 способами, , последнее – аn способами, при этом количество способов выполнить каждое действие не зависит от того, какими были предыдущие действия. Тогда общее количество объектов равно а1 а2 аn..

Данная теорема доказывается методом математической индукции. Эту теорему называют основным принципом комбинаторики.

Рассмотрим множество или, как мы будем говорить, генеральную совокупность из n элементов а1, , аn. Произвольное множество (аj1, , аjr) из r элементов, входящих в генеральную совокупность, называют выборкой объема r из этой генеральной совокупности.

Выборки классифицируются следующим образом:

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

2.В зависимости от того, могут или не могут элементы выборки повторяться, ее называют выборкой с повторениями или выборкой без повторений. Упоминание об отсутствии повторений часто опускают, в то время как допустимость повторений элементов в выборке всегда специально оговаривается.

Число элементов выборки называют ее объемом. Выборку объема r называют r-выборкой.

Задачи, в которых подсчитывается количество возможных комбинаций объектов, удовлетворяющих определенным условиям,

называются комбинаторными. Для формулировки и решения

40