
Лекции 7, 8
§ 2.5. Полнота системы булевых функций
|
Полная система. Теорема о полноте двух систем. Критерий полноты системы булевых функций. Базисы. Предполные классы. |
Базовые понятия и утверждения
1. Понятие о полноте системы булевых
функций. В предыдущем параграфе мы
установили, что функцию, не принадлежащую
какому-нибудь классу Поста, нельзя
представить формулой через функции,
входящие только в этот класс. С другой
стороны, нам известно, что любую булеву
функцию можно выразить через дизъюнкцию,
конъюнкцию и отрицание. Настоящий
параграф посвящен обсуждению следующего
вопроса: как для произвольной системы
булевых функций
определить, всякая ли функция представима
формулой над
,
или нет?
Определение. Множество булевых
функций
называется полной системой, если
любая булева функция может быть задана
формулой над
.
Пример 1. а)
- полная система, поскольку любая булева
функция представима в виде СДНФ или
СКНФ.
б)
- полная система, поскольку любая булева
функция представима в виде полинома
Жегалкина.
в)
- полная система, поскольку любую булеву
функцию можно сначала выразить формулой
над
,
а затем заменить в этой формуле все
дизъюнкции формулой
.
В итоге получится формула над
.
г)
- полная система, поскольку любую булеву
функцию можно сначала выразить формулой
над
,
а затем заменить в этой формуле все
конъюнкции формулой
.
В итоге получится формула над
.
Следующая теорема обобщает подход,
использованный нами для доказательства
полноты систем
и
.
Теорема 2.12 (о полноте двух систем).
Пусть заданы две системы булевых функций:
и
.
Тогда, если система
- полная и каждая ее функция может быть
задана формулой над
,
то система
тоже полная.
Доказательство. Покажем, как
для произвольной булевой функции
построить формулу над
.
Возьмем формулу для
над
(в силу полноты
такая формула обязательно существует)
и заменим в ней вхождение символов
функций
формулами
над
(которые существуют по условию). Получим
формулу
над
,
которая задает
.
■
Пример 2. Докажем,
что
- полная система. Действительно, пусть
и
.
Имеем
,
откуда
.
Следовательно,
и
.
Таким образом, каждую функцию полной
системы
можно задать формулой над
.
Следовательно, условия теоремы о полноте
двух систем выполнены и, значит,
-
полная система.
С помощью теоремы о полноте двух систем можно доказать полноту некоторой системы булевых функций. Обосновать неполноту с ее помощью нельзя.
2. Критерий полноты системы булевых функций. Наиболее удобный способ проверки системы функций на полноту связан с использованием критерия полноты Поста.
Для того чтобы система функций
была полна, необходимо и достаточно,
чтобы для каждого из классов Поста в
нашлась функция
,
ему не принадлежащая.
Доказательство этого утверждения приведено во второй части параграфа.
При проверке, выполняются ли для некоторой
системы функций
условия критерия Поста, удобно использовать
таблицу, которую называют таблицей
Поста (табл. 2.29).
Таблица 2.29 |
|||||
Функции |
Классы Поста |
||||
|
|
|
|
|
|
|
|
|
|
|
|
… |
… |
… |
… |
… |
… |
|
|
|
|
|
|
Таблицу Поста исследуемой системы лучше
заполнять по столбцам. Вначале
рассматриваем класс
.
Если
окажется подмножеством
(первый столбец таблицы заполнен только
плюсами), то система неполна. В противном
случае переходим к классу
и т.д.
Пример 3. Используя
критерий полноты, выяснить, полна ли
система булевых функций
:
а)
;
б)
.
◄ а) Для удобства рассуждений зададим
функции системы
таблично (табл. 2.30 и 2.31).
Таблица 2.30 |
|
Таблица 2.31 |
|||||||
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
|
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
|
|
|
|
|
1 |
0 |
1 |
0 |
1 |
|
|
|
|
|
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
Заполним таблицу Поста исследуемой системы (табл. 2.32).
Таблица 2.32 |
|||||
Функции |
Классы Поста |
||||
|
|
|
|
|
|
|
+ |
+ |
– |
+ |
– |
|
– |
+ |
|
– |
|
|
|
– |
|
|
|








Класс
:
,
следовательно,
;
,
следовательно,
;
,
следовательно,
.
Класс
:
,
,
следовательно,
.
Класс
:
перебрав все пары сравнимых векторов,
убеждаемся, что условие монотонности
для функции
не нарушается, значит,
;
,
а
,
следовательно,
.
Класс
:
,
следовательно,
.
Таким образом, для каждого класса Поста
можно указать функцию системы
,
ему не принадлежащую. Следовательно,
- полная система.
б) Заполним таблицу Поста системы
(табл. 2.33).
Таблица 2.33 |
|||||
Функции |
Классы Поста |
||||
|
|
|
|
|
|
|
– |
+ |
– |
– |
+ |
|
|
– |
|
|
+ |



Класс
:
,
следовательно,
;
,
следовательно,
.
Класс
:
,
,
следовательно,
.
Класс
:
,
,
следовательно,
.
Класс
:
,
следовательно,
;
,
следовательно,
.
Поскольку обе функции системы
принадлежат классу линейных функций,
то система неполна. ►
Определение. Полная система функций называется базисом, если после удаления из нее любой функции получается неполная система.
Пример 4. Укажите
подмножества
,
являющиеся базисами:
а)
; б)
.
◄ а) Заполним таблицу Поста (табл. 2.34).
Таблица 2.34 |
|||||
Функции |
Классы Поста |
||||
|
|
|
|
|
|
|
+ |
+ |
– |
+ |
– |
|
+ |
+ |
– |
+ |
– |
|
– |
– |
+ |
– |
+ |
















б) Мы рассматривали систему
в примере 3.
Таблица 2.35 |
|||||
Функции |
Классы Поста |
||||
|
|
|
|
|
|
|
+ |
+ |
– |
+ |
– |
|
– |
+ |
– |
– |
+ |
|
+ |
– |
– |
– |
– |

Анализ табл. 2.35 показывает, что сама
система
базисом не является, так как при удалении
функции
полноту не теряет. Система
является базисом, поскольку удаление
из нее любой из функций приводит к потере
полноты. Остальные собственные
подмножества
базисами не являются (система
неполная, так как лежит в
;
система
неполная, так как лежит в
;
неполны и подмножества, содержащие по
одной функции). ►