Конъюнкции, то есть все функции вида
Рассмотрим более подробно базис Жегалкина.
Алгебра Жегалкина и линейные функции
Алгебра Жегалкина – это алгебра над множеством двух бинарных булевых функций (И,
Если в произвольной формуле, включающей только функции базиса Жегалкина, раскрыть скобки, то получим бесскобочную формулу, имеющую вид суммы (по модулю два) произведений, то есть некоторый полином. Он называется полиномом Жегалкина.
Широкий набор базисов открывает большие возможности при решении задач минимизации схем устройств дискретного действия, поскольку из базисных схем с помощью суперпозиций можно составить схему, соответствующую любой булевой функции.
1. Дайте определение полной системе булевых функций.
2. Перечислите классы Поста.
3. Дайте определение двойственной функции. Приведите примеры.
4. Дайте определение самодвойственной функции. Приведите примеры.
5. Постройте полином Жегалкина для функции «стрелка Пирса».
6. Сформулируйте теорему Поста.
7. Что такое базис? Приведите примеры базисов.
Наиболее употребляемая операция при минимизации функций – это операция склеивания.
AB+ ĀB=B (A+ Ā)=B.
Рассмотрим три наиболее распространенных метода минимизации.
1. Пусть будут заданы номера наборов четырех переменных, на которых логическая функция принимает единичное значение: f (2,5,6,7,10,12,13,14)=1.
Выразим эту логическую функцию в СДНФ (символ конъюнкции писать не будем):
f(0010,0101, 0110, 0111, 1010, 1100, 1101, 1110) =
На первом этапе минимизации исходную СДНФ можно упростить за счет использования закона склеивания, тогда получим:
Обращаем внимание на то, что одну и ту же конституенту (импликанту) можно склеивать с другими конституентами (импликантами) многократно, так как в логике Буля действует закон идемпотентности:
поэтому любую конституенту можно размножить.
На втором этапе воспользуемся таблицей Куайна (табл. 8), в соответствии с которой данный метод минимизации получил свое наименование – метод Куайна. В таблице по вертикали перечислены все полученные на первом этапе упрощения импликанты, а по горизонтали – исходные конституенты. Единица в табл. 8 стоит там, где импликанта «накрывает» конституенту. Дело в том, что конституента всегда может быть заменена импликантой или даже отдельным термом по закону поглощения:
Таблица 8
| 0010 | 0101 | 0110 | 0111 | 1010 | 1100 | 1101 | 1110 |
– – 1 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
01–1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
01 1 – | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
– 1 0 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |
1 1 0 – | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
11–0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
После заполнения таблицы Куайна у нас получилось так, что почти в каждой графе оказалось по две единицы; между тем достаточно иметь одну единицу в графе. Поэтому, по возможности, нужно исключить избыточные единицы. Выбор единиц производится из соображений минимальности числа термов (выбранные единицы затемнены). В итоге оказалось, что можно обойтись только тремя импликантами вместо шести:
С помощью таблиц истинности легко проверить, что полученная в МНФ функция воспроизводит все значения исходной функции. Отметим, что в общем случае решений по критерию минимума термов может быть несколько.
2. Не менее эффективным способом минимизации логических функций является метод сочетания индексов. Для его изложения составим табл. 9, в графах которой записаны возможные сочетания индексов. В последней графе выписаны значения функции. Анализ таблицы начинается слева по столбцам. Принцип исключения i, j‑кода следующий. На пересечении i‑столбца, например, с сочетанием индексов 23, и j‑строки, например, 3‑ей, находится код 10, что соответствует импликанте
Таблица 9
n | 1 | 2 | 3 | 4 | 12 | 13 | 14 | 23 | 24 | 34 | 123 | 124 | 134 | 234 | 1234 | y |
0 | 0 | 0 | 0 | 0 | 00 | 00 | 00 | 00 | 00 | 00 | 000 | 000 | 000 | 000 | 0000 | 0 |
1 | 1 | 0 | 0 | 0 | 10 | 10 | 10 | 00 | 00 | 00 | 100 | 100 | 100 | 000 | 1000 | 0 |
2 | 0 | 1 | 0 | 0 | 01 | 00 | 00 | 10 | 10 | 00 | 010 | 010 | 000 | 100 | 0100 | 1 |
3 | 1 | 1 | 0 | 0 | 11 | 10 | 10 | 10 | 10 | 00 | 110 | 110 | 100 | 100 | 1100 | 0 |
4 | 0 | 0 | 1 | 0 | 00 | 01 | 00 | 01 | 00 | 10 | 001 | 000 | 010 | 010 | 0010 | 0 |
5 | 1 | 0 | 1 | 0 | 10 | 11 | 10 | 01 | 00 | 10 | 101 | 100 | 110 | 010 | 1010 | 1 |
6 | 0 | 1 | 1 | 0 | 01 | 01 | 00 | 11 | 10 | 10 | 011 | 010 | 010 | 110 | 0110 | 1 |
7 | 1 | 1 | 1 | 0 | 11 | 11 | 10 | 11 | 10 | 10 | 111 | 110 | 110 | 110 | 1110 | 1 |
8 | 0 | 0 | 0 | 1 | 00 | 00 | 01 | 00 | 01 | 01 | 000 | 001 | 001 | 001 | 0001 | 0 |
9 | 1 | 0 | 0 | 1 | 10 | 10 | 11 | 00 | 01 | 01 | 100 | 101 | 101 | 001 | 1001 | 0 |
10 | 0 | 1 | 0 | 1 | 01 | 00 | 01 | 10 | 11 | 01 | 010 | 011 | 001 | 101 | 0101 | 1 |
11 | 1 | 1 | 0 | 1 | 11 | 10 | 11 | 10 | 11 | 01 | 110 | 111 | 101 | 101 | 1101 | 0 |
12 | 0 | 0 | 1 | 1 | 00 | 01 | 01 | 01 | 01 | 11 | 001 | 001 | 011 | 011 | 0011 | 1 |
13 | 1 | 0 | 1 | 1 | 10 | 11 | 11 | 01 | 01 | 11 | 101 | 101 | 111 | 011 | 1011 | 1 |
14 | 0 | 1 | 1 | 1 | 01 | 01 | 01 | 11 | 11 | 11 | 011 | 011 | 011 | 111 | 0111 | 1 |
15 | 1 | 1 | 1 | 1 | 11 | 11 | 11 | 11 | 11 | 11 | 111 | 111 | 111 | 111 | 1111 | 0 |
Итак, все коды на строках, заканчивающихся нулевыми значениями функции, исключаются автоматически. Если эти коды попадают на строки, заканчивающиеся единичным значением функции, то они также не учитываются. Остаются только те коды, которые расположены на строках с единичным значением функции (эти коды затемнены).
Далее руководствуются следующим правилом. Для того чтобы функция приняла значение, равное единице, достаточно того, чтобы только какая-нибудь одна импликанта на строке приняла единичное значение. Прежде всего, оставляем минимальную импликанту