Функция f (x1,...,xn) называется линейной, если полином этой функции имеет вид
f (x1,...,xn) = a0 Å a1 x1 Å...Åan xn , где ai {0,1} (i=0,1,...,n).
Например: x,`x – линейны, x1x2 - нелинейна.
Лемма 7. Из линейных функций суперпозицией можно получить только линейные функции.
Доказательство очевидно.
Следствие. Полная система функций должна содержать хотя бы одну нелинейную функцию.
Лемма 8. Из нелинейной функции f (x1,...,xn), констант 0, 1 и функций x,`x, y суперпозицией можно получить конъюнкцию двух переменных xy.
Доказательство. Так как функция f (x1,...,xn) нелинейна, её полином по модулю 2 содержит хотя бы один член с конъюнкцией двух переменных xi и xj. Члены полинома, представляющего функцию f (x1,...,xn) можно перегруппировать следующим образом:
f (x1,...,xn) = xi xj f1 (x1,...,xi-1 ,xi+1,...,xj-1, xj+1,..., xn) Å
Å xi f2 (x1,...,xi-1, xi+1,...,xj-1, xj+1,..., xn) Å
Å xj f3 (x1,...,xi-1, xi+1,...,xj-1, xj+1,..., xn) Å
Å f4 (x1,..., xi-1 ,xi+1,..., xj-1 , xj+1,..., xn),
где функция f1(x1,..., xi-1 ,xi+1,..., xj-1 , xj+1,..., xn) ≢ 0, т.е. существует набор (a1,..., a i-1, a i+1 ,..., aj-1, aj+1,..., an) такой, что
f (a1,..., a i-1, a i+1 ,..., aj-1, aj+1,..., an) = 1.
|
|
Подставляя этот набор в f (x1,...,xn), получим функцию c(xi, xj):
c (xi, xj) = f (a1,..., ai-1, xi, ai+1 ,..., aj-1, xj, aj+1,..., an) = xixj Å axi Å bxj Å g,
где
a = f2 (a1,..., ai-1, ai+1,..., aj-1, aj+1,..., an),
b = f3 (a1,..., ai-1, ai+1,..., aj-1, aj+1,..., an),
g = f4 (a1,..., ai-1, ai+1,..., aj-1, aj+1,..., an).
Рассмотрим функцию F (x, y) = c (x Åb, y Åa) = xy Å ab Å g.
Она получена суперпозицией c (xi, xj), x, y и `x (`x = x Å 1).
Если ab Å g = 0, то F (x, y) = xy,
а если ab Å g = 1, то`F (x, y) = xy.
Критерий полноты системы булевых функций дает теорема 4 (приведем ее без доказательства).
Теорема 4 (о полноте). Для того чтобы система булевых функций {f1 (x11,..., x1p1),..., fs (xs1,..., xsps),…} была полна, необходимо и достаточно, чтобы она содержала функцию, не сохраняющую 0; функцию, не сохраняющую 1; несамодвойственную функцию; немонотонную функцию; нелинейную функцию.
Теперь мы можем составить таблицу, отражающую принадлежность каждой из функций двух переменных к рассмотренным классам функций
(табл. 3.6).
Таблица 3.6 – Свойства функций двух переменных
Обозначение функции | Наименование функции | Свойства функции | ||||
Сохраняющая 0 | Сохраняющая 1 | Самодвойственность | Монотонность | Линейность | ||
f1 = 0 | Нулевая функция | + | - | - | + | + |
f2 = x1 x2 | Конъюнкция | + | + | - | + | - |
f3 = x1 ® x2 | Запрет x1 | |||||
f4 = x1 | Повторение x1 | |||||
f5 = x2 ® x1 | Запрет x2 | |||||
f6 = x2 | Повторение x2 | |||||
f7 = x1 Å x2 | Сложение по |2| | |||||
f8 = x1 ٧ x2 | Дизъюнкция | |||||
f9 = x1 ¯ x2 | Стрелка Пирса | |||||
f10 = x1 ~ x2 | Эквивалентность | |||||
f11 =`x2 | Отрицание x2 | |||||
f12 = x2 ® x1 | Импликация x2 в x1 | |||||
f13 =`x1 | Отрицание x1 | |||||
f14 = x1 ® x2 | Импликация x1 в x2 | |||||
f15 = x1 | x2 | Штрих Шеффера | |||||
f16 = 1 | Единичная функция |
Эта таблица весьма полезна при выявлении полных систем булевых функций. В ней заполнены только две первых строки. Оставшуюся часть таблицы заполните самостоятельно.
|
|