§ 21. Упрощение логических выражений
Законы алгебры логики
Для упрощения логических выражений используют законы алгебры логики. Они формулируются для базовых логических операций — «НЕ», «И» и «ИЛИ».
Закон |
Для операции «И* |
Для операции «ИЛИ» |
двойного отрицания |
А |
-А |
исключённого третьего |
АА=0 |
А + А=1 |
операции |
А1 = А, А 0=0 |
А + 1 = 1, А+0=А |
повторен»» |
А-А =А |
А + А=А |
переместительный |
АВ=В А |
А+В=В+А |
сочетательный |
А-(ВС)=(АВ)-С |
A + (S + C)=(A+S) + C |
распределительный |
А+В-С=(А+В)-{А+С) |
А(В+С)=А В + А С |
поглощения |
А + А-В = А |
А(А + В)=А |
де Моргана |
АВ=А^ + В |
А+В-А-Б |
|
Закон двойного отрицания означает, что операция «НЕ» обратима: если применить ее два раза, логическое значение не изменится. Закон исключённого третьего основан на том, что в классической (двузначной) логике любое логическое выражение либо истинно, либо ложно («третьего не дано»). Поэтому если А = 1, то А =0 (и наоборот), так что произведение этих величин всегда равно нулю, а сумма — единице.
Операции с константами и закон повторения легко проверяются по таблицам истинности операций «И» и «ИЛИ». Перемес-тительный и сочетательный законы выглядят вполне привычно, так же, как и в арифметике. Почти везде «работает» аналогия с алгеброй чисел, нужно только помнить, что в логике 1 + 1 = 1, а не 2.
Распределительный закон для операции «ИЛИ» — это обычное раскрытие скобок. А вот для операции «И» мы видим незнакомое выражение, в алгебре чисел это равенство неверно. Доказательство можно начать с правой части, раскрыв скобки:
{А + В){А+С)=АА + АС + ВА + ВС.
Дальше используем закон повторения (А ■ А = А) и заметим,
Анало
образом,
О. де Морган (1806-1871)
азываем, что А + В-А = А (1 + В) = А, таким
(А+В)(А+С) = А + ВС.
Равенство доказано. Попутно мы доказали также и закон поглощения для операции «И» (для операции «ИЛИ» вы можете сделать это самостоятельно). Отметим, что из распределительного закона следует полезное тождество:
Правила, позволяющие раскрывать отрицание сложных выражений, названы в честь шотландского математика и логика Огастеса (Августа) де Моргана. Обратите внимание, что при этом не просто «общее» отрицание переходит на отдельные выражения, но и операция «И» заменяет-ся на «ИЛИ» (и наоборот). Доказать законы де Моргана можно с помощью таблиц истинности.
Теперь с помощью приведённых законов алгебры логики упростим полученное ранее логическое выражение для объединения областей 3 и 4 на диаграмме с тремя переменными (§ 20, рис. 3.15):
ABC + A~BC = (A + A~)BC = BC.
Здесь мы сначала вынесли общий множитель двух слагаемых за скобки, а затем применили закон исключённого третьего.
В общем случае можно рекомендовать такую последовательность действий.
- Заменить все «небазовые» операции (исключающее ИЛИ, им
пликацию, эквивалентность и др.) на их выражения через ба
зовые операции «НЕ», «И» и «ИЛИ». - Раскрыть отрицания сложных выражений по законам де Мор
гана так, чтобы операции отрицания остались только у от
дельных переменных. - Используя вынесение общих множителей за скобки, раскры
тие скобок и другие законы алгебры логики, упростить выра
жение.
Пример
= {А А + ВА)В(А+С) = ВА Ъ(А+С) = = А~В В (А+С) = ВА~(А+С) = В А.
Здесь последовательно использованы закон де Моргана, распределительный закон, закон исключённого третьего, переместительныи закон, закон повторения, снова переместительныи закон
Логические уравнения
Если приравнять два логических выражения, мы получим уравнение. Его решением будут значения переменных, при которых уравнение превращается в истинное равенство, т. е. когда значения левой и правой частей совпадают. Например, уравнение А ■ В = 1 имеет единственное решение: А = В = 1, для остальныхкомбинаций значений переменных левая часть равна нулю. В то же время уравнение А + В=1 имеет три решения: (А=0, В=1), (А=1, Б=0) иА = В=1.
Пример 1. Требуется найти все решения уравнения
Вспоминаем, что импликация равна нулю только тогда, когда первое выражение равно 1, а второе — 0. Поэтому исходное уравнение сразу разбивается на два:
(B+C)-A=l, AC+D = 0.
Первое уравнение с помощью закона де Моргана можно преобразовать к виду ВС А=1, откуда сразу следует, что все три сомножителя должны быть равны 1. Это значит, что А=1, В=0 и С=0. Кроме того, из второго уравнения следует, что D = 0. A =1 и С =0 удовлетворяют и второму уравнению тоже. Решение найдено, причём оно единственное.
Возможен второй вариант — упростить выражение. Заменяя импликацию по формуле А —> В = А + В, получаем:
(В+С)А + АС+£> = 0. Используем закон де Моргана:
B+C + A~+~AC+D = Q и закон поглощения:
B + C + A+D-0.
Для того чтобы логическая сумма была равна нулю, каждое слагаемое должно быть равно нулю, поэтому A=l, B=C =D=Q.
Есть и третий вариант — построить таблицу истинности выражения в левой части и найти все варианты, при которых оно равно 0. Однако таблица истинности выражения с четырьмя переменными содержит 24 = 16 строк, поэтому такой подход достаточно трудоёмок.
Пример 2. Требуется найти все решения уравнения (А + В)->(В CD) = 1.
Преобразуем выражение, раскрыв импликацию через операции «НЕ» и «ИЛИ» и применив закон де Моргана: если логическая сумма равна 1, то хотя бы одно слагаемое равно 1 (или o6ji одновременно).
Равенство А В = 1 верно при А = 0, В-1 и любых С и D. Поскольку есть всего 4 комбинации значений С и D, уравнение А В=1 имеет 4 решения:
А |
в |
с |
D |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
Второе уравнение, B-C-D = \, даёт B=C=D=\ при любом А, т. е. оно имеет два решения:
А |
В |
С |
D |
|
|
|
-А-- |
1 |
1 |
1 |
1 |
Видим, что первое из этих решений уже было получено раньше, поэтому уравнение имеет всего пять разных решений. Заметим, что_определить все повторяющиеся решения можно из уравнения (А ■ В) ■ (В ■ С ■ D) = 1, которое имеет единственное решение А=0, B-C=D=1.
Пример 3, Требуется найти число решений урав: АВ С + В С D = 0.
Здесь, в отличие от предыдущих задач, не ну сами решения, интересует только их количест* распадается на два:
А ■ В С = 0 и В С D = 0.
го находить Уравнение . Можно поступить следующим образом: сначала найти количество решений «обратного* уравнения, с единицей в правой части: АВС + ВС D = l
Каждое из них имеет достаточно много решен
Логические основы компьютеров
и затем вычесть его из 16 (общего количества комбинаций четырёх переменных). Уравнение А ■ В ■ С = 1 имеет два решения: А = В = С = 1 и любое D (0 или 1). Второе уравнение, B-C-D=l, тоже имеет два решения: А — любое, В=С = О, D = l. Среди этих четырёх решений нет повторяющихся, поэтому исходное уравнение имеет 16 - 4 = 12 решений.
Пример 4. Требуется найти число решений уравнения
Так как каждая логи ко значения 0 и 1, мож цепочки. Например, цеп |
еская переменная может принимать толь о представить решение в виде 6-битной чка 010110 означает, что Х1 = Х3 = Х6 =0
245
Заметим, что импликация А -»В ложна тогда и только тогда, когда А=1 и В = 0. Поэтому в решении заданного уравнения не может встречаться последовательность 10, иначе какая-то импликация оказывается ложной и всё выражение будет равно 0. Поэтому существует всего 7 решений:
000000 000001 000011 000111 001111 011111 111111
ния (0 и 1), и число ных конечно, оно равно 2", Поэтому уравнение с п пере |
Обратите внимание, что число решений логических уравнений, в отличие от «обычных уравнений», всегда конечно. Это связано с тем, что каждая переменная может принимать только два ния (0 и 1), и число разных комбинаций значений перемен — это количество переменных, ми имеет не более 2" решений.
Подготовьте сообщение
а) «Законы логики и правила алгебры.
б) «Методы решения логич!
в) «Системы логических ур