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

Лекции по дискретной математике

.pdf
Скачиваний:
185
Добавлен:
02.05.2014
Размер:
2.56 Mб
Скачать

 

 

 

 

 

 

Двойственные функции

 

 

 

 

 

 

опр ||

функция

[ f (x1, x2 ,..., xn )]* =

 

 

 

 

 

 

 

 

 

f

(x1

, x2 ,..., xn ) называется

двойственной функцией к функции f (x1, x2 ,..., xn ) .

Пример.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

x2

 

x3

 

γ(x 1 , x 2 , x 3 )

[ γ(x1 , x 2 , x 3 )]*

 

 

0

 

0

 

0

 

1

 

 

 

 

0

 

 

 

 

 

0

 

0

 

1

 

1

 

 

 

 

1

 

 

 

 

 

0

 

1

 

0

 

0

 

 

 

 

0

 

 

 

 

 

0

 

1

 

1

 

0

 

 

 

 

1

 

 

 

 

 

1

 

0

 

0

 

0

 

 

 

 

1

 

 

 

 

 

1

 

0

 

1

 

1

 

 

 

 

1

 

 

 

 

 

1

 

1

 

0

 

0

 

 

 

 

0

 

 

 

 

 

1

 

1

 

1

 

1

 

 

 

 

0

 

 

 

 

Правило ||

 

 

 

 

 

 

 

 

 

 

 

 

 

Чтобы

получить

двойственную функцию

 

нужно инвертировать

f (x1,..., xn )

(0 1;1 0) , а затем перевернуть таблицу.

Соответствие элементарных функций f 0, 1, x, x , x1& x2 , x1 x2

f* 1, 0, x, x , x1 x2 , x1& x2

Из определения двойственности следует, что

γ** = (γ* )* = γ

Теорема || Пусть

Φ(x1,..., xn ) = γ(γ1(x11,..., x1p1 ),..., γm (xm1,..., xm pm ))

Тогда

Φ*(x1,..., xn ) = γ*(γ1*(x11,..., x1p1 ),..., γ*m (xm1,..., xm pm ))

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

Φ*(x1,..., xn ) = Φ(x1,..., xn ) = f (f1(x11,..., x1p1 ),...,fm (xm1,..., xm pm )) =

=f (f1(x11,..., x1p1 ),...,f m (xm1,..., xm pm )) =

=f (f1*(x11,..., x1p1 ),...,f *m (xm1,..., xm pm )) =

=f *(f1*(x11,..., x1p1 ),...,fm* (xm1,..., xm pm ))

Отсюда вытекает принцип двойственности: двойственной к формуле U = C(f1,..., fn ) является формула U* = C(f1*,..., fn* ).

Пусть формула содержит только символы &, , ¬. Тогда для получения U* из U нужно заменить:

0 1 &

b b b b

1 0 &

Из принципа двойственности вытекает, что

U(x1 ,..., xn ) = B(x1 ,..., xn )

b

.

U* (x1 ,..., xn ) = B* (x1 ,..., xn )

Вчастности,

x1 & x2 = x1 x2

c .

x1 x2 = x1 & x2

Лекция №15

Разложение булевых функций по переменным.

Возникают вопросы:

1)всякая ли функция может быть записана с помощью формулы?

2)как это сделать?

Совершенная дизъюнктивная нормальная форма.

Обозначим xδ = xδ + xδ, где δ равен либо 0, либо 1. Тогда

xδ = x, δ = 0 .x , δ =1

Поскольку

αα = αα + α α = α + α =1

,

αα = αα + αα = 0

то xδ=1 x=δ.

Теорема о разложении функции по переменным || Каждую функцию Булевой алгебры f (x1,..., xn ) при любом m (1 m n) можно

представить в следующей форме: f (x1,..., xm , xm+1,..., xn ) =

=

 

 

xδ1

& ... & xδmm & f (δ1,..., δm , xm+1,..., xn ) ,

(δ

,K ,δ

m

) 1

 

1

 

 

 

где дизъюнкция берется по всем наборам значений переменных x1 ,..., x n . ||

опр || Это представление называется разложением функции по m переменным x1,…xm.||

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

1) Рассмотрим произвольный набор значений (α1,..., αn ) . Левая часть равенства имеет вид f (α1,..., αn ) . Правая часть

 

α1δ1

& ... & αδmm & f (δ1,...,δm ,αm+1,...,αn ) =

(δ1,K ,δm )

 

(в сумме только одно произведение отлично от нуля: то в котором δj = αj )

= αα1

& ... & ααm & f (α ,...,α

m

,α

m+1

,...,α

n

) =

1

m

1

 

 

 

= f (α1,...,αm ,αm+1,...,αn ) .

Теорема доказана.

Разложение по одной переменной

1) f (x1,..., xn 1, xn ) = xn & f (x1,..., xn 1,1) xn & f (x1,..., xn 1,0)

Разложение по всем n переменным

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

 

x1δ1

& ... & xδnn & f (δ1,...,δn )

При f 0

(δ1,K ,δn )

 

 

 

 

 

f (x1,..., xn ) =

 

x1δ1

& ... & xδnn

(δ1

,K ,δn )

 

 

f (δ1,K ,δn )=1

 

Опр. Это разложение называется совершенной дизъюнктивной нормальной формой.

Теорема || Каждая функция алгебры логики может быть выражена в виде формулы, содержащей только отрицание, конъюнкцию и дизъюнкцию. ||

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

1) Если

f (x1,..., x n ) 0 , то f (x1,..., xn ) = x1

 

x1

2) Если

f (x1,..., xn ) 0 , то

 

 

f (x1,..., xn ) =

 

 

 

 

x1δ1

& ... & xδnn

 

 

 

 

 

 

 

 

 

 

(δ1,K ,δn )

 

 

 

 

 

 

 

 

Примеры

f (δ1,K ,δn )=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1 x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

x2

 

 

 

 

f

 

 

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

1

 

 

 

 

 

 

 

0

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

0

 

 

 

 

0

 

 

 

 

 

 

 

1

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

f (x1,x2) =

 

1

 

2 +

 

1 x 2 + x 1 x 2 =

 

x

x

x

 

(это СДНФ; теперь преобразуем)

 

 

 

 

=

 

 

 

 

 

 

 

 

x

1 (x

2 + x 2 ) + x 1 x 2 = x 1 + x 1 x 2 = x 1 + x 2

 

 

 

Следующий пример. Дана таблица

 

 

 

 

 

 

 

x1

 

 

 

 

 

x2

 

 

 

 

x3

f

 

 

 

 

0

 

 

 

0

 

 

0

1

 

 

 

 

0

 

 

 

0

 

 

1

1

 

 

 

 

0

 

 

 

1

 

 

0

0

 

 

 

 

0

 

 

 

1

 

 

1

0

 

 

 

 

1

 

 

 

0

 

 

0

0

 

 

 

 

1

 

 

 

0

 

 

1

1

 

 

 

 

1

 

 

 

1

 

 

0

0

 

 

 

 

1

 

 

 

1

 

 

1

1

γ(x1, x2 , x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 = = x1x2 (x3 + x3) + x1x3(x2 + x2 ) = x1x2 + x1x3

Пусть f 1

 

 

 

f

(x1,..., xn ) =

 

 

x1δ1 & ... & xδnn =

 

 

(δ1

,K ,δn )

 

)=1

 

 

f (δ ,K ,δ

n

 

 

(x1δ1

1

 

=

&

... xδnn )=

 

(δ1,K ,δn )

 

 

 

 

f (δ1,K ,δn )=0

... xδnn )=

=

&

(x1δ1

 

(δ1,K ,δn )

 

 

 

 

f (δ1,K ,δn )=0

 

 

 

Это разложение называется совершенной конъюнктивной нормальной

формой.

 

 

 

 

Примеры.

 

 

 

 

1) f (x1, x2 ) = x1 x3 =

 

1 + x 2

x

2)

(x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 )

γ(x1, x2 , x3 ) =

f (x1, x2 , x3) = (x1 + x2 ) x3 = x1x2 + x3 = x1x2 (x3 + x3) + x3(x1 + x1) = = x1x2x3 + x1x2 x3 + x1x2x3 + x1x2x3 + x1x2x3 =

x1

x2

x3

x4

f

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

0

0

1

1

0

0

1

0

0

1

0

1

0

1

0

0

1

1

0

0

0

1

1

1

0

1

0

0

0

1

1

0

0

1

1

1

0

1

0

0

1

0

1

1

0

1

