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

Математическая логика и теория алгоритмов1

.pdf
Скачиваний:
362
Добавлен:
01.05.2014
Размер:
458.23 Кб
Скачать

которая содержит минимальное число вхождений атомарных формул. Од• нако при большом числе атомарных формул такой перебор практически невыполним. Существуют эффективные способы нахождения минималь• ной ДНФ. Рассмотрим один из них – метод минимизирующих карт. Хотя он и не является самым эффективным, зато прост для изложения и не требует введения дополнительных понятий.

Пусть формула задана таблицей истинности или СДНФ. Составим сле• дующую карту (табл. 2.3).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X1

 

X2

· · ·

 

Xn

 

X1X2

 

X1X3

· · ·

 

Xn−1Xn

· · ·

 

 

X1 . . . Xn−1Xn

 

 

 

 

 

 

· · ·

 

 

 

 

 

 

 

 

 

 

 

 

 

 

· · ·

 

 

 

 

 

 

· · ·

 

 

 

 

 

 

 

 

 

 

 

 

X1

 

X2

 

Xn

 

X1X2

 

X1X3

 

Xn−1Xn

 

X1 . . . Xn−1Xn

· · ·

· · ·

· · ·

· · ·

· · ·

 

· · ·

 

· · ·

· · ·

 

· · ·

· · ·

 

 

 

 

 

 

 

 

 

 

· · ·

 

 

 

 

 

 

 

 

 

 

 

 

 

· · ·

 

Xn−1Xn

· · ·

 

 

 

 

 

 

 

 

 

X1

 

X2

 

Xn

 

X1X2

 

X1X3

 

 

X1 . . . Xn−1Xn

· · ·

· · ·

· · ·

· · ·

· · ·

 

· · ·

 

· · ·

· · ·

 

· · ·

· · ·

 

 

 

 

 

 

 

 

 

 

· · ·

 

 

 

 

 

 

 

 

 

 

 

 

 

· · ·

 

 

 

 

 

· · ·

 

 

 

 

 

 

 

X1

X2

 

Xn

 

X1X2

 

X1X3

Xn−1Xn

X1 . . . Xn−1Xn

Теорема 2.7. Если элементарная конъюнкция X1α1 X2α2 · · · Xnαn , при•

надлежащая j-й строке табл. 2.3, не входит в СДНФ, выражающую фор• мулу F (X1, X2, . . . , Xn), то любая конъюнкция j-й строки не входит ни в какую ДНФ, выражающую исходную формулу F .

Доказательство. Действительно, если конъюнкция X1α1 X2α2 · · · Xnαn не входит в СДНФ, выражающую формулу F (X1, X2, . . . , Xn), то согласно второму алгоритму построения СДНФ F (α1, α2, · · · , αn) = 0. Если бы ка• кая-то конъюнкция j-й строки вошла в некоторую ДНФ, выражающую фор• мулу F , то F (α1, α2, · · · , αn) = 1.

Согласно теореме 2.7 oпишем способ построения минимальной ДНФ.

1.Отметим в табл. 2.3 строки, в которых соответствующая им конъ• юнкция X1α1 X2α2 · · · Xnαn не принадлежит СДНФ. Вычеркнем все конъюнк• ции в этих строках.

2.Конъюнкции, вычеркнутые в указанных в п. 1 строках, вычеркнем также во всех остальных строках таблицы.

3.В каждой строке выберем из оставшихся конъюнкций лишь те, ко• торые имеют наименьшее число вхождений атомарных формул, а осталь• ные вычеркнем.

40

4.В каждой строке выберем по одной оставшейся конъюнкции и со• ставим из них ДНФ.

5.Из всех ДНФ, полученных на предыдущем шаге, выберем мини• мальную.

Замечание 2.6. Заметим, что на последнем шаге алгоритма преду•

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

Пример 2.17. Пусть

F (X1, X2, X3) = X1X2X3 X1X2X3 X1X2X3 X1X2X3.

Составим соответствующую таблицу.

 

X1

 

X2

 

X3

 

X1X2

 

X1X3

 

X2X3

 

 

X1X2X3

×

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X1

 

X2

X3

 

X1X2

 

X1X3

 

X2X3

 

X1X2X3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X1

X2

 

X3

 

X1X2

 

X1X3

 

X2X3

 

X1X2X3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X1

X2

X3

 

X1X2

 

X1X3

X2X3

 

X1X2X3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

 

X1

 

X2

 

X3

 

X1X2

 

X1X3

 

X2X3

 

X1X2X3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

 

X1

 

X2

X3

 

X1X2

X1X3

 

X2X3

 

X1X2X3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X1

X2

 

X3

 

X1X2

 

X1X3

 

X2X3

 

X1X2X3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

 

X1

X2

X3

 

X1X2

X1X3

X2X3

X1X2X3

Отметим знаком „×“вычеркнутые строки таблицы. После приме•

нения шагов 1–3 таблица примет следующий вид:

X1X3

X1X2 X2X3

X1X2 X1X3

X2X3

После применения шагов 4–5 получим минимальную ДНФ, равносиль• ную исходной формуле F : X1X3 X2X3.

41

Задача 2.10. Для следующих схем построить эквивалентные им

более простые цепи:

a)

 

X

 

 

 

Y

 

 

Z

 

 

 

 

 

 

 

 

 

 

 

 

Z

X

 

 

 

Y

 

 

 

 

 

 

 

Y

 

 

 

 

Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b)

 

 

 

 

 

 

 

 

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

Z

 

 

 

Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¬Y

 

 

 

 

Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение. Приведем решение задачи для случая a. Схеме Sa соответ•

ствует формула

FSa = XY Z X Y Z Y Z.

После приведения к СДНФ получим следующую равносильную FSa форму•

лу:

F1 = XY Z X Y Z XY Z.

Будем искать решение методом минимизирующих карт. Составим со• ответствующую таблицу.

X

 

Y

 

Z

 

 

XY

 

 

XZ

 

Y Z

 

 

 

XY Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

X

 

Y

 

Z

 

 

XY

 

 

XZ

 

Y Z

 

 

 

XY Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

X

 

Y

 

Z

 

 

XY

 

 

XZ

 

Y Z

 

 

 

XY Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

X

 

Y

 

Z

 

 

XY

 

 

XZ

 

Y Z

 

XY Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

Y

 

Z

 

 

XY

 

 

XZ

 

Y Z

 

 

 

XY Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

X

 

Y

 

Z

 

 

XY

 

X Z

 

Y Z

 

 

 

XY Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

Y

 

Z

 

X Y

 

 

XZ

 

Y Z

 

X Y Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

×

X

 

Y

 

Z

 

X Y

 

X Z

 

Y Z

X Y Z

Отметим знаком „×“вычеркнутые строки таблицы. После работы

шагов 1–3 алгоритма таблица примет следующий вид:

Y Z

42

Окончание таблицы

XZ Y Z

XZ

После работы шагов 4 и 5

 

 

 

 

 

 

X

 

 

 

алгоритма получим минимальную

 

 

 

 

 

 

 

 

Z

 

 

 

 

 

ДНФ, равносильную исходной фор•

 

 

 

 

 

 

 

Y

 

 

 

 

 

 

 

 

 

 

муле FSa : XZ Y Z = Z(X Y ).

 

 

 

 

 

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

Задача 2.11. Пусть каждый из трех членов комитета голосуeт „за, нажимая кнопку. Построить по возможности более простую цепь,

которая была бы замкнута тогда и только тогда, когда не менее двух членов комитета голосуют „за.

Решение. Рассмотрим формулу F (X1, X2, X3), таблица истинности которой строится по следующему принципу: ϕ(F ) = 1, если из трех атомарных формул X1, X2, X3 истинны не менее двух. По таблице ис•

тинности выпишем формулу в совершенной дизъюнктивной нормальной форме. Затем упростим ее и по упрощенной формуле составим схему так, как это сделано в решении предыдущей задачи.

Задача 2.12. Требуется, чтобы включение света в комнате осуще-

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

