- •1. Элементы теории множеств
- •1.1 Множества. Основные понятия
- •1.2. Способы задания множеств
- •1.3. Операции над множествами. Диаграммы Венна
- •1.4. Свойства операций над множествами
- •1.5. Прямое (декартово) произведение множеств
- •1.6 Разбиения и покрытия
- •1.7. Замечание о мощности некоторых множеств
- •1.8 Представление множеств в эвм
- •1.9. Отношения
- •1.9.1.Определения
- •1.9.2 Бинарные отношения
- •1.9.3. Способы задания бинарных отношений
- •1.9.4 Свойства бинарных отношений
- •1.9.5. Отношение эквивалентности
- •1.9.5. Отношение порядка
- •1.9.6.1. Минимальные и максимальные элементы множества
- •1.9.6.2. Диаграммы Хассе
- •1.9.6.3. Принцип двойственности
- •1.9.7. Представление отношений в эвм
- •1.10. Соответствия. Функции. Операции. Отображения
- •1.10.1. Соответствия и их свойства
- •1.10.2 Функции и отображения
- •1.10.3. Инъекция, сюръекция и биекция
- •1.10.4. Композиция и суперпозиция функций. Способы задания функций
- •1.10.5. Представление функций в эвм
- •1.10.6. Операции
- •1.10.6.1. Способы задания операций
- •1.11. Алгебраические структуры
- •1.11.2. Замыкание и подалгебры
- •1.11.3. Гомоморфизм и изоморфизм
- •1.11.4. Алгебры с одной бинарной операцией
- •1.11.5. Алгебры с двумя бинарными операциями
- •1.11.6.Решетки
- •1.11.7. Булевы алгебры
- •2. Элементы математической логики и булевы функции
- •2.1. Операции над высказываниями
- •2.2. Логические операции (логические связки)
- •2.3. Элементарные булевы функции
- •2.3.1. Функции алгебры логики
- •2.3.2. Равносильность функций. Существенные и несущественные переменные
- •2.3.3. Реализация функций формулами. Суперпозиция функций
- •2.3.4. Подстановки и замены
- •2.3.5. Принцип двойственности
- •2.3.6. Нормальные формы в логике высказываний
- •2.3.6.1. Разложение булевых функций по переменным. Дизъюнктивно-нормалльная форма (днф)
- •2.3.6.2. Совершенная дизъюнктивная нормальная форма
- •2.3.7. Арифметические операции в алгебре логики. Полиномы Жегалкина
- •2.3.8. Монотонные функции алгебры логики
- •2.3.9. Функционально замкнутые классы
- •2.4. Полнота системы булевых функций. Теорема
- •2.5. Элементы логике предикатов
- •2.5.1. Определение предиката
- •2.5.2. Кванторы. Формулы логики предикатов
- •2.5.3. Равносильность формул
- •2.5.4. Предикаты на конечных областях. Логика одноместных предикатов
- •2.6. Операции над предикатами и кванторами
- •2.7. Построение доказательств в логике предикатов
- •1.6.2. Разбор решений задач по логике предикатов
- •1. Элементы теории множеств 3
- •1.1 Множества. Основные понятия 3
- •2.6. Операции над предикатами и кванторами 137
- •394026 Воронеж, Московский просп., 14
2.3.6.2. Совершенная дизъюнктивная нормальная форма
Представление булевой функции f(x1, ..., xn) в виде
называется совершенной дизъюнктивной нормальной формой (СДНФ). Здесь дизъюнкция v означает, что берется дизъюнкция по тем наборам , на которых функция f равна единице.
СДНФ называется совершенной, потому что каждое слагаемое в дизъюнкции включает все переменные, дизъюнктивной, потому что главная операция – дизъюнкция.
Теорема: Всякая булева функция (кроме 0) имеет одну единственную СДНФ.
Доказательство. По следствию 2:
Ясно, что в дизъюшкции останутся только члены, для которых .
При f = 0 множество конъюнкций в правой части пусто.
Теорема: Всякая булева функция может быть выражена через дизъюнкцию, конъюнкцию и отрицание:
f = func F.
Доказательство: Если f = 0, то . Если , то см. предыдущую теорему.
Алгоритм преобразования формулы в СДНФ
Равенство (*) дает возможность находить СДНФ для функции по ее таблице истинности. Однако, если функция заданна формулой, то этот путь часто неудобен.
Разобьем построение СДНФ на два этапа:
I. Сначала по формулам построим ДНФ.
II. По найденному ДНФ построим СДНФ.
Будем пользоваться элементарными операциями, которыми являются преобразования формул, использующие аксиом 1÷10 и их простейшие следствия.
I.Построение ДНФ.
1). Преобразуем формулу так, чтобы в ней были только операции дизъюнкции, конъюнкции и отрицания, причем отрицание может стоять только над аргументами.
Такого рода преобразования мы уже делали (см. пример на стр. 139) - базисные операции .
Замечание. Формулы, являющиеся ДНФ, можно охарактеризовать, как формулы, содержащие только конъюнкцию, дизъюнкцию и отрицание. В них отрицания стоят только над аргументами и в начале выполняются все конъюнкции, а потом – дизъюнкции. Поэтому далее нужно
2). преобразовать формулу так, чтобы все конъюнкции выполнялись раньше, чем дизъюнкции. Это достигается с помощью дистрибутивного закона.
В результате формула приобретает вид дизъюнктивной формы:
v(Ai^...^Aj),
где Аi – либо переменная, либо отрицание переменной.
II. Теперь преобразуем ДНФ в СДНФ.
3). Если в ДНФ имеется несколько одинаковых элементарных конъюнкций, то мы оставляем только одну с помощью идемпотенции конъюнкции: x^x = x. Затем с помощью идемпотентности дизъюнкции удаляются повторные вхождения одинаковых конъюнкций в дизъюнкцию.
В результате этого шага формула не содержит «лишних» переменных и «лишних» конъюнктивных слагаемых.
При этом делаем все элементарные конъюнкции правильными, путем следующих двух преобразований:
а) если в элементарную конъюнкцию входит некоторая переменная вместе со своим отрицанием, то мы удаляем эту конъюнкцию из ДНФ, так как .
б) если некоторая переменная входит в элементарную конъюнкцию несколько раз, при чем во всех случаях без отрицания или во всех случаях под знаком отрицания, то мы оставляем только одно вхождение, так как x^x = x.
Теперь нужно получить полные конъюнкции.
4). Если в некоторую конъюнкцию не входит переменная у, то нужно рассмотреть равносильное выражение , и вновь применим преобразование 2). Если недостающих членов несколько, то надо добавить несколько конъюктивных членов вида .
Напоминание: = 1, 1^x = х.
После применения преобразования 4) могут вновь появиться одинаковые конъюнкции. Поэтому нужно вновь применить преобразование 3).
На этом преобразование формулы в СДНФ заканчивается.
Мы не оговорили, что всюду, конечно, надо пользоваться коммутативностью и ассоциативностью конъюнкции и дизъюнкции.
Пример. Найти СДНФ: xvy^z.
2.3.6.3. Совершенные конъюнктивные нормальные формы.
Совершенно аналогично можно провести рассмотрение для конъюнктивных нормальных форм.
Определение 1. Формула вида называется элементарной дизъюнкцией.
Определение 2. всякая конъюнкция элементарных дизъюнкций называется конъюнктивной нормальной формой (КНФ).
Таким образом, формула F находится в конъюнктивной нормальной форме тогда и только тогда, когда F имеет вид:
F = F1^...^Fn, n≥1, где каждая из F1, ..., Fn есть элементарная дизъюнкция.
Легко проверить, что необходимым и достаточным условием тождественного равенства КНДФ единице является наличие в каждой элементарной дизъюнкции некоторой переменной вместе с ее отрицанием.
Определение 3. Элементарная дизъюнкция называется правильной, если в нее каждая переменная входит не более одного раза (включая ее вхождение под знак отрицания).
Определение 4. Правильная элементарная дизъюнкция называется полной относительно переменных (x1, ..., xn), если каждая из этих переменных входит в нее один и только один раз (быть может, под знаком отрицания).
Определение 5. Совершенной конъюнктивной нормальной формой (СКНФ) относительно переменных (x1, ..., xn) называется конъюнктивная нормальная форма, в которой нет одинаковых элементарных дизъюнкций и все элементарные дизъюнкции правильны и полны относительно переменных
(x1, ..., xn).
Теорема: Всякая булева функция (кроме 1) может быть единственным образом выражена в виде СКНФ:
.
Вместо можно потребовать, чтобы .