Важнейшие замкнутые классы.

Система булевых функций называется полной, если любую булеву функцию можно представить в виде суперпозиции функций из Д.

Приведем пример полных систем.

Пример 1 Как отмечено выше, система является
полной.

Пример 2 Множество всех булевых функций P2 является полной системой.

В вопросе о полноте важную роль играет следующая теорема.

Пусть и системы булевых функций. Если Д1 – полная система и каждая ее функция выражается в виде суперпозиции функций из Д2, то система Д2 также является полной.

Действительно, так как Д1 – полная система, то любая булева функция представима в виде суперпозиции функций из Д1. А так как любая функция из Д1 представима в виде суперпозиций функций из Д2, то Д2 – полная система.

Пример 3 Система – полная.

Это следует из предыдущей теоремы и из примера 1, ибо . Аналогичным образом получаем полноту системы . Приведенные примеры говорят о том, что существуют различные полные системы булевых функций. Каждая из таких систем может быть принята в качестве набора «элементарных» функций, и любая булева функция может быть выражена в виде суперпозиции через «элементарные» функции принятого набора.

С понятием полноты тесно связано понятие замкнутого класса и замыкания.

Множество Т булевых функций называется замкнутым классом, если любая суперпозиция функций из Т снова принадлежит Т.

Всякая система М булевых функций порождает некоторый замкнутый класс. Этот класс состоит из всех булевых функций, которые можно получить суперпозициями из М. Такой класс называется замыканием М и обозначается [М]. Для замкнутого класса М следует, что [М] = М. Очевидно, что если М – полная система, что [М] = Р2.

При установлении необходимого и достаточного условия полноты важную роль играют пять замечательных классов булевых функций, которые будут рассмотрены ниже.

Первый замечательный класс – класс булевых функций, сохраняющих константу С, т.е. функций , для которых .

Подсчитаем число таких булевых функций от n переменных. Поскольку на нулевом наборе значение функций из Т0 фиксировано, то в Т0 содержится ровно булевых функций от n переменных.

Ясно, что функции принадлежат классу Т0, а не принадлежит Т0. Следовательно, .

Второй замечательный класс – класс булевых функций, сохраняющих константу 1, т.е. функций , для которых .

Как и выше, легко подсчитать число таких функций от переменных. Их

ровно .

Ясно, что функции принадлежат классу Т1, а функция – нет. Следовательно, .

Третий замечательных класс – класс всех самодвойственных функций S.

Булева функция называется самодвойственной, если она совпадает со своей двойственной, т.е. .

Пример 4 Доказать, что функция является самодвойственной.

Двойственная для данной функции есть функция . Теперь, применяя закон де Моргана, получаем:

Используя законы дистрибутивности и идемпотентности, имеем:

Следовательно, искомая функция самодвойственна.

Очевидно, что и принадлежат классу S, а , не принадлежат классу S. Следовательно, .

Подсчитаем число всех самодвойственных функций от n переменных.

Так как самодвойственная функция на наборах и принимает противоположные значения, то она полностью определяется своими значениями, принимаемыми ею на половине всех наборов переменных. Следовательно, число самодвойственных функций от переменных равно .

Четвертый замечательный класс – класс всех линейных булевых функций.

Булевы функции вида , где и равны нулю или единице, называют линейными.

Нетрудно подсчитать число всех линейных булевых функций от переменных. Их число равно .

Очевидно, что функции принадлежат L, а функция xy не принадлежит L. Следовательно .

Для того, чтобы определить, является данная булева функция линейной или нет, ее надо представить в виде полинома Жегалкина.

Пример 5 Выяснить, является ли функция линейной. Запишем данную функцию в виде полинома Жегалкина:

.

Следовательно, функция не является линейной.

Пятый замечательный класс – класс М всех монотонных булевых функций.

Два набора и называются сравнимыми, если .

Запись означает, что набор предшествует набору . Например, , а наборы и несравнимы.

Булева функция называется монотонной, если для любых наборов и таких, что , имеет место неравенство .

Очевидно, что константы 0,1 и функция х – монотонные функции.

Функции – монотонные функции (доказательство осуществляяется проверкой).

Функции не являются монотонными, так как , а .

Следовательно, .

Для распознавания монотонности функции полезной является следующая теорема.

Теорема 1Булева функция, имеющая дизъюнктивную нормальную форму, не содержащую отрицаний, является монотонной функцией, отличной от 0 и 1.

Докажем данную теорему. Пусть булева функция имеет дизъюнктивную нормальную форму Д, не содержащую отрицаний, и пусть на наборе , . Тогда Д содержит конъюнкцию равную единице на наборе . Следовательно, . Возьмем любой набор такой, что . В нем обязательно . Поэтому конъюнкция при этом наборе равна 1, а значит . Итак, условие монотонности для ДНФ Д выполнено. А это значит, что функция монотонна.

Используя данную теорему, сразу получаем, что функции являются монотонными.

Классы булевых функций являются замкнутыми классами.

Докажем, что – замкнутый класс. Для этого надо показать, что функция принадлежит , если функция f, принадлежит . Это следует из следующей цепочки неравенств:

.

Аналогичным образом доказывается замкнутость класса .

Если самодвойственные функции, то . Итак, S – замкнутый класс.

Пусть , где – монотонные функции, и

пусть их наборы переменных. Здесь переменные функции Ф состоят из функций . Пусть и два таких набора, что . Каждый из наборов и однозначно определяет следующие наборы значений переменных . Причем . Так как – монотонные функции, то . Следовательно, . Из монотонности функции f получаем, что .

Итак, М – замкнутый класс.

Замкнутость класса L следует непосредственно из определения линейных функций.

Как показано выше, функция не принадлежит классу М. Следующая теорема показывает, что всякая немонотонная функция содержит, в некотором смысле, в своем составе функцию отрицания.

Теорема 2Если – немонотонная функция, то в результате ее суперпозиции с константами 0 и 1 может быть получена функция отрицания одного из аргументов функции .

Докажем данную теорему. Так как функция немонотонная, то найдутся два набора и значений переменных таких, что , и . Причем, в качестве этих наборов и можно выбрать соседние наборы, т.е. наборы, отличающиеся значениями только по одной из координат. Действительно, если и не являются соседними наборами, то набор отличается от набора в t координатах, где t > 1. Причем, эти координаты в наборе равны 0, а в наборе равны 1. Из этого следует, что между наборами и можно вставить t – 1 наборов , таких, что

. (4.1)

Так как , то обязательно найдется такая пара соседних наборов из цепочки (4.1) и , что . Не ограничивая общности, мы можем считать, что ;

.

Подставим в функцию вместо переменной константу , где . В результате мы получим функцию от одной переменной:

А это значит, что . Следовательно, .