Решение. Рассмотрим формулу F (X1, X2, X3), имеющую следующую таблицу истинности. Атомарные формулы X1, X2 и X3 обозначают вы•

ключатели. Заметим, что в таблице истинности значения атомарных формул X1, X2 и X3 в каждой следующей строке отличаются от преды• дущей только одной из атомарных формул, а значение формулы F ме•

няется на противоположное. Это отражает требование о том, чтобы при нажатии на любой из выключателей свет выключался, если он был включен, и включался, если он был выключен.

43

X

 

Y

 

 

 

Z

 

 

X

Y

Z

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

 

Z

 

 

 

 

 

 

 

1

1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

 

 

 

 

1

0

0

1

 

 

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

1

0

X

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

 

 

 

 

 

 

 

0

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.4

0

1

1

0

 

 

 

 

 

 

 

 

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По таблице истинности выпишем формулу F :

F = XY Z X Y Z X Y Z X Y Z.

Преобразуем формулу F к равносильной формуле G, более удобной для

реализации схемы:

G = X(Y Z Y Z) X(Y Z Y Z).

По формуле G построим искомую схему (рис. 2.4).

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

Вданном разделе будут рассматриваться всюду определенные функ• ции, заданные на множестве B = {0, 1}. Такие функции называются буле• выми.

3.1.Замкнутость и полнота

Будем исходить из некоторого множества F функциональных симво• лов. Каждому символу приписано натуральное число – местность или арность символа. Можно считать, что F представляет собой объединение F1 F2 . . . Fn . . ., где Fn – множество символов n-местных функций. Кроме F , имеется множество переменных V , элементы которого будем обо• значать буквами u, v, w, x, y, z с индексами и без них. Каждому n-местному функциональному символу поставлено в соответствие (всюду определен• ное) отображение Bn → B. (При этом разным символам может соответ• ствовать одно и то же отображение.) Это отображение будем обозначать той же буквой, что и символ.

Введем основное понятие.

44

Определение 3.1. Булевыми функциями называются выражения

одного из следующих видов:

1)f (v1, . . . vn), где f Fn, v1, . . . , vn – переменные,

2)f (t1, . . . tn), где f Fn, t1, . . . , tn – булевы функции.

Замечание 3.1. Для обозначения двухместных функций наряду с префиксной записью f (v1, v2) будем применять и инфиксную v1f v2, осо• бенно, если речь идет об известных функциях, например, x1 + x2, x1 · x2.

Условимся также об обозначении некото• рых часто встречающихся функций. Функ• ции θ(x) и ι(x) будем называть константами (иногда для простоты будем писать 0 и 1),

x

θ(x)

ι(x)

ε(x)

ν(x)

 

 

 

 

 

0

0

1

0

1

 

 

 

 

 

1

0

1

1

0

 

 

 

 

 

ε(x) – тождественной функцией. Функцию ν(x) будем называть отрица• нием и обозначать как и ранее ¬(x) или просто x.

x

y

x · y

x y

x → y

x ↔ y

x + y

x | y

x ↓ y

0

0

0

0

1

1

0

1

1

 

 

 

 

 

 

 

 

 

0

1

0

1

1

0

1

1

0

 

 

 

 

 

 

 

 

 

1

0

0

1

0

0

1

1

0

 

 

 

 

 

 

 

 

 

1

1

1

1

1

1

0

0

0

 

 

 

 

 

 

 

 

 

Для функций x y, x → y, x ↔ y сохраним названия, идущие из логики высказываний: дизъюнкция, импликация и эквиваленция. Функции x · y и x + y, – естественно, умножение и сложение; умножение можно было бы назвать конъюнкцией, сложение иногда называют сложением по модулю 2 и обозначают x y. Функция x | y – штрих Шеффера, x ↓ y – стрелка Пирса (или стрелка Лукасевича).

Замечание 3.2. Заключим следующие соглашения:

1.В обозначениях функций будем допускать фиктивные перемен• ные. Так, например, функцию x1 x2 можно обозначить как f (x1, x2, x3).

