- •Глава 2. Элементы математической логики.
- •§1.Основные понятия.
- •§2.Основные логические операции (связки) и их таблицы истинности.
- •Упражнения.
- •§3.Понятия формулы логики высказываний.
- •§4.Истинностные таблицы.
- •Замечания
- •Упражнения.
- •§5.Булевы функции. Равносильность. Тавтологии.
- •§6.Основные равносильности булевых формул.
- •§7.Дизъюнктивные и конъюнктивные нормальные формулы (днф и кнф).
- •§8.Представление булевой функции сднф и скнф (проблема разрешимости).
- •§9.Приведение формул к сднф(скнф) равносильными преобразованиями.
- •§10.Необходимое и достаточное условия тождественной истинности (ложности) формул.
- •§11.Принцип двойственности.
- •§12.Минимизация булевой функции. Алгоритм Квайна-МакКласки.
- •12.1. Представление булевой функции вершинами k-мерного куба.
- •12.2. Комплекс кубов булевой функции.
- •12.3. Покрытие. Минимальное покрытие.
- •12.4. Простые импликанты.
- •12.5. Экстремали и отмеченные вершины.
- •§13. Реализация булевых функций релейно-контактными схемами.
- •Вопросы к главе II.
12.4. Простые импликанты.
Пусть K(f) - комплекс кубов функции f. Куб uÎK(f) называется простым импликантом, если K(f) не содержит куба, покрывающего куб u. Простые импликанты обозначаются Z(f). В данном примере Z(f)=(10*, **1).
Теорема. Если С - минимальное покрытие, то С состоит только из простых импликантов, т.е. Сmin£Z(f).
Действительно, если uÎ Сmin и не является простым импликантом, т.е. покрывается кубом vÚK(f), то заменив u на v, получим покрытие меньшего веса, что противоречит минимальности С.
12.5. Экстремали и отмеченные вершины.
Можно ли утверждать, что все простые импликанты входят в минимальное покрытие? Какие из них нужно включить в него обязательно? Ответ на этот вопрос даст следующая теорема .
Назовём вершину отмеченной, если она покрывается только одним простым импликантом, а сам этот импликант назовём экстремалью, и множество всех экстремалей обозначим Е.
Теорема. Каждая экстремаль принадлежит минимальному покрытию E£Cmin£Z(f).
Если Е=Z(f), то Е= Cmin. Так будет в нашем примере. Вершина 100 является отмеченной для куба (10*), а вершина 001(а также (011)и (111)) для куба (**1). Поэтому Z(f)=(10*, **1)=Е=Сmin и fmin=x1`x2Úx3.
Существуют алгоритмы, позволяющие строить множество простых импликантов и экстремалей для функции, зависящей от любого числа переменных. При этом не обязательно экстремали образуют покрытие. В этом случае используются специальные методы извлечения минимального покрытия из множества простых импликантов. Мы же ограничимся разбором различных ситуаций для функции, зависящей от трёх переменных, используя геометрическую интерпретацию.
Заметим, что если f(x1, x2, x3) не является тождественно истинной, то грань, принадлежащая комплексу K(f), а также ребро комплекса, не покрываемое гранью из K(f), является простыми импликантами. Функция f может задаваться как множеством вершин, так и ДНФ, ей равносильной. В последнем случае, используя геометрическую интерпретацию, можно построить комплекс кубов, не находя СДНФ.
Пример 1. Для функции f=x1`x2Ú`x1x2Úx3 найти минимальную ДНФ.
Р
x3
x1
x2
D
F
A
B
C
E
F
C
E
D
Пример 2. Найти минимальную ДНФ, для функции заданной вершинами А, В, С, D, E, F.
Р
A
B
Пример 3. Для функции f=(00111101) построить минимальную ДНФ
Решение. Функция f принимает значение 1 для наборов 010, 011, 100, 101, 111. Изобразим эти вершины на кубе размерности 3. Каждое из рёбер является простым импликантом, т.к. нет граней.
011
A
B
C
E
D
100
101
111
01010
fmin= x1`x2Úx1x3`x1x2.
Пример 4. Найти минимальную ДНФ для функции, заданной вершинами.
Р
A
B
C
E
D
F
(*00). fmin=xzÚ`xyÚ`y`z.
