Литература / Олейник.Лекции по дискретной математике / вариант .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. Рассмотреть работу леммы на примере функции .