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

Дискретка / 7 - БФ (часть 4) - Полнота системы БФ

.pdf
Скачиваний:
27
Добавлен:
25.02.2016
Размер:
377.01 Кб
Скачать

Полином Жегалкина

Было показано, что любую булеву функцию можно представить в виде формулы, содержащей только связки ¬, & и ˅. Итак, множество {0, 1} с заданными на нём операциями ¬, & и ˅ называется алгеброй логики.

Кроме того, любую функцию можно задать формулой, содержащей лишь связки & и(будет показано ниже). Множество {0, 1} с заданными на нём операциями & и , называется алгеброй Жегалкина. Но в этой алгебре для конъюнкции обычно используют запись xy (а не x & y), а для суммы по модулю 2 – обычный знак сложения: x + y.

Операции алгебры Жегалкина обладают следующими свойствами: коммутативности:

1°. xy ~ yx ;

2°.

3°.

4°.

5°.

6°.

7°.

8°.

9°.

10°.

11°.

x y ~ y x ;

ассоциативности:

xy z ~ x yz ~ xyz ;x y z ~ x y дистрибутивности: x y z ~ xy xz .

операции с 0 и 1: x 0 ~ 0 ;

x 1 ~ x ; x 0 ~ x ;

идемпотентность: xx ~ x ;

x x ~ 0 ;

Из свойств 8° и 10°, x x ~ 0 ;

z ~ x y

очевидно,

z ;

следуют обобщённые свойства:

чётн.

12°.

x x ~ нечётн.

x

.

Теорема.

Любую

булеву

 

функцию

f (x1, …, xn)

можно

единственным образом

представить в виде:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f x

, , x

n

a

0

a x

 

a

n

x

n

a

n 1

x x

2

a

m

x

n 1

x

n

 

 

1

 

 

 

1

1

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

(1)

 

 

 

 

 

 

a

x

x

 

x

 

a

x x

 

x

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

3

2

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m 1 1

 

 

 

 

r

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где ai, i 0, r , – булевы параметры (равны 0 или 1).

 

 

 

 

 

 

 

 

 

 

 

 

Вид (1) называется полиномом Жегалкина, составленным для функции f (x1, …, xn).

 

Легко убедиться, что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x ~ 1 x ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)

 

 

 

 

 

 

 

 

 

x y ~ x y xy.

 

 

 

 

 

 

 

 

 

 

 

 

 

(3)

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

fx y z .

1.Построим полином Жегалкина аналитически:

1

f

 

 

 

z ~ x y z ~ x y z ~ x y x y z ~

 

 

 

 

 

 

 

 

 

 

 

x

y

x

y

z

 

x

 

 

з. 25

 

з. 23

3

2

2

 

 

 

 

 

~ x 1 y x 1 y z

~

xy y x y z 1 ~

0

0

0

 

1

 

 

 

 

0

0

1

 

1

 

 

 

 

 

 

4 ,5

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~ xy x z 1.

 

 

 

0

1

0

1

 

2. Найдём

полином Жегалкина табличным способом. Для

0

1

1

 

1

 

 

 

 

 

 

 

 

1

0

0

 

0

этого построим таблицу истинности исходной функции:

1

0

1

 

0

 

 

 

 

 

 

 

 

 

 

 

Построим конституенты единиц, сложим их и произведём

1

1

0

 

0

следующие преобразования:

 

 

 

1

1

1

 

0

f

x y z ~ x y z xyz xyz xyz ~

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

~ x 1 y 1 z 1 x 1 y z 1 x y 1 z xy z 1 ~

 

 

 

 

 

 

~

xyz xy xz yz x y z 1 xyz xy yz y xyz xz xyz xy ~

 

3 ,4 ,5 ,

 

 

 

 

 

 

 

 

 

 

 

 

~

xy x z 1.

 

 

 

 

 

 

 

 

11 ,12

 

 

 

 

 

 

 

 

 

 

 

Полнота системы булевых функций

x y

 

z

0

1

0

0

0

1

0

0

1

0

1

1

0

1

0

0

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

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

 

 

Примеры полных систем: , & , , , & , , .

Система булевых функций называется базисом, если она полна, но никакая её

