
Практическая работа на тему «метод минимизирующих карт карно»
Основные положения
Рассмотрим следующую таблицу:
Дизъюнкция всех
элементов строки таблицы есть значение
функции в вершине, определяемой
соответствующими переменными. Так,
первая строка есть значение функции в
вершине
,
четвертая в
или в переводе на координаты соответственно
в (1, 1, 1), (1, 0, 0).
Можно показать, что если в СДНФ данной функции не входит какая-либо из восьми конъюнкций последнего столбца, то в минимальную форму этой функции не может входить ни одна из конъюнкций соответствующей строки таблицы.
Пусть, например,
в СДНФ не входит конъюнкция
,
тогда в минимальную форму не входит,
например, член
(аналогично и другие конъюнкции 3-ей
строки).
,
Таким образом,
если бы в минимальную форму входил член
,
то обязательно входил бы член
,
что противоречит предположению.
Таблица и называется минимизирующей картой.
Минимизация функции производится по следующим правилам:
-
Все строки таблицы, которые соответствуют конъюнкциям последнего столбца, отсутствующим в СДНФ данной функции, вычеркивают.
-
В столбцах оставшихся строк вычеркивают все элементы, попавшие в вычеркнутые строки.
-
В каждой из невычеркнутых строк выбирают незачеркнутую конъюнкцию, содержащую минимальное число знаков (желательно, чтобы выбранные конъюнкции встречались чаще во всех оставшихся строках).
-
Взяв по одной конъюнкции для всех незачеркнутых строк и записав их дизъюнкцию, получают минимальную форму.
Заметим, что нахождение МДНФ неоднозначно, ибо произволен выбор минимальных конъюнкций в строках. Однако, все получаемые по этому методу МДНФ будут “одинаково минимальны”.
Пример1. Минимизировать функцию
Строим для функции минимизирующую карту
Отметим справа от
последнего столбца те конъюнкции,
которые входят в СДНФ данной функции.
Вычеркнем неотмеченные строки (правило
1), затем вычеркнем в остальных строках
(действуя по столбцу) те элементы, которые
попали в вычеркнутые строки (правило
2). Во 2-ом столбце (с одной переменной)
положим
,
при этом остальные элементы строк (1, 2,
5, 6 строки), где стоит элемент
,
положим равными нулю. В строке 8 положим
элемент
,
.
Итак, получим МДНФ данной функции в виде:
Пример2. Минимизировать функцию.
Согласно правилам 1, 2 вычеркиваем конъюнкции
Для
удобства табличку оставшихся конъюнкций
начертим отдельно, выбросив 1-3 столбцы,
1, 8 строки.
Положим во 2-ой
строке
равным 1, обведем рамочкой, остальные
члены положим равными нулю. Вычеркнем
нулевые члены
в 6-й строке,
в 1-й строке. Выберем из оставшихся строк
самые короткие, 1-я и 6-я строки. Положим
в них соответственно
,
остальные члены равными нулю. В строках
4 и 5 будет по одному члену, равному 1.
Итак, в каждой строке таблицы есть один
член, равный 1, следовательно, минимальная
форма функции будет
Возможен
другой вариант минимальной формы.
Рассмотрим на таблице.
Пусть в 4-й строке
,
а остальные члены равны нулю. Тогда в
строке 5:
можно положить равными нулю. Вычеркнем
в 1-й и 6-й строках (они короче других),
положим соответственно
.
Тогда в строках 2 и 3 будет по одному
члену, равному единице. Итак, минимальная
форма функции
Метод минимизирующих
карт приводит к громоздким записям
(число строк таблицы для функции
переменных равно
,
а число столбцов
).
Использование этого метода уже для
порядка
=8 становится затруднительным.