ПРОБЛЕМЫ ПЕРЕДАЧИ ИНФОРМАЦИИ
Том 55
2019
Вып. 2
УДК 621.391.1 : 519.7
© 2019 г.
М.Н. Вялый1, В.К. Леонтьев2
ГЕОМЕТРИЯ СДВИГОВ В БУЛЕВОМ КУБЕ
У операции сложения Минковского геометрических фигур есть дискретный
аналог - сложение подмножеств булева куба как векторного пространства над
полем из двух элементов. Относительно такой операции подмножества булева
куба (или булевы функции от нескольких переменных) образуют моноид. Этот
моноид представляет интерес как в классическом дискретном анализе, так и
в ряде задач, связанных с теорией информации. Рассматриваются различные
аспекты сложности этого моноида: структурный, алгоритмический, алгебраи-
ческий.
Ключевые слова: сложение Минковского, булев куб, моноид, порождающие эле-
менты, примитивные элементы, последовательности кратных.
DOI: 10.1134/S0555292319020049
§ 1. Введение
Пусть B = {0, 1}, а Bn = {0, 1}n - множество, которое можно понимать по-раз-
ному, в зависимости от той или иной конкретной задачи.
С комбинаторной точки зрения Bn - это булев куб : множество двоичных слов,
т.е. слов в алфавите B, длины n.
Геометрически Bn является множеством вершин единичного куба En в n-мерном
пространстве:
En = {x ∈ Rn : 0 xi 1, 1 i n}.
Если понимать под 0 и 1 элементы поля F2, то Bn совпадает с n-мерным коорди-
натным векторным пространством Fn2 над этим полем.
Для нас будет важно именно последнее представление. Сложение векторов в век-
торном пространстве определяет естественным образом сложение подмножеств:
A + B = {x : x = y ⊕ z, y ∈ A, z ∈ B}.
В геометрии такая операция называется суммой Минковского, мы сохраним это
название для этой операции с подмножествами Bn.
В дальнейшем мы обозначаем операцию сложения в Fn2 через, сохраняя обо-
значение + для суммы Минковского.
1 Работа выполнена частично в рамках государственного задания по теме 0063-2016-0003, а также
при частичной финансовой поддержке Российского фонда фундаментальных исследований (номер
проекта 17-01-00300), исследование также финансировалось в рамках программы государственной
поддержки ведущих университетов Российской Федерации “5-100”.
2 Работа выполнена частично в рамках государственного задания по теме 0063-2016-0003, а также
при частичной финансовой поддержке Российского фонда фундаментальных исследований (номер
проекта 17-01-00300).
58
Пример 1. Приведем несколько простых примеров сложения Минковского под-
множеств булева куба:
1. Bn + A = Bn для любого A ⊆ Bn;
2. A + A = A, если A - подпространство Bn.
Операция сложения Минковского обладает следующими легко проверяемыми
свойствами:
1.
{0n} + A = A (существование нейтрального элемента);
2. A + (B + C) = (A + B) + C (ассоциативность);
3. A + B = B + A (коммутативность);
4. (A ∪ B) + C = (A + C) (B + C) (дистрибутивность по объединению);
5.
(A + Bi) = A + Bi.
i=1
i=1
Подмножества Bn находятся во взаимно-однозначном соответствии с булевы-
ми функциями - функции f : Bn B сопоставляется множество ее единиц Nf =
= {x ∈ Bn : f(x) = 1}. Функцию, соответствующую множеству S, будем называть
характеристической функцией множества и обозначать через χS.
Такое соответствие позволяет определить сумму Минковского и для булевых
функций: сумма Минковского функций f1 и f2 - это такая функция f3, что Nf3 =
= Nf1 + Nf2. Таким образом, чтобы сложить две булевы функции по Минковскому,
нужно сложить по Минковскому множества их единиц.
В соответствии с принятым выше соглашением сумму Минковского булевых
функций обозначаем через f1 +f2, а поточечную сумму по модулю 2 значений функ-
ций (XOR) - через f1 ⊕ f2.
Для суммы Минковского булевых функций имеется формула
(f + g)(x) =
f (y)g(x ⊕ y),
(1)
y∈Bn
напоминающая свертку.
Пример 2.
1. Если F(x1, . . . , xn) 1, то f + F = F для любой булевой функции f от n аргу-
ментов;
2. Если f(x1, . . . , xn) = x1 ⊕ x2, f2(x1, . . ., xn) = x2, то f1 + f2 1;
3. Будем обозначать 2f(x) = f(x) + f(x). Если 0n ∈ Nf , то Nf ⊆ N2f ;
4. Сумма по Минковскому симметрических булевых функций является симметри-
ческой булевой функцией.
Напомним, что моноидом называется множество M, снабженное ассоциативной
бинарной операцией +: M × M → M, относительно которой в M существует ней-
тральный элемент e ∈ M. Иными словами, для любого m ∈ M выполняются равен-
ства e + m = m + e = m, и для любой тройки m1, m2, m3 элементов M выполняется
равенство m1 + (m2 + m3) = (m1 + m2) + m3.
Как видно из сформулированных выше свойств 1 и 2 сложения Минковского,
подмножества n-мерного булева куба с операцией сложения Минковского образуют
моноид. Мы будем называть его моноидом Минковского и обозначать через Mn.
Нейтральный элемент в моноиде Минковского будем обозначать через
= {0n}.
Моноид Минковского представляет определенный интерес как в классическом
дискретном анализе (см. [1, 2]), так и в целом ряде задач, связанных с теорией ин-
формации (см. [3,4]).
Нас интересует сложность операции сложения Минковского. Есть разные спо-
собы описывать сложность операции: структурный, алгоритмический, алгебраиче-
ский. В последующем изложении мы приведем примеры таких способов и уточним
формулировки.
59
§2. Вычисление суммы Минковского
В этом параграфе мы обсудим вопрос о том, насколько трудно найти сумму Мин-
ковского двух множеств. Такая задача подразумевает алгоритмическую постанов-
ку. Чтобы точно ее сформулировать, нужно зафиксировать способ представления
подмножества булева куба (или булевой функции). Таких способов много, и для
каждого получаем конкретную алгоритмическую задачу, сложность которой можно
оценивать.
Простейший способ - табличный. Подмножество X ⊆ Bn задается таблицей зна-
чений характеристической функции, т.е. для каждого элемента x ∈ Bn указано,
принадлежит ли он множеству X. Описание множества в таком формате имеет би-
товую длину 2n.
Легко видеть, что для вычисления суммы Минковского двух множеств в таблич-
ном представлении существует полиномиальный алгоритм: вычисление по форму-
ле (1) всей таблицы значений f + g занимает время O(n22n), а длина входа 2 · 2n.
Более естественный способ “прямого” задания подмножества X булева куба Bn
состоит в том, чтобы записать список элементов этого множества. Битовая длина та-
кого представления равна O(n|X|) (так как элементы задаются битовыми строками
длины n), эта длина может быть много меньше 2n для некоторых множеств X и не
превосходит O(n2n). Поэтому алгоритмическая сложность задач при таком способе
представления подмножеств булева куба может оказаться выше, чем при табличном.
Однако прямое применение определения дает и в этом случае полиномиальный
алгоритм вычисления суммы Минковского.
И для табличного способа представлений подмножества, и для задания подмно-
жества списком существуют также алгоритмы вычисления суммы Минковского на
памяти, логарифмической по длине входа.
Напомним модель вычисления на памяти s(n), где s(·) - некоторая числовая
функция. Это машина Тьюринга с тремя лентами. На входной ленте записан вход
задачи, и эту ленту разрешается только читать. На рабочей ленте разрешены и чте-
ние, и запись. Требуется, чтобы размер области, содержащей непустые ячейки на
рабочей ленте, в любой момент вычисления на любом входе длины n не превос-
ходил s(n). Наконец, на выходной ленте разрешена только запись. Состояние этой
ленты в конце вычисления является результатом работы.
Поскольку общее количество конфигураций рабочей ленты не превосходит
s(n)2O(s(n)), время вычисления на логарифмической памяти, когда s(n) = O(log n),
всегда полиномиально по n.
Заметим также, что при вычислениях на логарифмической по длине входа па-
мяти возможна произвольная адресация к входным данным: если на рабочей ленте
записан адрес входного символа, то переместить головку на входной ленте на этот
символ можно, используя на рабочей ленте счетчик, размер которого O(log n).
Легко видеть, что вычисление по формуле (1) возможно на памяти O(n), лога-
рифмической по длине таблиц, задающих слагаемые. Для этого достаточно поддер-
живать два указателя на x и y.
Сумму Минковского подмножеств X и Y , заданных списками элементов, так-
же можно вычислить на памяти, логарифмической по длине входа, т.е. по длине
списков, задающих множества.
Сложение по модулю 2 двух битовых строк длины n возможно на памяти O(log n),
для чего достаточно двух указателей (на i-й бит каждой из строк). Используя еще
два указателя на элементы множеств-слагаемых, можно вычислить все попарные
суммы элементов X и Y и построить на логарифмической памяти список элемен-
тов X +Y . Но этот список может содержать повторения. Избавиться от повторений
возможно ценой некоторого усложнения алгоритма.
60
Предложение 1. Существует алгоритм, работающий на логарифмической
по длине входа памяти, который по входным спискам без повторений множеств
X, Y булева куба порождает список без повторений множества X + Y .
Доказательство. Пусть (x1,...,xk), (y1,...,y), где xi,yjBn, - списки эле-
ментов на входе алгоритма. Алгоритм перебирает все пары (i, j), где 1 i k,
1 j, в лексикографическом порядке и для каждой такой пары перебирает
все пары (i, j), которые меньше (i, j) в лексикографическом порядке. Для каждой
четверки i, j, i, k алгоритм проверяет равенство xi ⊕ yj = xi ⊕ yj . Это возмож-
но на логарифмической памяти, как описано выше. Если для данной пары (i, j) и
всех меньших в лексикографическом порядке пар (i, j) равенство не выполняется,
алгоритм включает в результирующий список битовую строку xi ⊕ yj .
Корректность алгоритма очевидна: он включает в результирующий список эле-
мент z ∈ X + Y только один раз и не включает в список никаких элементов, не
принадлежащих X + Y .
Замечание 1. Время работы алгоритма, описанного в предложении 1, оценива-
ется как O((k + n)22n) = O(N5), где N - длина входа. Мы не обсуждаем здесь
вопросы наиболее эффективного вычисления суммы Минковского, ограничиваясь
лишь достаточно грубой классификацией сложности алгоритмических задач, при-
нятой в теории сложности вычислений (полиномиальное время, логарифмическая
память и т.п.).
Подмножества булева куба (или булевы функции, что по существу то же са-
мое) можно задавать многими другими способами. В теории сложности вычислений
довольно часто рассматривается сжатое представление. В этом представлении ис-
пользуются булевы схемы. Напомним, что булева схема C (в стандартном базисе)
с входными переменными x1, . . ., xn - это такая последовательность булевых функ-
ций f1, f2, . . . , fs, что каждый ее член либо является входной переменной, либо по-
лучается присваиванием из предыдущих. Более точно, для каждого 1 k s
выполняется одно из следующих условий:
fk = xk для всех 1 k n;
fk = ¬fi для i < k;
fk = fi ∨ fj для i,j < k;
fk = fi ∧ fj для i,j < k.
Последняя функция fs называется значением схемы и обозначается через C(x).
Число s - n (количество присваиваний в схеме) называется размером схемы. Если
рассматривать схему как программу вычисления функции, то размер схемы про-
порционален длине программы.
Сжатое представление множества X
- это такая булева схема CX(x), что
CX(x) = 1 равносильно x ∈ X. Сжатое представление не единственно и может
быть намного короче как табличного представления, так и представления списком
элементов. Поэтому неудивительно, что алгоритмическая сложность задач в сжатом
представлении обычно намного выше, чем при других, более явных представлениях.
Вычисление суммы Минковского подмножеств в сжатом представлении оказы-
вается трудной задачей в предположении стандартных гипотез теории сложности
вычислений.
Напомним определения сложностных классов P и NP и их основные свойства
(более подробное изложение можно найти в [5] или [6, часть I]).
Сложностные классы состоят из языков - подмножеств слов в некотором ал-
фавите (далее без ограничения общности считаем, что алфавит двоичный). Язык
формализует понятие вычислительной задачи разрешения свойств.
Класс P образуют те языки, для которых проверка принадлежности слова языку
осуществима за полиномиальное от длины слова время. Допуская вольность речи,
61
говорят также о принадлежности классу P предикатов от двух и более слов. Фор-
мально это означает принадлежность классу P языка описаний тех пар (троек и т.д.)
слов, для которых предикат истинен.
Если L ∈ P, то для каждого n существует булева схема CL,n от n переменных,
размер которой полиномиально ограничен по n и которая вычисляет характеристи-
ческую функцию языка L, ограниченную на слова длины n: CL,n(x) = 1 равносильно
тому, что x ∈ L ∩ {0, 1}n.
Класс NP образуют те языки L, для которых существуют такие полином q(·) и
предикат от двух переменных R(x, y) из класса P, что x ∈ L равносильно существо-
ванию y, для которого |y| = q(|x|) и верно R(x, y).
Класс NP замкнут относительно полиномиальных сводимостей. Говорят, что
язык L1 полиномиально сводится к языку L2 (обозначение L1p L2), если суще-
ствует такая функция f : {0, 1} → {0, 1} на двоичных словах, которая вычислима
за полиномиальное от длины входа время и для всех x выполняется следующее
условие: x ∈ L1 равносильно f(x) ∈ L2.
Язык L называется NP-полным, если для любого языка L NP выполняется
Lp L.
Одной из основных гипотез теории сложности вычислений является утверждение
P = NP. Нетрудно проверить, что P = NP равносильно тому, что для какого-нибудь
NP-полного языка L выполняется L ∈ P.
Теорема 1. Если P = NP, то не существует полиномиального алгоритма
вычисления суммы Минковского для подмножеств в сжатом представлении.
Доказательство. Достаточно доказать, что сумма Минковского двух буле-
вых функций схемной сложности s может иметь сверхполиномиальную по s схемную
сложность.
Рассмотрим какой-нибудь NP-полный язык L. По определению это означает, что
существуют такие полином q(·) и предикат R(x, y) P, что x ∈ L равносильно
существованию такого y, что |y| = q(|x|) и верно R(x, y).
Поскольку R полиномиально вычислим, то для всех достаточно больших n су-
ществуют такие булевы схемы CR,n от n + q(n) переменных размера poly(n), что
CR,n(x, y) = R(x, y) для всех x ∈ Bn, y ∈ Bq(n).
Пусть fn - булева функция от n + q(n) переменных, задаваемая схемой CR,n,
а gn - булева функция от n + q(n) переменных, для которой g(x,y) = 1 тогда и
только тогда, когда x = 0n. Очевидно, что такую функцию можно представить
схемой размера O(n).
Теперь заметим, что (fn + gn)(x, 0q(n)) = 1 тогда и только тогда, когда x ∈ L.
Поэтому по схеме вычисления fn +gn размера s легко строится алгоритм для задачи
∈ L, время работы которого poly(n, s). Это означает, что в предполо-
жении NP = P размер s сверхполиномиален по n.
§3. О размере суммы Минковского
Размер суммы Минковского может изменяться в значительных пределах.
Лемма 1 [1]. Справедливы следующие оценки:
max{|X|, |Y |} |X + Y | |X| · |Y |.
(2)
62
Оценки (2) являются прямым следствием переформулировки определения суммы
Минковского
X + Y = (X + {yi}), где Y = {y1,...,yN},
i=1
и равенства |X + {a}| = |X| для любого a ∈ Bn.
Обе границы в (2) достижимы. Нижняя достигается, если X = Y
- подпро-
странство в Bn, а верхняя - если подпространства X и Y пересекаются только по
вектору 0n. Заметим также, что для любых подпространств X, Y выполняется со-
отношение
|X| · |Y |
|X + Y | =
|X ∩ Y |
Это соотношение можно обобщить. Пусть V - подпространство в Bn, т.е. под-
группа аддитивной группы Fn2. Смежным классом по подгруппе V называется мно-
жество вида {a} + V = {x : x = a ⊕ v, v ∈ V }. Легко видеть, что смежные классы
не пересекаются или совпадают. Для множества X ⊆ Bn обозначим через tV (X)
количество смежных классов по подгруппе V , пересекающихся с X.
Лемма 2. Если V - подпространство в Bn, то
|V + X| = tV (X)|V |.
Доказательство. По определению
V + X = (V + {xi}), где X = {x1,...,xN},
i=1
т.е. V +X является объединением тех смежных классов V +{a}, в которые попадают
элементы из X. Лемма теперь следует из того, что смежные классы по подгруппе
не пересекаются или совпадают.
Эта лемма является некоторым аналогом теоремы Лагранжа из теории групп.
Пример 3. Если V имеет размерность n - 1 (и потому содержит 2n-1 элемен-
тов), то имеется ровно один смежный класс Y , отличный от V . Получаем V +Y = Y
и |V + Y | = |V | = 2n-1.
Действие аддитивной группы Fn2 сдвигами на себе самой и, тем самым, на Bn
→ X + {a}. Обозначим через
Stab X стабилизатор множества X при таком действии:
Stab X = {a : X = X + {a}}.
Заметим, что |X + StabX| = |X|, так что на паре X, StabX достигается нижняя
оценка в (2). Оказывается, что общий случай достижимости нижней оценки в (2)
сводится к данному с незначительными усложнениями.
Предложение 2. Условие |X + Y | = |X| равносильно Y + Y ⊆ StabX.
Доказательство. Пусть |X + Y | = |X|. Тогда для любых y1,y2 ∈ Y должно
выполняться равенство X + {y1} = X + {y2}. Поэтому для любого x ∈ X вектор
x⊕y1⊕y2 ∈ X (напомним, что мы рассматриваем поле характеристики 2, в котором
x⊕x = 0 и вычитание совпадает со сложением). Это и означает, что Y +Y ⊆ StabX.
В обратную сторону: пусть Y + Y
Stab X. Тогда из z ∈ X + {y1} следует
z ∈ X+{y2}, так как из z⊕y1 ∈ X следует z⊕y2 = z⊕y1(y1⊕y2) ∈ X+{y1⊕y2} =
= X. Аналогично проверяем включение X + {y2} ⊆ X + {y1}.
63
Лемма 3. Нижняя граница в (2) достигается в точности для тех пар X,Y ,
|Y | |X|, для которых существуют такие вектор a и подмножество S ⊆ Stab X,
что Y + {a} = S.
Доказательство. В силу предложения 2 достаточно проверить, что Y +Y ⊆
Stab X равносильно существованию такого вектора a, что Y + {a} ⊆ Stab X.
Если множество A лежит в подпространстве V , то A + A также лежит в V .
Заметим также, что (A + {b}) + (A + {b} = A + A для любых A ⊆ Bn, b ∈ Bn.
Поэтому из Y + {a} ⊆ StabX следует (Y + {a}) + (Y + {a}) = Y + Y ⊆ StabX.
В другую сторону: пусть Y +Y ⊆ Stab X. Если Y ⊆ Stab X, то Y +{0n} ⊆ Stab X.
В противном случае выберем вектор y0 ∈ Y \ Stab X. Поскольку y0 ⊕ y ∈ Stab X для
любого y ∈ Y , то Y + {y0} ⊆ Stab X.
Отсюда получаем простое описание всех случаев достижимости нижней грани-
цы в (2). Каждая такая пара X, Y , |Y | |X|, задается (неоднозначно) выбором
подпространства V в Fn2, подмножества X0 в Fn2/V , подмножества Y0 ⊆ V и вектора
a∈Fn2.
При таком выборе X состоит из объединения смежных классов по V , входящих
в X0, а Y = {a} + Y0. Поскольку V ⊆ StabX, условия леммы 3 выполнены, т.е. на
паре X, Y достигается нижняя оценка в (2).
И обратно, если |X + Y | = |X|, |Y | |X|, то в обозначениях леммы 3 такая па-
ра представляется подпространством V = StabX, подмножеством X0 тех смежных
классов по V , которые входят в X (из определения стабилизатора ясно, что каж-
дый смежный класс либо целиком содержится в X, либо не пересекается с ним),
и подмножеством стабилизатора Y0 = S = Y + {a} для вектора a, существование
которого гарантирует лемма 3.
Это показывает “структурную простоту” вопроса о достижимости нижней оцен-
ки.
Для вопроса о достижимости верхней оценки в (2) ситуация иная.
Приведем достаточное условие достижимости верхней оценки на размер суммы
Минковского.
Определим для произвольного множества X ⊆ Bn метрический спектр X как
множество всех возможных попарных расстояний между различными точками мно-
жества:
R(X) = {r : r = ρ(x, x′′), x = x′′, x ∈ X, x′′ ∈ X}.
Мы используем стандартные норму и расстояние Хэмминга на булевом кубе: ∥x∥ -
количество единиц в двоичном слове x, а ρ(x, y) = ∥x ⊕ y∥ - количество координат,
в которых различаются двоичные слова x и y.
Предложение 3. Если R(X) ∩ R(Y ) = , то |X + Y | = |X| · |Y |.
Доказательство. Пусть x ⊕ y = x′′ ⊕ y′′ для каких-то различных пар эле-
ментов из X и Y . Тогда x ⊕ x′′ = y′′ ⊕ y, и метрические спектры множеств X и Y
пересекаются. Таким образом, в условиях предложения все попарные суммы эле-
ментов X и Y различны.
Отметим простое следствие этого утверждения. Обозначим
d(X) = min(r : r ∈ R(X)), D(X) = max(r : r ∈ R(X)).
Следствие 1. Если D(Y ) d и d(X) d + 1 для некоторого числа d, то
|X + Y | = |X| · |Y |.
Отсюда видим, что верхняя оценка в (2) достигается для любого кода C ⊆ Bn
с кодовым расстоянием d и хэммингова шара радиуса d - 1 с центром в точке 0n.
64
Хэмминговым шаром радиуса r с центром a мы называем множество
Bnr(a) = {x ∈ Bn : ∥x - a∥ r}.
(3)
Учитывая сложность теории корректирующих кодов, можно заключить из это-
го наблюдения “трудность” задачи описания всех случаев достижимости верхней
оценки в (2).
§ 4. Сложение фигур вn
Геометрические фигуры в Bn имеют большой содержательный и практический
смысл. Такими фигурами являются сферы, шары, грани, линейные многообразия.
4.1. Сложение сфер вn. Сферой радиуса r (r-м слоем булева куба) называем
множество
Snr = {x ∈ Bn : ∥x∥ = r}.
Другими словами, сфера Snr - это множество точек Bn, находящихся на расстоянии
(Хэмминга) r от нулевой точки (начала координат).
Перестановки координат задают действие симметрической группы Sn на булевом
кубе Bn: если g ∈ Sn, то
g(x) = g(x1, x2, . . . , xn) = (xg(1), xg(2), . . . , xg(n)).
Это действие естественным образом продолжается на подмножества Bn, как и рас-
смотренное ранее действие Fn2 сдвигами. Если M ⊆ Bn и g ∈ Sn, то
g(M) =
g(x).
x∈M
Отметим следующие простые свойства действия группы Sn и операций сложения
точек и множеств:
1. g(x ⊕ y) = g(x) ⊕ g(y) для x, y ∈ Bn;
2. g(U + V ) = g(U) + g(V ) для U, V ⊆ Bn.
Сферы являются орбитами этого действия. (Напомним, что орбита действия
группы G на множестве X - это множество вида Ox0 = {x ∈ X : x = g(x0), g ∈ G}.)
Сумма Минковского двух орбит, очевидно, замкнута относительно этого действия:
если x ∈ Snp + Snq, то x = u ⊕ v, где u ∈ Snp, v ∈ Snq. Учитывая указанное выше
свойство, имеем g(x) = g(u) ⊕ g(v) для любой g ∈ Sn. Поэтому g(x) ∈ Snp + Snq.
Поэтому сумма сфер является объединением некоторых сфер.
Лемма 4 [1]. При p q справедлива формула
Snp + Snq =
Snq-p+2s.
(4)
s=0
Замечание 2. Рассмотрим следующую производящую функцию:
Φn,p,q(z) =
z∥x⊕y∥.
x∈Snp
y∈Sn
q
65
Аналогично доказательству леммы 4, данному в [1], можно получить разложение
этой функции
)
) min{p,n-q}
(n
(n - q)( q
Φn,p,q(z) = zq-p
z2s.
q
s
p-s
s=0
Следствие 2. Справедливы соотношения
Snp + Snq = Snn-p + Snn-q,
Snp + Snn-q = Snn-p + Snq.
Доказательство. Первое соотношение получается из второго заменой q на
n -q. Второе следует из равенств |p- (n -q)| = |(n - p)- q| и min{p,n-(n - q)} =
= min{n - (n - p), q} = min{p, q}.
Пример 4. Выпишем таблицу сложения для сфер малого радиуса:
+ Sn0
Sn1
Sn2
Sn0
Sn0
Sn1
Sn2
Sn1
Sn1
Sn0 ∪ Sn2
Sn1 ∪ Sn3
Sn2
Sn2
Sn1 ∪ Sn3 Sn0 ∪ Sn2 ∪ Sn4
Симметрическая булева функция f удовлетворяет условию f(x) = f(g(x)) для
всех x ∈ Bn и g ∈ Sn. Значение симметрической функции одинаково на всех век-
торах булева куба одинакового веса. Поэтому такая функция однозначно задается
множеством “рабочих чисел” Wf = {w1, . . . , wk} ⊆ {0, 1, 2, . . . , n}:
{1, если ∥x∥ ∈ Wf ,
f (x) =
0
в противном случае.
С помощью формулы (4) можно найти “рабочие числа” для суммы Минковского
двух симметрических функций f, g с заданными множествами рабочих чисел A, B.
Из свойств сложения Минковского имеем равенство
(⋃
)
(⋃
)
Nf + Ng =
Sn
+
Sn
=
(Sna + Snb).
a
b
a∈A
b∈B
a∈A
b∈B
Далее, из формулы (4) получаем
Nf + Ng =
Sn|a-b|+2s.
(5)
a∈A
s=0
b∈B
Пример 5. Пусть множества рабочих чисел для симметрических булевых
функций f, g от n переменных (n 9) равны {1, 3, 4} и {4, 5} соответственно. Тогда
Sn1 + Sn3 = Sn2 ∪ Sn4,
Sn3 + Sn3 = Sn0 ∪ Sn2 ∪ Sn4 ∪ Sn6,
Sn1 + Sn5 = Sn4 ∪ Sn6,
Sn3 + Sn5 = Sn2 ∪ Sn4 ∪ Sn6 ∪ Sn8,
Sn4 + Sn3 = Sn1 ∪ Sn3 ∪ Sn5 ∪ Sn7,
Sn4 + Sn5 = Sn1 ∪ Sn3 ∪ Sn5 ∪ Sn7 ∪ Sn9.
66
Из этих соотношений и формулы (5) получаем
Nf+g = Sn0 ∪ Sn1 ∪ Sn2 ∪ Sn3 ∪ Sn4 ∪ Sn5 ∪ Sn6 ∪ Sn7 ∪ Sn8 ∪ Sn9 = Sni.
i=0
4.2. Сумма шаров вn. Под шаром радиуса r с центром a понимаем, как и выше,
множество, задаваемое формулой (3). Отметим, что по определению Bnr(a) = Bn,
если r n.
Лемма 5 [1]. Имеет место соотношение
Bnp(a) + Bnq(b) = Bnp+q(a ⊕ b).
(6)
Частным случаем этой формулы является следующее утверждение: каждый шар
является сдвигом шара с центром в 0n. Действительно, Bn0(a) = {a} для a ∈ Bn, и из
формулы (6) получаем Bnr(a) = Bnr(0n) + {a}.
Обобщение определения шара приводит к понятию r-окрестности множества
A ⊆ Bn (“обобщенного шара”):
Bnr(A) =
Bnr(a).
a∈A
Для окрестностей множеств справедливо соотношение, аналогичное (6).
Лемма 6 [1]. Имеет место соотношение
Bnp(A) + Bnq(B) = Bnp+q(A + B).
Следствие 3. Справедливы формулы
Bnp(Bnq(A)) = Bnp+q(A),
Bnp(A) = A + Bnp(0n),
Bnp(A + B) = Bnp(A) + B = A + Bnp(B),
Bnp(A) + Bnp(B) = A + B + Bn2p(0n).
4.3. Суммы граней вn. Грань (подкуб, интервал) в Bn - это множество точек,
удовлетворяющих условию
J = {x ∈ Bn : a x b}.
Здесь - обычное покоординатное отношение частичного порядка на булевом кубе:
def
x = (x1,...,xn) y = (y1,...,yn)
⇐⇒ xi yi для всех 1 i n.
По-другому интервал J может быть задан словом λ(J) длины n над алфавитом
A = {0,1,∗}, которое мы будем называть кодом интервала, по следующему правилу:
x ∈ J, если x согласовано с λ(J), т.е. xi = λ(J)i для всех i, для которых λ(J)i = .
Другими словами, если λ(J) = (λ1λ2 . . . λn) - код интервала J, то точки интервала
получаются всеми возможными заменами символа на нули или единицы.
Соответствие между этими двумя представлениями устанавливается очень про-
стым способом. Код λ(J) = λ1λ2 . . . λn непустого интервала
J = 1α2 ...αnx β1β2 ...βn}
67
вычисляется по формуле
{αi, если αi = βi,
λi =
∗,
если αi < βi.
Пример 6.
1. Если J = {0100 x 0111}, то λ(J) = (01 ∗ ∗);
2. Если J = Bn = {00 . . .0 x 11 . . .1}, то λ(Bn) = ∗ ∗ . . . ∗.
Количество символов в коде интервала J - это размерность dimJ интервала.
Количество точек в интервале равно 2dimJ.
Коды интервалов удобны для нас тем, что в этих терминах легко выражается
сумма Минковского двух интервалов.
Введем на множестве A = {0, 1, ∗} операцию, продолжающую сумму по моду-
лю 2 на множестве {0, 1}:
0 1
0
0
1
1
1
0
К словам в алфавите A операцию будем применять покомпонентно.
Лемма 7 [7]. Если J1,J2 - интервалы, то J1+J2 также является интервалом
и λ(J1 + J2) = λ(J1) λ(J2).
Пример 7.
1. Пусть λ(J1) = (01), λ2(J2) = (100). Тогда λ(J1 + J2) = (11). Поскольку ин-
тервал J2 состоит из одного вектора, сумма равна сдвигу интервала J1 на этот
вектор;
2. Пусть λ(J) = (1 ∗ ∗). Тогда λ(J + J) = (0 ∗ ∗), т.е. J + J = J;
3. Однако для любого интервала J выполняется равенство J +J +J = J. Как видно
из таблицы операции, в коде суммы J + J звездочки стоят на тех же местах,
что и в коде J, а на остальных местах стоят нули. Добавляя к такому интервалу
интервал J еще раз, получаем интервал J;
4. Найдем сумму шара и грани. С точностью до сдвигов достаточно рассмотреть
случай Bnr(0n) + Γ, где λ(Γ) = (∗ ∗6.7. . 8500...0).
k штук
Ясно, что в этом случае x = (α1 . . .αkβ1 . . . βn-k) ∈ Bnr(0n) + Γ, если и только
если ∥β1 . . . βn-k r. Поэтому
(
(n - k)
(n - k))
|Bnr(0n) + Γ| = 2k
1+
+...+
= 2k|Bnr (0n)|.
1
r
Из того, что интервалы замкнуты относительно суммы Минковского, следует
продолжение начатого в § 2 анализа сложения Минковского для множеств, задан-
ных сжатым представлением. Если вместо общих булевых схем использовать для
представления множеств только схемы частного вида, а именно дизъюнктивные нор-
мальные формы (ДНФ), то вычисление суммы Минковского двух функций в таком
представлении уже возможно за полиномиальное от длины входа время.
Напомним, что литералом называется переменная или ее отрицание. При запи-
си литералов часто используется показательная запись: x1 = x, x0 = ¬x. Конъюнк-
том называется конъюнкция литералов, среди которых нет одинаковых. ДНФ - это
дизъюнкция конъюнктов, среди которых нет одинаковых.
68
Интервалы являются множествами единиц конъюнктов. По коду интервала легко
выписывается соответствующий конъюнкт в показательной записи:
J = Nf, где f =
xλ(J)ii .
i: λ(J)i=
Сумма Минковского двух ДНФ
D1 = C′i и D2 = C′′i
i=1
i=1
в силу дистрибутивности по объединению равна
(C′i + C′′j).
i=1 j=1
В этой дизъюнкции не более чем квадратичное количество членов. Удаляя повто-
рения литералов применением тождества ℓ ∧ ℓ = и затем повторения конъюнктов
применением тождества C ∨ C = C, получаем эквивалентную ДНФ, размер кото-
рой не более чем квадратичен относительно размеров ДНФ-слагаемых. Такая ДНФ
легко строится полиномиальным алгоритмом (и даже алгоритмом, работающим на
логарифмической памяти).
Заметим также, что из леммы 7 следует, что количество литералов в сумме Мин-
ковского двух конъюнктов не превосходит количества литералов в каждом из них.
4.4. Сумма подпространствn. Сложение Минковского подпространств Bn сов-
падает с обычным определением суммы подпространств, используемым в линейной
алгебре. Если U, V - подпространства Bn, то U +V - тоже подпространство, причем
для размерностей этих подпространств выполняется известное соотношение
dim(U + V ) = dim U + dim V - dim(U ∩ V ),
откуда следует формула для размера суммы
|U| · |V |
|U + V | =
|U ∩ V |
Таким образом, теория “сложения подпространств” является хорошо развитым
разделом линейной алгебры и позволяет давать ответы на многие вопросы, имеющие
отношение к данной проблематике.
§5. Алгебраические свойства сложения Минковского
В этом параграфе мы рассмотрим несколько вопросов, относящихся к алгебраи-
ческим свойствам моноида Минковского.
5.1. Обратимые и идемпотентные элементы. Как нетрудно увидеть из определе-
ния, нейтральным элементом относительно сложения Минковского является одно-
элементое множество {0n}, будем обозначать его через
:
A+
= A для всех A ⊆ Bn.
Есть два поглощающих элемента: пустое множество и весь куб Bn:
A + = , A + Bn = Bn для всех A ⊆ Bn.
69
Других поглощающих множеств, как нетрудно проверить, нет. Действительно, если
X = (скажем, x ∈ X) и y ∈ X, то {x⊕y}+X = X, так как {x⊕y}+X содержит y.
Опишем обратимые элементы Mn. Это в точности одноэлементые множества.
Предложение 4. Элемент A ∈ Mn обратим тогда и только тогда, когда
A = {a}, a ∈ Bn.
Доказательство. Обратимость множеств {a} следует из равенства a⊕a = 0n
(заметим также, что каждое такое множество совпадает со своим обратным).
Пусть A ∈ Mn обратим, т.е. A + B = для некоторого множества B. Это
означает, что a ⊕ b = 0n для всех a ∈ A, b ∈ B, т.е. a = b для всех a ∈ A, b ∈ B. Это
и означает, что A состоит из одного элемента и B = A.
Идемпотентный элемент x в моноиде удовлетворяет равенству x + x = x (мы
используем аддитивную запись операции в моноиде). Опишем все идемпотентные
элементы моноида Минковского.
Предложение 5. Если A - идемпотентный элемент моноида Минковского,
то A - либо пустое множество, либо подпространство пространства Bn.
Доказательство. Если для непустого A выполняется равенство A + A = A,
то 0n ∈ A, так как a⊕a = 0n для любого a ∈ Bn. Осталось заметить, что для любых
a, a′′ ∈ A сумма a ⊕ a′′ принадлежит A + A = A.
5.2. Подмоноиды, порожденные одним элементом. Подмоноидом называется под-
множество элементов моноида, которое образует моноид относительно той же опера-
ции. Подмоноидом, порожденным множеством S, называется наименьший по вклю-
чению подмоноид, содержащий S. Нетрудно видеть, что если S состоит из одного
элемента a, то порожденный этим элементом подмоноид содержит нейтральный эле-
мент и все кратные элемента a: a, 2a = a + a, 3a = a + a + a, . . . (Мы используем
знак суммы для обозначения операции в моноиде, поэтому говорим о кратных.)
Последовательность кратных элемента любого конечного моноида является пе-
риодической: как только в этой последовательности элементы повторились, т.е.
kx = ℓx, ℓ - k = p > 0, все остальные кратные периодически повторяются с перио-
дом p: tx = (k + r)x, где r - остаток от деления t на p. Число k - 1 назовем длиной
предпериода (уточним, что мы выбирали первое повторение в последовательности).
Если k = 1, будем говорить, что последовательность чисто периодическая.
Пример 8.
1. Пусть A = {a, b}. Тогда 2A = {0n, a ⊕ b}, 3A = {a, b} = A. Последовательность
кратных чисто периодическая с периодом 2;
2. Пусть A = {a, b, c}. Тогда 2A = {0n, a ⊕ b, b ⊕ c, a ⊕ c}, 3A = {a, b, c, a ⊕ b ⊕ c},
4A = {0n, a ⊕ b, b ⊕ c, a ⊕ c} = 2A. Период 2, длина предпериода 1;
3. Если в предыдущем примере a ⊕ b ⊕ c = 0n, то уже 3A = {0n, a, b, c} = 2A.
Приведенные примеры по сути исчерпывают все разнообразие периодов.
Введем обозначение, удобное для дальнейшего анализа. Через Gk(A) обозначим
суммы k попарно различных элементов из множества A. В частности, G1(A) = A.
Для удобства дальнейших вычислений полагаем также G0(A) = {0n} и Gk(A) =,
если k < 0 или k > |A|.
Если занумеровать все элементы A, т.е. A = {a1, a2, . . . , aN }, где N = |A|, то
множества Gk(·) задаются формулой
Gk(A) =
(ai1 ⊕ ai2 ⊕ . . . ⊕ aik ).
1i1<i2<...<ikN
Заметим, что для множеств Gk(·) выполняется свойство монотонности: если
A ⊆ B, то Gk(A) ⊆ Gk(B).
70
Предложение 6. При 0 p N имеют место равенства
Gp(A) + A = Gp-1(A) ∪ Gp+1(A).
(7)
Доказательство. Действительно, если добавлять к суммам p различных эле-
ментов A элементы A, то будут получаться суммы p - 1 и суммы p + 1 различных
элементов. (Напомним, что a ⊕ a = 0n для всех a ∈ Bn.) В граничных случаях p = 0
и p = N равенство выполняется в силу принятых выше соглашений.
Из дистрибутивности сложения Минковского по объединению, равенств (7) и на-
чального условия A = G1(A) легко проверить индукцией по количеству слагаемых,
что каждое кратное множества A является объединением каких-то множеств ви-
да Gk(A), 0 k N. Будем нумеровать такие объединения булевыми векторами
длины N + 1: вектор (γ0, γ1, . . . , γN ) соответствует множеству
Gi(A).
i: γi=1
Пусть g(k) - вектор, соответствующий kA. Тогда равенства (7) задают для этих
векторов рекуррентные соотношения
g(k + 1)p = g(k)p-1 ∨ g(k)p+1
(дизъюнкция берется почленно).
Вычислив несколько первых членов этой рекурренты, легко увидеть правило, по
которому они строятся:
g(1) = (0, 1, 0, 0, 0, 0, 0, . . .),
g(2) = (1, 0, 1, 0, 0, 0, 0, . . .),
g(3) = (0, 1, 0, 1, 0, 0, 0, . . .),
g(4) = (1, 0, 1, 0, 1, 0, 0, . . .),
g(5) = (0, 1, 0, 1, 0, 1, 0, . . .),
g(6) = (1, 0, 1, 0, 1, 0, 1, . . .).
Как видно из этих равенств (и легко доказывается индукцией по p), в слове g(p),
p |A|, самая правая единица стоит на позиции с номером p (обратите внимание,
что нумерация позиций начинается с 0), а на предыдущих позициях нули и единицы
чередуются.
Пример 9. Рассмотрим еще один пример, обобщающий предыдущие. Пусть
A = {a1,...,ad} и все ai линейно независимы.
Тогда все множества Gk(A) различны при 0 k d и
)
(d
|Gk(A)| =
k
Поэтому все кратные вплоть до dA будут различными, а кратное (d+1)A будет равно
(d - 1)A. Далее последовательность (d - 1)A, dA будет периодически повторяться в
последовательности кратных.
Легко также описать множества, лежащие в этом периоде. Обозначим через
F2〈a1, . . ., ad пространство, натянутое на векторы a1, . . . , ad, а через E0 - подпро-
странство векторов четного веса в базисе a1, . . . , ad, т.е.
E0 = G2i(A).
i=0
71
Это пространство коразмерности 1, поэтому в нем содержится ровно половина точек
из F2〈a1, . . . , ad. Остальные точки образуют линейное многообразие E1 = E0 +{a1}.
Другими словами,
E1 = G2i+1(A).
i=0
В периоде кратных A будут как раз E0 и E1. Действительно, если d нечетно, то
(d - 1)A = E0, тогда dA = E1. Если d четно, то порядок обратный: (d - 1)A = E1 и
dA = E0.
Для анализа общей ситуации нам потребуется связать с подмножеством A ⊆ Bn
из N элементов подпространство координатного пространства FN2 (или линейный
код). Пусть A = {a1, . . . , aN } - список элементов множества A без повторений. Опре-
делим
{
}
C(A) = u ∈ FN2 :
uiai
=0n
i=1
По сути, C(A) состоит из тех линейных комбинаций элементов множества A, ко-
торые равны 0n. (Напомним, что мы рассматриваем векторные пространства над
полем F2, поэтому коэффициенты линейных комбинаций равны 0 или 1.)
Заметим, что любой линейный код представляется в виде C(A) для некоторо-
го множества A: достаточно взять проверочную матрицу кода, множество A будет
состоять из ее столбцов.
Через C(A) обозначим ортогональное дополнение к C(A):
{
}
C(A) = v ∈ FN2 :
viui = 0 для всех u ∈ C(A)
i=1
Определение. Назовем подмножество A ⊆ Bn четным, если
∈ C(A).
Здесь обозначает вектор из одних единиц. В противном случае будем называть
множество A нечетным.
Например, любой базис B в Bn является четным множеством, так как C(B) =
= {0N}, а C(B) = FN2 . (В данном случае N = n.)
Замечание 3. Конструкция C(A) зависит от упорядочения элементов множест-
ва A. Однако коды, отвечающие разным упорядочениям, эквивалентны: они пере-
водятся друг в друга перестановками координат. Так что свойства кода C(A), инва-
риантные относительно перестановок координат, зависят только от множества A и
не зависят от выбранного на A упорядочения.
В частности, определение четности множества как раз является примером та-
кого свойства. Четность множества не зависит от упорядочения, выбранного для
построения кода C(A).
Как уже говорилось, векторы кода C(A) задают линейные комбинации элементов
множества A, равные нулю. Далее нам будет удобно использовать характеризацию
четных и нечетных множеств в этих терминах.
Лемма 8. Подмножество A ⊆ Bn четное, если и только если из
a=0n
следует, что |S| четное.
a∈S⊆A
72
Доказательство. Сопоставим каждому подмножеству S ⊆ A его характери-
стический вектор:
{1, если ai ∈ S,
uSi =
0
в противном случае
(предполагаем, что множество задано упорядоченным списком без повторений A =
= {a1, . . . , aN}). Условие
ai = 0n равносильно тому, что uS ∈ C(A). При этом
i∈S
количество единиц в характеристическом векторе uS равно количеству элементов
в множестве S.
Равенство
iui = 0 равносильно тому, что в векторе u ∈ F2 четное количество
единиц.
i=1
Если множество A четное, то в любом u ∈ C(A) четное количество единиц. Зна-
чит, равенство
a = 0n возможно лишь при четном |S|.
a∈S⊆A
И наоборот, если множество A нечетное, то существует такой вектор u = uS
∈ C(A), что
iui = 1. Тогда в S нечетное количество элементов, но
ai = 0n.
i=1
i∈S
Обозначим через L(A) линейную оболочку множества A, a через d - размер-
ность L(A). В множестве A заведомо содержится хотя бы один базис линейной
оболочки. Для четных и нечетных множеств разложения элементов A по базисам
линейной оболочки, состоящим из элементов A, устроены по-разному.
Предложение 7. Пусть A нечетное. Тогда существуют базис B ⊆ A ли-
нейной оболочки L(A) и элемент aB ∈ A, такие что разложение aB по базису B
является суммой четного количества элементов базиса.
Доказательство. Выбеем наименьшее по включению множество S нечет-
ного размера, для которого
a = 0n (такие множества существуют, так как A
нечетное).
a∈S⊆A
Тогда для любого S ⊂ S выполняется неравенство
a = 0n, так как в про-
a∈S⊆A
тивном случае одно из множеств S или S \ S будет собственным подмножеством S
нечетного размера, суммирование по которому дает 0n.
Значит, если выбрать какой-элемент aB ∈ S, то остальные элементы из S (обозна-
чим их b1, . . . , bk) линейно независимы. Продолжим их до базиса L(A) элементами
bk+1, . . .bd ∈ A: B = {b1, . . ., bk, bk+1, . . . , bd}. Разложение aB по этому базису состоит
из четного числа элементов, так как k = |S| - 1 четно.
Заметим, что если A = {a1, . . ., aN } и a1 = 0n, то построение в доказательстве
дает множество S = {a1} (1 - наименьшее положительное нечетное число, а список
элементов множества не содержит повторений). Поэтому aB = a1 = 0n (других
элементов в S нет). Базисом B при этом можно выбрать произвольный базис L(A),
состоящий из элементов A.
Второе замечание: из леммы 8 следует, что для четных множеств не существует
базиса L(A), состоящего из элементов A и такого, что какой-то элемент A разлага-
ется в сумму четного числа базисных элементов.
Выбранный в предложении 7 базис важен для анализа кратных в силу следую-
щего утверждения.
Предложение 8. Если A нечетное, то (d + 1)A = L(A), где d = dimL(A).
Доказательство. По предложению 7 существует базис B ⊂ A линейной обо-
лочки множества A, по которому некоторый элемент aB ∈ A разлагается в сумму
четного количества базисных векторов. Для aB и вектора x ∈ Gk(A) рассмотрим
73
разложения по базису B
aB = b, S ⊆ B,
|S| ≡ 0 (mod 2),
b∈S
x = b, X ⊆ B.
(8)
b∈X
Для x есть другое разложение в сумму элементов множества A:
x=aB
b.
(9)
b∈X⊕S
Здесь через X ⊕ S обозначена симметрическая разность множеств, т.е. X ⊕ S =
=X\S∪S\X.
Четность количества слагаемых в этих двух разложениях разная. Действительно,
поскольку в S четное количество элементов, то |S \ X| и |X ∩ S| имеют одинаковую
четность. Поэтому
|X ⊕ S| = |X \ S| + |S \ X| ≡ |X \ S| + |X ∩ S| = |X| (mod 2),
а в разложении (9) есть еще один вектор aB помимо тех |X ⊕S|, которые стоят под
знаком суммы.
Таким образом, для x есть два разложения, четность количества слагаемых в ко-
торых различна. Количество слагаемых в (8) не превосходит d, а в (9) не превосхо-
дит d + 1. Поэтому x ∈ Gj (A), где j имеет отличную от k четность и j d + 1.
Отсюда получаем включения
Gk(A)
Gj(A).
(10)
jd+1
j+k≡1 (mod 2)
Поэтому для четного d из (10), монотонности кратных и вычислений в примере 9
получаем
(d + 1)A ⊇ dA ⊇ dB = E0,
(11)
(d + 1)A ⊇ (d + 1)B = (d - 1)B = E1,
т.е. (d + 1)A ⊇ E0 ∪ E1 = L(A). (Здесь использованы те же обозначения, что и
в примере 9.)
Для нечетного d рассуждение аналогично: в первой строке (11) будет включе-
ние E1 в (d + 1)A, а во второй - E0.
Теперь дадим общее описание множества кратных.
Теорема 2. Если A - нечетное множество, то период последовательности
кратных A равен 1, элемент в периоде - линейная оболочка A, а длина предпериода
не больше d = dimL(A).
Если A - четное множество, то период последовательности кратных A ра-
вен 2, элементы в периоде - подпространство коразмерности 1 в L(A) и его сдвиг,
а длина предпериода не больше max(0, d - 2).
Доказательство. Так как A ⊆ L(A), то L(A) + A = L(A), и первая часть
теоремы прямо следует из предложений 7 и 8.
Далее считаем, что A - четное множество и B ⊆ A - базис в L(A).
Пусть d = dim L(A) четное. Тогда (d-1)A ⊇ (d-1)B = (d+1)B = E1 (используем
те же обозначения, что и в примере 9).
74
Предположим, что x ∈ (d - 1)A \ E1. Это означает, что x ∈ E0, т.е. x раскладыва-
ется в сумму четного числа базисных векторов. С другой стороны, x ∈ (d-1)A и по-
этому раскладывается в сумму нечетного числа попарно различных векторов из A.
Из этих двух выражений для x получаем сумму нечетного числа векторов из A, рав-
ную 0n. Это противоречит определению четного множества. Значит, (d - 1)A = E1.
Теперь заметим, что dA ⊇ dB = E0. Если x ∈ dA \ E0, то рассуждением, анало-
гичным предыдущему, опять приходим к противоречию с четностью множества A,
поскольку для такого x есть разложение в сумму как нечетного количества базис-
ных векторов (x ∈ E1 = L(A)\E0), так и четного (x ∈ dA и поэтому раскладывается
в сумму четного числа попарно различных векторов из A). Значит, dA = E0.
Поэтому дальнейшая последовательность кратных повторяется с периодом 2.
Длина предпериода не больше d - 2 при d 2. Если d = 1, то A - одноэлемен-
тое множество, в этом случае длина предпериода равна 0.
Анализ в случае нечетного d = dim A аналогичен. В этом случае (d - 1)A = E0,
а dA = E1.
Оценка длины предпериода в доказательстве теоремы 2 в некоторых случаях да-
лека от точной. Скажем, для любого подпространства V последовательность крат-
ных чисто периодическая с периодом 1.
Обсудим вычислительную сложность определения периода и предпериода после-
довательности кратных множества A.
Проверка множества на четность возможна за полиномиальное время даже в том
случае, если множество задано списком элементов, а не полной таблицей значений
характеристической функции. Достаточно применить алгоритм Гаусса и найти базис
в пространстве C(A), после чего проверить, что каждый базисный вектор содержит
четное количество единиц.
Дело обстоит иначе с вычислением предпериода последовательности кратных
множества A.
Так как длина предпериода не превосходит n + 1 для любого множества A ⊆ Bn,
то если множество A задано таблицей значений характеристической функции, то
вычисление всей последовательности кратных вплоть до периода занимает время,
полиномиальное от размера этой таблицы (длины входа).
Если же множество задано списком элементов, то задача определения длины
предпериода оказывается NP-трудной, поскольку она связана с оценкой радиуса по-
крытия кода C(A). Радиус покрытия кода - это минимально возможное s, такое что
на расстоянии (Хэмминга) s от любой точки есть точка из кода. Применив это опре-
деление к коду C(A), получаем, что радиус покрытия s равен минимуму по таким t,
что суммами t элементов A можно представить любой вектор пространства L(A).
Из теоремы 2 следует, что длина предпериода разве что на 1 отличается от радиуса
покрытия кода C(A).
В работе [8] показано, что даже приближенное вычисление радиуса покрытия
кода является NP-трудной задачей. Более точно, в этой работе доказана NP-труд-
ность семейства алгоритмических задач GapCRPcodesc с априорной информацией
(promise problem). Здесь c > 0 - произвольное положительное число (точность при-
ближения). Входом задачи GapCRPcodesc является матрица H над полем F2 (прове-
рочная матрица кода) и число d. Задача состоит в том, чтобы различить два случая:
(i) радиус покрытия кода CH = {x : Hx = 0} не превосходит d и (ii) радиус покрытия
кода CH больше cd. Результатом работы алгоритма должен быть ответ “да” в первом
случае и “нет” во втором. На остальных входах результат работы алгоритма может
быть произвольным.
NP-трудность задачи GapCRPcodesc означает, что если для нее существует алго-
ритм решения за полиномиальное время, то P = NP. Отсюда сразу следует NP-труд-
75
ность определения длины предпериода последовательности кратных множества A,
если оно задано списком своих элементов: как сказано выше, эта длина отличает-
ся от радиуса покрытия кода C(A) не более чем на 1, и любой код может быть
представлен в виде C(A), если взять в качестве множества A столбцы проверочной
матрицы кода.
5.3. Множества порождающих. Из теоремы 2 следует оценка мощности подмо-
ноида Минковского, порожденного несколькими элементами (т.е. подмножествами
булева куба).
Следствие 4. Рассмотрим подмоноид M = 〈A1,...,As, порожденный мно-
жествами A1, . . ., As. Тогда
|M| (dim L(Ai) + 2),
i=1
где L(A) обозначает линейную оболочку элементов множества A ⊆ Fn2.
Доказательство. Любой элемент из моноида M имеет вид
k1A1 + k2A2 + . . . + ksAs, ki 0.
Из теоремы 2 следует, что у множества A ⊆ Bn всего имеется не более dimL(A) + 2
различных кратных (включая кратное с множителем 0).
Отсюда получаем оценку на размер семейства G множеств, порождающих весь
моноид Минковского:
(n + 2)|G| 22n ,
т.е. |G| = 2n(1-o(1)).
Если от описания на языке подмножеств перейти к описанию на языке булевых
функций, то подмоноиды, порожденные некоторым набором подмножеств (функ-
ций), задают класс функций, выражаемых через порождающие очень простым об-
разом (как сумма кратных). Сама операция, впрочем, достаточно сложна. Тем не
менее представляется интересным вопросом описание классов функций, порождае-
мых как суммы Минковского некоторого выбранного набора “базисных” функций.
Теперь приведем аргументы против существования “простого” набора порожда-
ющих у моноида Минковского. Более точно, мы докажем значительное усиление
оценки количества элементов в порождающем семействе множеств (см. следствие 5
ниже). Оказывается, в любом таком семействе содержится дважды экспоненциаль-
ное количество множеств. Из обычных мощностных соображений отсюда следует,
например, что в таком множестве обязаны присутствовать множества, соответству-
ющие функциям экспоненциальной схемной сложности.
Примитивные элементы моноида Минковского - такие A, что A необратим в мо-
ноиде, а из разложения A = X + Y следует, что X или Y обратим в моноиде.
Разложения в сумму Минковского вида A = B + X, где X обратим в моноиде,
будем называть тривиальными. По предложению 4 все тривиальные разложения
имеют вид A = B+{c}, c ∈ Bn (так как обратимыми являются только одноэлементые
множества).
В силу равенства X + Y = (X + {a})+ (Y + {a}) далее предполагаем без ограни-
чения общности, что для слагаемых разложения A = X + Y выполняются свойства
0n ∈ X, Y ⊆ A.
Пусть f : Bk Bs - некоторое отображение k-мерного булева куба в s-мерный.
График этого отображения
Γf = {(x, y) Bk+s : y = f(x)}
76
является подмножеством Bk+s. Сформулируем достаточное условие примитивности
графика Γf как элемента моноида Mk+s.
Предложение 9. Пусть для любого двумерного аффинного подпространства
{a, a + b, a + c, a + b + c} ⊆ Fk2 выполняется неравенство
f (a) ⊕ f(a + b) ⊕ f(a + c) ⊕ f(a + b + c) = 0s.
Тогда множество Γf примитивно.
Доказательство. Если Γf = X + Y - нетривиальное разложение графика
отображения f, то |X| > 1, |Y | > 1. Считаем, как сказано выше, что Y ⊆ Γf и
0k+s ∈ X. Выберем два элемента из Y , обозначим их (x1, f1) и (x2, f2), и какой-то
ненулевой элемент из X, обозначим его (Δx, Δy).
Тогда (x1 Δx, f1 Δy) Γf и (x2 Δx, f2 Δy) Γf , т.е. для двумерного
подпространства
{x1, x1 (x1 ⊕ x2), x1 Δx, x1 (x1 ⊕ x2) Δx}
в Fk2 получаем
f (x1) = f1,
f (x1 (x1 ⊕ x2)) = f2,
f (x1 Δx) = f1 Δy,
f (x1 (x1 ⊕ x2) Δx) = f2 Δy.
Сумма значений f по этому подпространству равна 0s, что противоречит условию
предложения.
Это достаточное условие позволяет доказать дважды экспоненциальную ниж-
нюю оценку на количество примитивных элементов в моноиде Минковского.
Теорема 3. Количество примитивных элементов в моноиде Минковского Mn
не меньше 22Ω(n) .
Доказательство. Двумерное аффинное подпространство в Bk задается тре-
мя векторами, так что общее количество таких подпространств не превосходит 23k.
Функция f : Bk Bs задается s2k булевыми переменными: ϕ(i, x) = 1 равно-
сильно тому, что f(x)i = 1. В пространстве Fs2k2 , координатами которого являются
эти переменные, условие равенства нулю суммы значений функции f : Bk Bs
на некотором двумерном аффинном подпространстве задает систему из s линейно
независимых однородных линейных уравнений. Решения такой системы составляют
долю 2-s от общего количества функций Bk Bs.
Поэтому доля функций f : Bk Bs, удовлетворяющих достаточному условию
примитивности из предложения 9, не меньше 1-23k-s (оценка объединения). Значит,
при 3k < s хотя бы половина функций удовлетворяет этому условию и количество
примитивных элементов в Mk+s не меньше 2s2k-1. Выберем s = 3k + 1, тогда n =
= k + s = 4k + 1, и в моноиде Минковского Mn не менее чем
2(3k+1)2k-1 = 22Ω(n)
примитивных элементов.
Следствие 5. Пусть семейство G множеств порождает моноид Минковско-
го. Тогда |G| = 22Ω(n) .
Доказательство. Пусть A - примитивный элемент моноида Минковского.
В любой системе порождающих моноида Минковского должен содержаться ассоци-
77
ированный c A элемент моноида, т.е. такое множество B, что A = B + X, где X
обратим в моноиде.
Отношение ассоциированности - это отношение эквивалентности, классы экви-
валентности этого отношения называются классами ассоциированных элементов.
В моноиде Минковского обратимыми элементами, как проверено выше (предло-
жение 4), являются одноэлементые множества и только они. Поэтому размер класса
ассоциированных элементов в моноиде Минковского равен 2n.
Таким образом, в любую систему порождающих должен входить хотя бы один
элемент из каждого класса ассоциированных элементов. Поэтому из теоремы 3 по-
лучаем искомую оценку на размер семейства G.
§ 6. Дубли Минковского
Простейшим уравнением в моноиде Минковского является уравнение вида
X + Y = A.
(12)
Его решения задают возможные факторизации A как элемента моноида Минков-
ского.
У уравнения (12) всегда есть тривиальные решения: X = {x}, Y
= A + {x}.
Напомним, что одноэлементые множества обратимы в моноиде Минковского. Эти
тривиальные решения отвечают как раз таким тривиальным факторизациям A.
Если A таково, что других решений у уравнения (12) нет, то A - примитивный
элемент моноида Минковского (см. п. 5.3).
Пример 10.
1. Если A = Bn, то в качестве X можно взять Bn, а в качестве Y любое подмноже-
ство Bn;
2. Если A - подпространство Bn, то A+A = A, и таким образом, одним из решений
уравнения (12) является X = Y = A.
Родственное уравнение
X+X =A
(13)
уже не всегда имеет решение. Те множества, для которых (13) имеет решение, будем
называть дублями Минковского.
Пример 11. Если A - подпространство Bn, то A+A = A, и поэтому A является
дублем Минковского.
Уравнение (13) представляет интерес по нескольким причинам.
В метрических задачах на булевом кубе оно возникает при характеризации вза-
имных расстояний между точками множества. Приведем краткое изложение этой
связи (подробнее см. в [2]).
Напомним, что мы используем на булевом кубе норму Хэмминга ∥x∥ (количество
единиц в x) и расстояние Хэмминга ρ(x, y) = ∥x⊕y∥ (количество позиций, в которых
различаются слова x и y).
Определим норму множества как
∥A∥ = min{∥x∥ : x ∈ A}.
x
Тогда ∥A + B∥ совпадает с расстоянием Хаусдорфа между множествами:
ρ(A, B) = minρ(x, y) = min∥x ⊕ y∥ = min
∥z∥ = ∥A + B∥.
x∈A
x∈A
z∈A+B
y∈B
y∈B
78
Множество
R(A, B) =(a, b) : a ∈ A, b ∈ B}
характеризует “взаимный” спектр расстояний между точками множеств A и B. На-
помним, что R(A, A) = R(A) называется метрическим спектром множества A. Таким
образом, множество A + A однозначно определяет метрический спектр.
Пример 12. Если X + X = A ∪ {0n} и A ⊆ Snm, то X - эквидистантный код
с расстоянием m между любыми двумя различными точками.
Таким образом, задачи построения эквидистантных кодов и разрешимости урав-
нения (13) оказываются связанными.
Понятие дубля Минковского тесно связано с изучением эквивалентности адди-
тивных каналов [3], где описание класса эквивалентности связано с нахождением
всех решений уравнения (13). В частности, при описании эквивалентности аддитив-
ных каналов оказывается важным следующее простое наблюдение.
Пусть GL2(n) - группа обратимых матриц порядка n с элементами из поля F2.
Эта группа действует на векторах координатного пространства Fn2, и это действие
естественно переносится на подмножества Fn2:
gA = {x : x = ga, a ∈ A}.
Обозначим через GA стабилизатор этого действия.
Предложение 10. Пусть g ∈ GA. Тогда равенства X+X = A и gX+gX = A
равносильны.
Доказательство. Если X + X = A, то gX + gX = g(X + X) = gA = A.
Обратное утверждение следует из прямого, если заметить, что g-1 также при-
надлежит GA.
Дубли Минковского имеют также естественную характеризацию в терминах ана-
лиза Фурье на булевом кубе. Напомним основные обозначения и определения, отно-
сящиеся к такому анализу.
С элементом s ∈ Fd2 свяжем моном
xi.
xs = xsii =
i
i: si=1
Мономы такого вида образуют ортонормированный базис в пространстве функций
1}d R относительно скалярного произведения
1
〈f, g〉 =
f (a)g(a).
2d
a∈{±1}d
Коэффициенты разложения функции f :1}d R по этому базису называются
коэффициентами Фурье:
f (x) =
f (s)xs,
f (s) = 〈f, xs〉.
s∈Fd
2
Легко проверяется формула свертки
fg(s) =
f (q)g(s ⊕ q).
(14)
q∈Fd
2
79
Обозначим через
spec f = {s :
f (s) = 0} носитель функции
f, который мы будем
называть Фурье-носителем функции. Следствием формулы свертки (14) является
Предложение 11. Пусть g(s) 0 для всех s ∈ Fd2. Тогда
spec(g2) =
spec g +
spec g.
Из этого предложения, в свою очередь, получаем характеризацию дублей Мин-
ковского в терминах анализа Фурье на булевом кубе.
Лемма 9. Дубли Минковского - это в точности Фурье-носители квадратов
функций с неотрицательными коэффициентами Фурье.
Доказательство. В одну сторону утверждение леммы совпадает с предло-
жением 11. В другую сторону: пусть A = B + B. Рассмотрим функцию
χB = χB(s)xs =
xs.
s
s∈B
У нее коэффициенты Фурье неотрицательные, поэтому spec(χB)2 = A.
Множество дублей Минковского образует подмоноид моноида Минковского.
Предложение 12
[1]. Если A и B - дубли, то и A + B - дубль.
Из A = X + X и B = Y + Y с учетом ассоциативности и коммутативности
сложения Минковского получаем
A + B = (X + Y ) + (X + Y ) = (X + X) + (Y + Y ).
Таким образом, отображение τ : X → X + X является эндоморфизмом (морфизмом
в себя) моноида Минковского, а дубли Минковского - это образ моноида Минков-
ского при действии эндоморфизма τ.
Характеризация дублей Минковского и вычислительная сложность проверки то-
го, что множество является дублем Минковского, - трудные открытые вопросы
в этой области.
СПИСОК ЛИТЕРАТУРЫ
1. Leontiev V., Movsisyan G., Margaryan Zh. On Addition of Sets in Boolean Space // J. Inf.
Secur. 2016. V. 7. № 4. P. 232-244.
2. Leontiev V., Movsisyan G., Margaryan Zh. Algebra and Geometry of Sets in Boolean Space //
Open J. Discrete Math. 2016. V. 6. № 2. P. 25-40.
3. Леонтьев В.К., Мовсисян Г.Л., Осипян А.А. Классификация подмножеств Bn и адди-
тивные каналы // Вестн. Моск. ун-та. Сер. 1. Матем., мех. 2014. № 5. С. 23-29.
4. Leontiev V., Movsisyan G., Osipyan A., Margaryan Zh. On the Matrix and Additive Com-
munication Channels // J. Inf. Secur. 2014. V. 5. № 4. P. 178-191.
5. Sipser M. Introduction to the Theory of Computation. Boston: Thomson Course Technology,
2006.
6. Китаев А., Шень А., Вялый М. Классические и квантовые вычисления. М.: МЦНМО,
1999.
7. Леонтьев В.К. О гранях единичного n-мерного куба // Ж. вычисл. матем. и матем.
физ. 2008. Т. 48. № 6. С. 1126-1139.
8. Guruswami V., Micciancio D., Regev O. The Complexity of the Covering Radius Problem
on Lattices and Codes // Proc. 19th IEEE Annual Conf. on Computational Complexity
(CCC’04). Amherst, MA, USA. June 21-24, 2004. Washington, DC, USA: IEEE Comput.
Soc., 2004. P. 161-173.
80
Вялый Михаил Николаевич
Поступила в редакцию
Вычислительный центр им. А.А. Дородницына РАН
24.02.2019
Московский физико-технический институт
После доработки
(государственный университет)
26.04.2019
Национальный исследовательский университет
Принята к публикации
“Высшая школа экономики”
21.05.2019
vyalyi@gmail.com
Леонтьев Владимир Константинович
Вычислительный центр им. А.А. Дородницына РАН
vkleontiev@yandex.ru
81