Александр Разборов
«Квант» №10, 2020
В этой статье мы расскажем о красивой и важной задаче с вполне элементарной формулировкой, которая была предметом интенсивных исследований многих математиков (включая автора этой статьи) на протяжении нескольких десятилетий и при этом не поддавалась никаким усилиям. А дальше все произошло как в сказке: 1 июля 2019 года на сайте arxiv.org появилась шестистраничная работа [1] американского математика по имени Хао Хуан (Hao Huang) с полным решением проблемы совершенно неожиданным и удивительно простым способом.
Начнем с азов.
Булевы функции, раскраски гиперкуба и чувствительность. Через {0,1}n мы будем обозначать множество всех двоичных слов длины n: например, {0,1}3 состоит из восьми элементов (000), (001), (010), (011), (100), (101), (110), (111). Булева функция от n переменных fn : {0,1}n → {0,1} классифицирует слова x ∈ {0,1}n в «хорошие» (те, для которых fn(x) = 1) и «плохие» (fn(x) = 0). Нижний индекс всегда будет обозначать число переменных.
Булевы функции, как, впрочем, и любые другие, можно подставлять друг в друга; не менее важно то, что их можно подвергать логическим операциям, таким как И, ИЛИ, НЕ. Поэтому булевы функции являются одним из наиболее фундаментальных и часто встречающихся объектов в различных компьютерных науках (и теоретических, и прикладных) как способ представления и преобразования дискретной информации.
Нас сегодня будут больше интересовать свойства булевых функций как комбинаторных объектов, а также иногда их аналитические1 свойства; изучением последних занимается целая дисциплина, называемая «анализ булевых функций». Поэтому, чтобы подчеркнуть комбинаторную и геометрическую природу булевых функций, давайте по возможности вместо формул рассматривать картинки и графы.

Два слова x, y ∈ {0,1}n называются соседними, если они отличаются ровно в одной позиции i ∈ {1, ..., n}. Соединяя ребром все пары соседних вершин, получим граф Qn на 2n вершинах. Эти графы (на рисунке 1 показаны графы Q1, Q2 и Q3) называются гиперкубами, и они очень важны в комбинаторике по многим разным причинам. Тем самым булевы функции fn : {0,1}n → {0,1} превращаются в раскраски множества вершин V (Qn) n-мерного гиперкуба в два цвета: зеленый (fn (x) = 1) и красный (fn (x) = 0). На рисунке 2 показаны булевы функции, соответствующие наиболее базисным операциям: И, ИЛИ, сложение по модулю 2 (XOR) и функция голосования (MAJ3: значение MAJ3(x) равно 1, если и только если слово х содержит хотя бы две единицы). На каждом рисунке также выделено синим цветом множество Cut(fn) ребер графа Qn, вершины которых покрашены в разные цвета. Это множество называется разрезом (данной функции), и оно является центральным для нашей статьи понятием.

Рис. 2
Упражнение 1. Функция fn существенно зависит от всех своих переменных, если она не может быть выражена как функция от меньшего числа переменных. На нашей картинке это означает, что в ее разрезе имеется хотя бы одно ребро в каждом из n возможных направлений. Функция fn обобщенно симметрична, если ее картинку можно повернуть таким образом, что цвет вершины будет зависеть только от ее уровня, т. е. от количества единиц в соответствующем двоичном слове (рис.3).