1

0

0

0

1

1

0

1

0

1

1

1

0

1

1

1

1

1

0

~

γ(x4 ) = (0100100011000010)

x1x2 x3x4 + x1x2 x3 x4 + x1x2 x3 x4 + x1x2 x3x4 + x1x2x3 x4

 

 

 

x1

x2

γ

0

0

0

0

1

1

1

0

1

1

1

0

f = (x1 + x2 )(x1 + x2 ) = x1x2 + x1x2 + x1x2 + x2x2 = x1x2 + x1x2

~

f (x4 ) = (1000011100110001)

 

 

 

 

x1

x2

 

x3

X4

γ

 

0

0

 

0

0

0

 

0

0

 

0

1

1

 

0

0

 

1

0

0

 

0

0

 

1

1

0

 

0

1

 

0

0

1

 

0

1

 

0

1

0

 

0

1

 

1

0

0

 

0

1

 

1

1

0

 

1

0

 

0

0

1

 

1

0

 

0

1

1

 

1

0

 

1

0

0

 

1

0

 

1

1

0

 

1

1

 

0

0

0

 

1

1

 

0

1

0

 

1

1

 

1

0

1

 

1

1

 

1

1

0

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

γ(x 4 ) = (x1 + x 2 + x3 + x4 )(x1 + x2 +

x

3

+ x4 )(x1 +

x 2

 

+ x3 +

x4

)

(x1

+

 

+

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

x3

x4

)(x1

+ x 2

+ x3

+ x

4 )(x1 + x2 + x3 + x4 )(x1 + x 2 + x3 + x4 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x1

+ x2

+ x3

+ x4 )(x1

+ x 2

+ x3

+ x

4 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

γ(x3 ) = (x1 + x2 + x3 )(x1 + x2 + x3 ) =

= x1x1x3 + x2 x1x2 + x3 x3 + x1x3 + x2 x3 + x3 x1x2 = = x1x3 (x2 + x2 ) + x2 x3 (x1 + x1 ) + x3 x1x2 =

= x1x2 x3 + x1 x2 x3 + x1 x2 x3 + x1x2 x3

~

γ(x3 ) = (x1 + x2 x3 )(x1 x2 + x3 )(x1x 2 + x3 ) =

= (x1 x2 + x2 x3 x1 x2 + x1x3 + x2 x3 x3 )(x1 + x2 + x3 ) =

= x1 x2 + x1 x2 x3 + x1 x2 x3 + x1x3 = x1 x2 (x3 + x3 ) + x1 x2 x3 + x1x3 (x2 + x2 ) = = x1 x2 x3 + x1 x2 x3 + x1x2 x3 = x1 x2 x3 + x1 x 2 x3 + x1x2 x3

~

γ(x4 ) = (x1 x4 )(x2 x3 )(x3 x1 x4 ) =

= (x1 + x2 )(x2 + x3 )(x3 + x1 x4 ) = x1 x2 x3 + x2 x3 + x1x2 x4 + x1x2 x3 x4 = = x1 x2 x3 (x4 + x4 ) + x2 x3 (x1 + x1 )(x4 + x4 ) + x1x2 x3 x4 = x1 x2 x3 x4 + + x1 x2 x3 x4 + x1x2 x3 x4 + x1x2 x3 ......

Лекция № 9 (11.04.00)

Полнота и замкнутость

Опр || система функций {f1,f2 ,...,fn } из P2 (множества всех булевых

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

Пример: 1) Само множество P2 ;

2)B ={x1, x1 & x2 , x1 x2};

3)B ={0,1} - не полна.

Теорема || Пусть даны две системы функций из P2

B={f1,f2 ,...}, (I)

C={g1 ,g2 ,...}. (II)

Известно, что система I полная и каждая функция системы I выражается через функции системы II. Тогда система II является полной.

Доказательство || Пусть h P2 . В силу полноты сист. I функцию h можно выразить в виде формулы h = C[f1,f2 ,....]. По условию теоремы

f1 = C1[g1,g2 ,...]

f2 = C2[g1,g2 ,...]

.........................

Поэтому

h = C[C1[g1,g2 ,...],C2[g1,g2 ,...],...] = C[g1,g2 ,...] ч. и т.д.

Примеры ||

1) B0 ={x1 , x1 & x2 , x1 x2 } - полная.

