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

Математическая логика и теория алгоритмов. Учебное пособие-1

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
932 Кб
Скачать

Алгебра высказываний

(P Q) ˅ (Q P);

( P → (Q ˄Q )) → P.

12. Докажите:

Если |= F ˄ G, |= F G, то |= G F.

Если |= F G, |= G ˅H , то |= H F.

|= F G тогда и только тогда, когда |= (F G) ˄ (G F).

13. Докажите, что справедливы следующие логические следования, согласно определению этого понятия:

(P R ) → Q => (P Q) ˄ R.

(P Q) ˅ R => ( P Q ) ˅ R.

14. Использовав определение этого понятия, выясните, справедливы ли логические следования:

P Q, P Q => P ;

(P Q) → Q, P , Q => P;

P Q, R S, P ˄ R => Q ˄ S;

P Q, R S, P ˅ R => Q ˅ R;

15. Методом от противного выясните, верны ли следующие логические следования:

F G, G H, H => F .

G F, K L, G ˅ K => F ˅ L.

16.Андрей или очень переутомился (А), или болен (В). Если он переутомился, то он раздражается (С). Он не раздражается. Следует ли отсюда, что он не болен?

17.Или Анна и Антон одного возраста (А), или Анна старше Антона (В). Если Анна и Антон одного возраста, то Наташа и Антон не одного возраста (С). Если Анна старше Антона, то Антон старше Николая (D). Следует ли отсюда, что либо Наташа и Антон не одного возраста, либо Антон старше Николая?

18.Если я поеду автобусом (А) и автобус опоздает (В), то пропущу назначенное свидание (С). Если я пропущу назначенное свидание и начну огорчаться (D), то мне не следует ехать домой (Е). Если я не получу работу (Р), то начну огорчаться и мне следует ехать домой. Следует ли отсюда, что если я поеду автобусом и автобус опоздает, то я получу работу?

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

(X Y) → (X ˄ Z).

(X Z ) ˄ (X Y). ( X ˄Y ) ˅ (X Z).

21

Глава 1

20.Использовав СДН-форму, найдите формулу, принимающую значение 1 на следующих наборах значений переменных и только на них:

F(0, 0) = F(1, 1) = 1;

F(1, 0, 0) = F(0, 1, 0) = F(0, 0, 1) = 1.

21.Использовав СКН-форму, найдите формулу, принимающую значение 0 на следующих наборах значений переменных и только на них:

F(1, 0, 0) = F(1, 0, 1) = 0; F(1, 0, 0, 0) = F(0, 1, 1, 1) = 0;

22.Для каждой из следующих формул алгебры высказываний с помощью ее таблицы истинности найдите СДНФ и СКНФ:

(X Z) →(X ˄Y );

((X ˅ Y) → Z) ↔X .

23. Сколько существует неравносильных между собой формул G(P, Q, R) оттрехпеременных, являющихсялогическимиследствиямиформулы:

(P Q) ˄R ;

(P ˅ R) → (P ˄ Q).

24*. Пусть A и B – формулы с тесными отрицаниями и A*, B* – формулы, двойственные к A и B соответственно (A* получается из A заменой ˄ на˅, ˅на ˄). Доказать, что из A = B следует A* = B* (закон двойственности).

25*. Постройте формулу от трех переменных, которая принимает такое же значение, как и большинство (меньшинство) переменных.

26*. По СКНФ формулы A построить:

СДНФ A*, где A* – двойственная к A (см. задачу 24); СКНФ формулы A;

СДНФ формулы A.

27*. Пусть формула A не содержит других связок, кроме ↔. Доказать, что A является тождественно истинной тогда и только тогда, когда каждая переменная входит в A четное число раз.

22

Булевы функции

ГЛАВА 2. БУЛЕВЫ ФУНКЦИИ

2.1. Определение и свойства булевых функций

Определение. Булевой функцией от n переменных x1, x2, …, xn называется отображение f множества {0, 1}n в множество {0, 1}:

f: {0, 1}n → {0, 1}.

Замечание. Множество {0, 1} в этом определении можно заменить любым другим двухэлементным множеством {a, b}.

Будем обозначать через P2 (n) множество всех булевых функций n переменных. Из комбинаторного правила произведения следует теорема.

Теорема. Мощность множества P2 (n) равна 22n.

Рассмотрим подробнее булевы функции одной и двух переменных. 1. Функцийоднойпеременной4 (221), иихудобнопривестивтаблице:

x