собственная часть уже не является полной.

 

 

Примеры. Системы , & и ,

являются базисами,

но поэтому система

, & , базисом уже не является.

 

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

1.Класс функций, сохраняющих ноль, P0.

Булева функция f (x1, …, xn) называется сохраняющей ноль, если она обращается в

ноль на нулевом наборе значений переменных, т.е. f (0, …, 0) = 0.

Примеры: –

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

x & y ,

x y ,

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

x ,

x y ,

x y ;

x | y ,

x

y

.

2. Класс функций, сохраняющих единицу, P1.

Булева функция f (x1, …, xn) называется сохраняющей единицу,

если она принимает

значение 1 на единичном наборе значений переменных, т.е. f (1, …, 1)

= 1.

Примеры: – функции, сохраняющие единицу: x & y , x y ,

x y ;

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

x ,

x y ,

x | y ,

x

y

.

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

Булева функция называется самодвойственной, если её отрицание равносильно функции отрицания (переменных), т.е.

f x1 , , xn ~ f x1 , , xn .

(4)

2

 

Пример.

1)

f x x .

f x x

 

 

f x x

2)

g x, y x

 

f x ~ f x

 

y .

 

 

f – самодвойственная.

Для проверки условия (4) построим полиномы Жегалкина для отрицания функции g (левая часть (4)) и функции g от переменных с отрицанием (правая часть (4)) и сравним полученные полиномы.

 

 

 

 

 

g x, y x y ~ xy x y 1

 

 

 

 

 

 

g x, y g x, y

 

g x, y x y ~ x & y ~ xy 1

 

 

 

 

 

 

 

 

 

 

g – не самодвойственная.

Вместо условия (4) можно проверять эквивалентное ему условие:

f x

, , x

~ f x

, , x

.

1

n

1

n

 

4. Класс монотонных функций, M.

Булева функция называется монотонной, если с возрастанием набора значений переменных (по неравенству Парето), значение функции не убывает, т.е.

a1, , an , b1, ,bn : a1, , an b1, ,bn f a1, , an f b1, ,bn .

(5)

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

Пример. Монотонными функциями являются x & y

и x y .

Функция f x, y x y не является монотонной,

т.к. для 0-го ((a1, a2) = (0, 0)) и

2-го ((b1, b2) = (1, 0)) условие (5) нарушается, т.е. f (0, 0) = 1 > f (1, 0) = 0.

Пара наборов 1 и 2 ((a1, a2) = (0, 1) и (b1, b2) = (1, 0)) для доказательства не подойдут, т.к. являются несравнимыми по неравенству Парето, т.е. посылка (левая часть следствия в (5)) является ложной, что обращает в истину весь предикат (результат связки →) независимо от истинности или ложности заключения (правой части следствия в (5)), и это не нарушает проверяемого условия. □

5.Класс линейных функций, L.

Булева функция называется линейной, если составленный для неё полином

Жегалкина линеен, т.е. имеет место представление:

f x1 , , xn a0 a1 x1 a2 x2 an xn .

Теорема. Каждый из пяти описанных классов является замкнутым, т.е. суперпозиция функций одного класса является функцией этого же класса.

Теорема Поста (критерий полноты). Система булевых функций полна тогда и только тогда, когда для каждого из классов P0, P1, S, M, L есть функция рассматриваемой системы, ему не принадлежащая.

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

P0:

P0 ;

P1:

P1 ;

S:

S ;

3

M: L:

x y ~ x y

 

x y ~

x y

S ;

 

 

x y ~ x y ~ x y 1

 

 

 

 

 

 

 

 

: 0 1 & 0 1

M ;

 

 

x ~ x 1

L ;

 

 

 

x y ~ x y ~ x y 1

L .

 

 

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

 

Примеры. Выяснить, полна ли система булевых функций, является ли базисом, и,

если полна, но не является базисом, то какие базисы из неё можно выделить:

а)

,&, ;

б)

x y, x y z ;

в)

&, ;

г)

| , ;

д)

x & y , x y z ;

е)

x y z , x z ;

ж) x & y z , x | y , x y ;

з)

x & y z , x y , x y z .

4