- •2. Минимизация булевых функций
- •2.1. Сущность и этапы минимизации бф
- •2.2. Минимизация бф преобразованием логических формул
- •2.3. Минимизация по методу Квайна–Мак-Класки
- •2.4. Метод Петрика
- •2.5. Обработка таблиц покрытий
- •2.6. Табличные способы минимизации
- •2.7. Минимизация булевых функций по картам Вейча
- •2.8. Минимизация неполностью определенных функций
- •2.9. Минимизация слабоопределенных бф
- •2.10. Построение схем в базисах Шеффера и Пирса
- •2.11. Вопросы и упражнения
2.4. Метод Петрика
Метод
заключается в нахождении всего множества
тупиковых форм по таблице покрытий. Для
этого составляется функция
(например, по таблице 2.6) следующим
образом. Запишем дизъюнкцию всех строк
таблицы для каждого столбца, в которых
имеются метки покрытий в виде, заданном
латинскими буквами. Функция
,
покрывающая все столбцы будет тождественно
истинной.
Преобразуем
это выражение. По закону поглощения
члены
,
.
Кроме того, выражения вида
.
С учетом этих правил функцию можно записать как
.
Так как и - существенные импликанты, то их можно добавить в каждый член функции после раскрытия скобок. При раскрытии скобок могут получаться длинные конъюнкции. Чтобы избежать ошибок, лучше записывать переменные в них по порядку следования букв в алфавите.
Раскрываем скобки:
Просматриваем все члены на возможность применения законов тавтологии (повторения) и поглощения и вычеркиваем лишние члены.
Если
записать каждый член функции
в
виде дизъюнкций переменных с добавлением
существенных импликант, то получим 5
тупиковых форм заданной функции и сведем
их в таблицу 2.10. В таблице приведены все
тупиковые формы заданной функции с
количеством членов и букв.
Таблица 2.10. Метод Петрика
№ |
Запись в буквах |
Число членов |
Число букв |
1 |
|
5 |
15 |
2 |
|
6 |
18 |
3 |
|
6 |
17 |
4 |
|
6 |
17 |
5 |
|
5 |
14 |
Метод
подтверждает, что минимальной ДНФ
является функция
(14
букв) – формула (2.13), а кратчайшими –
функции
и
(5 членов).
Метод Петрика одинаково пригоден для нахождения тупиковых форм, как в ДНФ, так и в КНФ.
Недостатком метода становится необходимость длинных преобразований функции , количество которых резко увеличивается с количеством переменных и даже с количеством импликант в таблице покрытий при одном и том же числе переменных. При ручном синтезе это требует большой внимательности при логических преобразованиях из-за возможности ошибок. Отсюда следует ограниченность метода даже при переменных равных пяти - шести. Особенная сложность возникает, когда в таблице покрытий не имеется существенных импликант, что увеличивает число равноценных покрытий.
Даже при четырех переменных число минимальных и кратчайших нормальных одинаковых форм может превосходить 10 и больше (компьютерный анализ дает до 40 МДНФ и КДНФ).
К
примеру,
имеет 10 минимальных и кратчайших форм
в ДНФ, каждая из которых содержит по 6
членов, 19 букв.
2.5. Обработка таблиц покрытий
При поиске тупиковых форм БФ по методу Петрика преобразования значительно сокращаются при наличии существенных импликант, так как при этом сокращается число членов в записи функции Петрика (пример 2.5)
Но часто таблица покрытий не содержит существенных импликант. В этом случае может помочь метод псевдосущественных импликант, пригодный для минимизации БФ в классе кратчайших форм. Рассмотрим на примере.
Пример 2.8. Пусть в процессе минимизации получена таблица покрытий (табл. 2.11), не содержащая существенных импликант.
Таблица 2.11. К примеру 2.8 |
Таблица 2.12. К примеру 2.8 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Решение. 3-й столбец является частью 2-го, поэтому 2-й столбец можно вычеркнуть также как и 7-й столбец. Получим таблицу 2.12.
Выбираем из оставшихся столбец с минимальным числом меток, например, 1-й столбец.
Примем за псевдосущественную импликанту строку . 3-й столбец исключается входящим в него 1-м. Получим таблицу 2.13, а.
Таблица 2.13, а
|
Таблица 2.13, б
|
Примем за псевдосущественную импликанту строку . В этом случае можно исключить столбцы 5 и 6 таблицы 2.13, б, которые входят в столбец 1.
В результате получаем множество тупиковых форм:
.
.
Окончательно находим кратчайшую тупиковую форму:
.
Разбиение на подтаблицы упрощает поиск тупиковых форм.
Если не требуется решение в классе минимальных форм, а только в классе кратчайших форм, то можно использовать для минимизации способ поочередного вычеркивания строк и столбцов.
Введем
понятие доминирующей
строки,
используя значение цены (стоимости)
простой импликанты
.
Строка
является доминирующей по отношению к
строке
,
если
и
покрывает все 1, входящие в
(т.е. строка
содержит 1 во всех столбцах, в которых
стоят 1 в строке
).
Если
доминирует над
,
то существует покрытие минимальной
стоимости, не содержащее
.
Поэтому можно исключить
из таблицы покрытий, оставив доминирующую
строку
.
Аналогично
можно ввести понятие доминирующего
столбца.
Столбец
доминирует над столбцом
,
если каждая простая импликанта,
покрывающая
,
покрывает также
,
т.е.
содержит 1 во всех строках, в которых
стоят 1 в столбце
.
Значит любая простая импликанта,
покрывающая
,
покрывает также и
.
Поэтому можно исключить
,
так как любое покрывающее множество
для упрощенной таблицы будет одновременно
покрывать
.
Из приведенных соображений составим простые правила для обработки таблиц покрытий.
1. Если имеются два столбца, один из которых входит в другой, то длинный столбец (доминирующий) по закону поглощения можно исключить.
2. Если одна строка входит в другую, то короткую строку можно исключить.
3. Вычеркивание можно начинать как со строк, так и со столбцов.
Пример 2.9. В результате первого этапа минимизации по методу Квайна–Мак-Класки получена таблица покрытий (табл. 2.14). Найти кратчайшие формы булевой функции.
Таблица 2.14. Исходная таблица покрытий
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Решение. Начнем вычеркивания со столбцов. Рассматривая 1-й и 8-й столбцы, видим, что 8-ой столбец можно вычеркнуть. После 1-го этапа обработки получим табл. 2.15.
Таблица 2.15. Обработка таблиц
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Видим, что строка входит в строку , строка в и , строка в строку . Короткие строки , и исключаем. После второго этапа обработки получим табл. 2.16.
Таблица 2.16. Обработка таблиц (продолжение)
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 2.17. Обработка таблиц (продолжение)
1 |
2 |
3 |
4 |
5 |
7 |
9 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 2.18. Обработка таблиц (продолжение)
|
Таблица 2.19. Обработка таблиц (продолжение)
|
Отметим вторую существенную импликанту в строке , а значит можно исключить столбцы 4-й и 9-й (табл. 2.19). Строка входит в строку и ее можно исключить. Получим табл. 2.20.
Таблица 2.20. Окончание
1 |
2 |
3 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;
.
Данный метод обработки покрытий можно сочетать с другими методами, например с методом Петрика.