f1

f2

f3

f4

0

0

0

1

1

1

0

1

0

1

Обозначение

0

x

 

 

 

1

 

x

В последней строке таблицы x читается как «отрицание x».

2. Функций двух переменных 16 (222), и их тоже приведем в таблице:

x

y

g1

g2

 

g3

g4

 

g5

g6

g7

g8

0

0

0

0

0

 

0

 

0

 

0

0

0

0

1

0

0

0

 

0

 

1

 

1

1

1

1

0

0

0

1

 

1

 

0

 

0

1

1

1

1

0

1

0

 

1

 

0

 

1

0

1

 

 

0

x y

 

 

 

 

 

x

 

 

 

 

 

y

x y

x ˅ y

 

 

 

x y

y x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

y

g9

g10

 

g11

g12

 

g13

g14

g15

g16

0

0

1

1

1

 

1

 

1

 

1

1

1

0

1

0

0

0

 

0

 

1

 

1

1

1

1

0

0

0

1

 

1

 

0

 

0

1

1

1

1

0

1

0

 

1

 

0

 

1

0

1

 

 

x y

x y

 

 

 

 

y x

 

 

 

 

 

x y

x | y

1

 

 

 

 

y

 

 

 

x

 

23

Глава 2

В последней строке таблицы, так же как и для функций одной переменной, приведены обозначения функций g1 (x, y)–g16 (x, y). Некоторые из них носят специальные названия:

g7 (x, y) = x y – сумма по модулю 2 или сумма Жегалкина; g9 (x, y) = x y = x y – стрелка Пирса;

g15 (x, y) = x | y = xy – штрих Шеффера.

Равенство булевых функций здесь и далее понимается как обычно: (f = g) ↔ ( (a, b)) {0, 1} (f (a, b) = g (a, b))).

Замечание. Иногда булевыми функциями называют только «основные» функции – дизъюнкцию, конъюнкцию и отрицание (x ˅ y, x ˄ y, x ). В этом случае остальные функции получают суперпозицией «основных», например:

x y = x ˅ y, x y = x y (x y)( y x)

Свойства булевых функций отражают соответствующие свойства операций алгебры высказываний. Отметим наиболее важные из них.

1. Свойства дизъюнкции:

x ˅ y = y ˅ x – коммутативность;

(x ˅ y) ˅ z = x ˅ (y ˅ z) – ассоциативность;

x ˅(y z) = (x ˅y) (x ˅z) – дистрибутивностьотносительноконъюнкции; x ˅ 1 = 1, x ˅ 0 = x, x ˅ x = 1.

2. Свойства конъюнкции:

x ˄ y = x ˄ y – коммутативность;

(x ˄ y) ˄ z = x ˄ (y ˄ z) – ассоциативность;

x ˄ (y ˅ z) = (x ˄ y) ˅ (x ˄ z) – дистрибутивность относительно дизъюнкции;

x ˄ 1 = x, x ˄ 0 = 0, x ˄ x = 0. 3. Свойства импликации:

x y = y x, x x = 1,

x x = x , x x = x, 1 → x = x, x → 1 = 1, x → 0 = x , 0 → x = 1,

4. Свойства эквиваленции:

x y = y x – коммутативность;

(x y) ↔ z = x ↔ (y z) – ассоциативность; x x = 1, x x = 0.

1 ↔ x = x, 0 ↔ x = x .

24

Булевы функции

5. Свойства отрицания: x y x y , x y x y ;

x = x, 1 = 0, 0 = 1.

2.2. Нормальные формы булевых функций

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

Теорема (о СДНФ). Любая булева функция, не равная нулю, представляется в виде

f (x1, x2 , , xn )

 

(x1 1 x2 2 xn n ).

 

f ( 1, 2 , , n ) 1

Теорема (о СКНФ). Любая булева функция, не равная единице,

представляется в виде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x1, x2 , , xn )

(x1 1

x2 2 xn n ).

 

f ( 1, 2 , , n ) 0

Пример. Найти СДНФ и СКНФ функции, заданной таблицей.

x

y

z

f (x, y, z)

0

0

0

1

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

1

1

0

1

1

1

1

0

0

1

1

1

0

Решение.

f(x, y, z) x yz xyz x yz x yz

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

25

Глава 2

Упражнения.

1.Построить СДНФи СКНФданной функции: f (x, y, z) = 1 только для аргументов (1,1,0), (1,1,1), (0,1,1), (1,0,1).

