Литература / Олейник.Лекции по дискретной математике / вариант .doc / Глава 2 / параграф 2.3 2
.4.doc2.3. Двойственные функции
Определение. Функция, реализуемая формулой , называется двойственной к функции .
Функцию, двойственную к функции , обозначают , т.е. .
Пример 1.
а) Пусть . Тогда
.
б) Пусть . Тогда
.
в) Пусть . Тогда .
г) Пусть . Тогда .
д) Пусть . Тогда .
е) Пусть . Тогда .
Замечание. Рассмотрим таблицы истинности для произвольной функции двух переменных и двойственной к ней функции :
0 |
0 |
||
0 |
1 |
||
1 |
0 |
||
1 |
1 |
Нетрудно заметить, что столбец значений функции может быть получен из столбца значений функции , если действовать по такому алгоритму:
-
каждое число, стоящее в столбце значений, заменить на противоположенное (0 на 1 и 1 на 0);
-
получившийся в результате выполнения пункта 1 столбец переписать в обратном направлении (т.е. число, стоящее в первой строке, записать в последнюю строку; число, стоящее во второй строке - в предпоследнюю строку и т.д.).
Аналогичного алгоритма для получения двойственной функции можно придерживаться и в случае любого числа аргументов.
Утверждение. .
Доказательство.
. ■
Лемма. Если формула реализует функцию , то формула реализует функцию .
Доказательство.
. ■
Справедливо следующее утверждение, которое приведем без доказательства.
Теорема (принцип двойственности). Если формула реализует функцию , то формула, полученная из нее заменой символов функций на символы двойственных к ним функций , реализует функцию, двойственную к функции (эту формулу будем называть двойственной к и обозначать ).
Заметим, что доказательство этой теоремы основано на лемме и проводится индукцией по структуре формул.
Следствие. Поскольку , и , , , (пример 1), то для получения формулы, двойственной к формуле , нужно в формуле заменить 0 на 1, 1 на 0, связку на связку , связку на связку .
Пример 2. Пусть . Тогда
.
2.4. Разложение булевых функций по переменным
Введем обозначение: Следовательно, имеем:
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Таким образом, верно: .
Теорема 1 (о разложении функций по переменным). Каждую булеву функцию при любом можно реализовать формулой:
. (1)
Доказательство. Возьмем произвольный набор значений переменных и найдем на этом наборе значение функции, реализуемой формулой (1):
.
(*):
.
Таким образом, имеем:
. ■
Следствия. 1. Разложение функции по одной переменной:
.
2. Разложение функции по всем переменным:
. (2)
Теорема 2 (о реализации функции в виде СДНФ). Если , то она может быть реализована формулой
. (3)
Формулу (3) называют совершенной дизъюнктивной нормальной формой или, сокращенно, СДНФ.
Доказательство.
. ■
Пример 1. а) ;
б) ;
в) ;
г) .
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
Теорема 3 (о реализации функции в виде СКНФ). Если , то она может быть реализована формулой
.
Формулу (4) называют совершенной конъюнктивной нормальной формой или, сокращенно, СКНФ.
Доказательство. Реализуем функцию , двойственную к , в виде СДНФ.
.
Следовательно,
. ■
Пример 2. а) ;
б) ;
в) ;
г) .
Утверждение. Каждая булева функция может быть реализована формулой над множеством .
Доказательство. Возможны два случая:
1. . Тогда и может быть реализована в виде СКНФ.
2. . Тогда может быть реализована в виде СДНФ. ■