разбор некоторых задач курса
.pdfНапомним, что через SR(α˜) обозначается сфера радиуса R с центром α˜. По определению это множество всех наборов, удаленных от набора α˜ на одинаковое расстояние R.
˜
Задача 1. В кубе размерности n даны две сферы S1 = SR1 (α˜) и S2 = SR2 (β). Известны их радиусы
˜
R1, R2 и расстояние между центрами d = d(α,˜ β). Найти количество наборов в пересечении сфер.
˜
Решение. Пусть α˜ = (α1, . . . , αn) и β = (β1, . . . , βn). Естественным образом разряды во всех наборах (занумерованные от 1 до n) распадаются на два непересекающихся множества: в первое
множество входят номера тех и только тех разрядов, в которых наборы и ˜ различаются; во
α˜ β
второе номера всех остальных. Обозначим эти множества A и B:
A = {i : αi 6= βi}, B = {i : αi = βi}. |
|
˜ |
˜ |
Например, если α˜ = (10010), β = (11000), то A = {2, 4}, B = {1, 3, 5}. Если наборы α˜ |
и β |
противоположные, то B = ; если они совпадают, то A = . Из условия задачи следует, что
|A| = d, |B| = n − d.
Рассмотрим произвольный набор γ˜ = (γ1, . . . , γn) из пересечения сфер S1 ∩ S2. Он может
отличаться от наборов , ˜ как в разрядах из множества , так и в разрядах из множества .
α˜ β A B
Пусть среди разрядов множества A есть ровно x штук, а среди разрядов множества B ровно y штук разрядов, в которых различаются наборы α˜ и γ˜. Расстояние d(α,˜ γ˜) между наборами α˜ и γ˜ по определению равно числу пар отличающихся разрядов в этих наборах. Тогда d(α,˜ γ˜) = x + y. С другой стороны, так как γ˜ SR1 (α˜), то d(α,˜ γ˜) = R1.
˜
Теперь выразим расстояние между центром второй сферы β и набором γ˜ через x и y. Наборы
и ˜ различны во всех разрядах множества . Набор отличается от набора в разрядах
α˜ β A γ˜ α˜ x
из A и совпадает с ним в остальных d − x разрядах. Следовательно, набор γ˜ отличается от
˜ |
ровно в d −x разрядах множества A. Аналогично, раз α˜ |
˜ |
набора β |
и β совпадают во всех разрядах |
множества , то и ˜ различаются ровно в разрядах из этого множества. Всякий разряд набора
B γ˜ β y
γ˜ принадлежит либо множеству A, либо множеству B. Поэтому число пар разрядов, которыми
˜ |
|
различаются γ˜ и β, равно сумме числа пар разрядов, которыми они различаются на множестве |
|
|
˜ |
A и числа пар разрядов, которыми они различаются на множестве B. Значит, расстояние d(β, γ˜) |
|
˜ |
˜ |
между наборами β |
и γ˜ равно (d − x) + y. С другой стороны, так как по условию γ˜ SR2 (β), то |
˜
d(β, γ˜) = R2.
Итак, воспользовавшись тем, что набор γ˜ принадлежит и одной, и другой сфере, мы получили
систему линейных уравнений |
= |
R2 |
. |
(1) |
d − x + y |
||||
x + y |
= |
R1 |
, |
|
Иначе говоря, такой набор γ˜ существует в том и только в том случае, когда эта система имеет целочисленные решения x и y, удовлетворяющие к тому же условиям
|
0 6 x 6 d, |
0 6 y 6 n − d. |
|||||
Решая систему (1), находим |
|
|
|
|
|
|
|
x = |
d + R1 − R2 |
, |
y = R |
1 − |
x = |
R1 + R2 − d |
. |
2 |
|
|
2 |
|
Отсюда можно заключить, что если d + R1 + R2 нечетное число1), то сферы не пересекаются, хотя при некоторых таких d, R1, R2 это может противоречить нашей геометрической интуиции.
Найдём теперь в предположении, что x и y ¾подходящие¿ натуральные числа, количество наборов γ˜ в пересечении сфер. Как мы только что установили, по заданному центру, скажем, первой сферы α˜ можно построить любой набор γ˜ из пересечения сфер, инвертировав x + y разрядов α˜: x разрядов из множества A и y разрядов из множества B. Выбрать x разрядов среди
1)Числа R1 − R2 и R1 + R2 имеют одинаковую четность при любых целых R1 и R2.
1
d элементов множества A можно Cdx способами, оставшиеся R1 |
− |
x разрядов выбираются CR1−x |
|||||
x |
|
d! |
|
n−d |
|||
способами из множества B (здесь Cd |
= |
|
|
число сочетаний из d по x). По комбинаторному |
|||
x!(d−x)! |
|||||||
|
|
|
|
|
правилу произведения (выбор из множеств A и B происходит независимо) получим Cdx · CnR−1−dx |
|
способов выбрать набор γ˜. |
|
Ответ: Число наборов в пересечении сфер равно CxCR1−x, где x = d+R1−R2 . |
|
d n−d |
2 |
|
˜ |
Задача 2. В кубе размерности n даны две сферы S1 = SR1 (α˜) и S2 = SR2 (β). Известны их центры |
˜
α˜, β и радиусы R1, R2. Определить, сколько наборов лежат в пересечении сфер и имеют вес k.
Решение. Как и в предыдущей задаче, заметим, что n разрядов делятся на непересекающиеся
|
˜ |
множества в зависимости от α˜ = (α1, . . . , αn) и β = (β1, . . . , βn). Однако теперь нас вдобавок |
|
интересует количество единиц kγ˜k в наборе γ˜ и множеств будет больше: |
|
A11 = {i : αi = 1, βi = 1}, |
A10 = {i : αi = 1, βi = 0}, |
A01 = {i : αi = 0, βi = 1}, |
A00 = {i : αi = 0, βi = 0}. |
Пусть nij = |Aij|, i, j {0, 1}. Обозначим также вес набора α˜ через a, тогда a = kα˜k = n11 + n10.
˜ |
+ n01. Все эти величины однозначно |
Расстояние d между центрами сфер равно d = d(α,˜ β) = n10 |
|
˜ |
|
определяются по заданным α˜, β. |
|
Пусть γ˜ = (γ1, . . . , γn) произвольный набор из пересечения сфер S1 ∩ S2 и kγ˜k = k. Пусть во множестве A11 ровно x разрядов в которых различаются α˜ и γ˜, во множествах A10 и A01 таких разрядов y и z соответственно. Расстояние между α˜ и γ˜ равно R1, значит во множестве A00 таких разрядов ровно R1 − (x + y + z) штук.
Рассуждая аналогично решению задачи 1, из того, что расстояние между наборами ˜ и
β γ˜
равно R2, получим условие
x + (n10 − y) + (n01 − z) + R1 − (x + y + z) = d + R1 − 2(y + z) = R2.
Вес k набора γ˜ складывается из входящих в множества Aij разрядов:
k = (n11 − x) + (n2 − y) + z + (R1 − x − y − z) = a + R1 − 2(x + y).
Мы использовали все условия задачи (принадлежность пересечению и вес) и получили систему
из двух уравнений с тремя неизвестными x, y, z: |
|
|
|
|
|
|
|
|
||||
|
|
|
y + z = d+R1−R2 , |
|
|
|||||||
|
|
x + y = |
a+ 21 |
− . |
|
|
||||||
|
|
|
|
|
2 |
k |
|
|
(2) |
|||
|
|
|
|
|
|
R |
|
|
|
|||
Примем, например, x свободной переменной и выразим через неё все остальные: |
|
|||||||||||
y = |
a + R1 |
− k |
− |
x, |
z = |
d − a − R2 + k |
+ x. |
(3) |
||||
|
||||||||||||
2 |
|
|
|
|
|
|
|
2 |
|
|
Теперь для всякого x из области определения 0 6 x 6 n11 найдём соответствующие y = y(x) и z = z(x). Количество наборов веса k в пересечении сфер вычисляется по комбинаторным правилам суммы и произведения. Оно равно
|S1 ∩ S2 ∩ {0, 1}kn| = |
6X |
Cnx11 · Cny10 · Cnz 01 · CnR001−x−y−z. |
|
0 |
x6n11 |
Отметим, что мы получили ответ, предположив, что все величины x, y, z целые и не выходят за области определения 0 6 x 6 n11, 0 6 y 6 n10, 0 6 z 6 n01, 0 6 R1 − x − y − z 6 n00. Лишние неравенства при записи ответа можно опустить, если принять соглашение, что Cmn = 0, если n / N
или m / {0, 1, . . . , n}.
2
Ответ: Искомое число наборов равно Px Cxn11 Cyn10 Czn01 CRn001−x−y−z, где y и z вычисляются по формулам (3).
˜
Задача 3. В кубе размерности n даны две сферы S1 = SR1 (α˜) и S2 = SR2 (β). Известны их
˜
центры α˜, β и радиусы R1, R2. Определить число наборов веса k в объединении сфер.
Решение. Мощность объединения нескольких множеств позволяет находить формула включений и исключений, при условии что известны мощности самих множеств и их всевозможных пересечений. Для двух множеств A и B она имеет вид |A B| = |A|+|B|−|A∩B|. В качестве множества A возьмем все наборы веса k из первой сферы, а множества B все наборы веса k из второй:
n |
˜ |
n |
. Так как в объединении сфер каждый набор веса k |
A = SR1 (α˜) ∩ {0, 1}k |
, B = SR2 (β) ∩ {0, 1}k |
принадлежит хотя бы одной из сфер, то ответом будет мощность множества A B. Осталось найти |A|, |B| и |A ∩ B|.
Аналогично решению задачи 1 нетрудно установить, что количество наборов веса k в сфере радиуса R с центром веса a равно Cwa · CRn−−aw, где w = (a + R − k)/2 (докажите!). Зна-
чит, |A| |
(a+R1 |
−k)/2 |
(R1+k−a)/2 |
и |B| |
(b+R2−k)/2 |
(R2+k−b)/2 |
, где |
a = |
˜ |
|||
= Ca |
|
Cn−a |
|
= Cb |
|
Cn−b |
|
kα˜k, b = kβk ве- |
||||
са центров сфер. Воспользовавшись ответом задачи 2 и её обозначениями, найдём |A ∩ B| = |
||||||||||||
x Cnx11 Cny10 Cnz 01 CnR001−x−y−z. |
|
|
|
|
|
|
|
|
|
|||
Ответ:P |
Число наборов в объединении сфер равно |
|
|
|
|
|
|
|||||
|
|
(a+R1−k)/2 |
(R1+k−a)/2 |
(b+R2−k)/2 |
|
(R2+k−b)/2 |
− |
|
|
|||
|
|
Ca |
|
Cn−a |
|
+ Cb |
Cn−b |
|
|
X
−Cxn11 Cyn10 Czn01 CRn001−x−y−z,
где |
|
|
06x6n11 |
|
||
− k |
|
|
d − a − R2 + k |
|
||
y = y(x) = |
a + R1 |
− |
x, z = z(x) = |
+ x, |
||
|
||||||
2 |
|
2 |
|
a и b веса центров сфер.
Задача 4. В кубе размерности n найти число всех наборов чётного веса.
Решение. В кубе всего 2n наборов. Все наборы веса k образуют k-й слой и их всего Ckn. Значит, число всех наборов чётного веса равно сумме всех биномиальных коэффициентов с чётными верхними индексами и нижним индексом n:
|
k=0X |
|
|
|
Cnk . |
|
|
|
06k6n |
|
|
|
mod 2 |
|
|
Вспомним, что |
k=0X |
|
X |
X |
|
||
(1 + x)n = |
Cnk xk = |
Cnk xk + |
Cnk xk. |
06k6n |
06k6n |
|
06k6n |
|
mod 2 |
|
k=1 mod 2 |
Подставив сюда x = 1 и x = −1, с учётом того, что (−1)k = 1 при чётных k, и (−1)k = −1 при нечётных k, получим
k=0P |
Cnk + |
P |
Cnk |
= 2n |
||||
|
|
|
|
|
|
|||
|
|
C |
k |
|
|
C |
k |
= 0. |
|
06k6n |
|
|
06k6n |
|
|||
|
|
|
|
|
|
|
||
|
|
n |
− |
06k6n |
|
n |
|
|
06k6n |
|
|
|
|
|
|||
|
mod 2 |
|
|
|
k=1 mod 2 |
|
|
|
|
k=0P |
|
|
|
P |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mod 2 |
|
|
|
k=1 mod 2 |
|
|
|
|
|
|
|
|
|
|
Из второго уравнения вытекает, что
XX
Cnk = |
Cnk , |
06k6n |
06k6n |
k=0 mod 2 |
k=1 mod 2 |
3
то есть число наборов с чётным весом равно числу наборов с нечётным, а из первого, учитывая это, получаем
k=0X |
2 |
2n |
||
|
|
= 2n−1. |
||
|
Ck |
= |
|
|
|
n |
2 |
|
|
06k6n |
|
|
||
|
|
|
|
mod
Ответ: 2n−1.
Задача 5. В кубе {0, 1}n дан набор α˜. Найти число наборов, сравнимых с ним. Известны размерность n и вес набора a = kα˜k.
Решение. |
˜ |
˜ |
˜ |
Если набор β |
сравним с набором α˜, то либо β |
6 α˜, либо β > α˜. Рассмотрим эти случаи |
по отдельности.
1) Пусть ˜ . Тогда из определения сравнимых наборов следует, что если у некоторый
β 6 α˜ α˜
разряд равен нулю, то у набора ˜ он также нулевой. По условию, в наборе всего −k k −
β α˜ n α˜ = n a
нулевых разрядов, остальные разрядов равны единице. Значит, в наборе ˜ нулевых разрядов a β
|
˜ |
|
|
|
|
|
|
|
|
также n−a. Остальные a разрядов набора β могут быть выбраны произвольно, при этом он будет |
|||||||||
|
|
|
|
|
|
˜ |
˜ |
|
|
не превышать набор α˜. Таким образом, количество таких наборов β, что |
β сравним с набором α˜ |
||||||||
˜ |
|
|
|
|
|
|
a |
|
|
и β 6 α˜, равно числу всевозможных двоичных наборов длины a, то есть равно 2 . |
|
|
|||||||
˜ |
|
|
|
|
|
˜ |
|
|
|
2) Пусть β > α˜. Тогда если у α˜ некоторый разряд равен единице, то у β он также равен единице. |
|||||||||
|
|
|
|
|
|
|
˜ |
|
|
В наборе α˜ всего a единичных разрядов, поэтому ровно a из n разрядов в наборе β фиксированы |
|||||||||
|
|
|
˜ |
|
|
|
|
|
|
и также равны единице. Остальные n − a разрядов в β могут быть любыми. Таким образом, |
|||||||||
˜ |
˜ |
|
α˜ и |
˜ |
|
|
|
||
количество таких наборов β, что β сравним с набором |
β 6 α˜, равно числу всевозможных |
||||||||
двоичных наборов длины n − a, то есть равно 2n−a. |
|
n |
˜ |
˜ |
˜ |
n |
˜ |
||
|
˜ |
˜ |
|
|
|
||||
Итак, мы показали, что множества {β : |
β {0, 1} |
|
, β |
6 α˜} и {β |
: β {0, 1} |
|
, β > α˜} |
представляют собой соответственно a-мерную и (n − a)-мерную грани. Заметим, что эти грани пересекаются, причём в единственной точке α˜. Тогда число всех сравнимых с α˜ наборов будет равно (формула включений исключений)
˜ ˜ |
˜ ˜ |
˜ ˜ |
˜ ˜ |
a |
+ 2 |
n−a |
− 1. |
|{β : β |
6 α˜}| + |{β : β |
> α˜}| − |{β : β |
6 α˜} ∩ {β : β > α˜}| = 2 |
|
|
Здесь среди прочих сосчитан и набор α˜, сравнимый сам с собой. Число наборов, сравнимых с α˜ и отличных от него, равно 2a + 2n−a − 2. Число наборов, несравнимых с α˜, равно разности числа всех наборов и числа сравнимых (набор может быть либо сравним с α˜, либо несравним с ним), то есть равно 2n − 2a − 2n−a + 1.
Ответ: 2a + 2n−a − 1.
Задача 6. Записать какую-нибудь формулу, реализующую функцию f , не находя вектора её значений, если f = (x1x2 x3)(x2 (x1 | x3)).
Решение. Первый способ. По определению двойственной функции f (x1, x2, . . . , xn) = f(x1, x2, . . . , xn),
поэтому в данном случае
f = (x1x2 x3)(x2 (x1 | x3)) = (x1x2 x3)(x2 (x1 | x3)).
Второй способ. Воспользуемся принципом двойственности, утверждающим, что если формула F , при построении которой используются функции g1, . . . , gm, реализует функцию f, то формула F , которая получается из формулы F заменой каждой функции gi на gi , реализует двойственную к f функцию f . Принцип двойственности вытекает из очевидного тождества
(h(h1(x1, . . . , xn), . . . , hk(x1, . . . , xn))) = h(h1(x1, . . . , xn), . . . , hk(x1, . . . , xn)) =
=h(h1(x1, . . . , xn), . . . , hk(x1, . . . , xn)) = h(h1(x1, . . . , xn), . . . , hk(x1, . . . , xn)) =
=h (h1(x1, . . . , xn), . . . , hk(x1, . . . , xn)).
4
Так как 0 = 1, 1 = 0, x = x, x = x, (x y) = x & y, (x & y) = x y, (x y) = x y,
(x y) = x y, (x ↓ y) = x | y, (x | y) = x ↓ y, то двойственная к f = (x1x2 x3)(x2 (x1 | x3))
функция будет реализовываться также и такой формулой:
f = ((x1 x2)x3) (x2 (x1 ↓ x3)).
Задача 7. Доказать, что переменная является существенной для булевой функции тогда и только тогда, когда она входит в её полином Жегалкина.
Доказательство. По теореме Жегалкина соответствие между функциями и полиномами взаимно однозначно. Иначе говоря, можно не различать функцию и реализующий её (приведённый) полином. В дальнейшем так и будем делать, если это ясно из контекста.
Необходимость условия очевидна: если переменная не входит в полином, то функция, реализуемая полиномом, от этой переменной не зависит, то есть эта переменая для неё фиктивна.
Достаточность. Пусть переменная xi входит в полином Жегалкина для функции f(x1, . . . , xn). Покажем, что xi существенна для f.
Так как переменная xi есть в полиноме f, то вынесением xi за скобки полином приводится к виду f = xi · g h, где полиномы g и h не зависят от переменной xi, причём g 6= 0. Отметим, что такое представление f однозначно, то есть по xi и f полиномы g и h определяются единственным образом. Так как g 6= 0, то найдётся такой набор α˜ = (α1, . . . , αi−1, αi+1, . . . , αn) значений всех остальных переменных, кроме xi, что g(α˜) = 1. Следовательно, f(α1, . . . , αi−1, xi, αi+1, . . . , αn) = xi · 1 h(α˜) = xi c, где c {0, 1} не зависит от xi, и поэтому
f(α1, . . . , αi−1, 0, αi+1, . . . , αn) 6= f(α1, . . . , αi−1, 1, αi+1, . . . , αn),
то есть переменная xi существенная для f по определению.
Задача 8. Доказать, что всякая линейная функция, не являющаяся константой, равновесна.
Доказательство. Напомним, что равновесной называется булева функция, в векторе значений которой поровну нулей и единиц. Линейной называется функция, степень которой (степень её полинома Жегалкина) не превосходит единицы.
Возьмем произвольную функцию f = f(x1, . . . , xn), такую, что f L и f 6= const. Так как f не константа, то у неё найдется существенная переменная xi, а так как f ещё и линейна, то её полином Жегалкина имеет вид
f = xi g. |
(4) |
Здесь g = g(x1, . . . , xi−1, xi+1, . . . , xn) некоторая линейная функция с n − 1 переменными, возможно постоянная.
Рассмотрим множество A0, состоящее из всех двоичных наборов длины n, у которых i-ый разряд равен нулю, и множество A1, состоящее из всех двоичных наборов длины n, у которых i-ый разряд равен единице. Очевидно, что A0 A1 = {0, 1}n и |A0| = |A1| = 2n−1. Заметим, что в силу (4) выполняются равенства
f(α1, . . . , αi−1, 0, αi+1, . . . , αn) = g(α1, . . . , αi−1, αi+1, . . . , αn),
f(α1, . . . , αi−1, 1, αi+1, . . . , αn) = g(α1, . . . , αi−1, αi+1, . . . , αn),
то есть на каждой паре соседних наборов из A0 и A1 функция f принимает противоположные значения. Это означает, что значение 0 на наборах множества A1 функция f принимает столько же раз, сколко раз она принимает значение 1 на наборах множества A0. Иначе говоря, пусть kfkAiколичество наборов из множества Ai, на которых функция f принимает единичное значение, тогда, используя вышесказанное, можно заметить, что
kfk = kfkA0 + kfkA1 = kgk + |A1| − kgk = |A1| = 2n−1.
Утверждение доказано. Отметим, что мы доказали даже несколько более общий факт: равновесной является всякая функция, у которой полином Жегалкина представим в виде x g, где полином g не зависит существенно от переменной x.
5
Задача 9. Доказать, что если f S(n), то kfk = 2n−1, т. е. всякая самодвойственная функция равновесна.
Доказательство. Следует из доказательства задачи 8 и свойства вектора значений самодвойственной функции.
Задача 10. Доказать, что T0 ∩ S = T1 ∩ S = T0 ∩ T1 ∩ S.
˜ ˜
Доказательство. Так как наборы 0 и 1 противоположны, то самодвойственная функция, сохраняющая ноль, сохраняет и единицу (и обратно).
Задача 11. Пусть A множество наборов длины 2n, являющихся векторами значений всевозможных линейных булевых функций от n аргументов. Доказать, что расстояние между двумя различными наборами из множества A не менее 2n−1.
Доказательство. Возьмем два различных набора α˜ |
˜ |
|
и β из множества A. Легко убедиться, что |
||
|
˜ |
˜ |
расстояние между ними равно весу набора α˜ β, где набор α˜ β представляет собой поразрядную |
||
сумму разрядов наборов α˜ |
˜ |
|
и β по модулю 2. Также нетрудно видеть, что если α˜ вектор значений |
||
˜ |
|
˜ |
некоторой функции f, а β |
вектор значений некоторой функции g, то α˜ β вектор значений |
функции f g. Осталось воспользоваться результатом задачи 8, заметив, что из того, что f, g L и f 6= g следует f g L и f g 6= 0.
Множество A из задачи 11 известно в дискретной математике как код Рида Маллера первого порядка, исправляющий 2n−2 −1 ошибок. Действительно, представим себе, что наборы множества A, называемые кодовыми словами, передаются по некоторому каналу. При передаче возможны ошибки определенного типа: из разрядов кодового слова выбираются несколько (как правило, равновероятно) и заменяются на противоположные. Предположим, канал таков, что в каждом кодовом слове при передаче может возникнуть не более t ошибок. Вопрос: при каких t по принятому искаженному слову можно однозначно восстановить слово, которое передавалось?
|
˜ |
Пусть передавался набор α˜ A, а принят искажённый набор β. Из того, что произошло не |
|
˜ |
˜ |
более t ошибок, следует d(α,˜ β) 6 t, то есть β принадлежит шару радиуса t с центром α˜. Значит,
для восстановления по ˜ достаточно, чтобы все шары радиуса с центрами в кодовых словах
α˜ β t
попарно не пересекались: в этом случае достаточно определить, какому шару принадлежит ˜,
β
ответом будет его центр. Нетрудно убедиться, что если центры двух шаров лежат на расстоянии d друг от друга, то шары одинакового радиуса t не пересекаются тогда и только тогда, когда d 6 2t + 1. В нашем случае d > 2n−1, и из этих неравенств следует t > 2n−2 −1, то есть код исправляет не менее 2n−2 −1 ошибок. При больших n можно исправить ошибки в примерно четверти разрядов всякого кодового слова (и всего слов 2n+1). Это означает, что такой способ кодирования годен к использованию в канале передачи данных с вероятностью ошибки, не превосходящей 14 .
Задача 12. Доказать, что булева функция является линейной и монотонной в том и только в том случае, когда в её полином Жегалкина входит ровно одно слагаемое.
Доказательство. Линейная функция f по определению имеет вид
f(x1, . . . , xn) = a0 a1x1 a2x2 . . . anxn.
Докажем, что f монотонна тогда и только тогда, когда вес набора α˜ = (a0, a1, a2, . . . , an) не превосходит единицы.
Пусть kα˜k 6 1. Тогда либо f ≡ 0, либо f ≡ 1, либо f = xi для некоторого i, 1 6 i 6 n. Во
всех этих случаях функция f монотонна.
Пусть kα˜k > 1. Тогда в АНФ(f) найдутся два одночлена с ненулевыми коэффициентами. Среди этих двух одночленов хотя бы один не является свободным членом, и поэтому f = xi g, где g = g(x1, . . . , xn) некоторая линейная функция, не зависящая от переменной xi, 1 6 i 6 n.
|
|
˜ |
˜ |
Так как g 6= 0, то найдётся такой входной набор β = (β1, . . . , βn), что g(β) = 1. Более того, так |
|||
как переменная xi фиктивная для функции g, то на каждом из наборов |
|||
˜0 |
= (β1, . . . , βi−1, 0, βi+1, . . . , βn) |
˜00 |
= (β1, . . . , βi−1, 1, βi+1, . . . , βn), |
β |
и β |
6
соседних по переменной i, функция также равна единице. Но, очевидно, что ˜0 ˜0
x g f(β ) = g(β ) = 1 >
˜00 ˜00 , хотя ˜0 ˜00. Значит, функция не монотонна. Утверждение доказано.
0 = f(β ) = 1 g(β ) β 6 β f
Задача 13. Найти число линейных монотонных функций от n переменных.
Решение. По задаче 12 линейная монотонная функция либо константа, либо тождественная. Констант две штуки, тождественных функций n штук, итого существует n + 2 линейных и одновременно монотонных функции.
Ответ: |L ∩ M(n)| = n + 2.
Задача 14. Доказать, что линейная функция самодвойственна тогда и только тогда, когда число входящих в её АНФ одночленов первой степени нечётно.
Доказательство. Рассмотрим произвольную линейную функцию f(x1, . . . , xn) = a0 a1x1 a2x2
. . . anxn. Для двойственной функции имеем:
f (x1, . . . , xn) = a0 a1x1 a2x2 . . . anxn =
= 1 a0 a1(x1 1) a2(x2 1) . . . an(xn 1) =
= (1 a0 a1 a2 . . . an) a1x1 a2x2 . . . anxn.
Следовательно, f = f тогда и только тогда, когда |
|
a0 = 1 a0 a1 a2 . . . an, |
|
откуда |
|
a1 a2 . . . an = 1. |
(5) |
Значит, функция f самодвойственна тогда и только тогда, когда в наборе её старших коэффициентов a1, a2, . . . , an нечётное число единиц, то есть число одночленов вида xi в её АНФ нечётно. Утверждение доказано.
Задача 15. Найти число линейных самодвойственных функций от n переменных.
Решение. Воспользуемся задачей 14. Из равенства (5) следует, что функция f(x1, . . . , xn) = a0 a1x1 a2x2 . . . anxn самодвойственна тогда и только тогда, когда вес её вектора старших коэффициентов (a1, a2, . . . , an) нечётен. Свободный член a0 при этом может быть любым.
В задаче 4 было показано, что число векторов длины n с нечётным весом совпадает с числом векторов длины n с чётным весом и равно 2n−1. Свободный член a0 выбирается двумя способами (0 или 1) независимо от a1, . . . , an. По теореме Жегалкина различные вектора (a0, a1, a2, . . . , an) задают различные функции, поэтому число линейных самодвойственных функций от n переменных будет равно числу различных двоичных наборов (a0, a1, a2, . . . , an), где вес (a1, a2, . . . , an) нечётен, а это число, в свою очередь, равно 2 · 2n−1 = 2n.
Ответ: |L ∩ S(n)| = 2n.
Задача 14 помогает быстро определять, является линейная функция самодвойственной или нет. Например, функции f(x1, . . . , x10) = x1 x3 x4 x8 x9 и g(x1, . . . , x10) = 1 x1 x5 x10
самодвойственны, а функция h(x1, . . . , x1000) = x1 x3 x5 . . . x997 x999 нет. Установить это по вектору значений было бы весьма непросто.
Задача 16. Доказать, что M T0 T1.
˜
Доказательство. Если монотонная функция f не сохряняет ноль, то f(0) = 1. Значит, в силу
монотонности, для всех ˜. Но всякий двоичный набор сравним с нулевым набором f(α˜) = 1 α˜ > 0
и превосходит его, поэтому f ≡ 1 и, следовательно, f T1. Аналогично можно получить, что f M, f / T1 f T0. Таким образом, единственная монотонная функция, не сохраняющая ноль, это тождественная единица, а единственная монотонная функция, не сохраняющая единицу, это тождественный ноль. Наконец, среди функций из T0 T1 есть немонотонные (такова, например, функция x → y). Поэтому M 6= T0 T1. Утверждение доказано.
7
Задача 17. Доказать, что L T0 T1 S.
Доказательство. Пусть линейная функция
f(x1, . . . , xn) = a0 a1x1 a2x2 . . . anxn
не сохраняет ноль, то есть ˜ . Тогда 0 . Если вдобавок не сохраняет и единицу, то f(0) = 1 a = 1 f
˜
f(1) = a0 a1 a2 . . . an = 1 a1 a2 . . . an = 0,
откуда
a1 a2 . . . an = 1,
то есть в АНФ(f) входит нечётное число линейных одночленов. Тогда f S по задаче 14. Получили, что всякая не сохраняющая ноль и единицу линейная функция самодвойственна. Наконец, во множестве T0 T1 S есть нелинейные функции (и таких большинство), например x y. Что и требовалось доказать.
Напомним, что функция f называется шефферовой во множестве A P2, если [f] = A, то есть если из f операцией суперпозиции можно получить любую функцию из A. Из этого определения и свойства операции замыкания A : [[A]] = [A] сразу следует, что шефферовыми функциями могут обладать только замкнутые классы алгебры логики. Шефферова в P2 функция часто называется просто шефферовой (иначе говоря, функция f шефферова, если она одна составляет полную в P2 систему). Примерами шефферовых функций являются x ↓ y, x | y, xyz.
Задача 18. Доказать, что функция f шефферова тогда и только тогда, когда f / T0 T1 S.
Доказательство. По теореме Поста функция f будет шефферовой тогда и только тогда, когда она не содержится ни в одном из пяти основных замкнутых классов, т. е. когда f / T0 T1 S L M. Однако из задач 16 и 17 мы знаем, что два из этих классов входят в объединение трёх остальных: M T0 T1 и L T0 T1 S. Следовательно, T0 T1 S L M = T0 T1 S, что и доказывает утверждение.
Задача 18 во многих случаях помогает упростить процесс проверки шефферовости функции. Так, например, всякая функция нечётного веса и не сохраняющая констант будет шефферовой (так как она не может быть самодвойственной по задаче 9).
Возникает вопрос, нельзя ли ещё уменьшить число членов в объединении T0 T1 S так, чтобы его дополнение до P2 всё ещё оставалось множеством шефферовых функций? Правильный ответ: нельзя. Это следует из того, что никакое из множеств T0, T1, S не содержится целиком в объединении двух остальных. Действительно, среди функций, сохраняющих ноль, есть несамодвойственные функции, не сохраняющие единицу (например, x y); среди функций, сохраняющих единицу, есть несамодвойственные функции, не сохраняющие ноль (например, x y); а среди самодвойственных функций есть функции, не сохраняющие обе константы (например, x).
Задача 19. Найти в P2 число шефферовых функций от n переменных.
Решение. Первый способ. Обозначим sn = |{f P2(n) : [f] = P2}| число шефферовых функций от n переменных. Тогда по теореме Поста, задаче 18 и формуле включений исключений
sn = |P2 \ (T0 T1 S L M)(n)| = |P2 \ (T0 T1 S)(n)| =
=|P2(n)| − |T0 T1 S(n)| =
=22n − (|T0(n)| + |T1(n)| + |S(n)| − |T0 ∩ T1(n)|−
−|T0 ∩ S(n)| − |T1 ∩ S(n)| + |T0 ∩ T1 ∩ S(n)|) =
=22n − (|T0(n)| + |T1(n)| + |S(n)| − |T0 ∩ T1(n)| − |T0 ∩ S(n)|) =
=22n − (22n−1 + 22n−1 + 22n−1 − 22n−2 − 22n−1−1) =
=22n−2 − 22n−1−1.
8
Здесь мы воспользовались тождеством |T1 ∩S(n)| = |T0 ∩T1 ∩S(n)|, которое следует из задачи 10, и очевидными равенствами для мощностей множеств T0(n), T1(n), S(n) и их пересечений:
|T0(n)| = 22n−1, так как всякая функция из T0(n) однозначно задаётся двоичным вектором длины 2n, начинающимся с нуля, и каждый такой вектор с 2n − 1 произвольными разрядами (всеми, кроме первого) является вектором значений некоторой функции из T0(n);
|T1(n)| = 22n−1 по аналогичной причине;
|S(n)| = 22n−1 , так как всякая самодвойственная функция однозначно задаётся первой половиной своего вектора значений (вторая половина вектора значений самодвойственной функции получается записыванием инвертированных разрядов первой половины в обратном порядке), а длина половины вектора значений равна 2n/2 = 2n−1;
|T0 ∩ T1(n)| = 22n−2, так как вектор значений всякой функции, сохраняющей обе константы, имеет вид 0 . . . 1 (2n − 2 звёздочек), а число таких векторов равно 22n−2;
|T0 ∩ S(n)| = 22n−1−1, так как сохраняющая константу 0 самодвойственная функция однозначно задаётся всеми разрядами первой половины своего вектора значений, кроме самого первого разряда (который равен 0), а число таких разрядов равно 2n−1 − 1.
Второй способ. Можно завуалировать применение формулы включений и исключений так. По задаче 18 вектор значений шефферовой функции f от n переменных должен выглядеть следующим образом:
|
|
|
|
f = (1a1a2 . . . a2n−1−1a2n−1 . . . a2n−20), |
|
|
|
(6) |
||||||
˜ |
a2 |
n |
−1 |
˜ |
|
|
|
|
|
|
f не была самодвойственной, |
|||
где a0 = f(0) = 1, |
|
= f(1) = 0; при этом, чтобы функция |
|
|||||||||||
|
|
|
|
6 |
− |
2, либо a2 |
6 |
− |
3, . . . , либо a2n−1 |
− |
|
6 |
. Значит, число шеф- |
|
необходимо, чтобы либо a1 = a2n |
|
= a2n |
|
|
|
1 |
= a2n−1 |
феровых функций будет равно разности числа всех функций с векторами значений вида (6) (оно равно 22n−2) и числа самодвойственных функций с такими векторами. Число самодвойственных
функций вида (6) равно числу различных наборов вида (a1a2 . . . a2n−1−1), длины 2n−1 − 1, то есть равно 22n−1−1. Следовательно, sn = 22n−2 − 22n−1−1.
Ответ: Число различных шефферовых функций от n переменных равно 22n−2 − 22n−1−1.
Напомним пару определений. Множество B, B A P2 называется (функционально) полным во множестве A в том и только в том случае, когда [B] = A. Множество B называется базисом во множестве A, если [B] = A и для всякого собственного подмножества B0 ( B выполнено [B0] 6= A.
Важнейшим вопросом, изучающимся в этом семестре, является следующий: ¾Даны множество булевых функций A P2 и функция f P2. Верно ли, что f [A]? Иными словами, можно ли функцию f получить суперпозицией функций из A?¿. Эта же задача, сформулированная для множеств A и B (пусть B A, верно ли, что [B] = A?) носит название проблемы полноты.
Разберём несколько задач.
9