Вы находитесь на странице: 1из 12

Полнота и замкнутость множеств булевых функций (v. 1.

2)
Замыкание множества булевых функций
Пусть M  P2 – произвольное множество булевых функций. Замыканием множества
называется множество всех функций, которые можно реализовать формулами над
множеством . Замыкание множества будем обозначать через [ ].

Примеры.
 M  P2   P2   P2
 M  1, x1  x2   M   L   f  P2 deg f  1 1 – множество линейных
функций
Доказать
Свойства замыкания:
 M  M 
  M   [[M ]]
 M1  M 2   M1    M 2 
 M1  M 2   M1    M 2 
  M1   M 2    M1  M 2 

Понятие функциональной полноты можно определить в терминах замыкания множеств:


множество M  P2 является функционально полной системой   M   P2.
Множество булевых функций M  P2 называется замкнутым множеством, если оно
совпадает со своим замыканием, т.е.  M   M .

Основные замкнутые классы


Рассмотрим важнейшие замкнутые множества в P2 . Часто рассматриваемые ниже
замкнутые множества называются так же основными замкнутыми классами.

Т0 – функции, сохраняющие ноль


f ( x1, x2 ,..., xn ) T0  f (0,0,...,0)  0

Примеры: x, x y, x y, x y T0 , x , x~ y, x| y, xy, xy T0.

1
– степень булевой функции – равна максимальной степени одночленов, входящих в АНФ этой
функции.
1
Теорема. Множество T0 замкнуто.

Доказательство. Ключевым моментом доказательства замкнутости множества T0


является доказательство того, что подстановка функций, сохраняющих 0, в функцию,
сохраняющую 0, дает функцию, сохраняющую 0.2
Пусть f ( x1, x2 ,..., xn ), fi ( x1, x2 ,..., xn ) T0 (i  1,..., n). Рассмотрим суперпозицию
F ( x1, x2 ,..., xn )  f  f1( x1,..., xn ), f 2 ( x1,..., xn ),..., f n ( x1, x2 ,..., xn )  .

F (0,0,...,0)  f  f1(0,0,...,0), f 2 (0,0,...,0),..., f n (0,0,...,0)   f (0,0,...,0)  0 .


Таким образом подстановка функций из множества T0 в функции из того же множества
дает функции из T0 .

Пусть P2
( n)
– множество всех булевых функций от переменных, а T0
( n)
 T0  P2( n) .
n
1
Тогда T0
( n)
 22 .

Т1 – функции, сохраняющие единицу


f ( x1, x2 ,..., xn ) T1  f (1,1,...,1)  1

Примеры: x, x y, x y, x~ y, xy T1, x , x| y, xy, x y T1

Теорема. Множество T1 замкнуто.

Доказательство. Пусть f ( x1, x2 ,..., xn ), fi ( x1, x2 ,..., xn ) T1(i  1,..., n). Рассмотрим
суперпозицию F ( x1, x2 ,..., xn )  f  f1( x1,..., xn ), f2 ( x1,..., xn ),..., fn ( x1, x2,..., xn )  .
F (1,1,...,1)  f  f1(1,1,...,1), f 2 (1,1,...,1),..., f n (1,1,...,1)   f (1,1,...,1)  1 .
Таким образом подстановка функций из множества T1 в функции из того же множества
дает функции из T1 .

2
Аналогичное утверждение справедливо при доказательстве замкнутости других множеств, рассмотренных
ниже.
2
Пусть P2
( n)
– множество всех булевых функций от
( n)
переменных, а T1  T1  P2( n) .
n
1
Тогда T1
( n)
 22 .

S – самодвойственные функции

f ( x1, x2 ,..., xn )  S  f *  f
Примеры:
x, x , x1x2x3 , x1 x2 x1x3  x2 x3  S

x y, xy, x| y, xy, x y  S
Для любой самодвойственной функции выполняется равенство

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

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

Тогда столбец значений самодвойственной функции имеет следующий вид:

0

 2n1 1
 2n1 1

0

Иначе говоря, для самодвойственной функции достаточно задать ее значения в верхней


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

3
Теорема. Множество S замкнуто.

Доказательство. Пусть f ( x1, x2 ,..., xn ), fi ( x1, x2 ,..., xn )  S (i  1,..., n). Рассмотрим


суперпозицию F ( x1, x2 ,..., xn )  f  f1( x1,..., xn ), f2 ( x1,..., xn ),..., fn ( x1, x2,..., xn )  .
F ( x1, x2 ,..., xn )  f  f1( x1,..., xn ), f 2 ( x1,..., xn ),..., f n ( x1,..., xn )  

 
 f f1( x1,..., xn ), f 2 ( x1,..., xn ),..., f n ( x1, x2 ,..., xn )  F ( x1, x2 ,..., xn ) .
 F ( x1, x2 ,..., xn )  S
Таким образом подстановка функций из множества S в функции из того же множества
дает функции из S .

Пусть P2
( n)
– множество всех булевых функций от переменных, а S
( n)
 S  P2(n) .
n1
Тогда S
( n)
 22 .

L – линейные функции
f ( x1, x2 ,..., xn )  L  deg f  1

Примеры: x, x , x1 x2 x3 , x1 x2  L , x y, xy, x| y, xy  L

Теорема. Множество L замкнуто.


Доказательство. Пусть f ( x1, x2 ,..., xn ), fi ( x1, x2 ,..., xn )  L (i  1,..., n). Рассмотрим
суперпозицию F ( x1, x2 ,..., xn )  f  f1( x1,..., xn ), f 2 ( x1,..., xn ),..., f n ( x1, x2 ,..., xn )  .
Для функции F справедливо соотношение deg F  1  F ( x1, x2 ,..., xn )  L.

Таким образом подстановка функций из множества L в функции из того же множества


дает функции из L .

4
Пусть P2
( n)
– множество всех булевых функций от переменных, а L
( n)
 L  P2( n) .

Тогда L
( n)
 2n 1.

f ( x1, x2 ,..., xn )  L  deg f  1  f ( x1, x2 ,..., xn )  a01  a1 x1  a2 x2  ...  an xn

n 1

М – монотоннные функции
f ( x1, x2 ,..., xn )  M  (1,...,n )  (1,..., n )  f (1, 2 ,..., n )  f (1, 2 ,..., n )

Примеры: x, x y, xy  M , x , x| y, xy, xy  M

Теорема. Множество M замкнуто.


Доказательство. Пусть f ( x1, x2 ,..., xn ), fi ( x1, x2 ,..., xn )  M (i  1,..., n). Рассмотрим
суперпозицию F ( x1, x2 ,..., xn )  f  f1( x1,..., xn ), f2 ( x1,..., xn ),..., fn ( x1, x2,..., xn )  .
(1,..., n )  ( 1,...,  n )

F (1,..., n )  f  f1(1,..., n ),..., f n (1,..., n ) 

F ( 1,...,  n )  f  f1( 1,...,  n ),..., f n ( 1,...,  n ) 

 F ( x1, x2 ,..., xn )  M

Таким образом подстановка функций из множества M в функции из того же множества


дает функции из M .

( n)
Пусть P2 – множество всех булевых функций от переменных, M
( n)
 M  P2( n) .
( n) ( n)
В отличие от множеств T0 , T1 , S (n), L(n) , мощности которых легко были найдены
( n)
выше, точное число монотонных функций в P2 при больших не известно.
5
Критерий полноты
Лемма о несамодвойственной функции.

Если f  x1,..., xn   S , то подставляя в функцию вместо переменных xi функции x


и x , можно получить функцию, равную const.

Пример: пусть, например, f  x1, x2 , x3 , x4 , x5   S и при этом f  x , x, x , x , x   1 . Это


означает:

Доказательство.

Если f  x1,..., xn   S , то f  x1,..., xn   f  x1,..., xn .

Если f  x1,..., xn   S , то найдется набор 1,...,n  : f 1,...,n   f 1,...,n .


Рассмотрим функцию F ( x)  f x   , x  ,..., x  . Тогда
( 1) ( 2) ( n)


F (0)  f 0(1 ) ,0( 2 ) ,...,0( n )   f  ,..., ,
1 n

