3.3. Метод Квайна
Метод минимизации Квайна У. (Quine W.V.) представляет собой
локальный алгоритм, включающий определенную последовательность
этапов [14]. Предполагается, что исходная минимизируемая функция
задач, в СДНФ.
ЭТАП 1.
Нахождение первичных импликант
Импликантой некоторой булевой функции
называется другая булева функция, такая что множество нулевых
значений импликанты Nимп.(0) пересекается со множеством
нулевых значений функции Nf (0),
а множество единичных значений Nимп.(1) принадлежит
Nf (1).
Первичной импликантой булевой функции
называется такая импликанта, никакая часть которой не является
импликантой исходной функции. На данном этапе рассматриваются все
элементарные конъюнкции (ЭК) ранга n, первоначально входящие в
СДНФ. Они попарно сравниваются между собой с целью нахождения
поглощений вида:
Fxi v Fxi = F,
при которых получаются ЭК ранга (n – 1). После получения всех
возможных ЭК ранга (n – 1) они вновь сравниваются попарно между
собою для получения ЭК ранга (n – 2) и т.д. ЭК, принявшие участие
в поглощениях, отмечаются некоторым символом. Процесс
заканчивается тогда, когда полученные ЭК ранга m не склеиваются
между собою. Все не отмеченные ЭК будут являться первичными
импликантами.
(Для данного построения целесообразно использовать квадратные
таблицы, размерностью l x l, где l –
число ЭК k-го ранга; k = n, n – 1, ..., m.)
Например:
f (x1,
x2, x3, x4, x5) =
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5 v
x1x2x3x4x5
(Таблица исходных ЭК ранга 5 примет вид (табл. ).)
Выписываем ЭК 5-го ранга:
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5,
*x1x2x3x4x5
Образуем ЭК n-го ранга путем просмотра списка слева на право
и попарного сравнения:
x1x2x3x5,
x1x2x4x5,
*x1x3x4x5,
*x2x3x4x5,
x1x2x4x5,
x2x3x4x5,
*x2x3x4x5,
x1x2x3x4,
*x1x2x3x4,
*x1x3x4x5,
*x1x3x4x5,
*x1x2x3x4,
*x1x2x3x5,
*x1x2x3x5,
*x1x2x3x4
ЭК принявшие участие в склеивании, помечаем знаком *.
Далее строим ЭК 3-го ранга:
x3x4x5,
x3x4x5,
x1x3x4,
x1x2x3,
x1x2x3
Повторяющиеся ЭК исключаем из дальнейшего рассмотрения:
x3x4x5,
x1x3x4,
x1x2x3
Образовать ЭК 2-го ранга невозможно, следовательно первичными
импликантами являются:
x1x2x3x5,
x1x2x4x5,
x1x2x4x5,
x2x3x4x5,
x1x2x3x4,
x3x4x5,
x1x3x4,
x1x2x3
ЭТАП 2.
Расстановка меток и нахождение существенных импликант.
В результате выполнения первого этапа минимизируем функция
оказалась представленной в виде:
f
(x1, x2, ..., xn) =
где li – первичные импликанты.
Для нахождения минимальной формы необходимо исключить некоторые
первичные импликанты. Поэтому составляется таблица, строки которой
соответствуют первичным импликантам, а столбцы ЭК исходной функции.
Если в некоторую ЭК входит одна из первичных импликант, то на
пересечении соответствующей строки и столбца ставится метка. Если
после заполнения всей таблицы в некотором столбце оказывается
только одна метка, то первичная импликанта, находящаяся в данной
строке, называется существенной. (Табл.)
В нашем случае существенными импликантами являются:
x1x2x3x5,
x1x2x4x5,
x1x2x3x4,
x3x4x5,
x1x3x4,
x1x2x3
Из таблицы исключаются строки, соответствующие существенным
импликантам, и столбцы ЭК, покрываемых этими существенными
импликантами (Табл.).
ЭТАП 3.
Вычеркивание избыточных столбцов и избыточных первичных импликант.
Если в таблице полученной на предыдущем этапе имеются столбцы,
в которых метки расположены в одинаковых строках, то один из таких
столбцов вычеркивается. Так как покрытие оставшегося столбца будет
осуществлять покрытие удаленной ЭК.
Если после удаления избыточных столбцов в таблице появляются
строки, в которых нет ни одной метки, то они вычеркиваются, так
как первичные импликанты, соответствующие этим строкам не покрывают
оставшиеся в рассмотрении ЭК.
В нашем примере избыточные строки и столбцы отсутствуют.
Таблица 3.1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x1x2x3x5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x1x2x4x5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x1x2x4x5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x2x3x4x5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x1x2x3x4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x3x4x5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x1x3x4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x1x2x3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 3.2.
A1 = x1x2x3x4x5;
A2 = x1x2x3x4x5;
A3 = x1x2x3x4x5;
A4 = x1x2x3x4x5;
A5 = x1x2x3x4x5;
A6 = x1x2x3x4x5;
A7 = x1x2x3x4x5;
A8 = x1x2x3x4x5;
A9 = x1x2x3x4x5;
A10 = x1x2x3x4x5;
A11 = x1x2x3x4x5;
A12 = x1x2x3x4x5;
A13 = x1x2x3x4x5;
B1 = x1x2x3x4x5.
ЭТАП 4.
Выбор минимального покрытия максимальными интервалами.
Из таблицы, полученной в результате выполнения третьего
этапа, выбирается такая совокупность первичных импликант,
которая включает хотя бы по одной метке в каждом столбце.
При нескольких возможных вариантах выбирается покрытие
минимальной сложности.
В рассматриваемом примере остается выбрать одну из
первичных импликант:
Результатом минимизации будет МДНФ:
|