2.В функции умножения (конъюнкции) x · y будем опускать знак

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

Замечание 3.3. Любую булеву функцию f (x1, . . . , xn) можно задать

таблицей значений.

Легко показать, что число различных строк длины n из нулей и еди• ниц равно 2n. Таким образом, число строк в таблице для булевой функции от n переменных f (x1, . . . , xn) равно 2n.

45

x1

· · ·

xn

f (x1, . . . , xn)

0

0

0

0

 

 

 

 

· · ·

· · ·

· · ·

· · ·

1

1

1

1

 

 

 

 

Условимся в дальнейшем упорядо• чивать строки таблицы в лексикогра• фическом порядке, т. е. для любой строки (c1, . . . , cn) определим ее номер

N (c) = cn + cn−12 + · · · + ck 2n−k + · · · + c12n−1.

(3.1)

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

Теорема 3.1. Число различных булевых функций от n переменных равно 22n .

Доказательство. Зафиксируем число аргументов n. Очевидно, что число различных булевых функций от n переменных равно числу различ• ных таблиц. При лексикографическом упорядочении строк число различ• ных таблиц равно числу способов заполнения последнего столбца (значений функции). Число способов заполнения этого столбца равно 2h, где h – высо• та столбца, но h = 2n. Таким образом, число различных булевых функций от n переменных равно 22n .

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

Определение 3.2. Множество двоичных наборов {a1, . . . , an}, на ко• торых булева функция f (x1, . . . , xn) принимает значение 1, называется областью истинности функции f .

Мощность области истинности функции f называется весом функ•

ции f и обозначается ||f ||.

n

, причем равенства достигаются лишь

Очевидно, что 0 6 ||f ||

6 2

для функций-констант 0 и 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для булевых функций используются и другие способы задания. Рас•

смотрим геометрический способ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

 

11

 

 

 

 

001

101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

011

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

111

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00

 

 

 

10

 

 

 

 

000

 

100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

010

 

 

 

 

 

 

110

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.1

46

Под геометрическим способом задания булевой функции f (x1, . . . , xn) понимается выделение тех вершин n-мерного двоичного куба, на наборах координат которых функция принимает единичное значение. На рис. 3.1 приведены двоичные кубы размерностей n = 1, 2, 3.

Часто по геометрическому заданию функции строят граф связности вершин n-мерного куба, соответствующий данной функции. Для этого сна• чала отмечают те ребра, у которых оба конца выделены, т. е. соответству• ющие вершины лежат в области истинности. Затем все остальные ребра и вершины, не лежащие в области истинности, отбрасывают (рис. 3.2).

x1

x2

x3

f

 

 

 

 

x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

 

 

 

 

001

101

 

 

 

 

 

 

 

 

 

 

0

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

010

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

1

011

 

 

 

 

 

 

111

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

1

0

 

 

 

 

000

100

 

110

 

 

 

 

 

 

 

 

 

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

000

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

 

111

1

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

010

 

 

 

 

 

 

110

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

1

 

 

 

 

 

100

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

Рис. 3.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение 3.3. Класс булевых функций K называется замкну•

тым относительно переименования аргументов, если из того, что

n-местная функция f (x1, . . . , xn) принадлежит K, а y1, . . . , yn – другие

переменные (среди которых могут быть и совпавшие), то функция f (y1, . . . , yn) также принадлежит K.

Например, если K содержит функцию x y и замкнут относитель• но переименования аргументов, то K содержит также и функцию θ(x).

Определение 3.4. Класс булевых функций K называется замкну•

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

f (x1, . . . , xk ), g1(x1, . . . , xn), . . . , gk (x1, . . . , xn) принадлежат K, следует, что функция f (g1(x1, . . . , xn), . . . , gk (x1, . . . , xn)) также принадлежит K.

Например, если K содержит функции x y и x и замкнут относи• тельно суперпозиции (и переименования аргументов), то K содержит и функцию xy, поскольку

xy = x y.

Определение 3.5. Класс булевых функций K называется замкну• тым, если K:

