Дискретка учебник
.pdfПоэтому |
|
|
|
e |
e |
|
|
|
|
|
|
|
|
|
|
|
(f1(α), . . . , fm(α)) 4 (f1(β), . . . , fm(β)). |
|
|
||||||||
В силу монотонности функции |
f имеем |
|
e |
e |
4 |
β |
|
||||||
|
α, β : |
α |
|
||||||||||
e |
|
|
e |
|
|
||||||||
e |
|
|
|
|
e |
|
e |
|
|
|
|
|
|
f(α) 6 f(β), |
то есть f(f1(α), . . . , fm(α)) 4 f(ef1(β), . . e. , fm(β)). |
||||||||||||
Получили,eчто |
e |
e |
|
|
|
|
e |
|
|
e |
|||
e |
|
|
|
|
4 f(f1(β), . . . , fm(β)) = F (β) |
||||||||
F (α) = f(f1 |
(α), . . . , fm(α)) |
||||||||||||
|
e |
4 |
e |
|
e |
4 |
e |
|
|
|
M. |
e |
|
для всех |
α |
β, |
значит, |
F (α) |
F (β), то есть F |
|
|||||||
|
|
|
e |
|
|
|
e |
|
Лемма M (лемма о немонотонной функции).Из немонотонной функции f(x1, . . . , xn) путем подстановки в неё вместо переменных x1, . . . , xn функций x, 0 и 1 можно получить немонотонную функцию одной переменной x.
Доказательство. Из немонотонности функции f(x1, . . . , xn) следует, что существует хотя бы одна пара двоичных наборов α и β таких, что
e |
e |
|
e |
|
|
|
e{ f(β) = 0 |
|
|
|
|
|
|
e e |
|
|
|||||||
α |
4 β, но f(α) > f(β). f(α) = 1 |
|
|
|
|
|
|
|
|
||||||||||||||
|
Это означает, что |
|
|
e1 |
6 |
|
1 |
|
|
e |
|
|
e |
|
|
|
|
||||||
|
|
|
e |
|
, |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
то есть f(α) = f(β). |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
α |
|
β |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
e |
|
|
e |
|
|
αn |
6 βn |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
α |
|
β |
|
||||||
|
Так как |
α |
4 |
β, |
то |
|
|
α2 |
6 |
β2 |
значит, координаты |
i и |
i либо |
||||||||||
|
|
|
|
|
|
... |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(α = β |
), |
|
|
|
|
|
|
|
|
, то |
αi = 0 |
. |
|
|
|
|
|
|
|||
равны |
либо, |
если α < β |
|
|
|
|
|
|
|
||||||||||||||
i |
|
i |
|
|
|
|
i |
|
i |
|
|
{ βi = 1 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Без ограничения общности будем считать, что наборы α и β разли- |
||||||||||||||||||||||
чаются в первых k координатах, то есть |
|
|
|
e |
e |
|
|||||||||||||||||
|
|
|
|
|
|
|
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
α = (0, 0, . . . , 0, αk+1, . . . , αn) |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
{ β = (1, 1, . . . , 1, αk+1, . . . , αn) |
|
|
|
|
||||||||||||
Заменим первые |
k координат на x, остальные оставляем без изменения. |
||||||||||||||||||||||
|
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Получили функцию одной переменной
φ(x) = f(x, x, . . . , x, αk+1, . . . , αn).
131
Покажем,что φ(x) = x :
{
φ(0) = (0, 0, . . . , 0, αk+1 φ(1) = (1, 1, . . . , 1, αk+1
, . . . , αn) = f(αe) = 1 = 0
e
, . . . , αn) = f(β) = 0 = 1
x φ(x)
Так как таблица истинности 0 1
10
падает с таблицей истинности функции f(x) = x, то φ(x) = x.
Пример 7.12. Получить функцию x из немонотонных функций а) fe2 = (1010 1010); б) fe3 = (0101 1011).
Решение.
Немонотонность функций fe2 = (1010 1010) и fe3 = (0101 1011) установлена в примерах 7.10 и 7.11 ( п. б) и в) ).
1 способ (с использованием алгоритма 1)
а) Найдем хотя бы одну пару наборов, на которой нарушается монотонность. Такой парой являются наборы σe1 = (000) и αe1 = (001) : σe1 4 αe1, но f2(000) = 1 > 0 = f2(001) (см. пример 7.10, п. б) ).
Наборы σe1 и αe1 отличаются только в третьей координате, поэтому первые две координаты в наборе оставляем без изменений. Третью координату заменяем на функцию x. Получаем набор γ = (0, 0, x).
Найденная функция одной переменной φ(x) = f2(0, 0, x) - искомая функция "отрицание". Докажем это.
|
φ(0) |
= f2(0, 0, 0) |
= 1 |
|
x |
φ(x) |
Так как |
, то таблица истинности |
0 |
1 |
|||
|
φ(1) |
= f2(1, 1, 1) |
= 0 |
|
1 |
0 |
|
|
|
|
|
полученной функции φ(x) совпадает с таблицей истинности функции f(x) = x, то есть φ(x) = x.
б) fe3 = (0101 1011)
Наборы, на которых нарушается монотонность функции fe3, уже получены в примере 7.10, п. в) :
σ1 |
= (001) |
e |
4 |
e |
, 1 = f3(001) > f3(101) = 0. |
e |
|
||||
αe1 |
= (101) , σ1 |
α1 |
132
Наборы σe1 и αe1 различаются в первой координате; соответствующую этой координате переменную x1 заменяем на функцию x. Остальные координаты входят в набор γ = (x, 0, 1) без изменений.
φ(x) = f3(γ) = f3(x, 0, 1)
φ(0) = f3(0, 0, 1) = 1 |
φ(x) = x. |
φ(1) = f3(1, 0, 1) = 0 |
2 способ нахождения наборов, на которых нарушается монотонность (с использованием алгоритма 2).
а) В примере 7.11, п. б) мы получили, что αe000 = (1) 4̸ αe001 = (0). Индексы (000) и (001) при наборах αe единичной длины соответствуют двоичным наборам, на которых нарушается монотонность.
б) При установлении немонотонности функции f3 в примере 7.11, п. в) мы выяснили, что отношение предшествования нарушено для наборов (0101) и (1011) во второй координате.
x1 |
x2 |
x3 |
|
f3 |
С помощью таблицы истинности найдем на- |
|
|
|
|
|
|
0 |
0 |
0 |
|
0 |
|
|
боры , на которых нарушается монотонность. |
||||
0 |
0 |
1 |
|
1 |
|
|
Данные наборы в таблице подчеркнуты (это |
||||
0 |
1 |
0 |
|
0 |
|
|
вторые по порядку наборы от центра в каждой |
||||
0 |
1 |
1 |
|
1 |
|
|
половине таблицы). |
||||
1 |
0 |
0 |
|
1 |
|
|
Наборы (001) и (101) - искомые. |
||||
1 |
0 |
1 |
|
0 |
|
|
Далее решение совпадает с решением первым |
||||
1 |
1 |
0 |
|
1 |
|
|
способом. |
||||
1 |
1 |
1 |
|
1 |
|
|
|
Замечание 7.15. Несмотря на то, что с помощью алгоритма 2 проще устанавливать монотонность функции, чаще используют алгоритм 1, так как в процессе его работы не только определяется монотонность, но и сразу находятся наборы, на которых она нарушается. Данные наборы мы используем для выражения функции x. Это особенно важно, когда x нужно выразить из немонотонной функции всеми возможными способами.
Пример |
7.13. Получить |
функцию |
|
из |
функции |
x |
|||||
ge = (0000 0011 0000 1001) всеми возможными способами. |
|
133
Решение.
1.Сначала исследуем функцию g(xe) на монотонность, применяя алгоритм 1.
Найдем носитель функции
Ng = {(0110), (0111), (1100), (1111)}.
Каждому набору σe из носителя сопоставим класс монотонности.
σe1 = (0110) 7→M 1 = {(0110), (0111), (1110), (1111)}.
Набор αe1 = (1110) M 1 , но αe1 / Ng. Функция немонотонна, можно применять лемму М.
На паре наборов σe1 = (0110) и αe1 = (1110) нарушается монотонность. Получим функцию x на этой паре наборов.
γ1 = (x, 1, 1, 0); φ1(x) = g(x, 1, 1, 0) = x;
φ1(0) = g(0, 1, 1, 0) = 1 = 0φ1(1) = g(1, 1, 1, 0) = 0 = 1
2.σe2 = (0111) 7→M 2 = {(0111), (1111)} Ng.
3.σe3 = (1100) 7→M 3 = {(1100), (1101), (1110), (1111)}.
лю. |
e |
|
e |
|
также не принадлежат носите- |
Наборы β1 |
= (1101) |
и β2 |
= (1110) |
Значит, функцию x можно выразить ещё двумя способами:
σe3 = (1100)
а) e 7→γ2 = (1, 1, 0, x); φ2(x) = g(1, 1, 0, x) = x; β1 = (1101)
σe3 = (1100)
б) e 7→γ3 = (1, 1, 0, x); φ3(x) = g(1, 1, x, 0) = x. β2 = (1110)
Убедиться в том, что φ2(x) = φ3(x) = x можно также, как и в предыдущих примерах.
4. σe4 = (1111) 7→M 4 = {(1111)} Ng.
Больше наборов, на которых нарушается монотонность, нет. Значит, других способов получить x в данном примере не имеется.
134
7.5Класс L линейных функций
Определение 7.9. Функция f(xe) называется линейной, если её многочлен Жегалкина не содержит конъюнкций.
Например, функции f1(xe) = x1 x2 x4, f2(xe) = 1 x1 x3 являются линейными.
Функции f3(xe) = x1 · x2 x4 и f2(xe) = 1 x1 · x3 - нелинейные функции.
Напомним, что способы построения многочлена Жегалкина описаны в п. 3.5 на стр. 41.
Замечание 7.16. Все функции одной переменной
f1(x) = x, f2(x) = x = x 1, f3(x) ≡ 0, f4(x) ≡ 1
являются линейными функциями.
Множество всех линейных функций образует класс L.
Теорема 7.7. Класс L линейных функций замкнут:
[L] = L.
Доказательство.
1.f(x) = x L (см. замечание 7.16).
2.Докажем, что любая суперпозиция F = f(f1, . . . , fm) линейных функций f, f1, . . . , fm также является линейной функцией. Докажем, что:
f, f1, . . . , fm L F = f(f1, . . . , fm) L.
По определению линейной функции
f, f1, . . . , fm L |
|
|
|
|
|
|
|
|
||||
|
f = a00 a01x1 a02x2 . . . a0mxm |
|
|
|||||||||
. |
= a10 a11x1 |
a12x2 |
. . . a1nxn |
|
|
|||||||
f1 |
|
|
||||||||||
. |
= a20 |
|
a21x1 |
|
a22x2 |
|
. . . |
|
a2nxn , aij |
|
0, 1 . |
|
f2 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
{ |
} |
||||
. |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. . . amnxn |
|
|
||
fm = am0 am1x1 am2x2 |
|
|
135
F= f(f1, . . . , fm) = a00 a01f1 a02f2 . . . a0mfm =
=a00 a01 · (a10 a11x1 a12x2 . . . a1nxn)
a02 · (a20 a21x1 a22x2 . . . a2nxn) . . .
a0m · (am0 am1x1 am2x2 . . . amnxn).
Приведем подобные слагаемые, вынося за скобки одинаковые переменные:
F = a00 a01a10 a02a20 . . . a0mam0
x1(a01a11 a02a21 . . . a0mam1) x2(a01a12 a02a22 . . . a0mam2)
.. . xn(a01a1n a02a2n . . . a0mamn) =
=α0 α1x1 α2x2 . . . αnxn,
|
|
α0 = a00 a01a10 a02a20 . . . a0mam0 |
|
|||||||
|
. |
|
|
|
|
|
|
|
|
|
|
. |
= a01a11 a02a21 . . . a0mam1 |
|
|||||||
|
|
α1 |
|
|||||||
где |
. |
= a01a12 |
|
a02a22 |
|
. . . |
|
a0mam2 |
. |
|
|
α2 |
|
|
|
||||||
|
|
|
|
|
|
|
|
αn = a01a1n a02a2n . . . a0mamn
Мы получили, что многочлен Жегалкина функции F не содержит конъюнкций, то есть F L.
Теорема 7.8. Число линейных функций, зависящих от n переменных, равно 2n+1, то есть
|L| = 2n+1.
Доказательство.
f(xe) L f(xe) = α0 α1x1 α2x2 . . . αnxn.
Значит, любая линейная функция взаимнооднозначно определяется двоичным набором (α0, α1, . . . , αn) длины n + 1.
Число различных линейных функций равно количеству различных двоичных наборов длины n + 1, то есть 2n+1.
Получили:
|L| = 2n+1.
136
Теорема 7.9 (необходимое условие линейности функции). Если линейная функция f(x1, . . . , xn) отлична от константы, то количество единиц в её векторе значений равно числу нулей, то есть
|Nf | = 122n.
Доказательство. Пусть
f(x1, . . . , xn) = α0 α1x1 α2x2 . . . αnxn L.
Так как f ̸≡const, то хотя бы один из коэффициентов α1, α2, . . . , αn не равен нулю. Без ограничения общности будем считать, что α1 ≠ 0, то есть
f(xe) = x1 α2x2 . . . αnxn α0.
Рассмотрим уравнение
x1 α2x2 . . . αnxn α0 = 1.
Очевидно, что множество решений этого уравнения совпадает с Nf . Это означает, что число различных решений равно количеству наборов в носителе функции.
Добавим к обеим частям уравнения выражение α2x2 . . . αnxn α0 и упростим левую часть, используя тождество
A A = 0.
Получим:
x1 = α2x2 . . . αnxn α0 1.
Так как значение переменной x1 однозначно определяется из данного уравнения коэффициентами α2, . . . , αn, число различных решений равно количеству двоичных наборов (α2, . . . , αn) длины n − 1. Всего таких наборов 2n−1, то есть
|Nf | = 2n−1 = 122n.
Замечание 7.17. Условия теоремы являются необходимыми, но не достаточными. То есть, из того, что вектор значений функции содержит поровну нулей и единиц, не следует, что функция линейна.
137
fe1 = (1010 1010) = 1 x3 L
Например, fe2 = (0001 0111) = x2x3 x1x3 x1x2 / L , хотя число нулей и единиц в векторе значений обеих функций совпадает
(|Nf1 | = 4 = 22 = 23−1 = |Nf2 |).
Для получения многочлена Жегалкина булевых функций fe1 и fe2 мы использовали алгоритм 3 - метод треугольника (см. п. 3.5.3 на стр. 44). Выделенная в таблице колонка соответствует коэффициентам многочлена:
x1 |
x2 |
x3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
0 |
0 |
|
1 |
|
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
|
1 |
|
1 |
1 |
1 |
1 |
1 |
1 |
|
0 |
1 |
0 |
|
0 |
|
0 |
0 |
0 |
0 |
0 |
|
|
0 |
1 |
1 |
|
0 |
|
0 |
0 |
0 |
0 |
|
|
|
1 |
0 |
0 |
|
0 |
|
0 |
0 |
0 |
|
|
|
|
1 |
0 |
1 |
|
0 |
|
0 |
0 |
|
|
|
|
|
1 |
1 |
0 |
|
0 |
|
0 |
|
|
|
|
|
|
1 |
1 |
1 |
|
0 |
|
|
|
|
|
|
|
|
x1 |
x2 |
x3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
0 |
0 |
|
0 |
|
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
|
0 |
|
0 |
1 |
1 |
1 |
0 |
0 |
|
0 |
1 |
0 |
|
0 |
|
1 |
0 |
0 |
1 |
0 |
|
|
0 |
1 |
1 |
|
1 |
|
1 |
0 |
1 |
1 |
|
|
|
1 |
0 |
0 |
|
0 |
|
1 |
1 |
0 |
|
|
|
|
1 |
0 |
1 |
|
1 |
|
0 |
1 |
|
|
|
|
|
1 |
1 |
0 |
|
1 |
|
1 |
|
|
|
|
|
|
1 |
1 |
1 |
|
0 |
|
|
|
|
|
|
|
|
В дальнейшем мы будем пользоваться следующим следствием:
Следствие 7.9.1. Если количество нулей и единиц в векторе значений функции, отличной от константы, различно, то функция нелинейна.
138
Лемма L (лемма о нелинейной функции).Из нелинейной функции f(x1, . . . , xn) путем подстановки в неё вместо переменных x1, . . . , xn функций одной переменной x, y, 0, 1, x и y можно получить одну из нелинейных функций: конъюнкцию или дизъюнкцию. Точнее, существует представление конъюнкции или дизъюнкции в виде суперпозиции констант, отрицаний и функции f.
Доказательство. Пусть f(x1, . . . , xn) / L. Это означает, что её многочлен Жегалкина содержит хотя бы одну конъюнкцию. Согласно теореме Жегалкина (см. теорему 3.6) любую булеву функцию можно представить в виде
f(xe) =
= a0 a1x1 a2x2 . . . anxn a12x1x2 a13x1x3 . . . a12:::nx1x2 · · · xn.
Так как |
f(x) нелинейна, хотя бы |
один из |
коэффициентов |
|||||
a12, a13, . . . , a1n, . . . , a12:::n не равен нулю. |
|
|
|
|
|
|
|
|
Возьмём |
самую короткую конъюнкцию K = x |
i1 |
x |
i2 |
. . . x |
ik |
из пред- |
|
e |
|
|
|
|
ставления функции в виде многочлена Жегалкина.
Рассмотрим функцию двух переменных φ(x, y), полученную из f(xe) подстановкой:
вместо переменной xi1 - функции x, вместо переменной xi2 - функции y,
вместо переменных xi3 , xi4 , . . . , xik - константы 1, вместо остальных переменных - константы 0.
Тогда
φ(x, y) = xi1 xi2 αxi1 βxi2 γ = xy αx βy γ,
где α, β, γ {0, 1} - коэффициенты, зависящие от конкретной функции f.
Все возможные функции φ(x, y) (в зависимости от значений коэффициентов α, β, γ) перечислены в следующей таблице:
139
α, β, γ |
|
φ(x, y) |
эквивалентные формулы |
||||||||||||||||||||||||||||||||||||||
000 |
|
xy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
001 |
|
xy 1 |
|
|
|
|
|
|
|
|
|
|
|
= |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
xy |
x |
y |
|||||||||||||||||||||||||||||
010 |
|
xy y |
|
|
|
|
|
|
|
(x |
1)y = |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
xy |
||||||||||||||||||||||||||||||||||||||||
011 |
|
xy y 1 |
(x 1)y |
1 = |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
= x |
|
|
|
|
|||||||||||||||||||||||||||||||
|
xy |
y |
|||||||||||||||||||||||||||||||||||||||
100 |
|
xy x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
x(y 1) = xy |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
101 |
|
xy x 1 |
x(y 1) |
1 = |
|
xy |
= |
|
x |
y |
|||||||||||||||||||||||||||||||
110 |
|
xy x y |
|
|
|
|
|
|
|
x(y 1) y = |
|||||||||||||||||||||||||||||||
|
|
|
= x(y 1) (y 1) 1 = |
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
= xy |
y 1 = (x 1)y 1 = |
|||||||||||||||||||||||||||||||||||||
|
|
|
= |
|
|
|
|
|
1 = |
|
|
|
= x y |
||||||||||||||||||||||||||||
|
|
xy x y 1 |
x |
y |
x |
y |
|||||||||||||||||||||||||||||||||||
111 |
|
|
|
x(y 1) (y 1) = |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
= (x 1) |
|
= |
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
= xy |
y |
y |
x |
y |
искомая суперпозиция
xy
x y
xy
x y
xy
x y
x y
x y
При выводе формул в таблице использовались законы де Моргана, двойного отрицания и логическое тождество A 1 = A (см. основные эквивалентности алгебры логики в п. 2.3.6 на стр. 23).
Для каждого набора значений (α, β, γ) получили выражение функции f либо в виде конъюнкции, либо в виде дизъюнкции.
Пример 7.14. Выразить конъюнкцию или дизъюнкцию из функции
f2(xe) = (0001 0111).
Решение.
Так как
f2(x1, x2, x3) = (0001 0111) = x2x3 x1x3 x1x2 / L,
то к функции f2(xe) можно применить лемму L.
Многочлен Жегалкина функции f2 содержит 3 конъюнкции ранга 2. Поэтому можно брать любую из них, например, K1 = x2x3. В неё входят переменные x2 и x3.
Рассмотрим набор γ = (0, x2, x3), в который переменные x2 и x3 входят без изменений, а переменная x1, не вошедшая в K1, заменена на 0.
140