Рис. 3
Докажите, что всякая функция f2 , существенно зависящая от обеих своих переменных, является обобщенно-симметричной. А верно ли то же самое для функций от 3 и большего числа переменных?
Мы теперь готовы определить важную числовую характеристику булевой функции fn — ее чувствительность s(fn). Начнем с чувствительности s(fn,x) функции fn в данной вершине x ∈ V (Qn): по определению, она просто равна числу ребер в разрезе Cut(fn), выходящих из x. Это одна из нескольких естественных возможностей измерять, насколько именно функция в точке x чувствительна к малым (в данном случае — ровно в одной координате) изменениям во входных данных. Чувствительность функции fn определяется как максимально возможное значение s(fn,x):
\(\mathrm{s}(f_n)={\underset{x\in V()Qn)}{\max \mathrm{s}(f_n,x)}}.\) (1)
Таким образом (для знакомых с терминологией теории графов), s(fn) — это не что иное, как максимальная степень (вершины) графа c множеством ребер Cut(fn) .
Упражнение 2. Вычислите s(f3) для всех функций на рисунке 1.
Упражнение 3. Докажите, что при n ≥ 2 для любой функции fn , существенно зависящей от всех своих переменных, имеет место s(fn) ≥ 2.
Для больших n имеет место оценка
\(\mathrm{s}(f_n)\geq\frac{1}{2}\log_2 n -\frac{1}{2}\log_2\log_2n+\frac{1}{2}\), (2)
где, как и в упражнении 3, функция fn существенно зависит от всех своих переменных. Эта оценка, доказанная Х.У. Симоном (H.U.Simon) в 1983 году, по-видимому, является первым нетривиальным результатом в исследовании чувствительности булевых функций. На первый взгляд она может показаться чрезмерно грубой, но на самом деле оценка довольно точна.
Упражнение 4. Для всех h ≥ 1 постройте пример функции \(f_{h+2^h}\), существенно зависящей от h + 2h переменных c \(\mathrm{s}\left ( f_{h+2^h} \right )=h+1\).
Блочная чувствительность. Понятие чувствительности очень простое и естественное, но оказывается, что большую пользу в различных приложениях приносят его модификации.
Так, например, в формуле (1) вместо взятия максимума по всем x ∈ V (Qn) можно взять среднее значение. Получится средняя чувствительность as(fn) функции fn, которая, как легко понять, является не чем иным, как размером разреза |Cut(fn)|, нормированным подходящим (вычислите его!) множителем. Это понятие играет центральную роль в анализе булевых функций.
Нас сегодня, однако, больше интересует другая модификация: bs(fn) называемая блочной чувствительностью. Как и раньше, начнем со случая, когда у нас есть функция fn и входное слово x ∈ {0, 1}n. Тогда чувствительным блоком называется подмножество B ⊆ {1,2,...,n} такое, что f(xB) ≠ f(x), где xB — результат изменения слова x одновременно во всех позициях i ∈ B. Например, функция MAJ3 на рисунке 1 в точке (000) имеет четыре чувствительных блока, а именно, те подмножества B ⊆ {1,2,3}, для которых |B| ≥ 2. Блочной чувствительностью bs(fn,x) функции fn на входе2 x называется максимальное значение l, для которого существуют l попарно непересекающихся чувствительных блоков. Таким образом, bs(MAJ3,000) = 1 просто потому, что любые два чувствительных блока имеют непустое пересечение. И, наконец, как и раньше, полагаем
\(\mathrm{bs}(f_n)\overset{a}{=}\underset{x\in V(Q_n)}{max}\mathrm{bs}(f_n,x)\).
Упражнение 5. Вычислите 3 bs f для всех функций на рисунке 1.
Ниже мы объясним, почему блочная чувствительность важна и интересна, но вначале давайте сравним ее с обыкновенной, а также сформулируем гипотезу (уже доказанную), которая послужила поводом для написания этой статьи.
Прежде всего, обыкновенная чувствительность, очевидно, соответствует ограничению, состоящему в том, что все чувствительные блоки имеют размер 1. Поэтому s(fn,x) ≤ bs(fn,x) и, соответственно, s(fn) ≤ bs(fn).
Упражнение 6. Найдите ошибку в следующем рассуждении.
Докажем, что s(fn) всегда равно bs(fn). Пусть bs(fn) = s. Рассмотрим соответствующий вход x и систему из s чувствительных блоков на этом входе. Так как ограничение нашей функции на любой блок нетривиально, в каждом блоке существует некоторый вход, на котором функция чувствительна по крайней мере в одной позиции. Так как блоки попарно не пересекаются, эти входы можно между собой соединить и получить вход для исходной функции, чувствительный по крайней мере к s переменным, по одной в каждом блоке. Следовательно, s(fn) ≥ s.
Упражнение 7*. Постройте функцию f4, у которой s(f4) = 2 и bs(f4) = 3.
Насколько большим может быть разрыв между s(fn) и bs(fn)? Первый общий пример в этом направлении принадлежит Рубинштейну (Rubinstein, 1995). Соответствующую функцию Rn от n = m2 переменных описать довольно легко, но лучше это делать не на картинке. Итак, у нас есть двоичное слово x длины m2. Первым делом разобьем его на m блоков по m знаков в каждом блоке. Назовем блок хорошим, если он содержит ровно две единицы, причем эти единицы следуют друг за другом. Раскрасим x в зеленый цвет, если в нем найдется хотя бы один хороший блок, и в красный, если такого нет.
Упражнение 8. Докажите, что \(\mathrm{s}(R_{m^2})=m\), а \(\mathrm{bs}(R_{m^2})=m^2/2\).
Итак, разрыв между чувствительностью и блочной чувствительностью может выражаться квадратичной функцией, и попытки его увеличить оставались совершенно безуспешными в течение долгого времени. Улучшить мультипликативную константу в примере Рубинштейна удалось лишь совсем недавно, но функция при этом так и осталась квадратичной. Все это побудило Нисан и Сегеди (Nisan и Szegedy) сформулировать в 1994 году следующую гипотезу, быстро завоевавшую широкую известность.
Гипотеза о блочной чувствительности. Существуют такие абсолютные константы ε, δ > 0, что для любой булевой функции fn имеет место s(fn) ≥ δ bs(fn)ε.
Если эту гипотезу сформулировать словами, то в ней утверждается, что функции s(fn) и bs(fn) совпадают «с точностью до некоторого полинома (многочлена)». Такой уровень точности, в особенности когда полиномиальные функции противопоставляются экспоненциальным, является типичным для современной теории сложности; более подробно об этом можно прочитать в популярном очерке [2].
Достигнутый в течение 25 лет прогресс в доказательстве этого утверждения (или построении к нему контрпримера) преимущественно сводился к нахождению новых гипотез или фактов, напрямую с ним связанных. Приятным исключением является работа Кеньон и Кутина (Kenyon и Kutin) 2004 года, в которой гипотеза о блочной чувствительности доказана в предположении, что все чувствительные блоки имеют ограниченный (например, ≥10) размер. Мы отсылаем заинтересованного читателя к обзору [3], а сами переходим непосредственно к доказанному Хуаном результату.
Теорема 1 ([1]). Для всякой булевой функции fn имеем s(fn) ≥ bs(fn)1/4.
Прежде чем рассказывать об идеях доказательства, давайте выполнимданное выше обещание и поговорим о том, почему именно блочная чувствительность важна и интересна. Оказывается, что она «с точностью до полинома» эквивалентна целому ряду других важных характеристик булевых функций. Более того, если читать соответствующие доказательства (до чего мы, к сожалению, не дойдем), то видно, что блочная чувствительность занимает в них центральное место. Мы рассмотрим три такие характеристики, имеющие различную природу: комбинаторную, вычислительную и аналитическую.
Сертификационная сложность. Как всегда, начнем с рассмотрения индивидуального входа x ∈ {0,1}n. Множество позиций I ⊆ {1,...,n} называется сертифицирующим (для данного x), если набор значений (xi|i ∈ I) (называемый сертификатом) полностью определяет fn(x). Иными словами, для любого другого y ∈ {0,1}n, совпадающего с x во всех позициях из I, имеет место fn(y) = fn(x). Сертификаты далеко не единственны, и сертификационной сложностью C(fn,x) называется минимальный (обратите внимание на отличие от определений чувствительности, в которых берется максимум) возможный размер |I| сертификата I. После этого, как и раньше,
\(C(f_n)\overset{\mathrm{def}}=\underset{x\in \{0,1\} }{\mathrm{max}}C(f_n,x)\).
То же самое понятие легко объяснить геометрически. Рассмотрим семейство подкубов в Qn, имеющих коразмерность d (т. е. содержащих ровно 2n − d вершин). Среди них нас интересуют монохроматические подкубы, т. е. такие, у которых все вершины покрашены в один и тот же цвет.
Упражнение 9. Докажите, что C(fn) равно минимальному d, для которого монохроматические подкубы коразмерности d полностью покрывают {0,1}n.
Легко понять, что , bs(fn,x) ≤ C(fn,x), следовательно, bs(fn) ≤ C(fn,x). Действительно, выберем произвольный сертификат I с |I| = C(fn,x). Тогда всякий чувствительный блок B на входе x обязан содержать хотя бы один i ∈ I. Поэтому всякое дизъюнктное семейство чувствительных блоков (т. е. такое, что никакие два его блока не пересекаются) может содержать не более |I| членов.
В другую сторону это намного менее очевидно.
Теорема 2 (Нисан, Сегеди, 1994). Для всякой булевой функции fn имеем C(fn) ≤ bs(fn)2.
Таким образом, bs(fn) и C(fn) «эквивалентны с точностью до полинома», и при желании в теореме 1 можно заменить блочную чувствительность на сертификационную сложность. От этого ее содержание (за исключением, возможно, константы в экспоненте) не изменится. Отметим также, что в геометрическом определении C(fn) можно дополнительно потребовать, чтобы искомое покрытие было на самом деле разбиением, т. е. все участвующие в покрытии подкубы попарно не пересекаются. Полученная величина все еще будет полиномиально эквивалентна bs(fn) и C(fn); почему это так, станет понятным в следующем разделе.
Разрешающие деревья. До сих пор мы в основном занимались комбинаторными и к тому же локальными (т. е. определяемыми в терминах некоторой «окрестности» фиксированной вершины x ∈ {0,1}n) свойствами булевых функций. В этом разделе мы покажем, как все это соотносится с теорией вычислительной сложности.
Разрешающие деревья (decision trees) — это, пожалуй, наиболее простая, но в то же время наиболее часто используемая в приложениях вычислительная модель. Многие, вероятно, знают игру в 20 вопросов, в которой требуется угадать неизвестный предмет, задавая про него вопросы, на которые допускаются лишь ответы ДА/НЕТ. Любую мыслимую стратегию для этой игры можно представить в виде разрешающего дерева (рис. 4). Его высотой называется максимальная возможная длина пути в этом дереве. Таким образом, высота дерева определяется числом вопросов, задаваемых в наиболее неблагоприятном (наихудшем) для нас случае. Например, если на рисунке 4 нам повезло и был загадан именно стол, то все равно высота дерева будет измеряться подсчетом длины вдоль других ветвей этого дерева.

