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

METOD_12

.pdf
Скачиваний:
19
Добавлен:
21.05.2015
Размер:
206.87 Кб
Скачать

23

– удалим лишение слагаемые, так как u u = 0 .

Пример 1. Построить ПЖ для функции (x → y) (z x) с использованием таблицы истинности.

Построим таблицу истинности для данной функции:

x

y

z

x

y

x → y

z x

(x → y) (z x)

0

0

0

1

1

1

1

1

0

0

1

1

1

1

0

0

0

1

0

1

0

1

1

1

0

1

1

1

0

1

0

0

1

0

0

0

1

1

0

0

1

0

1

0

1

1

1

1

1

1

0

0

0

0

0

0

1

1

1

0

0

0

1

0

Для построения полинома Жегалкина используем его представление (6.3). Составим систему уравнений для неизвестных a0, a1, a2, . . . , a123 :

a0

=

1

a0 a3

=

0

a0 a2

=

1

a0 a1

=

0

 

a0 a2 a3 a23 = 0

 

a0 a1 a2 a12 = 0

a0 a1 a2 a3

a0 a1 a3 a13

= 1

a12 a13 a23 a123

= 0.

Решая эту систему уравнений "сверху вниз", находим: a2 = a23 =

= a12 = a13 = 0 , a0

= a1 = a3 = a123 = 1 . Подставляя найденные

коэффициенты в (6.3), получим

 

P (x, y, z) = 1 x z xyz.

Пример 2. Построить ПЖ для функции (x → y) (z x) методом эквивалентных преобразований.

(x → y) (z x) = (x y) (z x 1) =

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

Сравнивая результаты, полученные в примерах 1 и 2, можно ещё раз убедиться в единственности представления формулы в виде ПЖ.

24

Задачи и упражнения

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

а) (x y) → yz ;

б) f = (01101100) ;

в) ((x → y) ↔ z)| xyz ;

г) f = (0100110000110010) .

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

а) (x → y)(x y)(x ↔ y)(y| x) ;

б) ((x → y) z) (x (y → z)) ;

в) (x1 x2) (x3 x4) ;

г) ((x z) → y) ((x| y) y) ;

д) (y ↔ z)(z ↔ x)(x y) ;

е) (x1| x2) (x3| x4) .

6.3. Построить полиномы для функций:

а) f(x, y, z) = (x| y) ↓ z ;

б) f(x, y, z) = (x → y)(x ↓ z) ;

в) f(x, y, z) = ((x → y) z)| x .

6.4. Всякую булеву функцию можно записать в виде полинома, используя обычные арифметические операции умножения, сложения и вычитания. Для этого достаточно выразить f через конъюнкцию и

отрицание, а затем заменить формулу вида A на 1 −A и раскрыть скобки. Выразить с помощью арифметических операций следующие функции:

а) f(x, y, z) = x y ;

б) f(x, y, z) = (x → y) → z ;

в) f(x, y, z) = (10000001) .

6.5. На скольких наборах из En обращается в единицу полином

P (x1, x2, . . . , xn) :

а) P (x1, x2, . . . , xn) = x1 . . . xk xk+1 . . . xn ;

б) P (x1, x2, . . . , xn) = 1 x1 x1x2 . . . x1x2 . . . xn .

25

6.6. Показать, что если в совершенной днф знак везде заменить на знак , то получится формула, эквивалентная исходной. Справедливо ли аналогичное утверждение для произвольной днф?

Производной булевой функции f(x1, x2, . . . , xn) по совокупности переменных xi1 , xi2 , . . . , xik (или булевой разностью называется функция)

 

 

 

 

 

 

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

 

= f(x1, . . . , xi1 . . . , xik , . . . , xn)

 

 

 

 

 

 

 

 

 

 

 

 

(xi1 , xi2 , . . . , xik )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f(x1, . . . , xi1 . . . , xik , . . . , xn).

 

 

 

 

 

 

 

 

 

 

 

6.7. Доказать следующие свойства производной:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

 

df(x1, x2, . . . , xn)

 

d

 

df(x1, x2, . . . , xn)

 

 

 

 

 

 

а)

 

 

 

 

 

(

 

 

 

 

 

 

 

 

 

 

 

)

=

 

 

(

 

 

 

 

 

 

 

 

 

 

 

);

 

 

 

 

 

 

dxj

 

dxi

 

 

dxi

 

 

 

 

 

dxj

 

 

 

 

 

 

 

 

 

 

б)

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

=

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

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(xi1 , xi2 , . . . , xik )

(xi1 , xi2 , . . . , xik )

 

 

 

 

 

 

 

 

 

 

 

в)

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

 

=

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(xi1 , xi2 , . . . , xik )

 

 

 

 

 

 

 

