Экстремали и отмеченные вершины

Можно ли утверждать, что все простые импликанты входят в минимальное покрытие? Какие из них нужно включить в него обязательно? Ответ на этот вопрос даст следующая теорема.

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

Теорема. Каждая экстремаль принадлежит минимальному покрытию E£Cmin£Z(f).

Если Е=Z(f), то Е= Cmin. Так будет в нашем примере. Вершина 100 является отмеченной для куба (10*), а вершина 001(а также (011)и (111)) для куба (**1). Поэтому Z(f)=(10*, **1)=Е=Сmin и fmin=x1`x2Úx3.

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

Заметим, что если f(x1, x2, x3) не является тождественно истинной, то грань, принадлежащая комплексу K(f), а также ребро комплекса, не покрываемое гранью из K(f), является простыми импликантами. Функция f может задаваться как множеством вершин, так и ДНФ, ей равносильной. В последнем случае, используя геометрическую интерпретацию, можно построить комплекс кубов, не находя СДНФ.

Пример 1. Для функции f=x1`x2Ú`x1x2Úx3 найти минимальную ДНФ.

x2
x1
x3
Решение. Слагаемому x3 соответствует грань **1, уравнением которой является х3=1. Конъюнкции x1`x2 соответствует ребро (10*), являющееся пересечением граней x1=1 и х2=0. Аналогично конъюнкции `х1х2 - ребро, являющееся пересечением граней х1=0 и х2=1. Изобразим их на кубе размерности 3.

D
E
C
F
E
D
C
B
A
F
Комплекс кубов содержит простые импликанты - грань BCDE и рёбра AB и DF. Они же являются экстремалями. Для грани отмеченными вершинами будут С и Е, для рёбер А и F соответственно, а потому данная ДНФ является минимальной.

Пример 2. Найти минимальную ДНФ, для функции заданной вершинами А, В, С, D, E, F.

B
A
Решение. Здесь простыми импликантами будут две грани ABCD и AFED. Они же являются экстремалями для отмеченных вершин В и С для ABCD и F и Е для AFED. Уравнениями этих граней будет х1=1 и х3=0. Им соответствует fmin=x1Ú`x3.

Пример 3. Для функции f=(00111101) построить минимальную ДНФ

Решение. Функция f принимает значение 1 для наборов 010, 011, 100, 101, 111. Изобразим эти вершины на кубе размерности 3. Каждое из рёбер является простым импликантом, т.к. нет граней.

C
 
 
 
 
D
B
A
 
E
При этом рёбра АВ и DE - экстремали для отмеченных вершин А и Е соответственно, но они не образуют покрытия. Из оставшихся рёбер ВС и CD можно взять любое. Они покрывают оставшуюся вершину С и имеют одинаковую цену. Значит, Сmin=(AB, DC, DE). Им соответствует

fmin= x1`x2Úx1x3`x1x2.

Пример 4. Найти минимальную ДНФ для функции, заданной вершинами.

C
F
D
E
B
A
Решение. Здесь все рёбра являются простыми импликантами, но нет экстремалей. Для решения задачи применяется метод "ветвления". Сначала строим минимальное покрытие, содержащее какое-нибудь ребро, например АВ. Это будут рёбра АВ, CD и FE и находим его цену. А затем ищем минимальное покрытие, не содержащее АВ. Это будут рёбра BC, DE, AF. Оба эти покрытия имеют одинаковую цену, и можно взять любое. Тогда ребру ВС соответствует (1*1), ребру DE (01*), и ребру АF -

(*00). fmin=xzÚ`xyÚ`y`z.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: