Professional Documents
Culture Documents
Нормальні форми і поліном Жегалкіна
Нормальні форми і поліном Жегалкіна
x
змінні ik , які ввійшли у склад кон’юнкції, різні, m≥1 (m – ранг ЕК).
Поліномом Жегалкіна булевої функції f ( x 1 , x 2 , .. . , x n ) називається її
представлення у вигляді суми за модулем два деяких елементарних
кон’юнкцій. Поліном Жегалкіна може бути знайдено за допомогою формул
∑ ¿ (a 1 , a 2 , .. . , an ) ¿ ¿ ( x 2 +a2 ) ¿ . ..⋅( x n +an ) ¿
f (a1 , a2 ,. .., an )=1 ¿
,
в якій необхідно розкрити дужки і спростити вираз за допомогою відношень:
x⋅( y ⊕ z )=x⋅y =x⋅z ,
x ⊕1=x , x ⊕ 0=x , x ⊕ x=0 ,
x ⊕ y= y ⊕ x , x ⊕ ( y ⊕ z )= ( x ⊕ y ) ⊕ z
Множина булевих функцій, заданих в базисі Жегалкина S4 = {⊕, &, l}
називається алгеброю Жегалкина.
Основні властивості.
1. коммутативность 4. властивості
H1⊕H2 = H2⊕H1 констант
H1 & H2 = H2 & H1 H&1=H
2. асоціативність H&0=0
H1⊕ (H2⊕H3) = (H1⊕H2) ⊕H3 H⊕0 = H
H1 & (H2 & H3) = (H1 & H2) & H3 5. властивості
3. дистрибутивность констант
H1 & (H2⊕H3) = (H1 & H2) ⊕ (H1 & H3) H⊕H = 0
H&H=H
Твердження. Через операції алгебри Жегалкина можна виразити всі
інші булеві функції:
Х =Х ⊕ 1
X → Y = 1⊕X⊕XY
XvY = X⊕Y⊕XY X ↓ Y = 1⊕X⊕Y ⊕XY
X~Y = 1⊕X⊕Y X | Y = 1⊕XY
Визначення 2. Поліномом Жегалкина (поліномом по модулю 2) від n
змінних x1, x2 ... xn називається вираз виду:
C0⊕C1x1⊕C2x2⊕ ... ⊕Cnxn⊕C12x1x2⊕ ... ⊕C12 ... nx1x2 ... xn,
де постійні Ck можуть приймати значення 0 чи 1.
Якщо поліном Жегалкина не містить добутків окремих змінних, то він
називається лінійним (лінійна функція).
Наприклад, f1= X⊕YZ⊕XYZ - поліном, не лінійний.
f2 = 1⊕X⊕Y⊕Z - поліном, є лінійною функцією.
Теорема. Кожна булева функція представляється у вигляді полінома
Жегалкина єдиним чином.
Зауважимо, що перевага алгебри Жегалкина (в порівнянні з іншими
алгебрами=системами представлень) складається в арифметизации логіки,
що дозволяє виконувати перетворення булевих функцій досить просто. Її
недоліком в порівнянні з булевої алгеброю є громіздкість формул.
x1 x2 x3 x4 F(x1,x2,x3,x4)
0 0 0 0 0 f(0010)=0→a0000=0 const
0 0 0 1 0 f(0010)=a0000⊕a0001=0→a0001=0 x4
0 0 1 0 0 f(0010)=a0000⊕a0010=0→a0010=0 x3
0 0 1 1 0
0 1 0 0 0 f(0100)=a0000⊕a0100=0→a0100=0 x2
0 1 0 1 0
0 1 1 0 1
0 1 1 1 0
1 0 0 0 1 f(1000)=a0000⊕a1000=1→a1000=1 x1
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 1
1 1 0 1 0
1 1 1 0 1
1 1 1 1 0
Далі підставляємо всі інші набори в порядку зростання числа одиниць,
підставляючи знову отримані значення в наступні формули:
x x x x F
1 2 3 4
0 0 1 1 0 f(0011)=a0000⊕a0010 ⊕a0001⊕a0011=0→a0011=0 x3x4
0 1 0 1 0 f(0011)=a0000⊕a0100 ⊕a0001⊕a0101=0→a0101=0 x2x4
0 1 1 0 1 f(0011)=a0000⊕a0100 ⊕a0010⊕a0110=1→a0110=1 x2x3
1 0 0 1 0 f(0011)=a0000⊕a1000 ⊕a0001⊕a1001=0→a1001=1 x1x4
1 0 1 0 0 f(0011)=a0000⊕a1000 ⊕a0010⊕a1010=0→a1010=1 x1x3
1 1 0 0 1 f(0011)=a0000⊕a1000 ⊕a0100⊕a1100=1→a1100=0 x1x2
Чотирьох:
x1 x2 x3 x4 F x1x2x3x4
f(0111)=a0000⊕a1000 ⊕a0100⊕a0010⊕ a0001⊕a1100⊕
1 1 1 1 0 ⊕a1010⊕a1001 ⊕a0110⊕a0101 ⊕a0011⊕a1110⊕ a1101⊕a1011⊕
⊕a0111⊕a1111 =0→a1111=1
x y z F Ki α
0 0 0 0 0=K0 α0=0 0= α0
0 0 1 0 0=K1x3 α3=0 0= α3⊕ α0= α3⊕0= α3=0
0 1 0 0 0=K2x2 α2=0 0= α2⊕ α0= α2⊕0= α2=0
0 1 1 1 1=K3x2x3 α23=1 1= α2⊕ α3⊕ α23⊕α0= 0⊕0⊕α23⊕0= α23=1
1 0 0 0 0=K4x1 α1=0 0= α1⊕ α0= α1⊕0= α1=0
1 0 1 1 1=K5x1x3 α13=1 1= α1⊕ α3⊕ α13⊕α0= 0⊕0⊕α13⊕0= α13=1
1 1 0 1 1=K6x1x2 α12=1 1= α1⊕ α2⊕ α12⊕α0= 0⊕0⊕α12⊕0= α12=1
α123=0, 1= α1⊕ α2⊕ α3⊕
1 1 1 1 1=K7x1x2x3 α123=0 ⊕α12⊕α13⊕α23⊕α123⊕α0=
=0⊕0⊕0⊕1⊕1⊕1⊕α123⊕0=1
Приклади
Задача 1. Розкласти функцію f ( x 1 , x 2 , x3 , x 4 ) =( 0100011110001011 ) за
змінними x 2 , x 4 , представляючи отримані функції від двох змінних
формулами над множиною елементарних зв’язок: заперечення, кон’юнкція,
диз’юнкція, імплікація. Сума за модулем два, еквіваленція, штрих Шиффера,
стрілка Пірса.
Розв’язування. Розкладемо функцію f(х1, х2 , х3, х4)=(0100 0111 1000 1011) за
x 02⋅x 04⋅f
( x 1 , 0 , x 3 , 0 ) ∨x 02⋅x 14⋅f ( x 1 , 0 , x 3 ,1 ) ∨x12⋅x 04⋅f ( x1 ,1 , x3 ,0 )∨x 12⋅x14⋅f ( x 1 , 1 , x 3 , 1 )=
x 2⋅x 4⋅f ( x1 ,0, x 3 , 0 ) ∨x 2⋅x 4⋅f ( x1 ,0 , x 3 , 1 )∨x 2⋅x 4⋅f ( x 1 , 1 , x 3 , 0 ) ∨x 2⋅x 4⋅f ( x 1 ,1 , x 3 , 1 )
,
Запишемо розвернену таблицю функції f ( x 1 , x 2 , x3 , x 4 ) і з її допомогою
складемо таблиці всіх чотирьох функцій від змінних x 1 , x 3 :
x1 x2 x3 x4 f x1 x2 x3 x4 f
0 0 0 0 1 1 0 0 0 1
0 0 0 1 0 1 0 0 1 0
0 0 1 0 1 1 0 1 0 0
0 0 1 1 0 1 0 1 1 0
0 1 0 0 1 1 1 0 0 1
0 1 0 1 1 1 1 0 1 0
0 1 1 0 1 1 1 1 0 1
0 1 1 1 0 1 1 1 1 1
х2 х4 f(0, х2 ,0, х4) f(0, х2 ,1, х4) f(1, х2 ,0, х4) f(1, х2 ,1, х4)
0 0 F(0000)=1 F(0010)=1 F(1000)=1 F(1010)=0
0 1 F(0001)=1 F(0011)=0 F(1001)=0 F(1011)=0
1 0 F(0100)=0 F(0110)=1 F(1100)=1 F(1110)=1
1 1 F(0101)=1 F(0111)=1 F(1101)=0 F(1111)=1
х2 х4 f(0, х2 ,0, х4) f(0, х2 ,1, х4) f(1, х2 ,0, х4) f(1, х2 ,1, х4)
0 0 0 0 1 0
0 1 1 0 0 0
1 0 0 1 1 1
1 1 1 1 0 1
Як ми бачимо,
Для х2=х4=0 маємо набір f(х1, 0 , х3, 0)=(0010)=g2= `(х1 → х3);
Для х2=0, х4=1 маємо набір f(х1, 0 , х3, 1)=(1000)=g8= х3 ↓ х1;
Для х2=1, х4=0 маємо набір f(х1, 1 , х3, 0)=(0111)=g7= х3 v х1
Для х2=х4=0 маємо набір f(х1, 1, х3, 1)=(1101)=g13=(х1 → х3).
f(х1, х2 , х3, х4)= (`х2 `х4) `(х1→ х3) v(`х2 х4) (х3 ↓ х1) v(х2 `х4) (х3 v х1) v(х2
х4) (х1→х3)
Як ми бачимо,
Для х1=х3=0 маємо набір f(0, х2 , 0, х4)=(0101)=g5=x4;
Для х1=0, х3=1 маємо набір f(0, х2 , 1, х4)=(0011)=g3=x2;
Для х1=1, х3=0 маємо набір f(1, х2 , 0, х4)=(1010)=g10=`x4;
Для х1=х3=1 маємо набір f(1, х2 , 1, х4)=(0011)=g3=x2.
f(х1, х2 , х3, х4)= (`х1 `х3) (х4) v(`х1 х3) (х2) v(х1 `х3) (`х4) v(х2 х4) (х2)
Відповідь:
f(х1, х2 , х3, х4)= (`х2 `х4) `(х1→ х3) v(`х2 х4) (х3 ↓ х1) v(х2 `х4) (х3 v х1) v(х2
х4) (х1→х3)
або f(х1, х2 , х3, х4)= (`х1 `х3) (х4) v(`х1 х3) (х2) v(х1 `х3) (`х4) v(х2 х4) (х2)