(xi1 , xi2 , . . . , xik )

 

 

 

 

 

 

∂g(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(xi1 , xi2 , . . . , xik )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

г)

d(f(x1, x2, . . . , xn) g(x1, x2, . . . , xn))

= f(x

, x

 

, . . . , x

)

 

 

 

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

1

2

 

 

 

n

 

 

 

 

 

 

dg(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

df(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

 

 

df(x1, x2, . . . , xn) dg(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

д)

 

d(f(x1, x2, . . . , xn) · g(x1, x2, . . . , xn)) = f(x

, x

, . . . , x

 

)

 

 

 

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

1

 

2

 

 

 

n

 

 

 

 

 

dg(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

df(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ g(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

 

 

df(x1, x2, . . . , xn) dg(x1, x2, . . . , xn)

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

·

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

е)

df(x1, x2, . . . , xn)

 

= 0 тогда и только тогда, когда xi не входит

 

 

 

 

 

 

 

 

 

dxi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

явно в полином Жегалкина f(x1, x2, . . . , xn) ;

 

 

 

 

 

 

 

 

 

ж) если f(x1, x2, . . . , xn)

= x1g(x2, . . . , xn) + h(x2, . . . , xn) ,

то

 

 

 

df(x1, x2, . . . , xn)

= g(x2, . . . , xn) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.8. Если

 

g(x1, x2, . . . , xm)

 

и

h(xm+1, . . . , xn) –

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

и

1 ≤ j ≤ m для всех j = 1, . . . , k , то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

а)

б)

в)

(g + h)

(xi1 , . . . , xik )

(g h)

(xi1 , . . . , xik )

(g gh)

(xi1 , . . . , xik )

=

 

∂g

;

 

 

 

 

 

(xi1 , . . . , xik )

 

= h

∂g

 

 

;

 

 

(xi1 , . . . , xik )

 

∂g

 

.

= h

(xi1 , . . . , xik )

§7. Операция замыкания. Замкнутые классы

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

Пусть M – некоторые подмножество множества Б . Замыканием [M] множества M называется совокупность всех функций из Б , являющихся суперпозициями функций из M .

Операция получения множества [M] из M называется операцией замыкания. Множество M называется функционально замкнутым классом (короче замкнутым классом), если [M] = M .

Пусть M – замкнутый класс в Б . Подмножество P из M называется функционально полной системой в M , если [P] = M . Множество P функций из M называется неприводимой системой, если замыкание любого собственного подмножества Pиз P отлично от замыкания всего множества P , т.е. [P] [P] и [P] ≠ [P] . Неприводимая, полная в замкнутом классе M система называется базисом класса M .

Упражнения

7.1. Обосновать следующие свойства замыкания:

а) [ [M] ] = [M] ;

б) если M1 M2 , то [M1] [M2] ;

в) [M1 M2] [M1] [M2] ;

г) [ ] = .

7.2. Вытекает ли соотношение г) из соотношений а), б), в)?

/

7.3.Выяснить какие из отношений , , , , =, выполняется для

множеств K1 Б и K2 Б (отношение означает, что ни одно из отношений K1 и K2 не выполняется)

называемое принципом
f(f1(x1, x2, . . . , xn), . . . , f (f1 (x1, x2, . . . , xn), . . . ,

27

а) K1 = [M1 ∩ M2], K2 = [M1] [M2] ;

б) K1 = [M1 \ M2], K2 = [M1] \ [M2] ;

в) K1 = [M1 (M2 ∩ M3)], K2 = [M1 M2] [M1 M3] ; г) K1 = [M1 (M2 M3)], K2 = [M1 ∩ M2] [M1 ∩ M3] ;

д) K1 = [M1 \ (M1 ∩ M2)], K2 = [M1] \ [M1 ∩ M2] .

7.4. Из системы P , полной для замкнутого класса M = [P] , выделить базис

а) P = {0, 1, x, x};

б) P = {1, x y z 1};

в) P = {x y, xyz, x yz, (x y)z};

г) P = {x y z, xyz, (x → y) → z, (x y)z};

д) P = {xy, x y, x → y, x y z}.

§8. Двойственность и класс самодвойственных функций

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

По определению, функцией, двойственной к константе 0, является константа 1 и, наоборот, константа 0 является функцией, двойственной к константе 1. Функция, двойственная к функции f(x1, x2, . . . , xn) , обо-

значается f (x1, x2, . . . , xn) . Итак,

 

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

(8.1)

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

 

Справедливо следующее утверждение, двойственности. Если (x1, x2, . . . , xn) =

fm(x1, x2, . . . , xn)) , то (x1, x2, . . . , xn) = fm(x1, x2, . . . , xn)) .

