Утверждение о максимальных интервалах и тупиковых покрытиях
Утверждение 1 : Любая минимальная ДНФ может состоять только из максимальных интервалов.
Утверждение 2 : Любая минимальная ДНФ - есть тупиковое покрытие.
Докажем утверждение 1:
Допустим противное, что некоторая минимальная ДНФ k1Ú k2Ú ...Ú ks содержит немаксимальный интервал k1 . Это означает, что из интервала k1 можно удалить множитель , так что полученный интервал k1/ так же будет допустимым.
Заменим интервал k1 на k1/ в начальной ДНФ функции f. Нетрудно видеть, что полученная ДНФ k1/ Ú k2Ú ...Ú ks также представляет функцию f.
Действительно, в силу одного из предыдущих утверждений интервал k1 Í k1/ . Это означает, что любая единица, которая была покрыта интервалом k1, будет покрыта интервалом k1/. Все остальные единицы были покрыты оставшимися интервалами. Они же покрыты интервалами (оставшимися) в полученной ДНФ. Таким образом, все единицы функции f покрыты полученными интервалами. И все интервалы данного набора являются допустимыми. Поэтому полученная ДНФ является покрытием и поэтому представляет функцию f. Но сложность полученной ДНФ меньше, чем сложность первоначальной, т. к. в интервале k1 был удален некоторый множитель.
Отсюда следует противоречие. Мы получили ДНФ, сложность которой меньше чем сложность первоначальной.
Пример: Рассмотрим булеву функцию x1 x3 Ú x2 x3 Ú x1 и рассмотрим покрытие соответствующее данной функции.
x1x3 |
x2x3 |
Действительно, из интервала x1x3 можно удалить множитель x3 и получится допустимый интервал x1. И сложность ДНФ, которая так же является покрытием, уменьшится на 1.
Поэтому первоначальное покрытие не может быть минимальным. В данном примере минимальная ДНФ есть x1 Ú x2 x3 . Д/з.
Докажем утверждение 2:
Любая минимальная ДНФ есть тупиковое покрытие.
Допустим противное, что есть минимальная ДНФ k1Ú k2Ú ...Ú ks, которая не является тупиковым покрытием. Это означает, что в ДНФ есть интервал k1 (для определенности), удаление которого все равно приведет к покрытию k2Ú ...Ú ks, т. е. полученное покрытие будет представлять булеву функцию, но сложность полученной ДНФ для данного покрытия меньше чем сложность первоначальной ДНФ на величину ранга удаленной конъюнкции. Поэтому первоначальная ДНФ не может является минимальной.
Из данных двух утверждений следует, что минимальная ДНФ содержится в множестве всевозможных тупиковых, состоящих из максимальных интервалов.
Замечание: Тупиковая ДНФ не обязательно является минимальной.
Например: x1 x3 Ú x2 x3 Ú x1 . Действительно, данные интервалы составляют тупиковое покрытие. Но данная ДНФ не является минимальной.
Данное утверждение не верно даже если предполагать, что тупиковая ДНФ состоит только из максимальных интервалов.
Пример:
Максимальными интервалами являются 6 ребер: k1 , k2 , k3, k4, k5, k6. Они действительно являются максимальными, ни одно из ребер не содержится в допустимой грани. Допустимых граней здесь нет.
Не трудно видеть, что k1 , k2 , k4 , k5 является тупиковым покрытием. Действительно, все интервалы допустимы и максимальны, и при удалении любого интервала получаем не покрытие. Но данное тупиковое покрытие максимальными интервалами минимальным не является. В данном примере существует покрытие меньшей сложности, которое покрывает все вершины, а сложность этого покрытия меньше: k1, k3, k5,.
Ответ: Минимальные ДНФ следующие:
Геометрический метод нахождения всех минимальных ДНФ функции f.
001 011
101 111
000 010
100 110
Первый этап:
Рассмотрим пример. В нем максимальные интервалы x1 и x2 . Действительно, x1 является допустимым, он состоит целиком из единиц функции f, удаление множителя x1 из данного интервала дает интервал константу 1. Это все вершины булевого куба. Вершина 000 единицей не является. Поэтому const 1 — весь булев куб допустимым интервалом не является. Поэтому интервал x1 является максимальным.
Интервал x2 так же является максимальным.
Второй этап:
Найдем все тупиковые покрытия. Получаем единственное покрытие, состоящее из всех максимальных интервалов. Действительно, интервал x2 обязательно должен принадлежать покрытию, т.к. только данный максимальный интервал покрывает вершину 011.
Интервал x1 также обязан принадлежать покрытию, т.к. только данный максимальный интервал покрывает вершину 100.
Таким образом, множество всех тупиковых покрытий максимальными интервалами состоит из единственного покрытия, которое и является единственным минимальным.
Поэтому получаем единственную минимальную ДНФ .
Рассмотрим функцию от трех переменных.
1 этап:
Находим максимальные интервалы данной функции. Их будет 4. Это четыре ребра: x1 , x1 x2 , x2 x3 , x3 .
K4 |
K3 |
Действительно, данные интервалы являются допустимыми и при удалении любого множителя получается интервал грань, а допустимых граней для данной функции нет. Других максимальных интервалов для данной функции также не существует.
Первый этап завершен.
2 этап:
Найти все тупиковые покрытия.
; .
И других тупиковых покрытий нет.
Действительно, интервал обязан входить в любое покрытие , т.к. только он покрывает вершину 100. Интервал обязан входить в любое покрытие, т.к. только он покрывает вершину 001. Остаются два интервала ; , из которых достаточно взять только один интервал , чтобы покрыть вершину 111. Сложность тупиковых покрытий одинакова. Это и есть все минимальные ДНФ данной функции.
Ответ: