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

1 Этап:

Находим максимальные интервалы данной функции. Их будет 4. Это четыре ребра: x1 , x1 x2 , x2 x3 , x3 .

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

Первый этап завершен.

2 Этап:

Найти все тупиковые покрытия.

; .

И других тупиковых покрытий нет.

Действительно, интервал обязан входить в любое покрытие , т.к. только он покрывает вершину 100. Интервалобязан входить в любое покрытие, т.к. только он покрывает вершину 001. Остаются два интервала;, из которых достаточно взять только один интервал , чтобы покрыть вершину 111. Сложность тупиковых покрытий одинакова. Это и есть все минимальные ДНФ данной функции.

Аналитический метод нахождения всех минимальных ДНФ.

I . Метод нахождения сокращенной ДНФ.

Метод будет проходить по этапам.

На начальном (нулевом) этапе рассматриваются все допустимые интервалы ранга n, т.е. СДНФ функции f . На этапе i ко всевозможным парам интервалов ранга (n-i) вида ;добавляется на интервалk (;).

Предыдущая операция называется склеиванием. После чего применяется операция поглощения: если есть пара интервалов;, то интервалудаляем. После этого переходим к очередному (i+1)–ому этапу. Если на этапеi операция склеивания не применима ни к каким интервалам, то алгоритм заканчивается и множество полученных интервалов и является в точности множеством всех максимальных допустимых интервалов.

Рассмотрим пример:

Этап 0.

; ;;;- поглощение.

Применяем операцию склеивания ко всевозможным интервалам.

(3-0)=3

1 и 2 , добавляем .

2 и 3, добавляем

3 и 4, добавляем

4 и 5 , добавляем

После применения операции поглощения будут удалены все интервалы ранга 3.

, ,,,

Этап 1.

Имеем интервалы ранга 3-1=2 : ,,,,и применяем операцию склеивания .дадут интервал.

После применения операции поглощения получим интервалы : ;.

Этап 2.

Ко всем интервалам ранга 2-1=1 применяем операцию склеивания . В данном случае она не применима. Алгоритм завершает работу.

Все максимальные интервалы : ,

Корректность алгоритма .

Покажем, что действительно алгоритм находит все допустимые максимальные интервалы функции f.

Утверждение 1 : Все интервалы, которые возникают на этапах алгоритма являются допустимыми.

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

Индуктивный базис .

Пусть интервал k возник в результате операции склеивания двух допустимых интервалов и. Тогда интервалk также является допустимым. Действительно, набор, на котором конъюнкция K равна 1 в компоненте, соответствующей переменной x может иметь произвольное значение 0 или 1, т. к. данная переменная не входит в множество переменных рассматриваемой конъюнкции K. Тогда, если в этой компоненте набор имеет единицу, то этот набор будет единицей конъюнкции , а если в рассматриваемой компоненте набор содержит 0, то тогда это есть единица конъюнкции. Т. е. единицы конъюнкции K принадлежат объединению единиц предыдущих двух конъюнкций. И в силу допустимости этих двух конъюнкций имеем.

Тогда справедливо , т. е. конъюнкцияK – допустимый интервал.

Утверждение 2: На входе i-ого этапа интервалы ранга (n-i) в точности все допустимые интервалы такого ранга, а интервалы большого ранга есть в точности все максимальные интервалы.

Докажем данное утверждение методом индукции.

На начальном (нулевом) этапе утверждение справедливо. Интервалы ранга n на этом этапе – это все допустимые конъюнкции ранга n функции f.

Допустим утверждение справедливо для этапа i, т. е. на входе этапа i содержатся все допустимые интервалы ранга (n-i), а интервалы большего ранга есть в точности все максимальные интервалы такого ранга.

Рассмотрим (i+1) этап и докажем справедливость утверждения для этого этапа.

Во-первых, покажем, что любой допустимый интервал ранга (n-(i+1)) содержится на входе этого этапа.

Рассмотрим такой допустимый интервал k, рассмотрим переменную x, которая не входит в конъюнкцию этого интервала. Тогда интервалы иявляются также допустимыми, т. к. любые единицы данных интервалов являются единицами допустимого интервала k.

Тогда в силу предположения индукции, эти два допустимых интервала ранга (n-i) содержатся на входе этапа i.

После применения операции склеивания к рассматриваемым интервалам и получается интервал k.

Во-вторых, покажем, что интервалы большего ранга, чем n-i-1 есть в точности все интервалы такого ранга.

Рассмотрим максимальный интервал ранга (n-i)k и покажем, что он будет содержатся на входе этапа i+1.

Действительно, как допустимый интервал ранга (n-i) по предположению индукции он содержался на входе этапа i. И этот интервал в силу своей максимальности не мог быть поглощенным ни одним из допустимых интервалов меньшего ранга n-i-1. А только допустимые интервалы возникают на этапах алгоритма.

Поэтому допустимый интервал k будет сохранен на этапе i и по этому будет содержатся на входе этапа (i+1).

Верно обратное утверждение, т. е. если интервал k ранга (n-i) содержится на входе i+1 этапа, то этот интервал максимальный.

Действительно, в силу доказанного данный интервал допустимый и поэтому содержится на входе этапа i, и не был поглощен на i-ом этапе. Но тогда все интервалы, которые получаются из данного интервала удалением какого-либо множителя будут недопустимыми, а поэтому данный интервал является максимальным. Поэтому доказано, что любой интервал ранга n-i является максимальным и наоборот любой максимальный ранга n-i содержится на входе i+1 этапа. Т. е. интервалы ранга n-i, есть в точности все максимальные интервалы такого ранга.

Для интервалов большего ранга, чем (n-i) утверждение о их максимальности следует из утверждения базиса индукции этапа i.

Ч.Т.Д.

Тогда из данного утверждения корректность алгоритма следует из справедливости утверждения для последнего этапа.

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

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

,…

,…

()=1

()=0

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

Например,

K2

x1=K1

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


Пример:

K2

K1=x1x2

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

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

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

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

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

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

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

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

Например :

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

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

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

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

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

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

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

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

()()=()=

.

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

;

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