Нахождение множества максимальных кубов (простых импликант) булевой функци
На этом этапе производятся всевозможные склеивания кубов меньшей размерности с целью получения кубов большей размерности. Для сокращения количества операций сравнения кубов на предмет их склеивания целесообразно производить упорядочивание кубов одинаковой размерности путем разделения их на группы по количеству единичных координат. При таком подходе в операцию склеивания могут вступать только кубы, принадлежащие двум соседним группам, то есть такие кубы, количество единичных координат в которых отличается на единицу. Кроме того, рекомендуется проводить нумерацию кубов одинаковой размерности с фиксацией пары склеиваемых кубов при образовании куба большей размерности как результат склеивания. Также по ходу склеивания необходимо осуществлять отметку кубов, вступающих в операцию склеивания. Тогда после завершения операций по склеиванию кубов все неотмеченные кубы будут представлять собой множество максимальных кубов как кубов, не участвовавших ни в одной операции склеивания. Результат этого этапа представлен в табл. 4.
Нахождение множества максимальных кубов. Таблица 4
Замечания. 1. При образовании 2-кубов получено два одинаковых 2-куба как результата склеивания двух различных пар соседних 1-кубов. Точно также при образовании 3-кубов должно получаться три одинаковых 3-куба как результата склеивания трех различных пар соседних 2-кубов. Этот факт хорошо согласуется с геометрической интерпретацией кубов небольшой размерности. Действительно, 2-куб представляет собой грань трехмерного куба, которая полностью определяется одной из двух противоположных ребер, соответствующих двум соседним 1-кубам. В свою очередь 3-куб соответствует полному трехмерному кубу, который полностью определяется одной из трех пар противоположных граней, интерпретируемых как геометрические образы двух соседних 2-кубов.
Продолжая аналогию, можно заметить, что при склеивании r -кубов (r ³ 3), получается (r +1) одинаковых (r +1)-кубов. Этот факт можно использовать как некоторое подтверждение корректности производимых операций склеивания над кубами. 2. Можно проследить за уменьшением цены покрытий заданной булевой функции, получаемых из кубов различной размерности. Так, для покрытия Со(f)=K°(f), составленного из исходных 0-кубов, цена составляет: Sa = 9 × 4 = 36, S b = 36+9 = 45. Этому покрытию соответствует КДНФ заданной функции. Так как все 0-кубы отмечены как вступающие в операции склеивания, то кубический комплекс К1(f) также можно рассматривать в качестве одного из покрытий булевой функции: С1(f)=К1(f). Цена этого покрытия: Sa = 10 × 3 = 30, Sb = 30+10 = 40. Этому покрытию соответствует ДНФ заданной функции вида: И, наконец, множество максимальных кубов Z(f) также представляет собой покрытие заданной функции С2(f)=Z(f) с ценой: Sa = 1 × 2+6 × 3 = 20, Sb = 20+7 = 27. Этому покрытию соответствует СДНФ вида: 3. При минимизации неполностью определенных булевых функций производится дополнение множества 0-кубов (существенные вершины) булевой функции множеством безразличных наборов N(f) с целью образования кубов большей размерности. Тем самым на этом этапе осуществляется доопределение исходной функции значениями «единица» на безразличных наборах.
Определение ядра покрыти
Для выполнения этого этапа первоначально строится таблица покрытий, строки которой соответствуют максимальным кубам покрытия, а столбцы – существенным вершинам булевой функции. Безразличные наборы аргументов при минимизации неполностью определенной булевой функции в таблице покрытий не участвуют. Тем самым для этого этапа производится доопределение неполностью определенной булевой функции значениями нуля на безразличных наборах аргументов. Таблица покрытий отображает отношение покрытия между существенными вершинами булевой функции и максимальными кубами. Для этого на пересечении i - ой строки и j - го столбца таблицы делается соответствующая отметка в том случае, если максимальный куб из i - ой строки покрывает существенную вершину из j - го столбца. Таблица покрытий с соответствующими отметками приведена в виде табл. 5.
Замечания. 1. Таблицу покрытий называют также импликантной таблицей в связи с тем, что максимальные кубы соответствуют простым (первичным) импликантам булевой функции, а существенные вершины - конституентам единицы булевой функции. 2. Для полностью определенных булевых функций количество меток в строке таблицы покрытий, соответствующей максимальному кубу размерности r, равно 2 r. Для не полностью определенных функций количество меток может быть меньше 2 r в том случае, если в образовании r -куба участвуют кроме существенных вершин и безразличные наборы. Для выделения ядра покрытия в таблице покрытий ищутся столбцы, в которых содержится единственная метка. Это означает, что существенная вершина, соответствующая такому столбцу, покрывается только одним из максимальных кубов. В соответствии с этим максимальный куб, который один и только один покрывает некоторую существенную вершину булевой функции, включается в обязательную часть покрытия, называемую ядром. В табл. 5 выделены метки, являющиеся единственными в своих столбцах Таблица покрытий Таблица 5
Как видно из табл. 5 в нашем примере кубом ядра, будет являться куб: T(f)= {1ХХ0}.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|