
- •§1.5. Полнота, замкнутость. Теорема Поста о полноте
- •Важнейшие замкнутые классы
- •Задачи для самостоятельного решения.
- •§1.6. Дизъюнктивные нормальные формы
- •Процедура упрощения д. Н. Ф. (алгоритм Блейка)
- •Алгоритм получения тупиковой д. Н. Ф.
- •Геометрическая интерпретация
- •Сокращенная д. Н. Ф.
- •Аналитические методы построения сокращенной д. Н. Ф. Метод Нельсона
- •Метод Квайна
- •Задачи для самостоятельного решения
§1.5. Полнота, замкнутость. Теорема Поста о полноте
Для
функций
и
функция
называетсясуперпозицией.
Класс
булевых функций
называется (функционально)
полным, если любая функция из
может быть представлена в виде формулы
над
,
т.е. любая функция получается из функций
класса
применением конечного числа операции
суперпозиций.
Замечание.Классможет быть конечным или бесконечным.
Примеры
полных классов: а)
;
б)
(любая булева функция выражается формулой
в виде конъюнкции, дизъюнкции и инверсии);
в)
любую
булеву функцию можно представить в виде
полинома Жегалкина.
Пусть
некоторый класс булевых функций.Замыканием
называется множество всех булевых
функций, получающихся в виде формул над
(обозначается
).
Свойства замыкания:
1.
.
2.
.
3.
.
Класс
называется:
– замкнутым,
если ;
– полным,
если (см. определение выше);
– предполным,
еслине полный, но для любой функции
класс
полный.
Важнейшие замкнутые классы
Введем следующие классы функций (классы Поста):
;
;
класс самодвойственных
функций;
класс монотонных
функций (функция
называетсямонотонной);
класс линейных
функций (
называетсялинейной).
Лемма.
Классызамкнуты.
Доказательство.а) Рассмотрим функцию,
где
.
Покажем, что
.
Действительно,
.
Следовательно,
класс
замкнут.
б)
Аналогично предыдущему доказывается
замкнутость класса
.
в)
Пусть
,
где
самодвойственные функции. Тогда
,
т. е. .
.
Следовательно, класс
замкнут.
г)
Пусть,
где
.
Покажем, что
.
Пусть
Наборы переменных состоят из переменных,
встречающихся у функций
соответственно.
Возьмем
два набора
и
значений переменных
.
Они определяют наборы
значений переменных
причем
.
Так как
,
то
.
Тогда
.
Функция
,
поэтому
.
Отсюда
.
Следовательно,
класс
замкнут.
д)
Класс
замкнут, так как линейное выражение,
составленное из линейных выражений,
является линейным.
Лемма
(о несамодвойственной функции). Если
,
то из нее путем подстановки функций
и
вместо
можно
получить несамодвойственную функцию
одного переменного, т.е. константу.
Доказательство.Так как,
то существует набор
такой, что
.
Рассмотрим
функцию
.
Пусть
.
Тогда
Следовательно,
константа
0 или 1.
Замечание.
Если,
то вместо
подставляем
,
если же
то
.
Замечание.Для того чтобы определить, является ли
функция,
заданная своим вектором значений
,
самодвойственной, следует проверить,
получается ли вторая половина вектора
из
первой отражением и последующим
инвертированием его координат.
Лемма
(о немонотонной функции). Если,
то подстановкой констант
,
и функции
из нее можно получить
.
Доказательство.Если,
то найдутся два набора значений переменных
и
такие, что
и
.
Поскольку наборы
и
различаются в
координатах (
),
то, меняя по одной координате, между
ними можно вставить
соседних наборов, т.е. таких, что
и каждый следующий набор получается из предыдущего изменением ровно одной координаты.
Так
как
,
то в этой цепочке найдутся два соседних
набора переменных
и
такие, что
и
.
Пусть эти наборы различаются в
-
ой координате:
.
Рассмотрим функцию
.
Имеем
Поскольку,
,
то
.
Замечание.Для проверки на монотонность функции,
заданной своим вектором значений
,
нужно сначала разделить его две равные
части
и
.
Если соотношение
не выполнено, то
немонотонная. В противном случае разделим
каждый из полученных векторов опять
пополам
и
.
Проверим сначала первую пару на выполнение
соотношения
,
и в случае положительного результата
вторую. Если хотя бы для одной пары
соотношение не выполняется, то функция
немонотонная. В противном случае этот
алгоритм продолжаем дальше.
Лемма
(о нелинейной функции). Если,
то из нее путем подстановки констант
,
и функций
и
,
а также, быть может, инвертированием
,
можно получить функцию
.
Доказательство.
Возьмем полином Жегалкина для:
.
В
силу нелинейности полинома в нем найдется
член, содержащий не менее двух множителей.
Без ограничения общности можно считать,
что среди этих множителей присутствуют
и
.
Тогда можно преобразовать полином
следующим образом:
,
где
в силу единственности полинома
.
Пусть
таковы, что
.
Тогда
,
где
– константы, равные
или
.
Рассмотрим функцию
,
получаемую из
следующим образом:
.
Очевидно, что
.
Следовательно,
.
Лемма.Классы Постапопарно
различны.
Доказательство.Для доказательства леммы приведем
функции, лежащие в классах, но так, чтобы
классы взаимно не поглощались. Рассмотрим
функциии построим таблицу принадлежности
классам. В таблице будем ставить «+»,
если функция принадлежит классу, и «–»
в противном случае.
|
|
|
|
|
|
0 |
+ |
– |
– |
+ |
+ |
1 |
– |
+ |
– |
+ |
+ |
|
– |
– |
+ |
– |
+ |
Если бы какие-нибудь два класса совпадали, то совпадали бы и соответствующие столбцы таблицы. Так как они не совпадают, делаем вывод о попарном различии классов.
Теорема
Поста(о полноте). Для того чтобы
система функцийбыла полной необходимо и достаточно,
чтобы она целиком не содержалась ни в
одном из пяти замкнутых классов
.
Доказательство.Необходимость.Пусть системаполна. Тогда
.
Допустим, что
содержится целиком в каком-либо из
классов Поста (обозначим его через
),
т.е.
.
В этом случае
.
Отсюда
,
что невозможно.
Достаточность.Пустьне содержится целиком ни в одном из пяти
классов Поста. Выделим из нее подсистему
функций.
,
где
,
и на ее основе построим полную систему.
1.
При помощи
построим функции (константы) 0 и 1 или
функцию
.
Разберем отдельно два случая:
(а)
;
(б)
.
(а)
Рассмотрим функцию
.
Из цепочки равенств
следует, что
.
(б)
В этом случае для функции
получаем
,
т.е.
.
Аналогичным
образом, используя функцию
,
строим константу 0 или функцию
.
Итак,
нами построены либо функция
,
либо обе константы 0 и 1. или
2.
Если построена
,
то с помощью
и
,
применяя лемму о несамодвойственной
функции, строим константы 0 и 1.
Если
есть обе константы 0 и 1, то .с помощью
функций 0, 1 и
,
используя лемму о немонотонной функции,
можно построить
.
3.
При помощи 0, 1,
и
,
применяя лемму о нелинейной функции,
строим функцию
.
Система
полная.
Значит, и
полная. Отсюда следует полнота системы
.
Теорема доказана.
Следствие 1.Из всякой полной системы можно выделить полную подсистему, содержащую не более пяти функций.
Это утверждение можно усилить, а именно, имеет место.
Лемма.Из всякой полной системы можно выделить полную подсистему, содержащую не более четырех функций.
Доказательство.Так как,
то либо
либо
.
Тогда полная система будет состоять из
функций
либо
.
Пример
1. Определить количество функций
классови
,
зависящих от переменных
.
Решение.Вектор значений функцииимеет вид
,
т.е. определено только значение на
нулевом
наборе
переменных, свободных же
.
Следовательно,
.
Аналогично вычисляется количество
функций класса
.
Пример
2. Определить количество самодвойственных
функций, зависящих отпеременных.
Решение.Функцияпринимают противоположные значения на
противоположных наборах переменных.
Поэтому для ее задания достаточно задать
первую половину ее вектора значений
.
Следовательно, количество самодвойственных
функций, зависящих от
переменных, равно
.
Пример
3. Определить количество линейных
функций, зависящих от переменных.
Решение.Различных линейных функций от переменныхстолько же, сколько различных векторов
,
т.е.
.