- •4.13. Специальные классы булевских функций определение
- •4.13.1. Функции, сохраняющие ноль
- •4.13.2. Функции, сохраняющие единицу
- •4.13.3. Самодвойственные функции
- •Определение
- •Определение
- •4.13.4. Монотонные функции
- •Определение
- •4.13.5. Линейные функции
- •4.14. Критерий функциональной полноты
- •4.14.1. Построение функций-констант
- •4.14.3. Построение конъюнкции
- •4.15. Предполные классы булевских функций определение
4.13.5. Линейные функции
Напомним, что линейными называются функции, представимые в виде , где 1, . . . , n+1 двоичные коэффициенты при переменных и свободном члене, равном 1.
Класс линейных функций обозначается как L.
Из установленного способа представления линейных функций следует, что существует ровно 2n+1 различных линейных функций, зависящих от n переменных. Действительно, записи линейных функций являются частным случаем полиномов Жегалкина, поэтому представление всякой линейной функции в виде единственное. Поэтому линейных функций от n переменных ровно столько, сколько имеется способов составления различных записей вида: .
Класс L является замкнутым, поскольку преобразование всякой суперпозиции линейных функций к виду полинома Жегалкина не приводит к появлению нелинейных слагаемых.
Замечание. Только две линейные функции n переменных существенно зависят от всех своих переменных:
и .
Всякая другая линейная функция n переменных, полином Жегалкина для которых не содержит вхождения некоторых переменных, имеет несущественные переменные.
Все 4 функции одной переменной: 0, 1, x и являются линейными.
Простейшим примером нелинейной функции можно считать x1&x2, поскольку ее представление в виде полинома Жегалкина содержит одно произведение переменных. Покажем, что эта простейшая нелинейная функция может быть выражена из любой нелинейной функции.
Лемма (О нелинейной функции)
Если f(x1, . . . , xn) L, то подстановкой вместо переменных этой функции функций-констант 0, 1, тождественных функции x и отрицанию , а также применением отрицания к f можно получить функцию .
Доказательство
Пусть f(x1 , . . . , xn) L.
Возьмем полином Жегалкина R для f. Так как f это нелинейная функция, то в полиноме R содержится слагаемое, включающее произведение некоторых двух переменных. Без ограничения общности можно считать, что такое произведение содержит вхождения переменных x1 и x2.
(Если все произведения двух и большего числа переменных не содержат одновременно эти переменные, то необходимо произвести соответствующее переименование переменных в f, используя подстановки переменных вместо переменных функции.)
Сгруппируем слагаемые в R и, вынося переменные x1 и x2 за скобки, представим его в виде
(1).
Здесь полином R1 содержит хотя бы одно ненулевое слагаемое и поэтому представляет булевскую функцию, отличную от тождественного нуля.
Пусть . Подставим вместо переменных x3, . . . , xn конкретные значения . Тогда имеет место равенство:
= (2)
Здесь и .
Заменим x1 на x1 + и х2 на x2 +. При этом, если или , равно нулю, то соответствующая переменная не заменяется. В противном случае соответствующая переменная заменяется на отрицание этой переменной.
В результате такой замены выражение (2) преобразуется к виду
. (3)
Если , то функция x1&x2 уже получена.
В противном случае применим отрицание к функции вида (3) и также получим x1&x2.
Доказательство окончено.
Рассмотрим применение доказанной леммы к нелинейным функциям.
Пусть f = x1 (x2 x3). Тогда полином Жегалкина для f имеет вид
f = x1x2x3 + x1x2 + 1, т.е. x1x2 (x3 + 1) + 1.
Полином равен единице при x3 = 0. Тогда f(x1, x2, 0) = x1x2 + 1. Поэтому x1 x2.
Упражнение.
1.Доказать утверждение, обратное утверждению леммы о нелинейной функции.
2. Показать, что всякий из определенных выше классов булевских функций является замкнутым и неполным.