
Глава 1
.pdfF1, …, Fs) - формула глубины r + 1. Без ограничения общности будем полагать, что сложность подформулы F1 не меньше сложности любой другой подформулы. Так как s ≤ k, то, очевидно, что сложность F и сложность подформулы F1 связаны неравенством
l(F) ≤ kl(F1) + 1. |
|
Из этого неравенства легко получаем |
|
(k - 1)l(F) + 1 ≤ (k - 1)(kl(F1) + 1) + 1 = k((k - 1)l(F1) + 1). |
(1.3.2) |
По предположению индукции для подформулы F1 |
выполняется |
неравенство |
|
d(F1) ≥ [logk((k - 1)l(F1) + 1)]. |
|
Подставив последнее неравенство в (1.3.2) и прологарифмировав результат по основанию k получим
[logk ((k - 1)l(F) + 1)] ≤ [1 + logk((k - 1)l(F1) + 1)] ≤ 1 + d(F1) ≤ d(F).
Теорема доказана.
3. Пусть B - произвольный базис, состоящий из конечного числа функций. Оценим сверху число различных булевых формул над множеством переменных x1, …, xn в базисе B, при условии, что сложность рассматриваемых формул не превосходит заданной величины. Имеет место следующий результат.
Теорема 1.3.2. Пусть m - константа, B = {f1, …, fm}, k - максимальное число аргументов у функций из B. Тогда для N(L,n,k) - числа различных формул в базисе B над множеством переменных x1, …, xn сложности не более L, справедливо неравенство
N L,n,k c n k 1 L 1 ,
где c - константа, зависящая от базиса.
Доказательство. Прежде всего оценим величину M(F), равную числу переменных, входящих в произвольную формулу F. Индукцией по глубине формулы покажем, что
M(F) ≤ (k - 1)l(F) + 1. |
(1.3.3) |
Очевидно, что неравенство (1.3.3) справедливо для любой формулы нулевой глубины. Предположим, что (1.3.3) справедливо для формул глубины r. Пусть F = f(F1, …, Fs) - формула глубины r+1. Тогда
M F |
s |
|
Fi |
|
s |
k 1 l Fi 1 |
|
|
|
|
|||||||
M |
|
|
|
|
|
||||||||||||
|
i 1 |
|
|
|
i |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k 1 |
|
s |
l |
|
F |
|
1 |
1 |
|
k 1 l |
|
F |
|
1 . |
|
|
|
|
i |
|
|
|
|
|
||||||||
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
||
Неравенство 1.3.3 |
доказано. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Из этого неравентва и определения формулы следует, что каждая формула F содержит l(F) символов функций fj, l(F) правых скобок, l(F) левых скобок и не более чем (k - 1)l(F) + 1 символов переменных xj. Отметим, что все запятые, отделяющие в формулах аргументы друг от друга, можно безболезненно опустить. Поэтому общее число символов в формуле F не превосходит (k + 2)l(F) + 1. Таким образом, для числа различных формул сложности не более чем L справедлива следующая верхняя оценка
N L, n, k |
L |
|
k 2 i 1 |
3i 2i |
|||
|
|
|
|
|
|
n k 1 i 1mi |
|
|
i |
|
k 1 i 1 |
|
i |
i |
|
|
0 |
|
|
L |
2 |
k 7 |
i |
n |
k 1 i 1 |
k 1 L 1 |
, |
|
|
|
m |
|
cn |
|||||
|
i 0 |
|
|
|
|
|
|
|
|
где c 2k 7 m |
1 |
|
|
|
|
|
|
|
|
|
. |
|
|
|
|||||
k 1 |
Так как |
базис B состоит из |
конечного числа |
функций, то c является константой. Теорема доказана.
Базис B называется полным, если любая функция из P2 может быть реализована формулой в этом базисе. Вопросы полноты различных базисов рассматриваются далее в параграфе 1.6. Здесь мы покажем, что в любом полном конечном базисе с ростом n большинство функций из P2(n) реализуются только очень сложными формулами.

Теорема 1.3.3. Пусть B - полный конечный базис, k - максимальное число аргументов у функций из B. Тогда для любой постоянной ε > 0 доля функций из P2(n) реализуемых формулами, сложность которых не
1 2n
превосходит k 1 log2 n , стремится к нулю при n .
Доказательство. Так как неравные функции реализуются неравными формулами, то число функций, реализуемых формулами сложности не более L, не больше чем количество таких формул. Поэтому для доказательства теоремы достаточно показать, что число N(L, n, k)
различных формул сложности не более L |
1 2n |
|
, при возрастании |
|||
k 1 log |
2 |
n |
||||
|
|
|
|
|
|
|
|
2n |
. Оценим логарифм N(L, n, k). Используя оценку величины |
||||
n есть o 2 |
|
|||||
|
|
|
|
|
|
|
N(L, n, k) из предыдущей теоремы при n имеем |
|
|
|
|
N L,n,k |
k 1 1 2n |
log2 cn 1 2 |
|
|
c |
|
|
|
|
|
n |
|
|
n |
|
|
|
|
|
|||||
log2 |
|
|
|
1 |
|
|
2 |
|
||||
k 1 log2 n |
1 |
|
|
|
|
|||||||
|
|
|
|
|
log2 n |
|
|
2 |
|
Следовательно,
NL, n, k 2log2 N (L,n,k ) 22n (1 / 2) o 22n .
Теорема доказана.
4. Если базис B состоит только из двухместных и одноместных
функций, то двухместные формулы F(x, y) будем записывать при помощи символов-связок в виде (x ○ y), где ○ - символ двухместной булевой функции, реализуемой формулой F(x, y). Наиболее часто встречающиеся символы двухместных булевых функций использованы в таблице 1.2.3. в качестве нижних индексов у символов соответствующих функций f. Так для обозначения конъюнкции чаще всего используется символ &, т.е. f&(x, y) = (x & y). Иногда конъюнкция обозначается так же через и , или

функциональный символ опускается. Формулы для других двухместных булевых функций, перечисленных в таблице 1.2.3, записываются следующим образом:
f (x, y) = (x y), |
f (x, y) = (x y), |
f (x, y) = (x y), |
f| (x, y) = (x | y), |
f (x, y) = (x y), |
f (x,y) = (x y). |
Для эквивалентности вместо символа иногда |
используется символ . |
Одноместную формулу, реализующую функцию отрицания, будем записывать при помощи горизонтальной черты покрывающей аргумент:
|
|
|
|
|
|
|
|
|
|
F (x) = ( x ). Используя символы--связки можно |
записывать более |
||||||||
сложные формулы. Например: |
|
|
|||||||
|
|
|
|
|
|
|
|||
f ( fV ( f& (x1, x2 ), f& (x3, x4 ))) (( fV ( f&(x1, x2 ), f&(x3, x4 ))) |
|||||||||
|
|
|
|
|
|
||||
(( f& (x1, x2 ) f& (x3, x4 ))) ((x1 & x2 ) (x3 & x4 ))) . |
(1.3.4) |
Далее для упрощения записи сложных формул в некоторых случаях будем опускать скобки.
1. Полагая, что функция & "сильнее" всех остальных двуместных функций, будем опускать скобки вокруг конъюнкции. Таким образом, если в формуле отсутствуют скобки, то сначала выполняется конъюнкция.
Например, (x1 & x2) x3 = x1 & x2 x3 = x1x2 x3.
2. Будем опускать скобки при использовании отрицания. Например,
(x1 x2 ) x1 x2 .
3. Во всех формулах будем опускать внешние скобки. В этом случае формула (1.3.4) будет выглядеть так (с учетом предыдущих правил):
x1x2 x3x4 .
4.Легко видеть, что для дизъюнкции справедливо равенство (x1 x2)
x3 = (x1 x2) x3. Аналогичные равенства имеют место также для конъюнкции и суммы по модулю два. Поэтому будем опускать скобки,
если одна из функций &, или используется в формуле несколько раз
подряд. Например, (x1 x2) x3 = x1 x2 x3.
5. Булевы формулы F1 и F2 называются эквивалентными, если они реализуют одну и ту же булеву функцию. Замена формулы F1 на эквивалентную ей формулу F2 называется эквивалентным преобразованием формулы F1. Заметим, что любое эквивалентное преобразование формул устанавливает равенство реализуемых этими формулами функций.

Приведем ряд соотношений, определяющих простейшие эквивалентные преобразования булевых формул в двухместных базисах. Из таблицы 1.2.2 следуют равенства
|
|
|
|
|
|
|
0 1 , |
1 0 , |
x x , |
последнее из которых называется правилом двойного отрицания. Справедливость приводимых далее равенств для формул над множеством из одной переменной x для дизъюнкции, конъюнкции, суммы, эквивалентности, отрицания и констант легко следует из таблицы 1.2.3:
x x = x, |
x x = x, |
x x = 0, x ~ x = 1, |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x x = 1, |
x x = 0, x x = 1, x ~ x = 0, |
|||||||||||||
|
|
|
|
|
|
|
||||||||
x 0 = x, |
x 0 = 0, |
x 0 = x, x ~ 0 = x , (1.3.5) |
||||||||||||
|
|
|
|
|
||||||||||
x 1 = 1, |
x 1 = x, |
x 1 = x , x ~ 1 = x. |
Используя таблицу 1.2.3. нетрудно убедиться в эквивалентности различных формул над множеством из двух переменных. В частности справедливы соотношения
x1 & x2 = x1 x2 , x1 x2 x1 & x2 , (1.3.6)
называемые законами двойственности или законами де Моргана. Из таблицы 1.2.3 также легко видеть, что
|
|
|
|
x1 ~ x2 = x1 x2 x1 x2 1. |
(1.3.7) |
Подставляя в правые и левые части равенств (1.3.8) вместо переменных x1, x2 и x3 различные булевы постоянные, видим, что конъюнкция связана с дизъюнкцией и сложением по модулю два законами дистрибутивности:
(x1 x2) x3 = (x1 x3) (x2 x3), |
|
(x1 x2) x3 = (x1 x3) (x2 x3), |
(1.3.8) |
(x1 x2) x3 = (x1 x3) (x2 x3), |
|

Так же легко подстановкой констант устанавливается справедливость следующих равенств:
x y x y xy , x y xy x y , (1.3.9)
Правило двойного отрицания и соотношения (1.3.5)--(1.3.9) справедливы не только для переменных - они остаются верными и в случае, когда в (1.3.5)-(1.3.9) вместо переменных используются произвольные булевы функции. В частности, для любой булевой функции f справедливы равенства:
|
|
|
|
|
|
|
|
|
f f 0 , |
f f 1 , |
f 1 f , |
|
|||||
|
|
|
|
|
|
|
|
|
f f 1, |
f f = 0, |
f 0 = 0. |
(1.3.10) |
Пример 1.3.3. Преобразуем формулу xy xz yz в эквивалентную формулу в базисе { , &}. Для этого воспользуемся равенствами (1.3.8)-
(1.3.10). Видим, что
xy xz yz = (xyxz xy xz) yz =
=(xyz xy xz) yz (xyz xy xz) yz =
=xyz xyz xyz xyz xy xz yz = xy xz yz.
Подставляя в полученную формулу вместо переменных x,y и z булевы константы, видим, что значение формулы равно единице только тогда, когда среди еѐ аргументов есть хотя бы две единицы. Следовательно, формулы xy xz yz и xy xz yz реализуют функцию голосования
2 (x, y, z).
Используя (1.3.5)-(1.3.10) можно получить новые полезные равенства, позволяющие производить эквивалентные преобразования формул. Например, для любых булевых функций f и g справедливо преобразование
f f 1 f (g g) fg f g ,
называемое расщеплением. Обратное преобразование, переход от формулы fg f g к формуле f, называется склеиванием. Следующая цепочка равенств задает преобразование, называемое поглощением:

