екция 7. Алгебра Буля и нормальные формы

advertisement
Дискретная математика.
Математическая логика
Лекция 7. Алгебра
2008 г.
Буля и
нормальные
формы
Проф., д.т.н. Гусева А.И. ,
доцент Порешин П.П.,
аспирант Цыплаков А.C.
.
Алгебра Буля
Алгебраическая система, содержащая в
качестве
сигнатуры
логическое
умножение, логическое сложение и
отрицание?
которые
позволяет
производить
тождественные
преобразования
логических
выражений, и множество {0, 1} в
качестве
носителя,
называется
алгеброй Буля
Aб= <{0, 1}  ,+, ->
Законы алгебры Буля (1)
Закон идемпотентности
(одинаковости)
a+a=a
aa=a
Закон коммутативности
a+b=b+a
a  b = b a
Закон ассоциативности
a + (b + c) = (a + b) + c
a  (b  c) = (a  b)  c
Законы алгебры Буля (2)
Законы дистрибутивности
Дистрибутивность конъюнкции
относительно дизъюнкции
a  (b + c) = a  b + a  c
Дистрибутивность дизъюнкции
относительно конъюнкции
a + b  c = (a + b)  (a + c)
Закон двойного отрицания
aa
Законы алгебры Буля (3)
Законы де Моргана
a  b  a b
ab  a  b
Законы поглощения
a+ a  b = a
a  (a + b) = a
Закон ассоциативности
a + (b + c) = (a + b) + c
a  (b  c) = (a  b)  c
Законы алгебры Буля (4)
Законы, определяющие действия с
логическими константами 0 и 1
a
a
a
a
+0=a
0=0
+1=1
1=1
0 = 1
1 = 0
a+a=1
a  a = 0
Дополнительные законы
алгебры Буля
Закон склеивания
a  b + a  b = b
(a + b)  (a + b)= b
Закон Блейка-Порецкого
a + a  b = a + b
a + a  b = a + b
Примеры
ДНФ:
a +bc
abc + bc
КНФ:
(a +b)c
ab(c + b)
a
c
b
a
с +b
с +b
Теорема о ДНФ
Всякая сложная логическая функция
может быть сведена к ДНФ
1.Записать булеву функцию в виде {+, , -}
2.С помощью законов де Моргана спустить
черту отрицания до отдельных букв и по
закону двойного отрицания уничтожить
двойные отрицания
3.С помощью первого закона
дистрибутивности уничтожим все
произведения сумм и проведем поглощение
Совершенные ДНФ
Если ДНФ функции f1(x1, x2, . . . ,xn) от n
переменных в каждой своей конъюнкции
содержит все n переменных либо их
отрицания, то это совершенная
дизъюнктивная нормальная форма (СДНФ)
1  2
n
x
x
...
x
 1 2 n
f 1

, где
x i  x при   0
i
i
i

x i  x при   1 и
i
i
i
Сов ДНФ
Каждая функция имеет одну единственную
СовДНФ и она может быть получена из
таблицы истинности этой функции путем
записи через знак логического сложения
всех наборов переменных, на которых эта
функция определена, как истинная
Каждый такой набор переменных
соответствует конъюнкции, причем если
переменная xi =1, то xi входит в нее без
отрицания, если xi =0, то xi входит в нее с
отрицанием xi к ДНФ
Пример построения СовДНФ
x1 x2 x3
(x1x2)x3
F ( x1, x2, x3 ) =
000
1
(x1  x2 )x3
001
0
010
1
СовДНФ =
011
0
= x1x2x3 +
100
1
+x1 x2x3 +
101
1
+ x1x2x3 +
110
1
+ x1x2 x3 +
111
0
+ x1 x2x3
Аналитический вывод
СовДНФ
( x1  x2 )  x3  ( x1  x2 )  x3  x1  x2  x3 
 x1 x2  x3  x1  x2  1  1  1  x3 
 x1  x2  ( x3  x3 )  ( x1  x1 )  ( x2  x2 )  x3 
 x1  x2  x3  x1  x2  x3  x1  x2  x3 
 x1  x2  x3  x1  x2  x3  x1  x2  x3 
 x1  x2  x3  x1  x2  x3  x1  x2  x3 
 x1  x2  x3  x1  x2  x3
Теорема о КНФ
Всякая сложная логическая функция
может быть сведена к КНФ
1.Записать булеву функцию в виде {+, , -};
2.С помощью законов де Моргана спустить
черту отрицания до отдельных букв и по
закону двойного отрицания уничтожить
двойные отрицания
3.С помощью второго закона
дистрибутивности уничтожим все суммы
произведений и проведем поглощение
Совершенные КНФ
Если КНФ функции f1(x1, x2, . . . ,xn) от n
переменных в каждой своей дизъюнкции
содержит все n переменных либо их
отрицания, то это совершенная конъюктивная
нормальная форма (СовКНФ)
1
2
n

&( x1  x2  ...  xn ) , где x i  x при   0 и
f 0
i
i
i

x i  x при   1
i
i
i
Сов КНФ
Каждая функция имеет одну единственную
СовКНФ и она может быть получена из
таблицы истинности этой функции путем
записи через знак логического умножения
всех наборов переменных, на которых эта
функция определена, как ложная
Каждый такой набор переменных
соответствует дизъюнкции, причем если
переменная xi =0, то xi входит в нее без
отрицания, если xi =1, то xi входит в нее с
отрицанием xi
Пример построения СовКНФ
x1 x2 x3
(x1x2)x3
F ( x1, x2, x3 ) =
000
1
(x1  x2 )x3
001
0
010
1
СовКНФ=
011
0
=(x1 + x2 +x3) 
100
1
 (x1 +x2 +x3) 
101
1
 (x1 +x2 +x3)
110
1
111
0
Аналитический вывод
СовКНФ
( x1  x2 )  x3  ( x1  x2 )  x3  x1  x2  x3 
 x1 x2  x3  ( x1  x3 )  ( x2  x3 ) 
 ( x1  0  x3 )  (0  x2  x3 ) 
 ( x1  x2 x2  x3 )  ( x1 x1  x2  x3 ) 
 ( x1  x2  x3 )  ( x1  x2  x3 )  ( x1  x2  x3 ) 
( x1  x2  x3 )  ( x1  x2  x3 )  ( x1  x2  x3 )  ( x1  x2  x3 )
Download