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