f fg f 1 fg f (1 g) f 1 f .
Наконец приведем еще одно преобразование, доказываемое при помощи расщепления и склеивания:
f f g fg f g f g fg f g.
Другие полезные равенства, устанавливающие эквивалентность булевых формул, рассмотрим в следующем параграфе.
Задачи
1.3.1. Пусть B = {f1, …, fm}. Оценить сверху число различных формул над множеством из n переменных в базисе B, при условии, что глубина
формул не превосходит величины d. |
|
|
||
1.3.2. |
Доказать |
формулу |
обобщѐнного |
склеивания: |
xz yz xy xz yz
1.3.3. Определить существенные переменные у функции, заданной формулой:
а) x y z y x xz ; b) x y z z y ;
c)x y x z x yz y.
1.3.4.При помощи эквивалентных преобразований упростить
формулы:
а) xyz xyz xyz xyz; b) xyz xyz x yz x y ; c) xy x z z .
1.3.5. Показать, что любая формула в базисе ,&, эквивалентна
некотрой формуле в том же базисе, в которой отрицания появляются только над переменными.
1.3.6. Доказать что:
а) x1 x2 … xn = x1 x2 ... xn ;
b) x1 x2 ... xn x1 & x2 &... & xn .
с) x1 x2 ... xn (x1 1)(x2 1) ... (xn 1) 1.
1.3.7. Найти число попарно различных булевых функций, получающихся из функции 1 i j n xi x j подстановкой констант вместо
переменных x1, …, xn.
1.3.8. На скольких наборах из Bn равна единице функция f:

