Метод Квайна — Мак-Класки

Более эффективным является выписывание для функции n переменных не всех возможных конъюнкций, а только тех, которые могут присутствовать в ДНФ, эквивалентной минимизируемой функции. Этот прием позволяет уменьшить таблицу и перебор, который мы проводим с целью нахождения МДНФ.

Предположим, что минимизируемая функция задана в СДНФ. Для простоты будем называть элементарные конъюнкции ранга n, входящие в СДНФ минимизируемой функции, минитермами ранга n. Метод состоит из последовательного выполнения следующих этапов.

1. Нахождение первичных импликант. Все минитермы данной функции сравнивают между собой попарно. Если минитермы mi и mj таковы, что они имеют вид axi и a`xi, то вписывается конъюнкция a, являющаяся минитермом (n-1)-го ранга. Будем говорить, что минитерм a покрывает минитерм ax и `ax (покрывается ими). Минитермы n-го ранга, для которых произошло склеивание, отмечаются. После построения всех минитермов (n-1)-го ранга вновь сравнивают их попарно, выписывают минитермы (n-2)-го ранга, отмечают склеивающиеся минитермы (n-1)-го ранга и т.д. Этап заканчивается, когда вновь полученные минитермы i-го ранга уже не склеиваются между собой. Все неотмеченные минитермы называются первичными или простыми импликантами.

ПримерПример 6

f(x1,x2,x3,x4)=`x1`x2x3x4Ú`x1x2`x3`x4Ú`x1x2`x3x4Ú

Ú`x1x2x3x4Úx1`x2`x3x4Úx1`x2x3x4Úx1x2`x3`x4Úx1x2x4`x3.

Минитермы 4-го ранга:

x1`x2x3x*4, `x1x2`x3`x*4, `x1`x3x2x*4, `x1x2x3x*4,

x1`x2`x3x*4, x1`x2x3x*4, x1x2`x3`x*4, x1x2`x3x*4.

Образуем минитермы 3-го ранга:

`x1x3x4, `x2x3x4, `x1x2`x*3, x2`x3`x*4,

`x1x2x4, x2`x3x*4, x1`x2x4, x1`x3x4, x1x2`x*3.

Теперь находим минитермы 2-го ранга: x2`x3.

Дальнейшее склеивание невозможно, этап получения простых импликант закончен. Простыми импликантами являются минитермы:

`x1x3x4, `x2x3x4, `x1x2x4, x1`x2x4, x1`x3x4, x2`x3.

2. Расстановка меток. Для данной функции f(x1,x2,...,xn)=Úili, где li - простые импликанты, полученные нами на первом этапе. Для нахождения МДНФ нужно найти минимальное подмножество из li, покрывающее конъюнкции исходной СДНФ, для чего необходимо выбросить некоторое количество первичных импликант. На данном этапе составляется таблица, число строк которой равно числу полученных первичных импликант минимизируемой функции, число столбцов совпадает с числом минитермов. Если в некоторый минитерм входит какая-либо из первичных импликант, то на пересечении соответствующего столбца и строки ставится метка.

Продолжение примера 6. Составим таблицу (табл.9) с метками для рассматриваемой функции, в которой будет 6 строк и 8 столбцов.

Таблица 9

`x1`x2 x3x4 `x1x2 `x3`x4 `x1x2 `x3x4 `x1x2 x3x4 x1`x2 `x3x4 x1`x2 x3x4 x1x2 `x3`x4 x1x2 x4`x3
`x1x3x4 Ú     Ú        
`x2x3x4 Ú         Ú    
`x1x2x4     Ú Ú        
x1`x2x4         Ú Ú    
x1`x3x4         Ú     Ú
x2`x3   Ú Ú       Ú Ú

 

3. Нахождение существенных импликант. Если в каком-либо из столбцов составленной таблицы имеется только одна метка, то первичная импликанта, стоящая в соответствующей строке, называется существенной импликантой. Существенная импликанта не может быть исключена из правой части, так как без нее не будет получено покрытие всего множества T1 данной функции. Поэтому из таблицы меток исключаются строки, соответствующие существенным импликантам, и столбцы минитермов, покрываемых этими существенными импликантами.

Продолжение примера 6. Для нашей функции существенной импликантой является x2`x3. Она покрывает минитермы `xx1xx2`xx3`xx4, `xx1xx2`xx3`xx4, xx1xx2`xx3`xx4, xx1xx2xx4`xx3. При переходе к следующему этапу эти минитермы будут вычеркнуты.

4. Вычеркивание лишних столбцов. Исследуется таблица, полученная после третьего этапа. Если в ней есть два столбца, в которых используются метки в одинаковых строках, то один из них вычеркивается. Это можно сделать в силу того, что покрытие оставшегося столбца будет осуществлять покрытие выброшенного минитерма.

Продолжение примера 6. После вычеркивания существенной импликанты и минитермов, которые она покрывает, таблица меток принимает вид, как в табл.5.10:

 

 

Таблица 10

  `x1`x2x3x4 `x1x2x3x4 x1`x2`x3x4 x1`x2x3x4
`x1x2x4 Ú Ú    
`x2x3x4 Ú     Ú
`x1x2x4   Ú    
x1`x2x4     Ú Ú
x1`x3x4     Ú  

 

В данном случае одинаковых столбцов нет.

5. Вычеркивание лишних первичных импликант. Если после выбрасывания некоторых столбцов на четвертом этапе в таблице появляются строки, в которых нет ни одной метки, то первичные импликанты, соответствующие этим строкам, исключаются из дальнейших рассмотрений, так как они не покрывают оставшиеся в рассмотрении минитермы.

6. Выбор минимального покрытия максимальными интервалами. Выбирается такая совокупность первичных импликант, которая включает метки во всех столбцах (по крайней мере, по одной в каждом столбце). При нескольких возможных вариантах отдается предпочтение варианту с минимальным суммарным числом букв в простых импликантах, образующих покрытие.

Окончание примера 6. Для рассматриваемой функции выбираем покрытие из импликант `xx1xx3xx4 и xx1`xx2xx4, так как они совместно покрывают все оставшиеся после четвертого этапа минитермы. Минимальная ДНФ для этой функции имеет вид

f(xx1,xx2,xx3,xx4)=`xx1xx3xx4Úxx1`xx2xx4Úxx2`xx3.








Дата добавления: 2015-08-21; просмотров: 798;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.