система простых импликант
{ x 1x 2,
1 2 , 2 3 , x 1 3}является полной ,но не является приведенной ,т.к. из нее можно исключить одну из импликант не нарушая полноты системы .{
2 3или x1 2}Определение: Дизъюнкция всех простых импликант ,образующих некоторую приведенную систему называется тупиковой ДНФ булевой функции или ТДНФ
Для функции (*)существуют две ТДНФ
1) у= x 1x 2Ú
1 2Ú 2 32) у= x 1x 2Ú
1 2Ú x 1 3В данном случае они совпадaют с минимальной ДНФ. Но в общем случае это утверждение не справедливо. Т.е. минимальная ДНФ обязательно является ТДНФ но не любая ТДНФ является МДНФ. Таким образом множество МДНФ является подмножеством ТДНФ.
Определение: простая импликанта булевой функции называется существенной если она и только она покрывает некоторую существенную вершину этой функции.
Множество существенных импликант соответствует максимальным кубам образующим ядро покрытия.
ПОСЛЕДОВАТЕЛЬНОСТЬ действий для решения канонической задачи минимизации методом Квайна-Мак-Класки.
1)Нахождение множества максимальных кубов или простых импликант функции.
2)Выделение ядра покрытия.
3)Дополнение множества кубов ,принадлежащих ядру покрытия таким минимальным подмножеством из максимальных кубов ,не входящих в ядро покрытия ,для получения покрытия с минимальной ценой.
С точки зрения последовательного преобразования ДНФ булевой функции с целью их упрощения каноническая задача минимизации может быть представлена в виде КДНФ.
КДНФÞСДНФÞ{ТДНФ}Þ{МДНФ}
Распространение терминологии в отношении нулевого покрытия определяется на понятии импликанта как соответствие импликанте и на системе импликант.
ПРИМЕР: (минимизация булевой функции методом Квайна-Мак-Класки)
1) f4(x)=V(0,1,5,7,8,10,12,14,15)
(f=1)
f4(x)=&(2,3,4,6,9,11,13)
(f=0)
На этапе получения множества максимальных кубов целесообразно разделить множество ноль - кубов (К°(f)) на ряд подмножеств ,отличающихся количеством единиц .
В операцию склеивания в этом случае могут вступать только кубы ,относящиеся к соседним подмножествам ,то есть отличающиеся на единицу
ì000X ü
ï X000 ÷ K°(f)=C°(f)
ï 0X01 ÷
Z(f)= í 01X1 ý Sa=36
ê X111 ú Sb=45
ê 111Xú
î 1XX0 þ
K1(f)=C1(f) Sa=10*3=30
Sb=40
Z(f)=C3(f) Sa=20
Sb=27
При минимизации не полностью определенной булевой функции множество максимальных кубов определяется на объединении множества существенных вершин и безразличных наборов в целях получения кубов наибольшей размерности .
2) Определение ядра покрытия .
Выполнение этого этапа реализуется с помощью таблицы покрытий .
Kаждая строка таблицы - максимальный куб(простая импликанта).
Каждый столбец - существенная вершина булевой функции (безразличные наборы не включаются).
Элементы этой таблицы отражают отношение покрытия ,то есть на пересечении i-ой строки и j-ого столбца ставится некоторая отметка в том случае если i-ый максимальный куб покрывает j-ую вершину .
Таблицу покрытий иногда называют импликантной таблицей с учетом того ,что каждый максимальный куб соответствует простой импликанте а существенные вершины конституантам
единицы(нуля).
Существенные вершины
макс.Кубы | 0000 | 0001 | 0101 | 0111 | 1000 | 1010 | 1100 | 1110 | 1111 |
A | 000X | * | * | | | | | | | | | ||
B | X000 | * | | * | | | | | | | |||
C | 0X01 | * | * | | | | | | | | | ||
D | 01X1 | * | * | | | | | | | | | ||
E | X111 | * | | | | | | | | | * | ||
F | 111X | | | | | | | | | * | |||
1XX0 | | * | | * | | * | | * | |||||
a | b | c | d | | | | | | | | | e |
Для полностью определенной булевой функции количество меток в каждой строке равно числу ноль - кубов покрываемых кубом данной строки .Для не полностью определенной функции количество меток в строке зависит от количества безразличных наборов покрываемых данным кубом .Для нахождения кубов ,принадлежащих ядру покрытия в таблице ищутся столбцы с единственной меткой .Строка ,которой принадлежит эта метка определяет куб ядра .
Т(f)={1XX0}
3) Определение множества минимальных покрытий .
На этом этапе из множества максимальных кубов не принадлежащих ядру покрытия ,выделяются такие минимальные подмножества ,с помощью каждого из которых покрываются оставшиеся вершины (не покрытые ядром) .
Реализацию этого этапа целесообразно производить с использованием упрощенной таблицы.
В упрощенной таблице вычеркнуты все кубы принадлежащие ядру и вершины покрываемые ядром.
Для решения задачи 3-го этапа можно использовать один из 3-х методов или их комбинацию:
1) Метод простого перебора
2) Метод Петрика
3) Дальнейшее упрощение.
1)На данном этапе целесообразно ввести обозначение максимальных кубов и существенных вершин.
Максимальные кубы обозначены в таблице А...F
1-ый методцелесообразно применять для упрощенной таблицы небольшого объема .Этот метод не дает гарантии получения всех максимальных покрытий.
Для нашего примера все кубы входящие в упрощенную таблицу покрытий обладают одной размерностью(то есть необходимо выбрать минимальное количество этих кубов для покрытия всех оставшихся существенных вершин).
Из таблицы видно ,что минимальное число кубов равно трем.К возможным вариантам покрытий относятся:
ì Tüì Tü
C min1(f)= êAú Cmin1(f)= êBú,...
ïCúêCú
îE þîE þ
2)Достоинство этого метода-получение всех минимальных покрытий.
Метод базируется на составлении логического выражения , представляющего собой условие покрытия всех вершин из упрощенной таблицы покрытий и преобразования этого выражения .
Y=(AvB)(AvC)(CvD)(DvE)(EvF)=(AvBC)(DvCE)(EvF)=
=(AvBC)(DEvCEvDFvCEF)=
=(ADEvACEvADFvBCDEvBCEvBCDF)
Каждый из пяти конъюнктивных термов соответствует покрытию булевой функции(с учетом дополнения ядром),каждому из которых можно поставить в соответствие тупиковую ДНФ.
Последний терм не соответствует минимальному покрытию ,то есть данная функция имеет четыре минимальных покрытия.
3) Дальнейшее упрощение состоит в применение двух операций : а)Вычеркивание лишних строк.
б)Вычеркивание лишних столбцов.
Если множество меток i-й строки является подмножеством меток j-й строки и куб i имеет небольшую размерность, чем куб j, то из таблицы можно вычеркнуть i-ю строку так как существенные вершины покрываемые i-м кубом будут с гарантией покрыты j-м кубом.
В дальнейшем рекомендуется построить новую упрошенную таблицу.
В отношении новой таблицы можно использовать один из трех методов: 1) Метод простого перебора.
2)Метод Петрика.
3)Дальнейшее упрощение.
Функциональная полнота системы булевых функций.
Система булевых функций S={y1,y2,...,ym}называется функционально полной ,если с помощью функций этой системы можно выразить любую сколь угодно сложную булеву функцию с использованием метода суперпозиции, возможно многократно.
Под суперпозицией в отношении булевых функций понимается подстановка одних функций в другие вместо их аргумента.
Примерами полных систем являются :
1)S1 ={ù,&,Ú}(булев базис)
Обоснованность утверждения о функциональной полноте этой системы базируется на возможности представления любой булевой функции в нормальной форме ,которая является комбинацией операций отрицания ,конъюнкции и дизъюнкции, применительно к аргументу этой функции.
Система S1 ={ù,&,Ú}является избыточной так как из нее можно удалить одну из функций (& или Ú) без нарушения функциональной полноты.
Получаемые при этом системы S2 ={ù,&}иS3{ù,&,Ú}обычно называют сокращенным булевым базисом .
Недостающие операции(Úв системе S2и & в системе S3 ) могут быть выражены с помощью следствий из законов
____
Де Моргана : x1V x2=
1 2