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

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

Утверждение 1 : Любая минимальная ДНФ может состоять только из максимальных интервалов.

Утверждение 2 : Любая минимальная ДНФ - есть тупиковое покрытие.

Докажем утверждение 1:

Допустим противное, что некоторая минимальная ДНФ k1k2 ... ks содержит немаксимальный интервал k1 . Это означает, что из интервала k1 можно удалить множитель , так что полученный интервал k1/ так же будет допустимым.

Заменим интервал k1 на k1/ в начальной ДНФ функции f. Нетрудно видеть, что полученная ДНФ k1/ k2 ... ks также представляет функцию f.

Действительно, в силу одного из предыдущих утверждений интервал k1k1/ . Это означает, что любая единица, которая была покрыта интервалом k1, будет покрыта интервалом k1/. Все остальные единицы были покрыты оставшимися интервалами. Они же покрыты интервалами (оставшимися) в полученной ДНФ. Таким образом, все единицы функции f покрыты полученными интервалами. И все интервалы данного набора являются допустимыми. Поэтому полученная ДНФ является покрытием и поэтому представляет функцию f. Но сложность полученной ДНФ меньше, чем сложность первоначальной, т. к. в интервале k1 был удален некоторый множитель.

Отсюда следует противоречие. Мы получили ДНФ, сложность которой меньше чем сложность первоначальной.

Пример: Рассмотрим булеву функцию x1 x3 x2 x3 x1 и рассмотрим покрытие соответствующее данной функции.

Действительно, это покрытие, но данное покрытие не может соответствовать минимальной ДНФ из-за того что интервалы x1x3 и x1 не являются максимальными.

Действительно, из интервала x1x3 можно удалить множитель x3 и получится допустимый интервал x1. И сложность ДНФ, которая так же является покрытием, уменьшится на 1.

Поэтому первоначальное покрытие не может быть минимальным. В данном примере минимальная ДНФ есть x1 x2 x3 . Д/з.

Докажем утверждение 2:

Любая минимальная ДНФ есть тупиковое покрытие.

Допустим противное, что есть минимальная ДНФ k1k2 ... ks, которая не является тупиковым покрытием. Это означает, что в ДНФ есть интервал k1 (для определенности), удаление которого все равно приведет к покрытию k2 ... ks, т. е. полученное покрытие будет представлять булеву функцию, но сложность полученной ДНФ для данного покрытия меньше чем сложность первоначальной ДНФ на величину ранга удаленной конъюнкции. Поэтому первоначальная ДНФ не может является минимальной.

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

Замечание: Тупиковая ДНФ не обязательно является минимальной.

Например: x1 x3 x2 x3 x1. Действительно, данные интервалы составляют тупиковое покрытие. Но данная ДНФ не является минимальной.

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

Пример:

Максимальными интервалами являются 6 ребер:k1 , k2 , k3 , k4, k5, k6 . Они действительно являются максимальными, ни одно из ребер не содержится в допустимой грани. Допустимых граней здесь нет.

Не трудно видеть, что k1 , k2 , k4 , k5 является тупиковым покрытием. Действительно, все интервалы допустимы и максимальны, и при удалении любого интервала получаем не покрытие. Но данное тупиковое покрытие максимальными интервалами минимальным не является. В данном примере существует покрытие меньшей сложности, которое покрывает все вершины, а сложность этого покрытия меньше: k1, k3 , k5,.

Ответ: Минимальные ДНФ следующие:

Т

011

111

001

110

100

000

аким образом, алгоритм нахождения минимальной ДНФ будет проводиться в два этапа: на первом найдем все максимальные интервалы функцииf, а на втором — все тупиковые покрытия максимальными интервалами, и выделим из них покрытия минимальной сложности. Это и будут все минимальные ДНФ функции f.

Геометрический метод нахождения всех минимальных ДНФ функции f.

001 011

  1. 111

000 010

  1. 110

Первый этап:

Рассмотрим пример. В нем максимальные интервалы x1 и x2 . Действительно, x1 является допустимым, он состоит целиком из единиц функции f, удаление множителя x1 из данного интервала дает интервал константу 1. Это все вершины булевого куба. Вершина 000 единицей не является. Поэтому const 1 — весь булев куб допустимым интервалом не является. Поэтому интервал x1 является максимальным.

Интервал x2 так же является максимальным.

Второй этап:

Найдем все тупиковые покрытия. Получаем единственное покрытие, состоящее из всех максимальных интервалов. Действительно, интервал x2 обязательно должен принадлежать покрытию, т.к. только данный максимальный интервал покрывает вершину 011.

Интервал x1 также обязан принадлежать покрытию, т.к. только данный максимальный интервал покрывает вершину 100.

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

Поэтому получаем единственную минимальную ДНФ .

Рассмотрим функцию от трех переменных.