Пусть M – некоторое множество булевых функций, M Б . Через M обозначим множество всех булевых функций, двойственных к функциям из множества M . Множество M называется двойственным к множеству M . Если M = M , то множество M называется самодвойственным.

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

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

28

Множество всех самодвойственных функций обозначим через S . Из определения самодвойственности следует, что функция са-

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

Лемма (о несамодвойственной функции). Если функция f(x1, x2, . . . , xn) несамодвойственна, то подставляя в неё вместо переменных x1, x2, . . . , xn x или x , можно получить простейшую несамодвойственную функцию – константу.

Упражнения

8.1. Является ли функция g двойственной к функции f , если

а) f = x → y, g = y → x ;

б) f = xy xz yz, g = xy xz yz ;

в) f = x y z, g = x y z ;

г) f = xyz x(y ↔ z), g(x, y, z) = (01101101) ;

д) f = x y, g = x ↔ y .

8.2. Пусть значения функции f(x1, x2, . . . , xn) образуют согласно таблице истинности набор (α1, α2, . . . , α2n ) . Доказать, что функция f (x1, x2, . . . , xn) задается вектором (α2n , α2n1, . . . , α2, α1) .

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

8.4.Пользуясь принципом двойственности, построить формулу, реализующую функцию, двойственную к функции f . Полученное выражение упростить (записав его в виде днф или в виде полинома Жегалкина)

а) f = xy yz xt zt ;

б) f = x · 1 y(zt 0) xyz ;

в) f = (x ↔ y) ((x ↓ y)|(x ↔ yz)) ;

г) f = (x y (yz 1)) 1 .

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

а) f = xy yz xz ;

б) f = ¬ ((x → y) → xz) (y → z) ;

в) f = (x y z)t xyz ;

29

г) f = (0001001001100111) ;

д) f = x1 x2 . . . x2m+1 σ , где σ = {0, 1}.

8.6.Доказать, что если f(x1, x2, . . . , xn) – самодвойственная функция, то мощность её множества истинности равна 2n−1 .

8.7.Из самодвойственной функции f с помощью подстановки на места независимых переменных x и x получить константу:

а) f = (01101001) ;

б) f = (x y z)t xyz ;

в) f = (x ↓ y) (x z) ;

г) f = xy xz yt zt .

§9. Линейность и класс линейных функций

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

f(x1, x2, . . . , xn) = a0 a1x1 a2x2 . . . anxn,

где ai {0, 1}, 0 ≤ i ≤ n . Множество всех линейных функций обозначается L , а множество всех линейных функций, зависящих от переменных x1, x2, . . . , xn – через Ln .

Класс L линейных функций замкнут. Мощность множества Ln равна 2n+1 . Функция f /L называется нелинейной.

Лемма (о нелинейной функции). Если f(x1, x2, . . . , xn) нелинейная функция, то подставляя на места её переменных x1, x2, . . . , xn функции 0, 1, x, y, x, y получим либо xy , либо x| y .

Упражнения

9.1. Разлагая функцию f в полином Жегалкина, выяснить, является ли она линейной.

а) f(x, y, z) = (xy xz) z ;

б) f(x, y) = xy(x y) ;

в) f(x, y, z, u) = xy yz zu xu ;

г) f(x, y, z) = (x → y)(y → x) ↔ z .

30

9.2. Наборы (α1, . . . , αi−1, αi, αi+1, . . . , αn) и (α1, . . . , αi−1, αi, αi+1, . . . , αn) являются соседними (см. определение на стр. 3). Доказать, что если функция на любых двух соседних наборах принимает противоположные значения, то она линейна.

9.3.Доказать, что если f(x1, x2, . . . , xn) – линейная функция отличная от константы, то мощность её множества истинности равна 2n−1 .

9.4.Выяснить, является ли линейной функция f :

а) f(x, y, z, u) = (1010101001101000) ;

б) f(x, y, z, u) = (1001011010010110) ;

в) f(x, y, z, u) = (1001011001101001) ;

г) f(x, y, z, u) = (0110100110100101) .

9.5. Выяснить, можно ли из функции f с помощью подстановки на места её переменных функций 0, 1, x, y, x, y получить xy .

а) f(x, y, z) = (11101000) ;

б) f(x, y, z) = (01111111) ;

в) f(x, y, z) = (10011001) ;

г) f(x1, x2, . . . , xn) = (x1 → x2)(x2 → x1) (x2 → x3)(x3 → x2). . . (xn−1 → xn)(xn → xn−1) .

§10. Классы функций, сохраняющих константы