F (1)  f 1  ,1 ,...,1( n )
( 1 ) ( 2 )
  f  ,..., .
1 n

Но 1,...,n  : f 1,...,n   f 1,...,n .


Тогда F (0)  f 1,...,n   f 1,...,n   F (1), то есть F ( x)  const.

Пример. f  x1, x2 , x3   S :

x1 x2 x3 f
0 0 0 0
0 0 1 1
наборы на которых
0 1 0 0
нарушается
0 1 1 1 самодвойственность
1 0 0 1
1 0 1 1  f  x , x, x   1
1 1 0 0
1 1 1 1
6
Лемма о немонотонной функции.

Если f  x1,..., xn   M , то подставляя в функцию вместо переменных функции


x, 0 и 1, можно получить функцию, равную x .

Пример: пусть, например, f  x1, x2 , x3 , x4 , x5  и при этом f  0, x,0,1, x   x . Это


означает:

Доказательство.

Если f  x1,..., xn   M , то найдутся наборы

1,...,n    1,..., n  : f 1,..., n   f  1,..., n .


Тогда обязательно найдется пара соседних наборов, на которых нарушается
монотонность.

Если наборы 1,..., n  и  1,..., n  – соседние, то утверждение доказано.

Если расстояние между этими наборами равно , то рассматривая цепочку


соседних наборов, соединяющих 1,..., n  и  1,..., n  обязательно найдем среди
них пару соседних наборов, на которых нарушается монотонность:

x1 x2 x3 x4 x5 x6 f

0 1 0 0 0 0 1
Соседние наборы на
0 1 0 0 0 1 1
которых нарушается
0 1 0 0 1 1 1 монотонность
0 1 0 1 1 1 0
1 1 0 1 1 1 0

Если наборы 1,..., n  и  1,..., n  – соседние наборы, на которых нарушается


монотонность, то пусть они различаются по i-й координате:

1,...,i 1,0,i 1,...,n  и 1,...,i 1,1,i 1,...,n .


При этом f 1,...,i 1,0,i 1,...,n  =1, f 1,...,i 1,1,i 1,...,n   0.
Рассмотрим функцию F ( x)  f 1,...,i 1, x,i 1,...,n .
7
Тогда F (0)  f 1,...,i 1,0,i 1,...,n   1, F (1)  f 1,...,i 1,1,i 1,...,n   0,
т.е. F ( x)  x .

Пример. f  x1, x2 , x3   M :

x1 x2 x3 f
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 1
Соседние наборы на
1 0 1 1
которых нарушается
1 1 0 1 монотонность
1 1 1 0  f 1,1, x   x

Лемма о нелинейной функции.

Если f  x1,..., xn   L , то подставляя в функцию вместо переменных функций


x или x , y или y , 0, 1 и, при необходимости, инвертируя функцию , можно получить
функцию конъюнкции.

Пример: пусть, например, f  x1, x2 , x3 , x4 , x5   L и при этом f  0, x ,0,1, y   x  y

Доказательство.

Если f  x1,..., xn   L, то в АНФ функции найдется хотя бы одно слагаемое,


содержащее произведение каких-то двух переменных. Пусть, например, это будут
переменные и . Тогда f  x1,..., xn  можно представить следующим образом:

8
f  x1,..., xn  
 x1  x2  g1  x3 ,..., xn   x1  g 2  x3 ,..., xn   x2  g3  x3 ,..., xn   g 4  x3 ,..., xn .

Функция, не являющаяся Произвольные функции


тождественным 0. от x3, … , xn

Так как g1  x3 ,..., xn   0   3 ,..., n  : g1 3,..., n   1.

Рассмотрим функцию 1  x1, x2   f  x1, x2 ,3 ,..., n  . Она имеет вид:

1  x1, x2   x1  x2  1  x1   2  x2  0 ; где
1  g 2  3 ,..., n  ,
 2  g3  3 ,..., n  ,
0  g 4  3 ,..., n .

Рассмотрим теперь функцию 2  x1, x2   1   x1  2  ,  x2  1  .

Инвертируем или не инвертируем переменные, в


зависимости от значений величин 1 и 2.