2.Показать, что f (x, y, z) = x y ˅ x z ˅ y z.

2.3. Классы функций, сохраняющих постоянные (P0, P1)

Далее рассмотрим пять классов булевых функций, имеющих особую роль в теории. Общим свойством этих классов является свойство их замкнутости.

Определение. Замыканием множества функций Σ называется множество [Σ] всех функций, полученных суперпозициями функций системы Σ.

Определение. МножествофункцийΣназываетсязамкнутым, еслиего замыкание совпадает с самим множеством: [Σ] = Σ.

Определение. Говорят, что функция f (x1, x2, …, xn) сохраняет 0, если

f (0, 0, …, 0) = 0 (f P0).

Определение. Говорят, что функция f (x1, x2, …, xn) сохраняет 1, если

f (1, 1, …, 1) = 1 (f P1).

Примеры.

1.Дизъюнкция сохраняет 0 и сохраняет 1, так как 0 ˅ 0 = 0 и 1 ˅ 1 = 1.

2.Импликация не сохраняет 0 и сохраняет 1, так как 0 → 0 = 1 и 1 → 1 = 1.

Теорема. Классы функций P0 и P1 замкнуты.

Доказательство: Пусть

g (x1, x2, …, xn), f1 (x1, x2, …, xm), …, fn (x1, x2, …, xm) P0.

Построим суперпозицию этих функций:

F (x1, x2, …, xm) = g (f1 (x1, x2, …, xm), …, fn (x1, x2, …, xm)),

и вычислим, например, ее значение на нулевом наборе:

F (0, 0, …, 0) = g (f1 (0, 0, …, 0), …, fn (0, 0, …, 0)) = g (0, 0, …, 0) = 0.

Это означает, что [P0] P0. Обратное вложение P0 [P0] очевидно. Аналогично доказывается замкнутость класса P1 функций, сохра-

няющих единицу.

2.4. Класс самодвойственных функций (S)

Определение. Функция f* (x1, x2, …, xn) = f (x1, x2 , , xn ) называется двойственной к функции f (x1, x2, …, xn).

26

Булевы функции

Определение. Функция f (x1, x2, …, xn) называется самодвойственной, если она равна двойственной ей функции

f* (x1, x2, …, xn) = f (x1, x2, …, xn).

Обозначим S – класс самодвойственных функций.

Теорема. Класс самодвойственных функций является замкнутым. Доказательство: Докажем вложение [S] S.

Пусть

g (x1, x2, …, xn), f1 (x1, x2, …, xm), …, fn (x1, x2, …, xm) S.

Построим суперпозицию этих функций

F (x1, x2, …, xm) = g (f1 (x1, x2, …, xm), …, fn (x1, x2, …, xm))

и рассмотрим двойственную к ней функцию:

F*(x1, x2 , , xm ) g( f1(x1, x2 , , xm ), , fn (x1, x2 , , xm ))

g( f1(x1, x2 , , xm ), , fn (x1, x2 , , xm )

=g (f1 (x1, x2, …, xm), …, fn (x1, x2, …, xm)) = F (x1, x2, …, xm).

Это означает, что [S] S. Обратное вложение также очевидно, и теорема доказана.

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

1. По определению, то есть проверить равенство f* (x1, x2, …, xn) = f (x1, x2, …, xn).

2. Использовать утверждение, приведенное ниже.

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

Поясним сказанное на примерах.

Является ли функция f (x, y, z) = x y z самодвойственной?

Решение.

1. f *(x, y, z) x y z x y z (x y) z x yz .

Полученное выражение представляет собой СДНФ. Сравним полученное выражение с функцией f (x, y, z):

f (x, y, z) = x y z = xy ˅ z = x ˅ y ˅ z

27

Глава 2

Полученное выражение представляет собой СКНФ, в которой один дизъюнкт, следовательно, в СДНФ данной функции семь компонент. В то же время в СДНФ двойственной функции одна компонента. Это означает,

что

f* (x, y, z) ≠ f (x, y, z)

иисследуемая функция не является самодвойственной.

2.Построим таблицу значений данной функции:

x

y

z

x y

x y z

0

0

0

0

1

0

0

1

0

1

0

1

0

0

1

0

1

1

0

1

1

0

0

0

1

1

0

1

0

1

1

1

0

1

0

1

1

1

1

1

Она не является антисимметричной, значит, функция не является самодвойственной (f* (x, y, z) ≠ f (x, y, z)). Действительно, например:

f (0,1,1) = 1, f* (0,1,1) = f (0,1,1) f (1,0,0) 1 0.

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

Теорема. Мощность множества S самодвойственных функций от n

переменных равна 22n–1.

Прежде чем перейти к следующему классу функций, рассмотрим еще некоторые понятия.

2.5. Алгебра и полином Жегалкина

Алгебра {0,1}, ˄, , 0,1 называется алгеброй Жегалкина. Из определения функций x y, x ˅ y, x ˄ y, x следуют свойства алгебры Жегалкина:

1)x y = y x – коммутативность суммы Жегалкина;

2)(x y) z = x (y z) – ассоциативность суммы Жегалкина;

28

Булевы функции

3)x (y z) = xy xz – дистрибутивность конъюнкции относительно суммы Жегалкина;

4)x x = 0;

5)x = x 1;

6)x 0 = x;

7)x ˅ y = xy x y;

8)x y = x y ˅x y – СДНФ суммы Жегалкина.

Важную роль в алгебре Жегалкина и вопросах полноты систем булевых функций играет так называемый полином Жегалкина.

Определение. Полиномом Жегалкина называется полином, в котором умножение заменено конъюнкцией, сложение – суммой Жегалкина, а коэффициенты – это элементы множества {0,1}.

Пример. P (x, y) = xy yz z 1 – полиномЖегалкинаотпеременных

x, y, z.

Теорема. Для любой булевой функции существует единственный равный ей полином Жегалкина.

Алгоритм построения полинома Жегалкина:

1.Построить ДНФ данной функции.

2.Выразить дизъюнкции через сумму Жегалкина по формуле

x˅ y = xy x y.

3.Выразить отрицание через сумму Жегалкина по формуле

x= x 1.

4.Раскрыть скобки, использовав дистрибутивность конъюнкции относительно суммы Жегалкина:

x(y z) = xy xz.

5.Привести подобные: x x = 0.

Пример. Построить полином Жегалкина функции f (x, y) = x y.

Решение.

x y = x ˅ y = x y x y =

= (x 1) y (x 1) y = xy y x y 1 = xy x 1.

Пример. Построить полином Жегалкина функции f (x, y, z) = x ˅ y ˅ z.

Решение.

f (x, y, z) = x ˅ y ˅ z = (x ˅ y) ˅ z = (xy x y) ˅ z =

= (xy x y) z (xy x y) z = xyz xz yz xy x y z.

29

Глава 2

2.6. Класс линейных функций (L)

Определение. Функция f (x1, x2, …, xn) называется линейной, если её полином Жегалкина имеет вид

Pf (x1, x2, …, xn) = a1 x1 a2 x2 an xn an+1,

где ai {0, 1} для i = 1, 2, …, n + 1.

Теорема. Класс линейных функций является замкнутым.

Доказательство: Пусть

g (x1, x2, …, xn), f1 (x1, x2, …, xm), …, fn (x1, x2, …, xm) L. g (x1, x2, …, xn) = a1 x1 a2 x2 an xn an+1,

f1 (x1, x2, …, xm) = b1 x1 b2 x2 bm xm bm+1,

fn (x1, x2, …, xm) = c1 x1 c2 x2 cm xm cm+1.

Построим суперпозицию этих функций:

F (x1, x2, …, xm) = g (f1 (x1, x2, …, xm), …, fn (x1, x2, …, xm)) = = a1 (b1 x1 b2 x2 bm xm bm+1) …

an (c1 x1 c2 x2 cm xm cm+1) an+1 =

= (a1b1 an c1) x1 … (a1bm an cm) xm

(a1 bm+1 an cm+1 an+1).

Очевидно, что данная функция линейна и теорема доказана. Следующая теорема вытекает из определения линейных функций

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

Теорема. Мощность множества L(n) линейных функций от n переменных равна 2n+1.

Лемма (о нелинейных функциях). Из всякой нелинейной функции с помощью подстановок функций 0 и 1 вместо некоторых переменных и отрицания можно получить дизъюнкцию и конъюнкцию.

Доказательство: Пусть f (x1, x2, …, xn) L, тогда ее полином Же-

галкина Pf (x1, x2, …, xn) содержит конъюнкции вида xi

xi

xi , где k ≥ 2.

1

2

k

Выбираем в полиноме слагаемое, содержащее наименьшее количество (две или более) переменных в конъюнкции. Пусть для определенности это и будет xi1 xi2 xik . Далее поступаем так:

30

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