Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БУЛЕВА АЛГЕБРА.DOC
Скачиваний:
49
Добавлен:
04.05.2019
Размер:
7.09 Mб
Скачать

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

Для решения канонической задачи минимизации методом Квайна-Мак-Класки применяется следующая последовательность действий:

1) Нахождение множества максимальных кубов (простых импликант) булевой функции.

2) Выделение ядра покрытия (определение множества существенных импликант).

3) Дополнение множества кубов, принадлежащих ядру покрытия, минимальным подмножеством из множества максимальных кубов, не входящих в ядро покрытия, для получения покрытия с минимальной ценой.

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

КДНФ  СДНФ  ТДНФ  МДНФ.

Распространение терминологии в отношении нулевого покрытия базируется на понятии имплиценты (как соответствие импликанте) и системы имплицент.

Пример: минимизация булевой функции методом Квайна-Мак-Класки.

Исходная функция задается в числовой форме:

14.1. Нахождение множества максимальных кубов (простых импликант) булевой функци

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

Результат этого этапа представлен в табл. 4.

Нахождение множества максимальных кубов.

Таблица 4

K0(f)

K1(f)

K2(f)

K3(f)

Z(f)

1

2

3

4

5

6

7

8

9

0000

--------

0001

1000

--------

0101

1010

1100

--------

0111

1110

--------

1111

1

2

3

4

5

6

7

8

9

10

000X

X000

---------

0X01

10X0

1X00

---------

01X1

1X10

11X0

---------

X111

111X

1-2

1-3

2-4

3-5

3-6

4-7

5-8

6-8

7-9

8-9

1

2

1XX0

1XX0

4-8

5-7

1

2

3

4

5

6

7

1XX0

000X

X000

0X01

01X1

X111

111X

Замечания.

  1. При образовании 2-кубов получено два одинаковых 2-куба как результата склеивания двух различных пар соседних 1-кубов. Точно также при образовании 3-кубов должно получаться три одинаковых 3-куба как результата склеивания трех различных пар соседних 2-кубов. Этот факт хорошо согласуется с геометрической интерпретацией кубов небольшой размерности. Действительно, 2-куб представляет собой грань трехмерного куба, которая полностью определяется одной из двух противоположных ребер, соответствующих двум соседним 1-кубам. В свою очередь 3-куб соответствует полному трехмерному кубу, который полностью определяется одной из трех пар противоположных граней, интерпретируемых как геометрические образы двух соседних 2-кубов.

Продолжая аналогию, можно заметить, что при склеивании r-кубов (r 3), получается (r+1) одинаковых (r+1)-кубов. Этот факт можно использовать как некоторое подтверждение корректности производимых операций склеивания над кубами.

  1. Можно проследить за уменьшением цены покрытий заданной булевой функции, получаемых из кубов различной размерности. Так, для покрытия Со(f)=K(f), составленного из исходных 0-кубов, цена составляет: Sa = 94 = 36, S b= 36+9 = 45. Этому покрытию соответствует КДНФ заданной функции. Так как все 0-кубы отмечены как вступающие в операции склеивания, то кубический комплекс К1(f) также можно рассматривать в качестве одного из покрытий булевой функции: С1(f)=К1(f). Цена этого покрытия: Sa = 103 = 30, Sb = 30+10 = 40. Этому покрытию соответствует ДНФ заданной функции вида:

И, наконец, множество максимальных кубов Z(f) также представляет собой покрытие заданной функции С2(f)=Z(f) с ценой:

Sa = 12+63 = 20, Sb = 20+7 = 27.

Этому покрытию соответствует СДНФ вида:

  1. При минимизации неполностью определенных булевых функций производится дополнение множества 0-кубов (существенные вершины) булевой функции множеством безразличных наборов N(f) с целью образования кубов большей размерности. Тем самым на этом этапе осуществляется доопределение исходной функции значениями «единица» на безразличных наборах.