- •Введение
- •Раздел 1. Формулы логики
- •Тема 1.1 Логические операции
- •Тема 1.2 Законы алгебры логики
- •Законы алгебры логики
- •Равносильные преобразования
- •Тема 1.3 Функции алгебры логики Функции алгебры логики
- •Специальные представления булевых функций
- •Минимизация нормальных форм
- •Операция двоичного сложения. Многочлены Жегалкина
- •Некоторые методы перехода от булевых функций к полиному Жегалкина
- •Раздел 2. Множества и отображения
- •Тема 2.1 Множества Основные понятия теории множеств
- •Операции над множествами
- •Диаграммы Эйлера-Венна
- •Законы теории множеств
- •Соотношение между множествами и составными высказываниями
- •Соотношение между высказываниями и соответствующими им множествами истинности
- •Тема 2.2 Отображения Бинарные отношения
- •Отображения и функции
- •Раздел 3. Предикаты Предикаты. Операции над предикатами
- •Кванторы
- •Раздел 4. Элементы теории алгоритмов Основные понятия теории алгоритмов
- •В настоящее время полученные на основе теории алгоритмов практические рекомендации получают всё большее распространение в области проектирования и разработки программных систем.
- •Литература
Специальные представления булевых функций
Дизъюнктивные и конъюнктивные нормальные формы алгебры высказываний. Для каждой функции логики высказываний можно составить таблицу истинности. Обратная задача тоже всегда разрешима. Введем несколько определений.
Элементарными конъюнкциями (конъюнктами) называются конъюнкции переменных или их отрицаний, в которых каждая переменная встречается не более
одного раза.
Дизъюнктивной нормальной формой (ДНФ) называется формула, имеющая вид дизъюнкции элементарных конъюнкций.
Элементарными дизъюнкциями (дизъюнктами) называются дизъюнкции переменных с отрицаниями или без них.
Конъюнктивной нормальной формой (КНФ) называется формула, имеющая вид конъюнкции элементарных дизъюнкций.
Для каждой функции алгебры высказываний можно найти множество дизъюнктивных и конъюнктивных нормальных форм.
Алгоритм построения ДНФ:
1. Перейти к булевым операциям, используя формулы эквивалентных преобразований.
2. Перейти к формулам с тесными отрицаниями, то есть к формуле, в которой отрицания располагаются не выше, чем над переменными – применить законы де Моргана.
3. Раскрыть скобки – применить законы дистрибутивности.
4. Повторяющиеся слагаемые взять по одному разу – закон идемпотентности.
5. Применить законы поглощения и полупоглощения.
Пример 6. Найти
ДНФ формулы:
.
В алгебре Буля справедлив принцип двойственности. Он заключается в следующем.
Функция
называется двойственной
к функции
,
если
.
Т.е. для нахождения функции, двойственной
к заданной, необходимо построить
отрицание функции от отрицаний
аргументов.
Пример 7. Найти
функцию, двойственную к
.
Среди элементарных
функций алгебры логики 1 двойственна
0 и наоборот, х двойственна х,
двойственна
,
двойственна
и
наоборот.
Если в формуле F1 представляющей функцию все конъюнкции заменить
на дизъюнкции, дизъюнкции на конъюнкции, 1 на 0, 0 на 1, то получим формулу F*, представляющую функцию *, двойственную .
Конъюнктивная
нормальная форма (КНФ) – двойственное
для ДНФ понятие, поэтому ее легко
построить по схеме:
Пример 8. Найти
КНФ формулы:
.
Воспользовавшись
результатом примера 6, имеем
Совершенная дизъюнктивная и совершенная конъюнктивная нормальные формы. В каждом из типов нормальных форм (дизъюнктивных и конъюнктивных) можно выделить класс совершенных форм СДНФ и СКНФ.
Совершенной элементарной конъюнкцией называется логическое произведение всех переменных с отрицанием или без них, причем, каждая переменная входит в произведение только один раз.
Всякую ДНФ можно
привести к СДНФ расщеплением конъюнкций,
которые содержат не все переменные,
т.е. добавлением для отсутствующей
переменной xi
множится
с применением закона дистрибутивности
Пример 9. Найти СДНФ для ДНФ примера 6
Совершенной элементарной дизъюнкцией называется логическая сумма всех переменных с отрицаниями или без них, причем, каждая переменная входит в сумму только один раз.
Всякую КНФ можно
привести к СКНФ, добавляя член конъюнкции,
не содержащий какой – либо переменной
Xi
конъюнкцией
и применяя
дистрибутивный закон
Пример 10 .
Привести
КНФ к СКНФ:
Для построения СКНФ можно воспользоваться схемой
Пример 11. Найти СКНФ для формулы примера 6.
Всякая функция
имеет СДНФ и, притом, единственную
.
Каждая функция
имеет
СКНФ и, притом, единственную
.
Т.к. СДНФ и СКНФ определены формулами однозначно, их можно строить по таблице истинности формулы.
Для построения СДНФ необходимо выделить строки, в которых F принимает значение 1 и записать для них совершенные элементарные конъюнкции. Если значение переменной в нужной строке таблицы истинности равно единице, то в совершенном конъюнкте она берется без отрицания, если нулю – то с отрицанием. Затем совершенные конъюнкты (их число равно числу единиц в таблице) соединяются знаками дизъюнкции.
Для построения СКНФ по таблице истинности необходимо выделить в ней строки, где F=0, и записать совершенные элементарные дизъюнкции, после чего соединить их знаками конъюнкции. Если в требуемой строке таблицы истинности (F=0) значение переменной соответствует нулю, то в совершенном дизъюнкте она берется без отрицания, если единице – то с отрицанием.
Пример 12. Найти СДНФ и СКНФ по таблице истинности для формулы примера 6.
В таблице 14 приведено лишь конечное значение F=10101101. В справедливости этого утверждения следует убедиться самостоятельно, построив развернутую таблицу истинности.
Таблица 14
-
x
y
z
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
СДНФ =
СКНФ =
.
Как видно из примеров 9, 10, 11, 12 значения СДНФ и СКНФ, полученные различными способами, для заданной функции совпадают. Это еще раз подчеркивает единственность представления функции в совершенных нормальных формах.