1) содержит тождественную функцию;

47

2)замкнут относительно переименования аргументов;

3)замкнут относительно суперпозиции.

Определение 3.6. Функция f (x1, . . . , xn) называется сохраняющей ноль, если f (0, . . . , 0) = 0.

Пример 3.1. Функции xy, x y, x y сохраняют ноль, а функции x ↔ y, x | y, x ↓ y не сохраняют.

Через T0 обозначим класс всех функций, сохраняющих 0, т. е.

T0 = {f (x1, . . . , xn) | f (0, . . . , 0) = 0}.

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

Теорема 3.2. Класс T0 замкнут.

Доказательство. Функция ε(x) сохраняет 0, и поэтому ε(x) T0. Если f (x1, . . . , xn) сохраняет 0 и y1, . . . , yn – новые переменные, то очевидно, что f (y1, . . . , yn) также сохраняет ноль. Это означает, что T0 замкнут относи• тельно переименования аргументов. Пусть f (x1, . . . , xk ), g1(x1, . . . , xn), . . . , gk (x1, . . . , xn) сохраняют 0. Тогда

f (g1(0, . . . , 0), . . . , gk (0, . . . , 0)) = f (0, . . . , 0) = 0.

Это означает, что T0 замкнут относительно суперпозиции. Таким образом доказано, что T0 – замкнутый класс.

Упражнение 3.1. Обозначим через T0n множество всех булевых функций от n переменных, сохраняющих 0. Доказать, что

|T0n| = 22n−1.

Определение 3.7. Функция f (x1, . . . , xn) называется сохраняющей единицу, если f (1, . . . , 1) = 1.

Пример 3.2. Функции xy, x y, x → y сохраняют единицу, а функции x y, x | y, x ↓ y не сохраняют.

Через T1 обозначим класс всех функций, сохраняющих 1, т. е.

T1 = {f (x1, . . . , xn) | f (1, . . . , 1) = 1}.

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

48

Упражнение 3.2. Обозначим через T1n множество всех булевых функций от n переменных, сохраняющих 1. Доказать, что

|T1n| = 22n−1.

Теорема 3.3. Пересечение непустого семейства K = Ti I Ki замкну•

тых классов является замкнутым классом.

T

Доказательство. Пусть K = i I Ki. Класс K содержит тождествен• ную функцию, так как все классы Ki ее содержат.

Если f (x1, . . . , xn) принадлежит K, а y1, . . . , yn – новый набор перемен• ных, то для любого i функция f (x1, . . . , xn) Ki, поскольку K – пересечение этих классов, и f (y1, . . . , yn) Ki, поскольку Ki замкнут относительно пе• реименования аргументов. Если функция f (y1, . . . , yn) принадлежит всем классам Ki, то эта функция принадлежит и их пересечению, т. е. K. Сле• довательно, класс K замкнут относительно переименования аргументов.

Пусть функции f (x1, . . . , xk ), g1(x1, . . . , xn),. . . , gk (x1, . . . , xn) принад• лежат K. Тогда эти функции принадлежат всем классам Ki. Класс Ki

замкнут относительно суперпозиции. Следовательно, для любого i класс Ki содержит функцию

f (g1(x1, . . . , xn), . . . , gk (x1, . . . , xn)).

Отсюда следует, что эта функция принадлежит пересечению этих клас• сов – классу K. Таким образом, класс K замкнут относительно суперпози• ции.

Определение 3.8. Замыканием класса K называется пересечение всех замкнутых классов, содержащих K.

Замыкание класса K будем обозначать через [K]. Из теоремы 3.3 следует, что [K] – замкнутый класс.

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

Теорема 3.4. Пусть K – класс булевых функций. Тогда

1)K [K];

2)если K L, то [K] [L];

3)класс K замкнут тогда и только тогда, когда K = [K].

Доказательство. Докажем, для примера, пункт 1. Предположим, что {Ki | i J} – семейство всех замкнутых классов, содержащих K. Так как K содержится в Ki для любого i, то K содержится и в их пересечении, т. е. в [K].

49