2  x1, x2   1   x1   2  ,  x2  1   
  x1   2    x2  1   1   x1   2    2   x2  1   0 
 x1  x2   1   2  0  .

Тогда функция F  x1, x2   2  x1, x2    1  2  0   x1  x2 .

Инвертируем или не инвертируем функцию 2 в


зависимости от значений величин 1·2 0 .

9
Пример. f  x1, x2 , x3   L :

x1 x2 x3 f
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1 f 1, x2 , x3   x2  x3
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1

Теорема Поста
Теорема. Для того, чтобы система булевых функций была функционально полной
необходимо и достаточно, чтобы она целиком не лежала ни в одном из 5 основных
замкнутых классов: T0 , T1, S , M , L .

Доказательство. Необходимость. Пусть B  N , где N  T0 , T1, S , M , L – один из 5

основных замкнутых классов. Тогда  B    N   N  P2 .

Достаточность. Пусть целиком не лежит ни в одном из 5 основных замкнутых


классов. Тогда

 f 0  B, f0  T0 ;
 f1  B, f1  T1;
 f s  B, fs  S;
 f m  B, fm  M ;
 fl  B, fl  L.
I. Покажем, что с помощью функций f 0 , f1 , f s можно получить константы 0 и 1.

f0 T0  f0 (0,0,...,0)  1
Рассмотрим два случая в зависимости от того, чему равна функция f 0 на наборе
(1,1,...,1) :

10
а) f0 (1,1,...,1)  1  F1( x)  f0 ( x, x,..., x)  1,

f1  T1  f1(1,1,...,1)  0
 F0 ( x)  f1( f0 ( x, x,..., x),..., f0 ( x, x,..., x))  f1(1,1,...,1)  0.
Таким образом, получены константы 0 и 1.

б) f0 (1,1,...,1)  0  F ( x)  f0 ( x, x,..., x)  x
По лемме о несамодвойственной функции, из функций f s  S и x можно получить
константу α; другую константу можно получить, применив к α функцию инверсии.

II. Если имеет место п. Iа, то с помощью полученных в п. Iа констант 0 и 1 и функции


f m  M по лемме о немонотонной функции можно получить функцию инверсии x .

Таким образом, в нашем распоряжении имеются константы 0, 1 и функция инверсии x .

III. C помощью полученных в п.п. I, II констант 0 и 1, функции инверсии x и функции


fl  L по лемме о нелинейной функции можно получить функцию конъюнкции x  y.
Таким образом, каждая функция функционально полной системы B3   x1  x2 , x 
может быть выражена формулой над множеством . По доказанной ранее теореме,
множество само является функционально полной системой.

Следствие. Всякий отличный от P2 замкнутый класс булевых функций целиком


содержится по крайней мере в одном из 5 замкнутых классов: T0 , T1, S , M , L.

Пример. Рассмотрим множество B8   0,  1, x1  x2 , x1  x2  x3 . Составим


табличку принадлежности наших функций основным замкнутым классам:

11
Из таблички видно, что множество B8   0,  1, x1  x2 , x1  x2  x3 является
функционально полной системой, но никакое его подмножество функционально полной
системой не является.

Теорема. Из всякой функционально полной системы булевых функций можно выделить


функционально полную подсистему, содержащую не более 4 функций.
Доказательство. В ходе доказательства теоремы Поста было выделено подмножество
из 5 функций, образующих функционально полную подсистему:

f 0  B, f 0  T0 ;
f1  B, f1  T1;
f s  B, fs  S;
f m  B, fm  M ;
fl  B, fl  L.
Но если для f0  T0 помимо равенства f0 (0,0,...,0)  1 выполняется равенство
f0 (1,1,...,1)  1, то

f0 T0 ; f0  S   f0 , f1, fm , fl   B.

Функционально полная подсистема

Если же для f0  T0 помимо равенства f0 (0,0,...,0)  1 выполняется равенство


f0 (1,1,...,1)  0, то
f0 T0 ; f0 T1; f0  M   f0 , f s , fl   B.

Функционально полная подсистема

Заметим, что пример функционально полной системы

B8   0,  1, x1  x2 , x1  x2  x3
показывает, что число 4 в условии теоремы уменьшить нельзя.

12

Оценить