2) B1 ={x1 , x1 & x2 } - тоже полная, так как x1 x2 = x1 & x2 .

3)B2 ={x1 , x1 x2 } - тоже полная.

4)B3 ={x1 | x 2 } - тоже полная, так как

x | y = x & y = x y , x | x = x & x = x ,

(x1 | x2 ) | (x1 | x2 ) = x1 | x2 = x1 x2 = x1 & x2 .

(3) – I)

5) B ={0,1, x1 x2 , x1 x2} x = x 1

x1x 2 = x1 & x 2 тогда взяв в качестве сист. I сист. 2 можно заключить, сист. функций 5) – полная. Тем самым, справедлива

Теорема Жегалкина || Каждая функция из P2 может быть выражена при помощи полинома по модулю 2 – (полинома Жегалкина):

ai ...i

s

xi ...xi

s

.

1

1

 

(i1,...,is )

 

 

 

 

Имеем: число разных сочетаний xi1 ,..., xis равно числу подмн-в мн-ва из n элементов. Каждое aik может принимать одно из 2-х значений {0,1}.

Тогда число разных пол. Жег. равно 22n , т.е. равно числу различных булевых функций.

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

Жег.

Примеры

x1 x 2 = a x1x 2 b x1 c x 2 d x1 = 0, x2 = 0 0 = d,

x1 = 0, x2 =1 1 = c, x1 =1, x2 = 0 1 = b,

x1 =1, x2 =1 1 = a b c a =1,

Следовательно,

x1 x2 = x1x2 x1 x 2

Пока опустим

2 способ T-преобразов. вектора функции

T(α0 ,α1 ) = (α0 ,α0 α1 )

~

 

 

 

 

γ(x) = x1x2

+ x1x3 + x2 x3

 

 

 

X1

 

x2

x3

γ

 

0

 

0

0

0

 

0

 

0

1

0

 

0

 

1

0

0

 

0

 

1

1

1

 

1

 

0

0

0

 

1

 

0

1

1

 

1

 

1

0

1

 

1

 

1

1

1

α~γ

= (000 | 0 |||)

γ0

= (0,0) γ1 = (0,1) γ2 = (0,1) γ3 = (1,1)

T(γ0 ) = (0,0 0) = (0,0)

T(γ1 ) = (0,0 1) = (0,1)

T(γ2 ) = (0,1)

T(γ3 ) = (1,1 1) = (1,0)

T(γ0 , γ1 ) = T(T(γ0 ),T(γ0 ) T(γ1 )) = ((0,0),(0,0) (0,1)) = (0,0,0,1) T(γ2 , γ3 ) = T(T(γ2 ),T(γ2 ) T(γ3 )) = ((0,1),(0,1) (1,0)) = (0,1,1,1)

T(γ0 , γ1 , γ2 , γ3 ) = Tγ0 γ1 ,T(γ1 , γ1 ) + T(γ2 , γ3 ) = (0,0,0,1),(0,0,0,1) (0,1,1,1) =

~

= (0,0,0,1,0,1,1,0) = B

~

γ(x) = 0 K0 0 K1 0K2 1 K3 0K4 1 K5 1 K6 0K7 =

= 0 1 0 x3 0 x3 1 x2 x3 0x1 1 x1x3 1 x1x2 0 x1x2 x3 = = x1x3 x1x3 x1x2

3 способ – алгебраических преобразований x = x 1

f (x, y) = x y = x y = xy = x(y 1) 1 = xy x 1

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

Замечание. Замыкание инвариантно относ. операций введения и удаления фиктивных перем.

Примеры.

1)M=P2, [M]=P2.

2)M={1,x1 x2}, [M] – мн-во L всех линейных ф-й вида

(x1,..., xn )= c0 c1x1 ... cn xn , (ci=0,1).f

Свойства замыкания:

1)[M]=M;

2)[[M]]=[M];

3)M1 M2 [M1] [M2];

4)[M1 M2] [M1] [M1].

Опр. Класс (мн-во) M называется (функционально) замкнутым, если

[M]=M.

Примеры.

1)Класс M=P2 функционально замкнут;

2)Класс {1,x1 x2} не замкнут;

3)Класс L замкнут (линейное выражение, составленное из линейных выражений линейно).

Новое определение полноты. M – полная система, если [M]=P2.