Говорят, что функция f(x1, x2, . . . , xn) сохраняет константу 0 (константу 1), если f(0, 0, . . . , 0) = 0 (соответственно, если f(1, 1, . . . , 1) = 1 ). Множество всех булевых функций, сохраняющих константу 0, обозначается через T0 , а сохраняющих 1 – T1 . Множество всех булевых функций, зависящих от переменных x1, x2, . . . , xn и сохраняющих константу 0 (константу 1) будем обозначать T0n (соответственно T1n ). Мощность классов T0n и T1n совпадают и равны 22n1 . Каждое из множеств T0, T1 является замкнутым в Б классом.

Упражнения

10.1. Выяснить, каким из множеств T0 T1, T1 \ T0 принадлежат перечисленные ниже функции:

а) ((x y) (x| yz)) ((y ↔ z) → x) ;

б) (xy → z)| ((x → y) (z xy)) ;

31

в) (x → y)(y ↓ z) (z → y) .

10.2. Выяснить, при каких n функция f(x1, x2, . . . , xn) принадлежит множеству T1 \ T0 :

а) f(x1, x2, . . . , xn) = x1 x2 . . . xn 1 ;

б) f(x1, x2, . . . , xn) = (. . . ((x1 → x2) → x3) → . . . → xn) ;

в) f(x1, x2, . . . , xn) = 1 xi1 xi2 xi3 .

1≤i1<i2<i3≤n

10.3. Подсчитать число функций, зависящих от переменных x1, x2, . . . , xn , в каждом из следующих множеств:

a) T0 ∩ T1 ; б) T0 T1 ; в) T0 ∩ L ; г) T1 L ;

д) L \ (T0 ∩ T1) ;

е) T1 ∩ S ;

ж) T0 \ S ;

з) L ∩ S ∩ T1 ; и) S ∩ (T0 T1) ; к) S \ (T0 T1) .

10.4. Найти функцию φ(x) = f(x, x, . . . , x) , если

а) f(x1, x2, . . . , xn) T1 \ T0 ;

б) f(x1, x2, . . . , xn) L \ (T1 ∩ S) ; в) f(x1, x2, . . . , xn) S \ T0 .

§11. Монотонность и класс монотонных функций

Булева функция f(x1, x2, . . . , xn) называется монотонной, если для любых двух наборов (α1, α2, . . . , αn) и (β1, β2, . . . , βn) из En таких, что α1 ≤ β1, α2 ≤ β2, . . . , αn ≤ βn имеет место неравенство

f(α1, α2, . . . , αn) ≤ f(β1, β2, . . . , βn).

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

Множество всех монотонных булевых функций обозначается через M , а множество всех монотонных функций, зависящих от переменных x1, x2, . . . , xn – через Mn . Множество M является замкнутым в Б классом.

Лемма (о немонотонной функции): если f / M , то, подставляя на места её переменных функции 0, 1, x , можно получить простейшую немонотонную функцию x .

 

 

 

 

 

32

 

 

 

 

 

Вершина

(α1, α2, . . . , αn)

En называется нижней

едини-

цей

(верхним

нулем) монотонной функции f(x1, x2, . . . , xn) ,

ес-

ли

f(α1, α2, . . . , αn)

= 1 (соответственно f(α1, α2, . . . , αn)

=

0 )

и

для

всякой

вершины

(β1, β2, . . . , βn)

из

неравенств

β1 ≤ α1, β2 ≤ α2, . . . , βn ≤ αn вытекает f(β1, β2, . . . , βn) = 0

(соответственно из α1 ≤ β1, α2 ≤ β2, . . . , αn ≤ βn вытекает f(β1, β2, . . . , βn) = 1 ).

Упражнения

11.1. Какие из перечисленных ниже функций является монотонными?

а) x → (x → y) ;

б) x → (y → x) ;

в) xy(x y) ;

г) xy yz zx z ;

д) f(x, y, z) = (00110111) ;

е) f(x, y, z) = (01100111) ;

ж) f(x, y, z, u) = (0000000010111111) ;

з) f(x, y, z, u) = (0001010101010111) .

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

11.3. Сколько существует монотонных функций f(x, y, z) таких, что

f(0, 1, 1) =

f(1, 0, 1) = 1, f(0, 0, 1) = 0 . Сколько таких функций

принадлежит множеству M \ S ?

 

11.4. Показать,

что

если

функция

f(x1, x2, . . . , xn) немонотонна,

то существуют

такие

два набора

(α1, . . . , αi−1, 0, αi+1, . . . , αn) и

(α1, . . . , αi−1, 1, αi+1, . . . , αn) такие, что

f(α1, . . . , αi−1, 0, αi+1, . . . , αn) > f(α1, . . . , αi−1, 1, αi+1, . . . , αn).

11.5.Показать, что не существует монотонных самодвойственных функций, имеющих ровно две нижние единицы.

11.6.Пусть m(n) – число монотонных функций, зависящих от переменных x1, x2, . . . , xn . Показать, что m(1) = 3, m(2) = 6, m(3) = 20 .

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