Рис. 4
Читателю предлагается обдумать следующий довольно нехитрый тезис: игру в 20 вопросов можно заведомо выиграть тогда и только тогда, когда для нее существует разрешающее дерево, имеющее высоту ≤ 20.
Как мы уже отмечали, разрешающие деревья в той или иной форме используются везде, и во многих приложениях достаточно рассматривать вычисление с их помощью булевых функций fn. Чтобы разобраться в том, что это такое, давайте слегка модифицируем правила игры: предположим, что вместо предмета у нас загадано двоичное слово x ∈ {0,1}n. Тогда если ставится задача угадать x полностью, то легко понять, что никакое разрешающее дерево для решения этой задачи не может иметь высоту ≤ n − 1.
Упражнение 10. Докажите это утверждение.
Предположим, однако, что все слово x нас не интересует, а интересует некоторое его свойство, задаваемое булевой функцией fn(x). В такой постановке задача не слишком интересна, потому что про загаданное свойство можно просто спросить. Однако в рассматриваемой нами модели мы разрешаем угадывающему задавать только очень простые вопросы, а именно выяснять значение индивидуального бита xi(i ∈ {1,...,n}) в слове x. Пример такого разрешающего дерева приведен на рисунке 5; требуется, чтобы информации, полученной угадывающим вдоль каждой ветви, было достаточно для определения значения fn(x) независимо от тех значений, про которые не спрашивали. Сложность D(fn) булевой функции fn по отношению к разрешающим деревьям (query complexity) определяется как минимально возможная высота разрешающего дерева, вычисляющего нашу функцию. Иными словами, это наименьшее число простых вопросов про вход x ∈ {0,1}n, которых заведомо достаточно для вычисления значения fn(x).

