
Литература / Олейник.Лекции по дискретной математике / вариант .doc / Глава 2 / Глава 2 / параграф 2.5-2
.8.doc2.5. Полнота системы булевых функций
Определение. Множество булевых
функций
называется полной
системой, если любая булева функция
может быть реализована формулой над
.
Примеры. 1.
- полная система.
2.
- полная (см. утверждение параграфа 2.4).
Теорема (о полноте). Пусть
заданы две системы функций из
:
и
.
Тогда, если система
- полная и каждая ее функция может быть
реализована формулой над
,
то система
тоже полная.
Доказательство. Пусть
- произвольная функция из
.
Покажем, что ее можно реализовать
формулой над
.
В силу полноты
реализуется формулой над
,
т.е.
.
Кроме этого, по условию
реализуются формулами над
,
т.е.
.
Следовательно, в формуле
мы можем исключить вхождение символов
функций
,
заменив их соответствующими формулами:
.
Полученное выражение определяет формулу
над
,
реализующую
.
■
Примеры. 3.
Система
-
полная. Действительно, рассмотрим
системы
и
.
Система
- полная и, поскольку
,
то каждая функция этой системы выражается
формулой над
.
Таким образом, условия теоремы о полноте
выполнены и, значит, система
-
полная система.
4. Система
-
полная. Действительно, рассмотрим
системы
и
.
Имеем:
.
Следовательно,
и
.
Таким образом, каждая функция системы
реализуется формулой над
.
Кроме того, система
- полная. Следовательно, условия теоремы
о полноте выполнены и, значит,
-
полная система.
5. Система
-
полная. Докажите это утверждение
самостоятельно.
6. Система
-
полная. Действительно, рассмотрим
системы
и
.
Система
- полная и, поскольку
,
то каждая функция этой системы выражается
формулой над
.
Таким образом, условия теоремы о полноте
выполнены и, значит, система
-
полная система.
2.6. Полином Жегалкина
Пусть M – некоторое
произвольное подмножество булевого
куба
,
,
- номер вектора
,
- его вес,
- номера отличных от нуля координат
вектора
.
Определение. Формула вида
,
(1)
где суммирование ведется по модулю
два, а коэффициенты
равны либо 0, либо 1, называется полиномом
Жегалкина от
переменных.
Если суммирование в формуле 1 ведется
по всем булевым векторам длины n,
слагаемые идут в порядке возрастания
номеров булевых векторов и
,
то говорят, что полином Жегалкина записан
в канонической форме.
Запишем для примера общий вид канонической
формы полинома Жегалкина от 2-х переменных:
;
от 3-х переменных:
Замечание.
Каждый полином Жегалкина от n
можно записать в канонической форме.
Например, полином
Жегалкина от двух переменных
в канонической форме запишется так:
Теорема. Каждая булева функция
от
переменных может быть реализована в
виде канонического полинома Жегалкина
от
переменных, причем единственным образом.
Доказательство. 1. Докажем
возможность реализации. Пусть
.
Так как система
- полная (пример 6 параграфа 2.5), то
может быть реализована формулой над
,
т.е.
.
В формуле
совершим ряд преобразований: раскроем
скобки, воспользовавшись дистрибутивностью
операций сложения по модулю два и
конъюнкции, после чего полученные
формулы упростим, используя тождества
,
,
,
,
.
В результате придем к полиному Жегалкина,
который можем записать в каноническом
виде.
2. Докажем единственность реализации.
Каждый канонический полином Жегалкина
от
переменных однозначно определяется
набором своих коэффициентов
.
Каждый такой набор можно рассматривать
как булев вектор длины
.
Следовательно, канонических полиномов
Жегалкина от
переменных столько же, сколько булевых
векторов длины
,
т.е.
.
Таким образом, число канонических
полиномов Жегалкина от
переменных совпадает с числом функций
от
переменных.
Предположим теперь, что представление
некоторых функций в виде канонического
полинома Жегалкина не единственно.
Поскольку число булевых функций
переменных и число канонических полиномов
Жегалкина от
переменных одинаково, то из неоднозначности
представления следует, что найдется
канонический полином Жегалкина,
реализующий не менее двух функций, что
невозможно. Пришли к противоречию,
следовательно, наше предположение было
неверным.
■
Для нахождения полинома Жегалкина,
реализующего функцию
,
применяют два способа: метод неопределенных
коэффициентов и метод равносильных
преобразований.
Метод неопределенных коэффициентов
состоит в следующем. Пусть функция
зависит от
переменных. В общем виде записывают
канонический полином Жегалкина
от
переменных. Для каждого набора
значений переменных составляют уравнение
.
В результате получают систему из
уравнений, которая однозначно определяет
коэффициенты полинома.
Примеры.
1. Найти полином Жегалкина, реализующий
функцию
.
Зададим функцию
таблично:
|
|
|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Воспользуемся методом неопределенных
коэффициентов. Канонический полином
Жегалкина от двух переменных имеет вид:
.
Поэтому должны выполняться равенства:
;
;
;
.
Откуда
,
,
,
.
Таким образом,
.
Тот же результат можно получить проще,
если действовать методом равносильных
преобразований:
.
2. Найти полином Жегалкина, реализующий
функцию
.
.
2.7. Замыкание системы булевых функций.
Определение. Пусть
- некоторое подмножество
.
Множество всех булевых функций,
реализуемых формулой над
,
называется замыканием
и обозначается
.
Пример. Пусть
,
тогда
.
Операцию получения множества
из
называют операцией замыкания.
Утверждение. Операция замыкания обладает следующими свойствами:
1.
;
2.
;
3.
;
4.
.
Утверждение докажите самостоятельно.
Определение.
Класс
(множество) булевых функций
называется замкнутым,
если
.2.8.
Классы
и
,
их
свойства
Определение. Говорят, что булева
функция сохраняет
0, если
.
Обозначим через
множество функций от
переменных, сохраняющих 0, а через
– множество всех булевых функций,
сохраняющих 0, т.е.
.
Например,
;
.
Утверждение 1. Множество функций, сохраняющих 0, - замкнутый класс.
Доказательство. Наша задача
показать, что
.
Согласно первому свойству операции
замыкания
.
Докажем, что и
,
т.е., что любая булева функция, реализованная
формулой над
,
сохраняет 0. Поскольку класс
содержит тождественную функцию, нам
достаточно показать, что функция
,
если
.
Имеем,
=
.
■
Лемма
(о функции, не сохраняющей 0). Пусть
.
Тогда формулой над множеством
можно реализовать либо константу 1, либо
отрицание.
Доказательство. Пусть
,
т.е.
.
Рассмотрим функцию
.
Возможны два случая:
или
.
В первом случае:
.
Во втором случае:
.
■
Введем
условное обозначение алгоритма,
использованного для доказательства
леммы
:
Определение. Говорят, что булева
функция сохраняет
1, если
.
Обозначим через
множество функций от
переменных, сохраняющих 1, а через
– множество всех булевых функций,
сохраняющих 1, т.е.
.
Например,
;
.
Утверждение 2. Множество функций, сохраняющих 1, - замкнутый класс.
Доказательство. Наша задача
показать, что
.
Согласно первому свойству замыкания
.
Докажем, что и
,
т.е., что любая булева функция, реализованная
формулой над
,
сохраняет 1. Поскольку класс
содержит тождественную функцию, нам
достаточно показать, что функция
,
если
.
Имеем:
.
■
Лемма
(о функции, не сохраняющей 1). Пусть
.
Тогда формулой над множеством
можно реализовать либо константу 0, либо
отрицание.
Доказательство. Пусть
,
т.е.
.
Рассмотрим функцию
.
Возможны два случая:
или
.
В первом случае:
.
Во втором случае:
.
■
Введем условное обозначение алгоритма,
использованного для доказательства
леммы
:
Упражнения. 1.
Выяснить, сколько имеется булевых
функций от
переменных, сохраняющих 0.
Решение. Пусть
.
Тогда
.
Следовательно,
булевых функций от
переменных, сохраняющих 0, столько,
сколько и булевых векторов длины
,
т.е.
.
2. Выяснить,
сколько имеется булевых функций от
переменных, сохраняющих 1.
3. Рассмотреть
работу леммы
на примере функции
.
4. Рассмотреть
работу леммы
на примере функции
.