Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка - ДМ -основа.doc
Скачиваний:
27
Добавлен:
02.09.2019
Размер:
17.87 Mб
Скачать

2.4 Метод нахождения всех тупиковых покрытий максимальными интервалами.

Мы представляем регулярный способ перечисления всх тупиковых покрытий посредством ограниченного перебора.

Рассмотрим таблицу покрытия. Пусть функция f ( ,…, ) от n переменных имеет s единиц ,…, , и m максимальных интервалов ,…, . Таблица будет содержать s столбцов, каждый столбец будет соответствовать определенной единице функции и будет содержать m строк , каждая строка соответствует определенному максимальному интервалу.

,…

,…

На пересечении строки и столбца, который соответствует единице функции поставим интервал , если интервал покрывает . И пусто, если интервал не покрывает единицу . Таким образом, в столбце непустые элементы в точности все максимальные интервалы, которые покрывают единицу .

Например,

K2

-передняя грань , - ребро

0

1

1

1

1

1

1

1

0

0

1

1

0

0

1


Определение: Выборкой называют упорядоченный набор интервалов

, ,…, , (каждый индекс принимает значения из множества чисел , причем значения некоторых индексов могут повторяться), что есть не нулевой элемент первого столбца , и т. д., - ненулевой элемент последнего s – того столбца .

Например :

 выборки.

Утверждение 1 : Интервалы любой выборки являются покрытием.

Рассмотрим произвольную выборку , , … , . Все интервалы данного множества допустимы, и все единицы функции покрыты.

Действительно, первая единица функции покрыта интервалом , вторая , и т. д., последняя единица покрыта .

Утверждение 2 : Взяв в некотором порядке некоторые интервалы покрытия, можно получить выборку.

Рассмотрим произвольное покрытие. Рассмотрим интервал, который покрывает первую единицу функции, обозначим его .

Рассмотрим и обозначим , который покрывает вторую единицу функции и т. д. Рассмотрим интервал , который покрывает последнюю s – ую единицу функции.

Такие интервалы обязательно найдутся, потому что рассматриваемое множество является покрытием.

Тогда полученное множество интервалов , , … , является выборкой.

Из этих утверждений следует

Утверждение 3 : Множество тупиковых покрытий содержится среди выборок.

Д ействительно, каждое тупиковое покрытие есть выборка, которую оно содержит. Интервалы тупикового покрытия можно упорядочить, и при этом получим выборку.

Таким образом, чтобы найти множество тупиковых покрытий нужно найти множество всех выборок, исключить из них нетупиковые выборки.

Множество оставшихся выборок и есть требуемое множество тупиковых покрытий.

Таким образом, мы должны разработатьметод перечисления всех выборок и удаления нетупиковых выборок.

Метод нахождения всех выборок .

Пусть ,…, ненулевые элементы первого столбца в таблице покрытия.

,…, ненулевые элементы второго столбца в таблице покрытия .

,…, ненулевые элементы последнего s – того столбца в таблице покрытия.

Рассмотрим функцию покрытия . Это есть КНФ от переменных, которые соответствуют максимальным интервалам таблицы покрытия.

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

( … )( … )…( … ).

1

1

1

0

0

0

0

1

1

1

0

1

1

1

0


Пример: максимальные интервалы- есть следующие ребра

2

( )(  )(  )(  )( ) - КНФ

Раскроем скобки в полученной КНФ , т.е. перейдем от КНФ к ДНФ .

Утверждение : Множество слагаемых полученной ДНФ и есть множество всевозможных выборок.

Действительно, каждое слагаемое при раскрытии скобок получается при выборе в первом множителе КНФ одного из интервалов , которые по построению покрывают первую вершину. Во втором множителе КНФ при выборе некоторого интервала , который по построению покрывает вторую вершину и т. д. В последнем множителе при выборе интервала , который по построению покрывает последнюю s – тую вершину.

Полученное множество интервалов есть выборка.

Множество всевозможных таких слагаемых и есть множество всех выборок.

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

Т. е. по-другому говоря, слагаемое, которое соответствует нетупиковой выборке поглощается слагаемым, которое соответствует тупиковой выборке.

Например :

Множество интервалов является выборкой.

- является выборкой .

Верхнее не является тупиковой, потому что при удалении интервала получается нижнее покрытие.

Т. е. интервал поглощает .

Таким образом, чтобы получить все тупиковые выборки нужно в построенной ДНФ применить все возможные поглощения.

Множество оставшихся слагаемых и будут всевозможные тупиковые покрытия .

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

.

Примечание : Операцию поглощения можно применять в процессе раскрытия скобок .

Корректность этой операции следует из примера. Раскрывая скобки, получаем

Мы применяем поглащение в процессе раскрытия скобок в силу того, что покрытия содержащие пару интервалов не будут тупиковыми- соответствующие слагаемое, которое будет содержать только будет короче.

Тупиковые покрытия максимальными интервалами:

;

Теперь нужно выбрать покрытия, которые обладают наименьшей сложностью. Оба покрытия имеют одну сложность, поэтому это и есть все минимальные ДНФ нашей функции. Сложность равна шести. Ответ минимальные ДНФ-

;