Рис. 5
Упражнения
11. Определите D(f3) для всех функций, изображенных на рисунке 2.
12. Докажите, что D(fn) = D(¬fn), где ¬fn — отрицание функции fn.
13. Докажите, что D(fn) = D(fn(¬x1,...,¬xn)).
14. Докажите, что D(fn ∨ gn) ≤ D(fn) + D(gn). Может ли это неравенство быть строгим?
Теперь давайте свяжем все это с предыдущими рассмотрениями. Как всегда, в одну сторону это просто. Если имеется разрешающее дерево, то каждой заключительной вершине соответствует сертификат, состоящий из ответов на все вопросы, которые угадывающий спросил про x по дороге в эту вершину. На рисунке 5 этот сертификат выписан явно для одной (закрашенной) вершины. Размер этого сертификата не превосходит высоты дерева, и более того, каждый вход x обладает ровно одним таким сертификатом. Таким образом, C(fn) ≤ D(fn)и, более того (сравните с замечанием в конце предыдущего раздела), построенная нами система подкубов является разбиением {0,1}n.
В обратную сторону это намного менее очевидно.
Теорема 3 (Билз и др., 2001). Для всякой булевой функции fn имеем D(fn) ≤ C(fn)bs(fn) (что ≤ bs(fn)3 ввиду теоремы 2).
Доказательство этой теоремы выходит за рамки этой статьи, но она позволяет добавить разрешающие деревья к списку мер сложности, полиномиально эквивалентных блочной чувствительности. Отметим лишь одно ее замечательное свойство: величины C(fn), bs(fn) в правой части имеют сугубо комбинаторную (или геометрическую, если угодно) природу. В то же время разрешающие деревья — это концепция алгоритмическая. Таким образом, теорема 3 утверждает существование алгоритма, качество работы которого целиком определяется комбинаторными свойствами функции, к которой он применяется.
Булевы функции и полиномы. В этом разделе мы рассматриваем 0 и 1 просто как вещественные числа, совершенно абстрагируясь от их логического смысла. Кроме того, нас будет интересовать слегка более общая ситуация fn : {0,1}n → \(\mathbb{R}\), т. е. областью определения функции fn все еще служат вершины гиперкуба, но значениями могут быть уже произвольные вещественные числа.
Мы хотим представить функции fn максимально простым выражением, причем под «представлением» мы имеем в виду, что значение нашего выражения должно совпадать с fn там, где эта функция определена (т. е. при x ∈ {0, 1}n), и может вести себя произвольно на всех остальных.
Самые простые и важные аналитические выражения — это полиномы (многочлены) от нескольких переменных, и оказывается, что в самом деле любая функция fn : {0,1}n → \(\mathbb{R}\) допускает полиномиальное представление. Более того, в таком представлении нет нужды в высших (≥ 2) степенях одной и той же переменной: так как xi ∈ {0,1}, то dxi при d ≥ 2 всегда можно упростить до xi. Иными словами, достаточно ограничиться мультилинейными полиномами, т. е. такими, у которых степень по каждой переменной не превосходит 1 (и, следовательно, суммарная степень не превосходит n).
Упражнение 15. Докажите это утверждение.
Указание. Напишите явную формулу, связывающую fn(x1,...,xn) с fn(x1,...,xn − ,0) и fn(x1,...,xn − 1,1).
Оказывается, что такое представление к тому же и единственно. Таким образом, всякую функцию fn : {0,1}n → \(\mathbb{R}\) (и, в частности, всякую булеву функцию) можно отождествить с ее мультилинейным полиномиальным представлением.
Упражнение 16. Представьте в виде мультилинейных полиномов все функции на рисунке 2.
Таким образом, с каждой булевой функцией fn можно связать еще одну меру сложности, на этот раз алгебраическую, а именно степень deg(fn) представляющего ее мультилинейного полинома. Отметим ее важное отличие от всех ранее рассмотренных мер. А именно, до сих пор в наши определения входили разнообразные минимумы и максимумы, что на практике ведет к тому, что вычислить их, или даже приблизить разумным образом, может быть непросто. Напротив, степень deg(fn) соответствует единственному представлению функции fn , и, как следствие, ее можно вычислить явно в большинстве интересных ситуаций, просто выписав представляющий полином.
Видимо, читатель уже догадался, к чему мы ведем: степень deg(fn) оказывается эквивалентной всем ранее рассмотренным мерам. Доказать неравенство в одну сторону довольно легко.
Упражнение 17. Докажите, что deg(fn) ≤ D(fn).
В другую сторону дело представляется довольно затруднительным: все, что у нас есть — это мультилинейный полином малой степени и заверения в том, что если мы в него подставим 0 или 1, то в результате снова получится 0 или 1. Нам же надо каким-то образом из этого установить, что полученная таким образом булева функция имеет вполне определенную и притом довольно жесткую структуру. На помощь приходит блочная чувствительность: доказывается, что
\(\mathrm{deg}(f_n)\geq \frac{1}{3}\sqrt{\mathrm{bs}(f_n)}\).
Доказательство весьма нетривиально и использует глубокий факт из теории полиномиальной аппроксимации. Грубо говоря, основная идея состоит в том, что bs(fn) ≥ s — это утверждение позитивное, именно этим блочная чувствительность и удобна. Оно означает существование входа x и блоков B1,...,Bs с определенными свойствами. Показывается, что наличие таких x,B1,...,Bs несовместимо с наличием полиномиального представления малой степени.
В заключение этого раздела отметим, что другой важной характеристикой булевой функции, в особенности при рассмотрении вероятностных и квантовых алгоритмов, является ее приближенная степень \(\widetilde{deg}\)(fn). Она определяется как минимальная возможная степень мультилинейного полинома pn(x1,...,xn), для которого |pn(x1,..,xn) − fn(x1,...,xn)| ≤ 1/3 для всех x ∈ {0,1}n (точное значение константы 1/3 здесь большой роли не играет, важно лишь, что она меньше 1/2). В этом определении уже присутствует минимум, поэтому приближенная степень — намного более сложная величина, чемобыкновенная. Скажем, даже для простой функции на рисунке 6 доказательство того, что ее приближенная степень линейна по n, потребовало многих лет работы и было получено сравнительно недавно специально разработанным для этой цели методом (Бун, Талер (Bun, Thaler), 2013; Шерстов, 2014).

Рис. 6
Однако если мы работаем «c точностью до полинома», то приближенная степень пополняет нашу коллекцию мер, полиномально эквивалентных блочной чувствительности. Неравенство \(\widetilde{deg}\)(fn) ≤ deg(fn) очевидно, а метод, используемый для доказательства нижней оценки (3) на степень, с тем же успехом работает и для приближенной степени.
Мы познакомились с некоторыми базовыми мерами сложности булевых функций. Несмотря на то, что они имеют совсем разную природу, все они эквивалентны друг другу в некотором разумном смысле, кроме (до 2019 года!) обыкновенной чувствительности. Осталось сказать несколько слов о доказательстве Хуана, лишающем обыкновенную чувствительность ее особого статуса.
Блочная чувствительность полиномиально эквивалентна чувствительности. Доказательство из [1] существенно опирается на предыдущую работу Готсмана и Линиала (1997), в которой предложена еще одна характеризация блочной чувствительности, и мы начнем с этой работы, тем более что эта часть почти элементарна.
Отправной точкой для нас служит булева функция fn с deg(fn) = d , а в конце будет показано, что s(fn) ≥ d1/2.
Первое наблюдение состоит в том, что без ограничения общности можно считать d = n. Для этого достаточно в представляющем fn полиноме выделить произвольный член старшей степени, скажем αx1x2...xd (где α ≠ 0). Подставим вместо оставшихся переменных xd + 1,...,xn произвольные 0–1 значения (например, нули). Легко понять, что от такой операции степень полинома уменьшиться не может, просто потому что член αx1...xd мы не трогаем и сокращаться ему будет не с кем. С другой стороны, чувствительность (как, впрочем, и все остальные рассмотренные в этой статье меры) от такой подстановки может только уменьшиться.
Упражнение 18. Докажите это утверждение.
Итак, предположим, что старший член x1x2...xn присутствует в fn с ненулевым коэффициентом α. Оказывается, что α имеет очень полезное комбинаторное описание. Развернем наш гиперкуб, чтобы на каждом горизонтальном уровне оказались входы с одинаковым количеством единиц, и поменяем цвет вершин с красного на зеленый и наоборот, но только на нечетных уровнях (рис. 7).

Рис. 7
Что произойдет от такой операции? Во-первых, разрез Сut(fn) превратится в множество монохроматических ребер, т. е. таких, у которых оба конца покрашены в один цвет. Тем самым, если мы рассмотрим подграфы Gn, Rn, индуцированные зелеными и красными (в новой раскраске!) вершинами соответственно, то s(fn) станет не чем иным, как max(Δ(Gn), Δ(Rn)) где Δ(G)– максимальная степень вершины в графе G.
Оказывается, что коэффициент D просто измеряет «несбалансированность» нашей новой раскраски. Более точно, если gn = |V(Gn)| и rn |V(R)| — количества «новых» зеленых и красных вершин, то имеет место соотношение
\(g_n-r_n=\alpha \cdot 2^n\).
Для нас единственно важно, что gn ≠ rn, т. е. что одно из этих чисел (скажем, gn) строго больше 2n − 1.
Таким образом, нам «всего лишь» осталось показать, что для произвольного подмножества Vn ⊆ {0,1}n с |Vn| > 2n − 1 в индуцированном этим подмножеством графе Hn есть вершина степени ≥ n1/2.
Упражнение 19. Покажите, что это утверждение станет неверным, если неравенство |Vn| > 2n − 1 заменить на нестрогое.
Это и есть сведение Готсмана–Линиала. Для полноты картины отметим, что оно работает в обе стороны, и если в выделенном курсивом утверждении заменить n1/2 на nε для произвольной константы ε, то получится еще одна переформулировка гипотезы о блочной чувствительности.
Итак, нижняя оценка на максимальную степень Hn и есть то, что доказывает Хуан. Доказательство несложно для понимания, но использует некоторые элементарные (на уровне первого курса любого математического факультета) факты из линейной алгебры. Строго их формулировать, а тем более доказывать, у нас возможности нет, но некоторое представление, о чем идет речь, мы дать можем.
Матрицей называется квадратная таблица A размера N × N, состоящая из чисел ai,j (1 ≤ i ≤ N, 1 ≤ j ≤ N). Матрица A называется симметричной, если ai,j = aj,I для всех i, j. На картинке это означает, что матрица не изменится при отражении относительно главной диагонали, идущей из левого верхнего в правый нижний угол (рис. 8). В оставшейся части статьи нас будут интересовать исключительно симметрические матрицы.

