Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка - ДМ -основа.doc
Скачиваний:
74
Добавлен:
25.03.2016
Размер:
18.13 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 – тую вершину.

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

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

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

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

Например :

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

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

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

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

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

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

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

.

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

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

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

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

;

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

;