a) f (x ,..., x |
) n |
1 |
|
|
|
n |
x |
... x |
|
; |
|
1 |
n |
k |
1 i ... i |
i |
i |
|
|||||
|
|
|
|
|
1 |
k |
|
1 |
|
k |
|
b) f (x ,..., x ) n |
1 |
x ... x ; |
|||
1 |
n |
k |
1 |
k |
c)f (x1,..., xn ) 1 i1 ... ik n xi1 ... xik .
1.3.9.Пусть p x1,..., xn x1x2 ... xk . Найти p x
.
1.3.10.На скольких наборах из Bn равна единице функция f:
a) |
f x ,..., x |
|
n |
1 |
|
|
... i |
n |
x |
|
... x |
; |
||
|
1 |
n |
k |
1 i |
i |
i |
||||||||
|
|
|
|
|
|
|
1 |
|
k |
|
|
1 |
|
k |
b) |
f x ..., x |
n |
x ... x |
; |
|
|
|
|
|
|||||
|
1 |
n |
|
k 1 1 |
|
k |
|
|
|
|
|
|
c) f x1..., xn 1 i1 ... ik n xi1 ... xik .
1.4. Специальные представления булевых функций
Ниже рассматриваются несколько стандартных способов представления булевых функций при помощи реализующих их формул, имеющих простую структуру.
1. Разложение функции по переменным. Для любого x B его
булевой степенью называется функция3
|
|
, |
при 0; |
x |
|||
x( ) |
при 1. |
||
x, |
Легко видеть, что x( ) x 1 x x . Для любого x = (x1, …, xn) и любого ( 1,..., n ) произведение
K x x 1 ... x n , |
|
|
|
||
|
1 |
n |
|
|
|
булевых степеней 1,..., n |
переменных |
x1,..., xn |
называется |
||
элементарной конъюнкцией, |
ассоциированной |
с булевым |
набором |
||
|
|
|
|||
3 Обычно в матемаической литературе для булевой степени величины |
x |
||||
используется обозначение x , т.е. величина не заключается в скобки. |
|
(1,..., n ) . Число переменных, входящих в |
конъюнкцию K x |
|
называется рангом этой конъюнкции. Для функции |
K x справедливо |
|
соотношение |
|
|
1,если |
, |
|
K |
. |
(1.4.1) |
0,если |
|
Отсюда немедленно следует, что K x K x 0 при .
Теорема 1.4.1. Для каждой булевой функции f(x1, …, xn) при любом m, 1 ≤ m ≤ n, справедливо представление
f x1,...xm, xm 1,..., xn
|
|
V |
x 1 ... x m f |
|
|
,..., |
|
|
, x |
|
|
,..., x |
|
. |
|
|
(1.4.2) |
||||||||||
|
1,..., m |
1 |
|
m |
|
1 |
|
|
|
m |
|
|
m 1 |
|
|
n |
|
|
|
|
|
|
|||||
Доказательство. Покажем, что |
|
для |
|
произвольного |
|
булева |
набора |
||||||||||||||||||||
1,...,n |
значение функции, реализуемой формулой из правой части |
||||||||||||||||||||||||||
(1.4.2), равно f 1,...,n . Действительно, из (1.4.1) легко следует, что |
|||||||||||||||||||||||||||
|
|
V |
|
1 |
... m |
f |
,..., |
|
, |
m 1 |
,..., |
|
|
|
|
|
|||||||||||
|
|
1,..., m |
1 |
m |
|
|
1 |
|
|
|
|
|
|
m |
|
|
|
|
|
|
n |
|
|
|
|
||
|
|
|
1 ... m f |
,..., |
m |
, |
m 1 |
,..., |
n |
f ,..., |
n |
. |
|||||||||||||||
|
|
1 |
|
m |
1 |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
Теорема доказана.
Формула (1.4.2) называется разложением функции f по переменным x1, …, xm. Очевидным образом (1.4.2) обобщается на случай разложения булевой функции по переменным xi1 ,..., xik . Важным частным случаем

такого разложения является разложение по одной переменной. Разложение f по первой переменной выглядит следующим образом:
f x1,..., xk x1 f 0, x2,..., xk x1 f 1, x2,..., xk .
Пример 1.4.1. Разложим по первой переменной линейную функцию x1 x2 x3. Так как 0 x2 x3 = x2 x3 и 1 x2 x3 = x2 x3, то
x1 x2 x3 x1 x2 x3 x1(x2 x3).
2. Дизъюнктивные нормальные формы. Совершенной дизъ -
юнктивной нормальной формой (СДНФ) функции f(x1, …, xn) называется ее разложение
f x |
,..., x |
|
V |
x 1 ,..., x n |
f |
1 |
,..., |
n |
|
|
1 |
n |
|
1,..., n |
1 |
n |
|
|
|
||
|
|
|
|
|
|
|
|
|
по всем ее переменным. Легко видеть, что СДНФ f есть дизъюнкция всех элементарных конъюнкций ассоциированных с теми наборами , на которых функция f равна единице.
Пример 1.4.2. Конъюнкция x & y двух переменных x и y сама является своей совершенной дизъюнктивной нормальной формой. Совершенные дизъюнктивные нормальные формы других функций двух переменных приведены ниже:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x y xy x y xy , |
x y xy x y , |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
x y x y xy xy , |
x y x y xy , |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
x | y x y xy x y , |
x y x y |
Совершенные дизъюнктивные нормальные формы устроены очень просто. В некотором смысле, СДНФ булевой функции это ее вектор значений, записанный на языке формул. С другой стороны, часто СДНФ даже простых функций состоят из очень большого числа элементарных конъюнкций. Так, например, СДНФ дизъюнкции x1 … xn содержит 2n – 1 элементарных конъюнкций. Более экономными (с точки зрения числа символов переменных входящих в формулу) являются дизъюнктивные