Рис. 8
Вектор размерности N — это столбец X высоты N, также состоящий из чисел xj (1 ≤ j ≤ N). Матрицу A размера N × N всегда можно умножить на вектор той же размерности N; получится новый вектор, который обозначается через AX. В i-й позиции этого вектора помещается значение суммы ai,1x1 + ... + ai,NxN; пример такого вычисления приведен на рисунке 8.
Этот пример интересен еще и потому, что вектор AX оказывается гомотетичен исходному вектору X, т. е. существует такое число λ, что (AX)i = λxi для всех 1 ≤ i ≤ N, или, в векторных обозначениях, AX λX. Векторы, обладающие этим замечательным свойством, называются собственными (для матрицы A), а «коэффициент гомотетии»3 λ — собственным значением, соответствующим собственному вектору X. У каждой матрицы есть тривиальный собственный вектор, а именно, состоящий из одних нулей нулевой вектор, но на первый взгляд непонятно, почему у A непременно должны быть какие-то другие.
На самом деле у произвольной (т. е. не обязательно симметрической) матрицы ихвполне может и не оказаться, и для полного понимания картины необходимо привлекать комплексные числа. Но для симметрических матриц все существенно проще: всякая такая матрица обладает полным набором X1,...XN линейно независимых (cм. следующий абзац) собственных векторов. Так, например, наша матрица A на рисунке 8, помимо уже известного нам собственного вектора X = X1 обладает еще двумя, X2 и X3. Тем самым у нас также появляется набор собственных значений λ1,..., λN, соответствующих этим собственным векторам, причем (все это надо доказывать, конечно) с точностью до перестановки этот набор зависит только от матрицы A и называется ее спектром. В нашем примере спектр матрицы состоит из чисел (5,−1,−1); обратите внимание, что в нем появляются не только отрицательные числа, но и кратные значения, т. е. одному и тому же собственному значению могут соответствовать несколько (линейно независимых!) собственных векторов.
В заключение нашего краткого экскурса в линейную алгебру скажем, как мы уже обещали, несколько слов про теорию размерности. Векторы X1,...,XM размерности N называются линейно независимыми, если не существует никакой нетривиальной (т. е. такой, в которой хотя бы одно из αi отлично от 0) линейной комбинации α1X1 + ... + αMXM, равной нулевому вектору. Число линейно независимых векторов M в такой системе не превосходит размерности N, и в случае M = N система линейно независимых векторов называется базисом. Базисы можно также охарактеризовать в противоположных (или, как часто говорят математики, двойственных) терминах. Именно, система X1,...,XN N-мерных векторов является базисом тогда и только тогда, когда любой другой N-мерный вектор Y можно выразить в виде линейной комбинации α1X1 + ... αNXN.
Упражнения
20. Докажите, что если X1,...,XN ... — базис, то всякий N-мерный вектор обладает единственным представлением вида α1X1 + ... αNXN.
21. Проверьте, что векторы X1, X2, X3 на рисунке 8 образуют базис.
Вернемся к доказательству выделенного курсивом утверждения перед упражнением 19. В качестве первого шага Хуан конструирует специальную симметрическую матрицу An размера N x N, где N = 2n, строки и столбцы которой занумерованы всеми вершинами гиперкуба x, y (а не только элементами Vn). Все элементы в этой матрице равны 0, 1 или −1 , причем An(x,y) = 0 тогда и только тогда, когда x и y не соединены ребром (в частности, An (x,x) = 0 на диагонали).
Если бы вхождений −1 в матрице An не было вообще, то она называлась бы матрицей смежности (гиперкуба); это очень важный объект в теории графов. Ее спектр хорошо известен, но он не тот, что нам нужен. Путем замены 1 на −1 в правильным образом выбранных местах удается добиться того, что спектр будет состоять ровно из N/2 значений n1/2 и N/2 значений −n1/2.
Далее, множество вершин Vn определяет симметрическую подматрицу Bn в An. Эта подматрица имеет большой размер, и мы хотим вывести отсюда какое-нибудь нетривиальное заключение про ее спектр. Слегка упрощая доказательство Хуана, рассмотрим систему, состоящую из N/2 линейно независимых собственных векторов X1,...,XN/2 матрицы An, соответствующих собственному значению n1/2 , а также векторов Yυ , для каждого υ ∈ Vn, в которых в υ-й позиции стоит 1, а все остальные позиции заполнены нулями. Векторов в этой системе строго больше, чем N, поэтому базисом она быть не может. Следовательно, существует нетривиальное равенство вида \(\alpha_1X^1+...+\alpha_{N/2}X^{N/2}+\sum {_{\upsilon \in V_n}} \beta_\upsilon Y^\upsilon =0\); легко понять (проверьте!), что тогда \(\sum {_{\upsilon \in V_n}} \beta_\upsilon Y^\upsilon\) будет нетривиальным собственным вектором матрицы Bn, и ему все еще соответствует собственное значение n1/2.
Наконец доказывается, что максимальная степень в графе Hn не меньше, чем любое собственное значение матрицы Bn. Если бы отрицательных вхождений −1 в матрице Bn не было (т. е. Bn была бы просто матрицей смежности), то этот факт широко известен и не менее широко применятся в теории графов. Замена некоторых 1 на −1 этому рассуждению только помогает, и это легко проверяется.
Упражнение 22. Пусть G — произвольный граф с множеством вершин {1,2,...,N} и A — произвольная симметрическая матрица размера N x N такая, что ai,j, = 0, если i и j не соединены ребром, и ai,j, = ±1, если соединены. Докажите, что всякое собственное значение λ матрицы A не превосходит максимальной степени Δ(G) графа G.
Вот собственно и все.
В заключение хочется отметить, что важные математические открытия происходят по-разному. Бывает, что решение требует построения глубоких и важных теорий, усилий нескольких поколений математиков и т. п. А бывает, как в нашем случае, что все, что для этого требуется, — это одна красивая и неожиданная идея. Прелесть математики (одна из многих) состоит в ее непредсказуемости: предугадать развитие событий заранее совершенно невозможно.
Литература:
1. Huang H. Induced subgraphs of hypercubes and a proof of the sensitivity conjecture. — Annals of Mathematics, 190(3):949–955, 2019.
2. Разборов А.А. Теория сложности. В книге: Математическая составляющая, 2-е изд. — М.: Математические этюды, 2019.
3. Hatami P., Kulkarni R. and Pankratov D. Variations on the sensitivity conjecture. — Theory of Computing Library, Graduate Surveys, 4:1–27, 2011.
1 Здесь стоит напомнить, что 1 и 0 могут рассматриваться не только как логические константы ИСТИНА и ЛОЖЬ, но и просто как вещественные числа.
2 Термин «вход» будет иногда использоваться в дальнейшем в качестве сокращения для «входное слово x ∈ {0,1}n».
3 Коэффициент λ вполне может быть нулевым или отрицательным!
Рис. 1