- •Глава 1. Алгебра логики
- •1.1. Функции алгебры логики
- •1.2. Элементарные булевы функции
- •1.3. Формульное представление булевой функции
- •1.4. Существенные и фиктивные переменные
- •1.5. Эквивалентные соотношения (тождества) алгебры логики
- •1.6. Разложение булевой функции по подмножеству переменных и совершенные нормальные формы
- •1.7. Двойственная функция
- •1.8. Полнота систем булевых функций
- •1.9. Функции k-значной логики
- •1.10. Контрольные вопросы к главе 1
1.5. Эквивалентные соотношения (тождества) алгебры логики
Приведем список тождеств, характеризующих свойства элементарных функций. Использование этих тождеств полезно при решении задач.
Свойство ассоциативности:
1. (())=(()) = , где – только одна из функции {, , }.
Свойство коммутативности:
2. ()=().
Дистрибутивные законы:
3. ()&=(&)(&).
4. (&)=()&().
5. ()&=(&) (&).
Правила Де Моргана:
6. ()=&.
7. ()=.
8. =.
Свойства 0 и 1:
9. 1 = 1.
10. 0 =.
11. & 1 =.
12. & 0 = 0.
Закон противоречия:
13. &= 0.
Закон исключения третьего:
14. = 1.
Законы идемпотентности:
15. =.
16. &=.
Закон поглощения:
17. &= (или =).
Правило простого склеивания:
18. =.
Обобщенное склеивание:
19. =.
Еще несколько дополнительных правил:
20. =.
21. =.
22. ~=.
23. /==.
24. ==.
Утверждение. Если – подформула формулы B, то при замене ее вхождения на эквивалентную подформулу формула B перейдет в формулу A, эквивалентную B.
Этот принцип вместе с эквивалентными соотношениями позволяет осуществлять эквивалентные преобразования и получать новые эквивалентные соотношения.
Пример. Используя основные эквивалентности, проверим равенство x (y z) = (x y) (x z).
На основании тождества (20) получим ( z) = ( z). Применим один из законов Де Моргана и тождество (8), опустим лишние скобки (тождество (1)) и получим z = z. Далее применяем правила обобщенного склеивания к подформуле , преобразуем соотношение к виду z = z. Выполняем поглощение произведения сомножителем , в результате получаем окончательное соотношение z = z.
КАДР
1.6. Разложение булевой функции по подмножеству переменных и совершенные нормальные формы
Введем обозначение , где {0, 1}. Очевидно
Заметим, что = 1 тогда и только тогда, когда x = .
– любое произведение из m переменных. Число всевозможных произведений есть .
– функция f с фиксацией m первых переменных некоторыми константами.
.
.
Теорема 1.1. Любая булева функция может быть разложена по m переменным, , следующим образом:
. (1)
Доказательство. Рассмотрим произвольный набор значений переменных , подставим его в левую и правую части нашего равенства, покажем, что левая и правая части соотношения (1) принимают одно и то же значение.
Левая часть имеет вид .
Правая часть имеет вид. Если и – различны, то = 0 и из слагаемых остается только одно , так как =1, то
правая часть = = левая часть.
Ч.Т.Д.
Частные случаи (1.1):
1) разложение по одной переменной:
. Такое разложение называется разложением (декомпозицией) Шеннона;
2) разложение по всем переменным:
. Если = 0, то логическое произведение удаляется. В результате имеем . Такое разложение называется совершенной дизъюнктивной нормальной формой (Сов.ДНФ).
КАДР
Алгоритм построения Сов.ДНФ по таблице истинности.
1. Строим таблицу истинности булевой функции.
2. В векторе-столбце значений функции выбираем очередную единицу. Если единицы исчерпаны, то идем в п. 4.
3. По набору значений переменных выбранной строки формируем конъюнкцию всех аргументов с соблюдением следующего правила: если i-я компонента набора равна 0, то i-я переменная входит в конъюнкцию с инверсией, иначе – без инверсии. Полученную конъюнкцию добавляем в формулу как очередное слагаемое. Идем в п. 2.
4. Конец алгоритма.
Пример. Применим алгоритм к функции, заданной таблицей истинности (табл. 1.8).
Таблица 1.8 |
|
|||
f (,,) |
|
|||
0 |
0 |
0 |
1 |
= |
0 |
0 |
1 |
1 |
= |
0 |
1 |
0 |
0 |
|
0 |
1 |
1 |
1 |
= |
1 |
0 |
0 |
0 |
|
1 |
0 |
1 |
1 |
= |
1 |
1 |
0 |
1 |
= |
1 |
1 |
1 |
1 |
= |
Соединив полученные конъюнкции знаком дизъюнкции, имеем
.
Теорема 1.2. Любая булева функция может быть представлена формулой над множеством элементарных функций {, , }.
Доказательство. 1) Пусть = 0, тогда = , i {1,…, n}.
2) Пусть 0, тогда .
Ч.Т.Д.
Сов.ДНФ булевой функции единственна. Такое представление булевых функций может быть использовано для сравнения.
Применим разложение (1) для :
.
Возьмем инверсию правой и левой частей нашего равенства:
=
= = .
Если = 1, то вся скобка в логическом произведении превращается в константу 1. В итоге имеем
– совершенная конъюнктивная нормальная форма (Сов.КНФ).
КАДР
Алгоритм построения Сов.КНФ по таблице истинности.
1. Строим таблицу истинности булевой функции.
2. В векторе-столбце значений функции выбираем очередной 0. Если нули исчерпаны, то идем в п. 4.
3. По набору значений переменных выбранной строки формируем дизъюнкцию всех аргументов с соблюдением следующего правила: если i-я компонента набора равна 0, то i-я переменная входит в дизъюнкцию без инверсии, иначе – с инверсией. Полученную дизъюнкцию добавляем в формулу как очередной сомножитель. Идем в п. 2.
4. Конец алгоритма.
Пример. Применим алгоритм к функции, заданной таблицей истинности (табл. 1.9).
Таблица 1.9 |
|
|||
f (,,) |
|
|||
0 |
0 |
0 |
1 |
|
0 |
0 |
1 |
1 |
|
0 |
1 |
0 |
0 |
= |
0 |
1 |
1 |
1 |
|
1 |
0 |
0 |
0 |
= |
1 |
0 |
1 |
1 |
|
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
1 |
|
Соединив полученные дизъюнкции знаком конъюнкции, имеем
() ().
КАДР