Продвинутые комбинаторные методы в Theoretical Computer Science

Курс посвящен современному математическому аппарату комбинаторики, применяемому в теоретической информатике и анализе алгоритмов. Вы освоите аналитическую комбинаторику, вероятностный и полиномиальный методы, а также экстремальные структуры для строгих доказательств. Программа ориентирована на подготовку к исследовательской деятельности и решению задач на стыке дискретной математики и теории сложности.

Производящие функции и символический метод

Производящие функции и символический метод

Сколько существует различных корневых деревьев с nn вершинами, в которых каждая внутренняя вершина имеет степень не более трёх? Попытка решить эту задачу прямым подсчётом через рекуррентные соотношения быстро заводит в тупик: выписывание сумм сверток, индексов ветвления и граничных условий превращает комбинаторный анализ алгоритма в громоздкую техническую рутину. В теоретическом Computer Science подобные задачи возникают повсеместно — от подсчёта неизоморфных синтаксических деревьев и анализа структур данных до оценки распределения времени работы рандомизированных алгоритмов.

Классический комбинаторный анализ долгое время опирался на ad-hoc трюки и манипуляции с индексами. Революция произошла, когда комбинаторика объединилась с абстрактной алгеброй и комплексным анализом в рамках символического метода, формализованного Филиппом Флажоле и Робертом Седжвиком.

Филипп Флажоле

Символический метод переносит фокус с поиска явной формулы для nn-го элемента последовательности на алгебраическую спецификацию самого комбинаторного класса. Вместо решения рекурренсий вы строите грамматику структуры данных, а метод механически транслирует её в функциональное уравнение над производящей функцией.

Кольцо формальных степенных рядов: забываем о сходимости

В алгоритмическом анализе производящая функция — это не аналитическая функция в смысле вещественного анализа, а «бесконечная бельевая верёвка», на которую мы развешиваем коэффициенты последовательности.

Пусть A\mathcal{A} — комбинаторный класс, то есть счётное множество дискретных объектов, снабжённое функцией размера :AZ0|\cdot| : \mathcal{A} \to \mathbb{Z}_{\geq 0}, причём для каждого n0n \geq 0 прообраз An={αA:α=n}\mathcal{A}_n = \{\alpha \in \mathcal{A} : |\alpha| = n\} конечен. Число объектов размера nn обозначается an=Ana_n = |\mathcal{A}_n|.

Обыкновенной производящей функцией (Ordinary Generating Function, OGF) последовательности {an}n0\{a_n\}_{n \geq 0} называется формальный степенной ряд:

A(z)=n=0anznA(z) = \sum_{n=0}^{\infty} a_n z^n

— Филипп Флажоле, Роберт Седжвик, «Analytic Combinatorics»

Формальные степенные ряды образуют коммутативное кольцо C[[z]]\mathbb{C}[[z]] относительно стандартных операций сложения и произведения Коши:

(A+B)(z)=n=0(an+bn)zn,(AB)(z)=n=0(k=0nakbnk)zn(A + B)(z) = \sum_{n=0}^\infty (a_n + b_n) z^n, \quad (A \cdot B)(z) = \sum_{n=0}^\infty \left( \sum_{k=0}^n a_k b_{n-k} \right) z^n

В кольце C[[z]]\mathbb{C}[[z]] ряд A(z)A(z) обратим тогда и только тогда, когда его свободный член отличен от нуля (a00a_0 \neq 0). Вопрос радиуса сходимости ряда на этом этапе не имеет значения: топология формальных рядов задаётся ультраметрикой, где ряды считаются «близкими», если они совпадают до высокого порядка zmz^m.

Символический метод для неразмеченных структур

Символический метод устанавливает изоморфизм между операциями над комбинаторными классами и алгебраическими операциями над их OGF. Пусть A\mathcal{A} и B\mathcal{B} — неразмеченные комбинаторные классы с OGF A(z)A(z) и B(z)B(z) соответственно. Введём нейтральный объект размера 0, обозначаемый ϵ\epsilon (ряд 11), и атомарный объект размера 1, обозначаемый Z\mathcal{Z} (ряд zz).

Основные комбинаторные конструкторы транслируются в функциональные уравнения по строгим правилам:

  1. Дизъюнктное объединение (Union): A=BC\mathcal{A} = \mathcal{B} \cup \mathcal{C} (где BC=\mathcal{B} \cap \mathcal{C} = \emptyset). Каждый объект берётся либо из B\mathcal{B}, либо из C\mathcal{C}.

    A(z)=B(z)+C(z)A(z) = B(z) + C(z)

  2. Декартово произведение (Cartesian Product): A=B×C\mathcal{A} = \mathcal{B} \times \mathcal{C}. Размер пары (β,γ)(\beta, \gamma) аддитивен: (β,γ)=β+γ|(\beta, \gamma)| = |\beta| + |\gamma|.

    A(z)=B(z)C(z)A(z) = B(z) \cdot C(z)

  3. Последовательность (Sequence): A=Seq(B)={ϵ}B(B×B)\mathcal{A} = \operatorname{Seq}(\mathcal{B}) = \{\epsilon\} \cup \mathcal{B} \cup (\mathcal{B} \times \mathcal{B}) \cup \dots, при условии, что в B\mathcal{B} нет объектов размера 0 (иначе в каждом размере окажется бесконечно много элементов).

    A(z)=k=0B(z)k=11B(z)A(z) = \sum_{k=0}^\infty B(z)^k = \frac{1}{1 - B(z)}

  4. Множество (Multiset / Powerset): выбор неупорядоченных коллекций элементов. Для мультимножеств без ограничений кратности:

    A(z)=MSet(B)=exp(k=1B(zk)k)A(z) = \operatorname{MSet}(\mathcal{B}) = \exp\left( \sum_{k=1}^\infty \frac{B(z^k)}{k} \right)

Канонический пример: бинарные деревья и числа Каталана

Рассмотрим класс T\mathcal{T} неразмеченных бинарных деревьев, где размер дерева равен числу его внутренних вершин (атомов Z\mathcal{Z}). Внутренняя вершина содержит ровно двух потомков, каждый из которых — либо лист ϵ\epsilon размера 0, либо снова полное бинарное поддерево.

Спецификация класса записывается в одну строчку:

T=Z×T×T{ϵ}\mathcal{T} = \mathcal{Z} \times \mathcal{T} \times \mathcal{T} \cup \{\epsilon\}

По словарю символического метода немедленно получаем алгебраическое уравнение на OGF T(z)T(z):

T(z)=zT(z)2+1T(z) = z T(z)^2 + 1

Это квадратное уравнение относительно формального ряда T(z)T(z). Его корни:

T(z)=1±14z2zT(z) = \frac{1 \pm \sqrt{1 - 4z}}{2z}

Так как при z=0z = 0 дерево размера 0 ровно одно (пустое дерево), свободный член должен равняться T(0)=1T(0) = 1. Раскладывая 14z\sqrt{1 - 4z} по формуле обобщённого бинома Ньютона:

(14z)1/2=1+n=1(1/2n)(4z)n=12zn=22n(2n2n1)zn(1 - 4z)^{1/2} = 1 + \sum_{n=1}^\infty \binom{1/2}{n} (-4z)^n = 1 - 2z - \sum_{n=2}^\infty \frac{2}{n} \binom{2n-2}{n-1} z^n

Выбирая знак «минус» перед корнем для обеспечения T(0)=1T(0) = 1, получаем явное выражение для коэффициента [zn]T(z)[z^n] T(z) при n0n \geq 0:

tn=[zn]T(z)=1n+1(2nn)=Cnt_n = [z^n] T(z) = \frac{1}{n+1} \binom{2n}{n} = C_n

Мы получили числа Каталана без единого индуктивного рассуждения или разворачивания рекуррентных сумм.

Размеченные структуры и экспоненциальные производящие функции (EGF)

В алгоритмах на графах вершины обычно различимы: граф на вершинах {1,2,,n}\{1, 2, \dots, n\} принципиально отличается от графа, полученного перестановкой этих меток. Для таких систем декартово произведение не работает: при объединении двух структур размера kk и nkn-k необходимо распределить исходные nn меток между компонентами (nk)\binom{n}{k} способами.

Для учета факториального роста конфигураций меток используют экспоненциальные производящие функции.

Экспоненциальной производящей функцией (EGF) класса A\mathcal{A} называется формальный ряд:

A(z)=n=0anznn!A(z) = \sum_{n=0}^\infty a_n \frac{z^n}{n!}

где ana_n — число размеченных объектов размера nn.

Помеченное произведение и экспоненциальная формула

Пусть A=BC\mathcal{A} = \mathcal{B} \star \mathcal{C} — помеченное произведение (Labeled Product), в котором пара (β,γ)(\beta, \gamma) получает разделение множества меток размера β+γ|\beta| + |\gamma| всеми возможными способами с сохранением относительного порядка меток внутри β\beta и γ\gamma.

Число таких объектов размера nn:

an=k=0n(nk)bkcnka_n = \sum_{k=0}^n \binom{n}{k} b_k c_{n-k}

Разделив обе части на n!n!, получаем:

ann!=k=0n(bkk!)(cnk(nk)!)\frac{a_n}{n!} = \sum_{k=0}^n \left( \frac{b_k}{k!} \right) \left( \frac{c_{n-k}}{(n-k)!} \right)

Это в точности произведение Коши для EGF:

A(z)=B(z)C(z)A(z) = B(z) \cdot C(z)

Сравним поведение ключевых операций в неразмеченном и размеченном мирах:

Конструкция Неразмеченный мир (OGF) Размеченный мир (EGF)
Объединение BC\mathcal{B} \cup \mathcal{C} B(z)+C(z)B(z) + C(z) B(z)+C(z)B(z) + C(z)
Произведение B×C\mathcal{B} \times \mathcal{C} vs BC\mathcal{B} \star \mathcal{C} B(z)C(z)B(z) \cdot C(z) B(z)C(z)B(z) \cdot C(z)
Последовательность Seq(B)\operatorname{Seq}(\mathcal{B}) 11B(z)\frac{1}{1 - B(z)} 11B(z)\frac{1}{1 - B(z)}
Множество Set(B)\operatorname{Set}(\mathcal{B}) exp(k1B(zk)k)\exp\left(\sum_{k \geq 1} \frac{B(z^k)}{k}\right) exp(B(z))\exp(B(z))
Цикл Cyc(B)\operatorname{Cyc}(\mathcal{B}) k1ϕ(k)kln11B(zk)\sum_{k \geq 1} \frac{\phi(k)}{k} \ln \frac{1}{1 - B(z^k)} ln11B(z)\ln \frac{1}{1 - B(z)}

Фундаментальным результатом для размеченных структур является экспоненциальная формула: если сложный объект представляет собой неупорядоченное множество связных компонент (G=Set(C)\mathcal{G} = \operatorname{Set}(\mathcal{C})), то их EGF связаны соотношением:

G(z)=exp(C(z))G(z) = \exp(C(z))

Применение: подсчёт связных размеченных графов

Обозначим через gng_n общее число размеченных простых графов на nn вершинах. Поскольку каждое из (n2)\binom{n}{2} возможных ребер может либо присутствовать, либо отсутствовать:

gn=2(n2)g_n = 2^{\binom{n}{2}}

Соответствующая EGF имеет вид:

G(z)=n=02(n2)znn!=1+z+2z22!+8z33!+64z44!+G(z) = \sum_{n=0}^\infty 2^{\binom{n}{2}} \frac{z^n}{n!} = 1 + z + 2 \frac{z^2}{2!} + 8 \frac{z^3}{3!} + 64 \frac{z^4}{4!} + \dots

Любой граф однозначно раскладывается в неупорядоченное множество своих связных компонент: G=Set(C)\mathcal{G} = \operatorname{Set}(\mathcal{C}), где C\mathcal{C} — класс связных графов. Применяя экспоненциальную формулу, получаем:

G(z)=exp(C(z))    C(z)=lnG(z)G(z) = \exp(C(z)) \implies C(z) = \ln G(z)

Дифференцируя обе части по zz, получаем удобную формулу для вычисления коэффициентов cnc_n:

C(z)=G(z)G(z)    C(z)G(z)=G(z)C'(z) = \frac{G'(z)}{G(z)} \implies C'(z) G(z) = G'(z)

Приравнивая коэффициенты при zn1/(n1)!z^{n-1} / (n-1)!, выводим точное рекуррентное соотношение для числа связных графов:

cn=2(n2)1nk=1n1k(nk)2(nk2)ckc_n = 2^{\binom{n}{2}} - \frac{1}{n} \sum_{k=1}^{n-1} k \binom{n}{k} 2^{\binom{n-k}{2}} c_k

Алгоритмическая сложность вычисления первых NN членов последовательности cnc_n «в лоб» через эту рекурренсию составляет O(N2)O(N^2) операций. Однако, используя алгоритмы быстрого умножения полиномов (FFT) и вычисление формального логарифма lnG(z)(modzN+1)\ln G(z) \pmod{z^{N+1}}, значения {c1,,cN}\{c_1, \dots, c_N\} вычисляются за O(NlogN)O(N \log N) арифметических операций.

Системы нелинейных уравнений и теорема Лагранжа об обращении рядов

В структурах данных рекурсивные типы часто приводят к неявным функциональным уравнениям вида Y(z)=zΦ(Y(z))Y(z) = z \Phi(Y(z)). Для извлечения явных коэффициентов из таких уравнений используется мощный инструмент комбинаторного анализа — формула обращения Лагранжа (Lagrange Inversion Formula, LIF).

Теорема (Формула обращения Лагранжа): Пусть Φ(w)\Phi(w) — формальный степенной ряд с Φ(0)0\Phi(0) \neq 0, и пусть Y(z)Y(z) удовлетворяет уравнению Y(z)=zΦ(Y(z))Y(z) = z \Phi(Y(z)). Тогда для любой формальной функции H(w)H(w):

[zn]H(Y(z))=1n[wn1](H(w)Φ(w)n)[z^n] H(Y(z)) = \frac{1}{n} [w^{n-1}] \left( H'(w) \Phi(w)^n \right)

В частности, при H(w)=wH(w) = w:

[zn]Y(z)=1n[wn1]Φ(w)n[z^n] Y(z) = \frac{1}{n} [w^{n-1}] \Phi(w)^n

Пример: kk-ичные деревья и обобщённые пути

Пусть задан класс kk-ичных корневых деревьев A\mathcal{A}, где каждая вершина либо лист, либо содержит ровно kk упорядоченных поддеревьев. Размер объекта — число внутренних узлов.

Спецификация: A={ϵ}Z×Ak\mathcal{A} = \{\epsilon\} \cup \mathcal{Z} \times \mathcal{A}^k. Вычтем пустое дерево, положив Y(z)=A(z)1Y(z) = A(z) - 1:

Y(z)=z(1+Y(z))kY(z) = z (1 + Y(z))^k

Здесь Φ(w)=(1+w)k\Phi(w) = (1 + w)^k. Применяя формулу Лагранжа напрямую:

[zn]Y(z)=1n[wn1](1+w)kn=1n(knn1)=1(k1)n+1(knn)[z^n] Y(z) = \frac{1}{n} [w^{n-1}] (1 + w)^{k n} = \frac{1}{n} \binom{k n}{n - 1} = \frac{1}{(k - 1)n + 1} \binom{k n}{n}

Мы мгновенно получили обобщённые числа Фусса — Каталана для любого k2k \geq 2.

От комбинаторики к алгоритмам: мост к асимптотическому анализу

Символический метод предоставляет точные представления для производящих функций исследуемых структур. Однако для инженеров и исследователей в Theoretical Computer Science точное комбинаторное выражение вроде 12n+1(3nn)\frac{1}{2n+1}\binom{3n}{n} часто бывает лишь промежуточным шагом: нас интересует асимптотическое поведение при nn \to \infty, предел распределения глубины поиска или вероятность появления гигантской компоненты в графе.

Здесь вступает в силу фундаментальный принцип: аналитические свойства производящей функции как функции комплексного переменного определяют асимптотику её коэффициентов. Ближайшая к началу координат особая точка определяет экспоненциальный порядок роста, а характер особенности (полюс, ветвление, существенная особенность) диктует субэкспоненциальный предфактор nαn^\alpha.

Эту связь между геометрией сингулярностей на комплексной плоскости и поведением алгоритмов на больших входах детально изучает аналитическая комбинаторика, к которой мы перейдём в следующей главе.

Аналитическая комбинаторика и асимптотика алгоритмов

Аналитическая комбинаторика и асимптотика алгоритмов

Почему среднее время работы алгоритма на случайном входе почти всегда подчиняется гладким степенным законам с множителями вроде nlognn \log n, n3/2n^{3/2} или 2n/n2^n / \sqrt{n}, даже если точная комбинаторная формула содержит громоздкие суммы знакопеременных биномиальных коэффициентов? В дискретной математике поиск замкнутой формы для nn-го члена последовательности часто заходит в тупик: рекуррентные соотношения для ветвящихся структур данных, случайных графов или протоколов трансляции порождают неразрешимые в элементарных функциях комбинаторные уравнения.

Однако производящая функция A(z)A(z), рассмотренная не просто как формальный ряд из C[[z]]\mathbb{C}[[z]], а как аналитическая функция комплексного переменного, обладает удивительным свойством: глобальное асимптотическое поведение её коэффициентов [zn]A(z)[z^n] A(z) при nn \to \infty полностью закодировано в локальной геометрии её ближайших к нулю особенностей.

Переход от чисто формальных манипуляций символического метода к геометрии комплексной плоскости составляет ядро аналитической комбинаторики. Эта дисциплина позволяет превращать функциональные уравнения непосредственно в точные асимптотические оценки времени работы алгоритмов, минуя необходимость вычислять точные формулы.

Портрет Филиппа Флажоле

Доминирующие сингулярности и первый закон асимптотики

Пусть комбинаторный класс задан производящей функцией A(z)=n0anznA(z) = \sum_{n \geq 0} a_n z^n. Если рассматривать этот ряд как функцию комплексного переменного zCz \in \mathbb{C}, то фундаментальной характеристикой ряда становится его радиус сходимости RR:

R=sup{r0n=0anrn<}R = \sup \{ r \geq 0 \mid \sum_{n=0}^{\infty} |a_n| r^n < \infty \}

По формуле Коши — Адамара, величина RR напрямую связана с верхним пределом коэффициентов: R1=lim supnan1/nR^{-1} = \limsup_{n \to \infty} |a_n|^{1/n}. Отсюда вытекает фундаментальный принцип аналитической комбинаторики: экспоненциальный масштаб роста последовательности ana_n определяется исключительно расстоянием от начала координат до ближайшей особой точки (сингулярности) функции A(z)A(z).

Теорема Прингсхейма. Если степенной ряд A(z)=n0anznA(z) = \sum_{n \geq 0} a_n z^n имеет неотрицательные вещественные коэффициенты (an0a_n \geq 0) и радиус сходимости R<R < \infty, то точка z=Rz = R обязательно является особой точкой функции A(z)A(z).

Поскольку в комбинаторике коэффициенты ana_n представляют собой число дискретных объектов или их суммарный вес, условие an0a_n \geq 0 выполняется автоматически. Это гарантирует, что среди всех сингулярностей на границе круга сходимости z=R|z| = R всегда присутствует положительная вещественная точка z=Rz = R.

Особые точки функции A(z)A(z), лежащие на границе круга сходимости z=R|z| = R, называются доминирующими сингулярностями (dominant singularities). Их положение задаёт экспоненциальный рост:

an=Rnθ(n)a_n = R^{-n} \cdot \theta(n)

где множитель θ(n)\theta(n) растёт сублинейно по экспоненциальной шкале: lim supnθ(n)1/n=1\limsup_{n \to \infty} |\theta(n)|^{1/n} = 1. Этот множитель называется субэкспоненциальным множителем и обычно имеет вид Cnα(logn)βC \cdot n^{\alpha} (\log n)^{\beta}.

Характер и поведение функции в окрестности доминирующей сингулярности однозначно определяют вид субэкспоненциального множителя θ(n)\theta(n).

Тип доминирующей сингулярности в точке ρ\rho Локальное поведение A(z)A(z) при zρz \to \rho Асимптотика коэффициентов [zn]A(z)[z^n]A(z) Типичные структуры в CS
Простой полюс c1z/ρ\frac{c}{1 - z/\rho} cρnc \cdot \rho^{-n} Регулярные языки, пути в детерминированных конечных автоматах
Полюс порядка kk c(1z/ρ)k\frac{c}{(1 - z/\rho)^k} c(k1)!nk1ρn\frac{c}{(k-1)!} \cdot n^{k-1} \rho^{-n} Размещения с ограничениями, композиции слов
Алгебраическая ветвь (степень 1/2-1/2) c(1zρ)1/2c \left(1 - \frac{z}{\rho}\right)^{-1/2} cπnρn\frac{c}{\sqrt{\pi n}} \cdot \rho^{-n} Корневые деревья, блуждания, триангуляции
Алгебраическая ветвь (степень 1/21/2) c(1zρ)1/2c \left(1 - \frac{z}{\rho}\right)^{1/2} c2πn3ρn-\frac{c}{2\sqrt{\pi n^3}} \cdot \rho^{-n} Неразмеченные бинарные деревья, деревья поиска
Логарифмическая ln11z/ρ\ln \frac{1}{1 - z/\rho} 1nρn\frac{1}{n} \cdot \rho^{-n} Неориентированные циклы, компоненты перестановок
Существенная сингулярность / целая функция exp(z)\exp(z) или exp(11z)\exp\left(\frac{1}{1-z}\right) Требуется метод перевала (быстрее любой экспоненты) Множества графов, разбиения чисел, числа Белла

Мероморфный анализ: вычеты и полюса

Если функция A(z)A(z) продолжается аналитически за пределы круга сходимости zR|z| \leq R всюду, кроме изолированных полюсов, она называется мероморфной. Для мероморфных функций точное интегральное представление Коши:

an=[zn]A(z)=12πiγA(z)zn+1dza_n = [z^n] A(z) = \frac{1}{2\pi i} \oint_{\gamma} \frac{A(z)}{z^{n+1}} \, dz

где γ\gamma — замкнутый контур вокруг нуля, лежащий внутри круга сходимости, превращается в вычислительный механизм через деформацию контура.

Если раздувать контур γ\gamma наружу до окружности радиуса R1>RR_1 > R, захватывая полюса ρ1,ρ2,,ρm\rho_1, \rho_2, \dots, \rho_m, то по теореме о вычетах:

an=j=1mRes(A(z)zn+1,z=ρj)+12πiz=R1A(z)zn+1dza_n = -\sum_{j=1}^{m} \operatorname{Res}\left( \frac{A(z)}{z^{n+1}}, z = \rho_j \right) + \frac{1}{2\pi i} \oint_{|z| = R_1} \frac{A(z)}{z^{n+1}} \, dz

Интеграл по внешнему контуру ограничен величиной O(R1n)O(R_1^{-n}). Так как R1>ρjR_1 > |\rho_j|, этот интеграл экспоненциально меньше вклада полюсов и уходит в остаточный член.

Если в точке ρ\rho функция имеет простой полюс с вычетом Res(A(z),z=ρ)=cρ\operatorname{Res}(A(z), z = \rho) = -c \cdot \rho, то локально A(z)c1z/ρA(z) \sim \frac{c}{1 - z/\rho}, откуда:

Res(A(z)zn+1,z=ρ)=limzρ(zρ)A(z)zn+1=cρn\operatorname{Res}\left( \frac{A(z)}{z^{n+1}}, z = \rho \right) = \lim_{z \to \rho} (z - \rho) \frac{A(z)}{z^{n+1}} = -c \cdot \rho^{-n}

Следовательно, каждый простой полюс вносит вклад cρnc \cdot \rho^{-n}. Если полюс ρ\rho имеет кратность kk, его вклад равен:

P(n)ρn,гдеP(n)=c(k1)!nk1+O(nk2)P(n) \cdot \rho^{-n}, \quad \text{где} \quad P(n) = \frac{c}{(k-1)!} n^{k-1} + O(n^{k-2})

Пример: строковые префиксы и конечные автоматы

Рассмотрим задачу анализа времени работы алгоритма поиска подстроки. Число слов длины nn над алфавитом мощности Σ\Sigma, не содержащих заданного запрещённого паттерна, задаётся рациональной производящей функцией A(z)=P(z)/Q(z)A(z) = P(z) / Q(z), где Q(z)Q(z) — характеристический многочлен автомата Ахо — Корасик.

Пусть A(z)=112z+z3A(z) = \frac{1}{1 - 2z + z^3}. Знаменатель обращается в ноль при корнях уравнения z32z+1=0z^3 - 2z + 1 = 0. Заметим, что z=1z = 1 — корень, а остальные два корня находятся факторизацией: (z1)(z2+z1)=0(z - 1)(z^2 + z - 1) = 0.

Корни:

  • ρ0=1\rho_0 = 1;
  • ρ1=1+520.61803\rho_1 = \frac{-1 + \sqrt{5}}{2} \approx 0.61803;
  • ρ2=1521.61803\rho_2 = \frac{-1 - \sqrt{5}}{2} \approx -1.61803.

Ближайшим к нулю является корень ρ10.61803\rho_1 \approx 0.61803. Именно он является доминирующей сингулярностью и задаёт темп роста:

an1Q(ρ1)ρ1(n+1)=123ρ12(1+52)n+1a_n \sim -\frac{1}{Q'(\rho_1)} \rho_1^{-(n+1)} = \frac{1}{2 - 3\rho_1^2} \left( \frac{1 + \sqrt{5}}{2} \right)^{n+1}

Остальные полюса дают экспоненциально затухающие поправки: корень ρ0=1\rho_0 = 1 даёт постоянный член 1n=11^n = 1, а корень ρ2\rho_2 вносит вклад порядка (0.618)n0(-0.618)^n \to 0.

Алгебраические сингулярности и трансферные теоремы Флажоле — Одлыжко

В большинстве нелинейных структур данных (деревья поиска, синтаксические деревья, графы) функциональные уравнения порождают ветвления, приводящие к точкам ветвления корней: A(z)(1z/ρ)αA(z) \sim (1 - z/\rho)^\alpha. Такие особенности не изолированы: в комплексной плоскости требуется разрез (branch cut), поэтому стандартный метод вычетов неприменим напрямую.

Решением стал метод сингулярного анализа Флажоле — Одлыжко (1990). Его ключевая идея: развернуть интегрирование Коши вдоль специального контура, огибающего точку ветвления.

Δ\Delta-область и контур Ганкеля

Для применения аппарата необходимо, чтобы функция A(z)A(z) продолжалась аналитически в область, строго большую круга сходимости, имеющую выемку в форме сектора в окрестности доминирующей точки.

Определение Δ\Delta-области. Область Δ(ϕ,R)\Delta(\phi, R) при R>1R > 1 и 0<ϕ<π/20 < \phi < \pi/2 определяется как:

Δ(ϕ,R)={zCz<R,z1,arg(z1)>ϕ}\Delta(\phi, R) = \{ z \in \mathbb{C} \mid |z| < R, \, z \neq 1, \, |\arg(z - 1)| > \phi \}

Если доминирующая сингулярность находится в точке ρ1\rho \neq 1, область масштабируется преобразованием zz/ρz \mapsto z/\rho.

Вместо окружности контур интегрирования деформируется в так называемый контур Ганкеля γ\gamma, состоящий из четырёх частей:

  1. Дуга большой окружности z=R1>ρ|z| = R_1 > |\rho|.
  2. Два прямолинейных луча, идущих под углом к разрезу от окружности к сингулярности.
  3. Малая окружность радиуса ϵ=1/n\epsilon = 1/n вокруг сингулярности ρ\rho.

При nn \to \infty основной асимптотический вклад в интеграл Коши даёт исключительно малая окрестность радиуса O(1/n)O(1/n) вокруг точки ρ\rho.

Шкала сингулярностей и теорема переноса

Базовой шкалой для сравнения служит биномиальный ряд. Для любого комплексного α{0,1,2,}\alpha \notin \{0, -1, -2, \dots\}:

[zn](1z)α=(1)n(αn)=Γ(n+α)n!Γ(α)nα1Γ(α)(1+α(α1)2n+O(1n2))[z^n] (1 - z)^{-\alpha} = (-1)^n \binom{-\alpha}{n} = \frac{\Gamma(n + \alpha)}{n! \, \Gamma(\alpha)} \sim \frac{n^{\alpha - 1}}{\Gamma(\alpha)} \left( 1 + \frac{\alpha(\alpha - 1)}{2n} + O\left(\frac{1}{n^2}\right) \right)

где Γ(α)\Gamma(\alpha) — гамма-функция Эйлера.

Трансферные теоремы устанавливают, что асимптотическое равенство функций в Δ\Delta-области можно почленно переносить на коэффициенты степенного ряда.

Трансферная теорема Флажоле — Одлыжко. Пусть функция A(z)A(z) аналитична в Δ\Delta-области Δ(ϕ,R)\Delta(\phi, R) с единственной сингулярностью в точке z=1z = 1. Если при z1z \to 1 внутри Δ\Delta:

A(z)=O((1z)α)    [zn]A(z)=O(nα1)A(z) = O\left((1 - z)^{-\alpha}\right) \implies [z^n] A(z) = O\left(n^{\alpha - 1}\right)

Если же A(z)c(1z)αA(z) \sim c (1 - z)^{-\alpha} при z1z \to 1, то:

[zn]A(z)cΓ(α)nα1[z^n] A(z) \sim \frac{c}{\Gamma(\alpha)} \cdot n^{\alpha - 1}

Если сингулярность находится в точке ρ\rho, масштабирование переменной zz/ρz \mapsto z/\rho добавляет множитель ρn\rho^{-n}.

Разбор: асимптотика случайных 2-3 деревьев

В сбалансированных деревьях поиска (например, 2-3 деревьях или B-деревьях) число листьев и структура ветвления описываются нелинейной системой. Пусть производящая функция для числа деревьев некоторого семейства удовлетворяет уравнению:

A(z)=z+12A(z)2+16A(z)3A(z) = z + \frac{1}{2} A(z)^2 + \frac{1}{6} A(z)^3

Перепишем уравнение в виде Φ(z,A)=0\Phi(z, A) = 0. Особая точка возникает там, где производная по неявной переменной обращается в ноль: ΦA=0\frac{\partial \Phi}{\partial A} = 0, то есть:

1A12A2=0    A0=1+30.732051 - A - \frac{1}{2} A^2 = 0 \implies A_0 = -1 + \sqrt{3} \approx 0.73205

Подставляя A0A_0 назад в уравнение, находим радиус сходимости:

ρ=A012A0216A03=3130.24402\rho = A_0 - \frac{1}{2} A_0^2 - \frac{1}{6} A_0^3 = \frac{\sqrt{3} - 1}{3} \approx 0.24402

Разложение Тейлора функции Φ(z,y)\Phi(z, y) в окрестности точки (ρ,A0)(\rho, A_0) не содержит линейного члена по (yA0)(y - A_0):

Φ(z,y)Φz(ρ,A0)(zρ)+122Φy2(ρ,A0)(yA0)2=0\Phi(z, y) \approx -\frac{\partial \Phi}{\partial z}(\rho, A_0) (z - \rho) + \frac{1}{2} \frac{\partial^2 \Phi}{\partial y^2}(\rho, A_0) (y - A_0)^2 = 0

Разрешая относительно y=A(z)y = A(z), получаем разложение типа корневой точки ветвления:

A(z)=A0γ1z/ρ+O(1z/ρ),гдеγ=2Φz2Φy2A(z) = A_0 - \gamma \sqrt{1 - z/\rho} + O(1 - z/\rho), \quad \text{где} \quad \gamma = \sqrt{\frac{2 \frac{\partial \Phi}{\partial z}}{\frac{\partial^2 \Phi}{\partial y^2}}}

Здесь α=1/2\alpha = -1/2 для сингулярной части. Применяя трансферную теорему:

[zn]A(z)γn1/21Γ(1/2)ρn[z^n] A(z) \sim -\gamma \cdot \frac{n^{-1/2 - 1}}{\Gamma(-1/2)} \rho^{-n}

Поскольку Γ(1/2)=2π\Gamma(-1/2) = -2\sqrt{\pi}, знак минус сокращается:

[zn]A(z)γ2πn3/2ρn[z^n] A(z) \sim \frac{\gamma}{2\sqrt{\pi}} \cdot n^{-3/2} \cdot \rho^{-n}

Степенной множитель n3/2n^{-3/2} — универсальный комбинаторный инвариант для любых нециклических древесных структур, следующих схеме неявной функции.

Метод перевала для целых функций и экспоненциальных классов

Сингулярный анализ Флажоле — Одлыжко требует наличия конечной доминирующей сингулярности 0<R<0 < R < \infty. Однако во многих задачах теоретического Computer Science производящие функции являются целыми функциями (R=R = \infty).

Типичный пример — экспоненциальные производящие функции для классов, построенных через конструктор множества Set\operatorname{Set}:

  • Числа Белла BnB_n (число разбиений nn-элементного множества): B(z)=exp(ez1)B(z) = \exp(e^z - 1).
  • Число инволюций InI_n (перестановок, распадающихся только на циклы длины 1 и 2): I(z)=exp(z+z2/2)I(z) = \exp(z + z^2/2).

Здесь R=R = \infty, поэтому an/n!a_n / n! растёт медленнее любой экспоненты cnc^n, а ana_n растёт быстрее n!cnn! c^n.

Геометрия седловой точки

Снова обратимся к интегралу Коши:

an=12πiz=rA(z)zn+1dz=12πrnππA(reiθ)einθdθa_n = \frac{1}{2\pi i} \oint_{|z| = r} \frac{A(z)}{z^{n+1}} \, dz = \frac{1}{2\pi r^n} \int_{-\pi}^{\pi} A(r e^{i\theta}) e^{-i n \theta} \, d\theta

Поскольку A(z)A(z) аналитична во всей плоскости, радиус контура r>0r > 0 можно выбирать произвольно.

Запишем подынтегральное выражение как exp(h(z))\exp(h(z)), где:

h(z)=lnA(z)(n+1)lnzh(z) = \ln A(z) - (n + 1)\ln z

Модуль exp(h(z))|\exp(h(z))| вдоль окружности достигает максимума в точке z=rz = r на положительной вещественной полуоси. Вдоль луча из нуля функция z(n+1)|z^{-(n+1)}| убывает, а A(r)A(r) быстро растёт. Следовательно, на вещественной оси функция h(r)h(r) имеет минимум.

Точка, в которой функция минимальна вдоль одного направления и максимальна вдоль ортогонального, называется седловой точкой (saddle point).

Седловая точка r=rnr = r_n определяется уравнением:

h(r)=0    rA(r)A(r)=n+1nh'(r) = 0 \iff r \frac{A'(r)}{A(r)} = n + 1 \approx n

Величина rA(r)A(r)r \frac{A'(r)}{A(r)} монотонно возрастает от 0 до \infty при r(0,)r \in (0, \infty), поэтому для каждого фиксированного nn существует единственное положительное вещественное решение rnr_n.

Квадратичная аппроксимация (метод Лапласа)

Разложим h(reiθ)h(r e^{i\theta}) в ряд Тейлора по θ\theta в окрестности θ=0\theta = 0:

h(rneiθ)=h(rn)12σn2θ2+O(rn3θ3)h(r_n e^{i\theta}) = h(r_n) - \frac{1}{2} \sigma_n^2 \theta^2 + O(r_n^3 \theta^3)

где коэффициент дисперсии равен:

σn2=d2dθ2lnA(rneiθ)θ=0=rnA(rn)A(rn)+rn2(A(rn)A(rn)(A(rn)A(rn))2)\sigma_n^2 = \left. \frac{d^2}{d\theta^2} \ln A(r_n e^{i\theta}) \right|_{\theta=0} = r_n \frac{A'(r_n)}{A(r_n)} + r_n^2 \left( \frac{A''(r_n)}{A(r_n)} - \left(\frac{A'(r_n)}{A(r_n)}\right)^2 \right)

Подынтегральная функция превращается в гауссов интеграл:

anA(rn)2πrnne12σn2θ2dθ=A(rn)rnn2πσn2a_n \approx \frac{A(r_n)}{2\pi r_n^n} \int_{-\infty}^{\infty} e^{-\frac{1}{2} \sigma_n^2 \theta^2} \, d\theta = \frac{A(r_n)}{r_n^n \sqrt{2\pi \sigma_n^2}}

Пример: асимптотика инволюций в симметрической группе

Инволюции (I2=idI^2 = \operatorname{id}) соответствуют графам автоморфизмов без циклов длиннее 2. Их EGF равна A(z)=exp(z+z2/2)A(z) = \exp(z + z^2/2). Найдем число таких перестановок In=n![zn]A(z)I_n = n! [z^n] A(z).

Уравнение седловой точки:

rA(r)A(r)=r(1+r)=n    r2+rn=0r \frac{A'(r)}{A(r)} = r(1 + r) = n \implies r^2 + r - n = 0

Положительный корень:

rn=1+1+4n2=n12+18n+O(1n)r_n = \frac{-1 + \sqrt{1 + 4n}}{2} = \sqrt{n} - \frac{1}{2} + \frac{1}{8\sqrt{n}} + O\left(\frac{1}{n}\right)

Подставляем rnr_n во вторую производную:

σn2=rn+2rn2=n+rn22n\sigma_n^2 = r_n + 2r_n^2 = n + r_n^2 \approx 2n

Значение функции в седле:

ln(A(rn)rnn)=rn+rn22nlnrn=(n12)+nn2nlnn+O(1)\ln\left( \frac{A(r_n)}{r_n^n} \right) = r_n + \frac{r_n^2}{2} - n \ln r_n = \left(\sqrt{n} - \frac{1}{2}\right) + \frac{n - \sqrt{n}}{2} - n \ln\sqrt{n} + O(1)

Аккуратная подстановка формулы Стирлинга для n!n! приводит к классическому результату Мозера — Ваймана:

In12(ne)n/2exp(n14)I_n \sim \frac{1}{\sqrt{2}} \cdot \left(\frac{n}{e}\right)^{n/2} \cdot \exp\left(\sqrt{n} - \frac{1}{4}\right)

В отличие от элементарных комбинаторных оценок, метод перевала выдаёт точный экспоненциальный множитель exp(n)\exp(\sqrt{n}), который невозможно угадать прямым анализом сумм.

Практический пайплайн: от алгоритма к асимптотике

Сборка рассмотренных методов воедино задаёт сквозной маршрут для решения задач теоретического Computer Science:

Спецификация класса объектов (Symbolic Method)
           │
           ▼
Алгебраическое / дифференциальное уравнение на A(z)
           │
           ▼
Анализ радиуса сходимости R и доминирующих сингулярностей
           │
 ┌─────────┴───────────────────────────────┬─────────────────────────────┐
 │                                         │                             │
 ▼                                         ▼                             ▼
Мероморфная функция              Алгебраическая ветвь               Целая функция (R = ∞)
(полюса на |z| = R)             (внутри Δ-области)               (метод перевала)
 │                                         │                             │
 ▼                                         ▼                             ▼
Метод вычетов                    Трансферные теоремы             Гауссово интегрирование
a_n ~ c · ρ^(-n)                 Флажоле — Одлыжко               в седле r_n A'(r_n)/A(r_n) = n
                                 a_n ~ (c/Γ(α)) n^(α-1) ρ^(-n)   a_n ~ A(r_n) / (r_n^n √(2π σ_n²))

Благодаря аналитической комбинаторике исследование алгоритмических структур избавляется от эвристик: сложность на средних и худших входах выводится непосредственно из комплексных сингулярностей операторов, задающих эти структуры.

Вероятностный метод и локальная лемма Ловаса

Вероятностный метод и локальная лемма Ловаса

Представьте, что требуется раскрасить ребра полного графа KnK_n в два цвета так, чтобы в нем не возникло ни одного одноцветного полного подграфа KkK_k. Прямой перебор конфигураций наталкивается на комбинаторный взрыв 2(n2)2^{\binom{n}{2}}, а точный подсчет числа «правильных» раскрасок через производящие функции не поддается факторизации из-за жестких взаимных ограничений. В 1947 году Пал Эрдёш предложил парадоксальный выход: не строить раскраску детерминированно и не считать точное число объектов, а бросить симметричную монетку для каждого ребра. Если суммарная вероятность того, что хотя бы один подграф KkK_k окажется одноцветным, строго меньше единицы, то искомая раскраска обязана существовать.

Так зародился вероятностный метод: утверждение о существовании дискретной структуры доказывается через демонстрацию строго положительной вероятности ее появления в подходящем вероятностном пространстве.

Границы независимости и примитивный вероятностный метод

Базовый каркас метода опирается на объединение неблагоприятных событий (union bound, неравенство Буля). Пусть задано семейство «плохих» событий A1,A2,,AmA_1, A_2, \dots, A_m в вероятностном пространстве (Ω,F,Pr)(\Omega, \mathcal{F}, \Pr). Нас интересует событие, при котором ни одно из плохих условий не реализовалось:

E=i=1mAi\mathcal{E} = \bigcap_{i=1}^m \overline{A_i}

Если мы докажем, что Pr(E)>0\Pr(\mathcal{E}) > 0, конфигурация существует. По неравенству Буля:

Pr(E)=1Pr(i=1mAi)1i=1mPr(Ai)\Pr(\mathcal{E}) = 1 - \Pr\left(\bigcup_{i=1}^m A_i\right) \geq 1 - \sum_{i=1}^m \Pr(A_i)

Следовательно, достаточным условием существования объекта является i=1mPr(Ai)<1\sum_{i=1}^m \Pr(A_i) < 1.

Это условие великолепно работает, когда плохие события крайне редки или их общее число mm мало. Однако в реальных задачах теоретической информатики число ограничений mm экспоненциально зависит от параметров входа. Если m=106m = 10^6, а каждое Pr(Ai)=104\Pr(A_i) = 10^{-4}, сумма вероятностей заведомо превышает единицу, и union bound не дает никакой информации.

С другой стороны, если бы все события A1,,AmA_1, \dots, A_m были взаимно независимы в совокупности, то положительность вероятности гарантировалась бы тривиально:

Pr(i=1mAi)=i=1m(1Pr(Ai))>0\Pr\left(\bigcap_{i=1}^m \overline{A_i}\right) = \prod_{i=1}^m (1 - \Pr(A_i)) > 0

при условии, что каждое Pr(Ai)<1\Pr(A_i) < 1. В реальных системах полной независимости нет, но зависимости почти всегда носят локальный характер: каждое ограничение зацепляет лишь небольшое число соседей.

Граф зависимостей

Чтобы формализовать локальность взаимосвязей, введем понятие графа зависимостей.

Событие AA взаимно независимо с совокупностью событий {B1,B2,,Bk}\{B_1, B_2, \dots, B_k\}, если для любого подмножества индексов J{1,,k}J \subseteq \{1, \dots, k\} выполняется:

Pr(A  |  jJBj)=Pr(A)\Pr\left(A \;\middle|\; \bigcap_{j \in J} B_j\right) = \Pr(A)

при условии, что Pr(jJBj)>0\Pr(\bigcap_{j \in J} B_j) > 0.

Пусть A1,,AmA_1, \dots, A_m — плохие события. Граф G=(V,E)G = (V, E) с множеством вершин V={1,2,,m}V = \{1, 2, \dots, m\} называется графом зависимостей для этой системы, если для каждого iVi \in V событие AiA_i взаимно независимо с совокупностью всех тех событий {Aj}\{A_j\}, которые не соединены с ii ребром и отличны от него.

Обозначим через Γ(i)={jV(i,j)E}\Gamma(i) = \{j \in V \mid (i, j) \in E\} множество открытых соседей вершины ii, а через Γ+(i)=Γ(i){i}\Gamma^+(i) = \Gamma(i) \cup \{i\} — ее замкнутую окрестность. Таким образом, событие AiA_i взаимно независимо с любой булевой комбинацией событий из подмножества VΓ+(i)V \setminus \Gamma^+(i).

Локальная лемма Ловаса: общая форма

В 1975 году Ласло Ловас совместно с Палом Эрдёшем доказал фундаментальную теорему, устраняющую разрыв между жесткой глобальной независимостью и грубым неравенством Буля.

Портрет Ласло Ловаса

Теорема (Асимметричная лемма Ловаса)

Пусть A1,,AmA_1, \dots, A_m — события с графом зависимостей G=(V,E)G = (V, E). Если существуют вещественные числа x1,x2,,xm[0,1)x_1, x_2, \dots, x_m \in [0, 1) такие, что для каждого i{1,,m}i \in \{1, \dots, m\} выполнено:

Pr(Ai)xijΓ(i)(1xj),\Pr(A_i) \leq x_i \prod_{j \in \Gamma(i)} (1 - x_j),

то вероятность того, что ни одно из плохих событий не произойдет, строго положительна:

Pr(i=1mAi)i=1m(1xi)>0.\Pr\left(\bigcap_{i=1}^m \overline{A_i}\right) \geq \prod_{i=1}^m (1 - x_i) > 0.

Идея доказательства

Ключевой шаг доказательства строится по индукции по размеру подмножества событий. Доказывается более сильное утверждение: для любого ii и любого подмножества индексов S{1,,m}S \subset \{1, \dots, m\}, не содержащего ii, выполняется условная оценка:

Pr(Ai  |  jSAj)xi.\Pr\left(A_i \;\middle|\; \bigcap_{j \in S} \overline{A_j}\right) \leq x_i.

Разбивая SS на соседей S1=SΓ(i)S_1 = S \cap \Gamma(i) и не-соседей S2=SΓ(i)S_2 = S \setminus \Gamma(i) и применяя определение условной вероятности вместе с индукционным предположением, влияние «зависимых» событий контролируется произведением множителей (1xj)1(1 - x_j)^{-1}. Это в точности нейтрализует штраф за локальную связность.

После доказательства индукционного перехода искомая вероятность раскладывается по правилу цепочки:

Pr(i=1mAi)=i=1mPr(Ai  |  j=1i1Aj)i=1m(1xi)>0.\Pr\left(\bigcap_{i=1}^m \overline{A_i}\right) = \prod_{i=1}^m \Pr\left(\overline{A_i} \;\middle|\; \bigcap_{j=1}^{i-1} \overline{A_j}\right) \geq \prod_{i=1}^m (1 - x_i) > 0.

Симметричная форма и задача k-SAT

В большинстве комбинаторных задач условия симметричны: вероятности всех плохих событий ограничены одной величиной pp, а максимальная степень вершин в графе зависимостей не превосходит dd.

Положим во взвешенной лемме все веса равными: xi=xx_i = x. Тогда условие принимает вид px(1x)dp \leq x(1 - x)^d. Чтобы максимизировать допустимое значение pp, исследуем функцию f(x)=x(1x)df(x) = x(1 - x)^d. Ее производная f(x)=(1x)d1(1(d+1)x)f'(x) = (1 - x)^{d-1}(1 - (d + 1)x) обращается в ноль при x=1d+1x = \frac{1}{d + 1}. Подставляя это значение:

f(1d+1)=1d+1(11d+1)d=1d+1(11d+1)(d+1)dd+11e(d+1),f\left(\frac{1}{d+1}\right) = \frac{1}{d+1}\left(1 - \frac{1}{d+1}\right)^d = \frac{1}{d+1}\left(1 - \frac{1}{d+1}\right)^{(d+1)\frac{d}{d+1}} \geq \frac{1}{e(d+1)},

поскольку последовательность (11/k)k1(1 - 1/k)^{k-1} монотонно убывает к 1/e1/e. Отсюда вытекает критерий в удобной замкнутой форме:

Симметричная лемма Ловаса (LLL): Если для всех плохих событий Pr(Ai)p\Pr(A_i) \leq p, максимальная степень графа зависимостей deg(G)d\deg(G) \leq d и выполняется неравенство:

ep(d+1)1,e \cdot p \cdot (d + 1) \leq 1,

то Pr(i=1mAi)>0\Pr(\bigcap_{i=1}^m \overline{A_i}) > 0.

Анализ k-SAT через LLL

Рассмотрим формулу в kk-КНФ, содержащую mm дизъюнктов, где каждый дизъюнкт состоит ровно из kk различных литералов. Допустим, каждый дизъюнкт делит общие переменные максимум с dd другими дизъюнктами.

Присвоим каждой переменной значения {0,1}\{0, 1\} независимо с вероятностью 1/21/2. Плохое событие AiA_i заключается в том, что ii-й дизъюнкт обратился в 0 (все kk входящих в него литералов ложны). Вероятность этого события:

Pr(Ai)=2k.\Pr(A_i) = 2^{-k}.

Событие AiA_i зависит только от тех дизъюнктов AjA_j, которые имеют хотя бы одну общую переменную с ii-м дизъюнктом. По условию число таких соседей не превосходит dd. Следовательно, степень графа зависимостей ограничена числом dd.

По симметричной лемме Ловаса, если:

e2k(d+1)1d2ke1,e \cdot 2^{-k} \cdot (d + 1) \leq 1 \quad \Longleftrightarrow \quad d \leq \frac{2^k}{e} - 1,

то существует набор переменных, удовлетворяющий формуле. Обратите внимание: длина формулы (число дизъюнктов mm) может быть сколь угодно велика — хоть 1010010^{100}. Выполнимость зависит исключительно от степени локального пересечения дизъюнктов dd.

Неконструктивность и алгоритмический барьер

Классическая лемма Ловаса дает строго положительную оценку вероятности существования конфигурации:

Pr(E)i=1m(1xi)i=1mexi=exp(i=1mxi).\Pr(\mathcal{E}) \geq \prod_{i=1}^m (1 - x_i) \approx \prod_{i=1}^m e^{-x_i} = \exp\left(-\sum_{i=1}^m x_i\right).

Если положить xi1d+1x_i \approx \frac{1}{d+1}, то нижняя грань вероятности успеха равна exp(md+1)\exp(-\frac{m}{d+1}). В задаче kk-SAT при mm дизъюнктах эта вероятность составляет величину порядка 2Ω(m)2^{-\Omega(m)}.

Если мы попытаемся найти удовлетворяющее присваивание простым случайным семплированием Монте-Карло (генерировать независимые назначения и проверять формулу), математическое ожидание числа шагов до первого успеха составит Ω(2m)\Omega(2^m). Метод доказывает, что игла в стоге сена есть, но плотность этих игл столь исчезающе мала, что слепой поиск требует экспоненциального времени.

Долгие десятилетия алгоритмизация LLL оставалась открытой проблемой Theoretical Computer Science. Прорыв произошел в работах Робина Мозера (2009) и затем Мозера и Габора Тардоша (2010), предложивших предельно простой и эффективный алгоритмический протокол.

Алгоритм Мозера — Тардоша

Рассмотрим так называемую модель случайных переменных (variable model). Пусть случайность задается набором независимых базовых переменных P={P1,,Pn}\mathcal{P} = \{P_1, \dots, P_n\}. Каждое плохое событие AiA_i детерминированно определяется значением некоторого подмножества переменных vbl(Ai)P\text{vbl}(A_i) \subseteq \mathcal{P}.

События AiA_i и AjA_j смежны в графе зависимостей тогда и только тогда, когда vbl(Ai)vbl(Aj)\text{vbl}(A_i) \cap \text{vbl}(A_j) \neq \emptyset.

Алгоритм Мозера — Тардоша выглядит вызывающе наивно:

def moser_tardos(variables, bad_events):
    # 1. Инициализация: случайно семплируем все переменные
    assignment = sample_independent(variables)

    # 2. Локальный ресемплинг нарушенных ограничений
    while True:
        violated = [A for A in bad_events if is_violated(A, assignment)]
        if not violated:
            return assignment

        # Детерминированно или произвольно выбираем любое нарушенное событие
        C = select_any(violated)

        # Перевыбираем значения только тех переменных, от которых зависит C
        resample_variables(assignment, vbl(C))

Поразительный теоретический результат заключается в том, что этот «жадный» стохастический процесс не зацикливается и сходится чрезвычайно быстро.

Теорема (Мозер, Тардош, 2010)

Если для событий A1,,AmA_1, \dots, A_m выполнены условия асимметричной леммы Ловаса с весами x1,,xm(0,1)x_1, \dots, x_m \in (0, 1), то алгоритм Мозера — Тардоша находит конфигурацию, избегающую всех плохих событий, а математическое ожидание суммарного числа ресемплингов события AiA_i не превосходит:

E[Ni]xi1xi.\mathbb{E}[N_i] \leq \frac{x_i}{1 - x_i}.

Суммарное ожидаемое время работы алгоритма ограничено величиной:

i=1mxi1xiO(m),\sum_{i=1}^m \frac{x_i}{1 - x_i} \leq O(m),

что гарантирует строго полиномиальное (и часто линейное) время поиска.

Деревья свидетелей и сжатие энтропии

Математический аппарат, позволивший доказать теорему Мозера — Тардоша, заслуживает пристального рассмотрения. Он основан на понятии дерева свидетелей (witness tree).

Каждый шаг алгоритма, на котором происходит ресемплинг некоторого события CC, мы фиксируем в журнале выполнения. Если алгоритм работает долго, в журнале накапливается длинная цепочка событий Cσ(1),Cσ(2),,Cσ(t)C_{\sigma(1)}, C_{\sigma(2)}, \dots, C_{\sigma(t)}.

Для каждого шага tt строится корневое дерево с помеченными вершинами:

  1. Корнем дерева является событие Cσ(t)C_{\sigma(t)}.
  2. Двигаясь назад во времени от шага t1t-1 до 11, событие Cσ(k)C_{\sigma(k)} добавляется в дерево как потомок вершины с наивысшей глубиной, с которой оно пересекается по переменным (если пересечений в текущем дереве нет, событие отбрасывается).
Свойство дерева свидетелей Комбинаторный смысл
Изоморфизм процесса Различным шагам ресемплирования одного и того же события соответствуют неизоморфные деревья свидетелей
Вероятностная мера дерева Вероятность того, что фиксированное дерево TT возникнет в процессе выполнения, строго ограничена: Pr(T)vV(T)Pr(Alabel(v))\Pr(T) \leq \prod_{v \in V(T)} \Pr(A_{\text{label}(v)})
Ограничение ветвления Количество возможных деревьев свидетелей размера kk контролируется степенью графа зависимостей

Поскольку распределение степеней ветвления в дереве свидетелей дублирует локальные окрестности графа зависимостей, суммарная вероятность появления дерева свидетелей размера kk убывает экспоненциально по kk, как только вступает в силу условие LLL. Процесс ресемплирования ведет себя как докритический ветвящийся процесс Гальтона — Ватсона. Бесконечная траектория вырождается с вероятностью 1, гарантируя завершение алгоритма.

Более того, этот подход породил метод сжатия энтропии (entropy compression): если бы алгоритм работал слишком долго, мы могли бы восстановить случайные биты генератора через структуру деревьев свидетелей, записав меньше бит, чем их реальная колмогоровская сложность, что невозможно.

Систематизация метода

Локальная лемма Ловаса трансформирует парадигму перечислительной комбинаторики: вместо подсчета структур ana_n через сингулярности рядов мы проверяем разрешимость топологии локальных зависимостей.

  1. Неравенство Буля (Union bound): применимо, когда суммарная вероятность ошибок пренебрежимо мала (pi<1\sum p_i < 1). Зависимости между событиями игнорируются полностью.
  2. Локальная лемма Ловаса (LLL): применима, когда событий много, но они слабо зацеплены друг с другом (deg(G)d\deg(G) \leq d). Требует локального баланса ep(d+1)1e \cdot p \cdot (d + 1) \leq 1.
  3. Алгоритм Мозера — Тардоша: превращает неконструктивное существование конфигурации в LLL в детерминированно быстрый полиномиальный рандомизированный алгоритм для широкого класса ограничений.

Тем самым вероятностный метод завершает формирование фундамента для анализа дискретных структур в Computer Science. Однако вероятностный подход бессилен там, где ограничения перестают быть разреженными и граф зависимостей становится плотным. В этих случаях на сцену выходят алгебраические методы, исследующие множества корней многочленов, к которым мы перейдем далее.

Полиномиальный метод и лемма Шварца — Зиппеля

Полиномиальный метод и лемма Шварца — Зиппеля

Представьте формулу, раскрытие скобок в которой порождает 21002^{100} слагаемых. Чтобы выяснить, сокращаются ли эти слагаемые в тождественный ноль, суперкомпьютеру не хватит времени существования Вселенной. Однако, если подставить в эту формулу случайно выбранные числа, ответ «ноль или не ноль» станет известен за доли секунды с вероятностью ошибки, не превышающей погрешность аппаратного сбоя процессора.

Этот поразительный разрыв между экспоненциальной сложностью символического раскрытия и полиномиальной трудоёмкостью вычисления лежит в сердце полиномиального метода в Computer Science. Если в вероятностном методе Эрдёша случайность служила микроскопом для доказательства существования дискретных объектов, то здесь алгебра превращает дискретные структуры в многочлены, а геометрия их нулей позволяет мгновенно проверять структурные свойства графов, матриц и комбинаторных конфигураций.

Проблема проверки полиномиальной тождественности (PIT)

Центральная абстракция метода — задача Polynomial Identity Testing (PIT). Пусть над полем F\mathbb{F} задан многочлен P(x1,,xn)P(x_1, \dots, x_n) от nn переменных суммарной степени dd. Многочлен задан не списком коэффициентов, а «чёрным ящиком» (oracle) или арифметической схемой: на вход подаётся вектор (α1,,αn)Fn(\alpha_1, \dots, \alpha_n) \in \mathbb{F}^n, на выходе возвращается значение P(α1,,αn)P(\alpha_1, \dots, \alpha_n).

Требуется определить, является ли PP тождественным нулём:

P(x1,,xn)0P(x_1, \dots, x_n) \equiv 0

В кольце F[x1,,xn]\mathbb{F}[x_1, \dots, x_n] тождественное равенство нулю означает, что все коэффициенты многочлена равны нулю. Для одной переменной многочлен степени dd имеет не более dd корней. Следовательно, если ненулевой многочлен обращается в ноль, мы «промахнулись» мимо корня почти во всех точках поля, если размер поля строго больше dd.

Но для многих переменных ситуация радикально меняется: нули многочлена образуют непрерывные гиперповерхности. Например, многочлен P(x,y)=xyP(x, y) = xy зануляется на объединении координатных прямых, содержащем бесконечно много точек. Как оценить вероятность случайно попасть в гиперповерхность нулей?

Лемма Шварца — Зиппеля

Ответ даёт фундаментальная лемма, независимо доказанная Джеком Шварцем, Ричардом Зиппелем и Ричардом Демилло с Ричардом Липтоном в конце 1970-х годов.

Лемма Шварца — Зиппеля

Пусть P(x1,,xn)F[x1,,xn]P(x_1, \dots, x_n) \in \mathbb{F}[x_1, \dots, x_n] — ненулевой многочлен суммарной степени d0d \geq 0 над полем F\mathbb{F}. Пусть SS — произвольное конечное подмножество F\mathbb{F}. Если элементы r1,,rnr_1, \dots, r_n выбраны из SS независимо и равномерно случайно, то:

Pr[P(r1,,rn)=0]dS\Pr\bigl[P(r_1, \dots, r_n) = 0\bigr] \leq \frac{d}{|S|}

Доказательство индукцией по числу переменных

Индукция ведётся по числу переменных nn.

База индукции (n=1n = 1). Ненулевой одномерный многочлен степени dd над полем F\mathbb{F} имеет не более dd корней. Так как r1r_1 выбирается равномерно из множества SS мощности S|S|, вероятность попасть в один из корней составляет не более d/Sd / |S|.

Индукционный переход (n>1n > 1). Предположим, утверждение доказано для всех многочленов от n1n - 1 переменных. Сгруппируем члены многочлена P(x1,,xn)P(x_1, \dots, x_n) по степеням переменной xnx_n:

P(x1,,xn)=i=0kPi(x1,,xn1)xniP(x_1, \dots, x_n) = \sum_{i=0}^k P_i(x_1, \dots, x_{n-1}) x_n^i

где kdk \leq d — наибольшая степень вхождения xnx_n, при которой коэффициент Pk(x1,,xn1)P_k(x_1, \dots, x_{n-1}) не является тождественным нулём в кольце F[x1,,xn1]\mathbb{F}[x_1, \dots, x_{n-1}]. Суммарная степень многочлена PkP_k не превосходит dkd - k.

Введём два события для случайно выбранного вектора (r1,,rn)Sn(r_1, \dots, r_n) \in S^n:

  1. E1E_1: Pk(r1,,rn1)=0P_k(r_1, \dots, r_{n-1}) = 0;
  2. E2E_2: P(r1,,rn)=0P(r_1, \dots, r_n) = 0.

По формуле полной вероятности:

Pr[E2]=Pr[E1]Pr[E2E1]+Pr[¬E1]Pr[E2¬E1]Pr[E1]+Pr[E2¬E1]\Pr[E_2] = \Pr[E_1] \cdot \Pr[E_2 \mid E_1] + \Pr[\neg E_1] \cdot \Pr[E_2 \mid \neg E_1] \leq \Pr[E_1] + \Pr[E_2 \mid \neg E_1]

Оценим слагаемые:

  • Так как PkP_k — ненулевой многочлен от n1n - 1 переменных суммарной степени dk\leq d - k, по предположению индукции:

Pr[E1]dkS\Pr[E_1] \leq \frac{d - k}{|S|}

  • Если событие E1E_1 не наступило, зафиксируем значения r1,,rn1r_1, \dots, r_{n-1}. Тогда многочлен Q(xn)=P(r1,,rn1,xn)Q(x_n) = P(r_1, \dots, r_{n-1}, x_n) становится одномерным многочленом от переменной xnx_n степени в точности kk (так как старший коэффициент Pk(r1,,rn1)0P_k(r_1, \dots, r_{n-1}) \neq 0). По базе индукции вероятность зануления Q(rn)Q(r_n) не превосходит k/Sk / |S|:

Pr[E2¬E1]kS\Pr[E_2 \mid \neg E_1] \leq \frac{k}{|S|}

Складывая две оценки, получаем:

Pr[P(r1,,rn)=0]dkS+kS=dS\Pr[P(r_1, \dots, r_n) = 0] \leq \frac{d - k}{|S|} + \frac{k}{|S|} = \frac{d}{|S|}

Переход доказан.

Алгоритмические приложения: совершенные паросочетания в графах

Лемма Шварца — Зиппеля лежит в основе вероятностного класса сложности co-RP\mathbf{co\text{-}RP} для задачи PIT: если P0P \equiv 0, алгоритм всегда вернёт 0; если P≢0P \not\equiv 0, то, выбрав множество S2d|S| \geq 2d, мы обнаружим ненулевое значение с вероятностью не менее 1/21/2. Повторив тест mm раз, вероятность ошибки можно сделать сколь угодно малой (2m2^{-m}).

Классический триумф этой идеи — сведение комбинаторного поиска максимального паросочетания к вычислению определителя символической матрицы.

Матрица Эдмондса для двудольных графов

Пусть G=(UV,E)G = (U \cup V, E) — двудольный граф с долями одинакового размера U=V=n|U| = |V| = n. Сопоставим каждому ребру e=(ui,vj)Ee = (u_i, v_j) \in E формальную переменную xijx_{ij}. Определим символическую матрицу A(x)A(x) размера n×nn \times n:

Aij={xij,если (ui,vj)E0,иначеA_{ij} = \begin{cases} x_{ij}, & \text{если } (u_i, v_j) \in E \\ 0, & \text{иначе} \end{cases}

Раскроем определитель матрицы A(x)A(x) по определению через перестановки σSn\sigma \in S_n:

det(A(x))=σSnsgn(σ)i=1nAi,σ(i)\det(A(x)) = \sum_{\sigma \in S_n} \operatorname{sgn}(\sigma) \prod_{i=1}^n A_{i, \sigma(i)}

Каждое слагаемое в этой сумме соответствует набору ребер вида (u1,vσ(1)),,(un,vσ(n))(u_1, v_{\sigma(1)}), \dots, (u_n, v_{\sigma(n)}). Если хотя бы одного из этих ребер нет в графе, произведение равно нулю. Если все ребра присутствуют, произведение представляет собой моном от переменных i=1nxi,σ(i)\prod_{i=1}^n x_{i, \sigma(i)}. Поскольку все переменные в матрице уникальны, мономы для различных перестановок σ\sigma состоят из разных наборов переменных и не могут сократиться между собой.

Следовательно: det(A(x))≢0\det(A(x)) \not\equiv 0 тогда и только тогда, когда в графе существует хотя бы одно совершенное паросочетание.

Матрица Татта для произвольных графов

Для произвольного (не обязательно двудольного) графа G=(V,E)G = (V, E) с вершинами V={1,,n}V = \{1, \dots, n\} подход Эдмондса даёт сбои из-за взаимного уничтожения мономов. Уильям Татт предложил использовать кососимметрическую матрицу.

Пусть каждому ребру {i,j}E\{i, j\} \in E сопоставлена переменная xijx_{ij}. Матрица Татта T(G)T(G) задаётся формулой:

Tij={xij,если {i,j}E и i<jxji,если {i,j}E и i>j0,иначеT_{ij} = \begin{cases} x_{ij}, & \text{если } \{i, j\} \in E \text{ и } i < j \\ -x_{ji}, & \text{если } \{i, j\} \in E \text{ и } i > j \\ 0, & \text{иначе} \end{cases}

Теорема Татта (1947)

Граф GG содержит совершенное паросочетание тогда и только тогда, когда полиномиальный определитель det(T(G))\det(T(G)) не равен тождественному нулю в кольце Z[xij]\mathbb{Z}[x_{ij}].

Каждое ненулевое слагаемое определителя кососимметрической матрицы факторизуется на непересекающиеся циклы. Нечётные циклы взаимно сокращаются из-за кососимметричности (Tij=TjiT_{ij} = -T_{ji}), а чётные циклы распадаются на пары паросочетаний. В итоге det(T)\det(T) оказывается полным квадратом многочлена (пфаффиана матрицы), и мономы совершенных паросочетаний входят в него с одинаковыми положительными знаками.

Ласло Ловас

Алгоритм Ловаса

В 1979 году Ласло Ловас соединил теорему Татта с леммой Шварца — Зиппеля, создав рандомизированный алгоритм:

  1. Выбрать простое число p>2np > 2n (или взять конечное поле Fq\mathbb{F}_q с q2nq \geq 2n).
  2. Для каждого ребра {i,j}E\{i, j\} \in E сгенерировать случайное число rijFpr_{ij} \in \mathbb{F}_p и положить Tij=rijT_{ij} = r_{ij}, Tji=rijT_{ji} = -r_{ij}.
  3. Вычислить числовой определитель det(T(r))\det(T(r)) методом Гаусса за время O(n3)O(n^3) над полем Fp\mathbb{F}_p.
  4. Если det(T(r))0\det(T(r)) \neq 0, гарантировать наличие совершенного паросочетания. Если равен нулю — вернуть ответ «паросочетания нет».

Степень многочлена det(T)\det(T) равна в точности числу вершин nn. Согласно лемме Шварца — Зиппеля:

Pr[det(T(r))=0det(T)≢0]np<n2n=12\Pr\bigl[\det(T(r)) = 0 \mid \det(T) \not\equiv 0\bigr] \leq \frac{n}{p} < \frac{n}{2n} = \frac{1}{2}

Этот алгоритм фундаментален не просто своей скоростью на одном процессоре. Вычисление числового определителя параллелизуется (принадлежит классу NC\mathbf{NC}), что даёт параллельный алгоритм проверки существования паросочетания в классе RNC\mathbf{RNC}. Классические комбинаторные методы чередующихся путей (алгоритмы Форда — Фалкерсона, Эдмондса для сжатия цветков) принципиально последовательны и не дают такого параллелизма.

Комбинаторная теорема Алона о нулях (Combinatorial Nullstellensatz)

Лемма Шварца — Зиппеля гарантирует, что ненулевой многочлен не зануляется на случайных векторах из достаточно большого множества. Однако в дискретной математике размеры множеств значений переменных часто жёстко фиксированы и малы (например, цвета в графе или элементы конечной группы). В 1999 году Нога Алон сформулировал мощный инструмент, позволяющий доказывать существование точек незануления на прямых произведениях произвольных дискретных множеств.

Комбинаторная теорема о нулях (Алон, 1999)

Пусть F\mathbb{F} — произвольное поле, и пусть fF[x1,,xn]f \in \mathbb{F}[x_1, \dots, x_n] — многочлен суммарной степени:

deg(f)=i=1nti\deg(f) = \sum_{i=1}^n t_i

где каждое ti0t_i \geq 0 — целое число. Предположим, что коэффициент при мономе i=1nxiti\prod_{i=1}^n x_i^{t_i} в многочлене ff отличен от нуля.

Тогда для любых подмножеств S1,,SnFS_1, \dots, S_n \subseteq \mathbb{F} с мощностями Si>ti|S_i| > t_i существует точка (s1,,sn)S1××Sn(s_1, \dots, s_n) \in S_1 \times \dots \times S_n, в которой:

f(s1,,sn)0f(s_1, \dots, s_n) \neq 0

Критическая деталь формулировки: моном i=1nxiti\prod_{i=1}^n x_i^{t_i} должен иметь максимальную суммарную степень deg(f)\deg(f). Если в многочлене есть члены более высокой суммарной степени, теорема неприменима.

Доказательство через редукцию по модулю идеала

Доказательство теоремы опирается на многомерное деление многочленов.

Для каждого множества SiS_i определим аннулирующий многочлен:

gi(xi)=sSi(xis)=xiSij=0Si1ci,jxijg_i(x_i) = \prod_{s \in S_i} (x_i - s) = x_i^{|S_i|} - \sum_{j=0}^{|S_i|-1} c_{i, j} x_i^j

Степень gi(xi)g_i(x_i) в точности равна Si|S_i|. Очевидно, что gi(s)=0g_i(s) = 0 для любого sSis \in S_i.

Предположим от противного, что f(s1,,sn)=0f(s_1, \dots, s_n) = 0 для всех (s1,,sn)S1××Sn(s_1, \dots, s_n) \in S_1 \times \dots \times S_n. В этом случае многочлен ff зануляется на всей сетке нулей идеала, порождённого многочленами g1,,gng_1, \dots, g_n. Согласно лемме об интерполяции (или алгоритму деления с остатком), многочлен ff можно представить в виде:

f(x1,,xn)=i=1nhi(x1,,xn)gi(xi)+r(x1,,xn)f(x_1, \dots, x_n) = \sum_{i=1}^n h_i(x_1, \dots, x_n) g_i(x_i) + r(x_1, \dots, x_n)

где в остатке r(x1,,xn)r(x_1, \dots, x_n) степень по каждой переменной xix_i строго меньше Si|S_i|. Но так как ff зануляется на всей сетке S1××SnS_1 \times \dots \times S_n, и все gig_i зануляются на ней, остаток rr также обязан зануляться на всех точках этой сетки. Поскольку степень rr по каждой переменной xix_i меньше мощности Si|S_i|, одномерная интерполяция последовательно показывает, что r0r \equiv 0.

Таким образом:

f(x1,,xn)=i=1nhi(x1,,xn)gi(xi)f(x_1, \dots, x_n) = \sum_{i=1}^n h_i(x_1, \dots, x_n) g_i(x_i)

При этом суммарная степень deg(higi)deg(f)\deg(h_i g_i) \leq \deg(f). Заметим, что старший член каждого gi(xi)g_i(x_i) равен xiSix_i^{|S_i|}. Следовательно, в произведении hi(x1,,xn)gi(xi)h_i(x_1, \dots, x_n) g_i(x_i) любая переменная xix_i входит в мономы старшей степени со степенью не менее Si>ti|S_i| > t_i. Значит, ни одно слагаемое higih_i g_i не способно породить моном j=1nxjtj\prod_{j=1}^n x_j^{t_j}, у которого степень по xix_i равна в точности ti<Sit_i < |S_i|. Коэффициент при этом мономе в правой части равен нулю, что противоречит условию теоремы.

Демонстрация силы метода: теорема Коши — Давенпорта

Чтобы оценить лаконичность комбинаторного полиномиального метода, решим задачу из аддитивной комбинаторики. Пусть pp — простое число, и A,BA, B — непустые подмножества циклической группы Z/pZ\mathbb{Z}/p\mathbb{Z}. Суммой Минковского называется множество:

A+B={a+b(modp)aA,bB}A + B = \{a + b \pmod p \mid a \in A, b \in B\}

Теорема Коши — Давенпорта (доказанная Огюстеном Луи Коши в 1813 году аналитически) утверждает:

A+Bmin(p,A+B1)|A + B| \geq \min\bigl(p, |A| + |B| - 1\bigr)

Докажем её с помощью Combinatorial Nullstellensatz в три шага.

Если A+B1>p|A| + |B| - 1 > p, результат тривиален по принципу Дирихле (для любого cc множества AA и cBc - B пересекаются). Пусть A+B1p|A| + |B| - 1 \leq p. Предположим от противного, что A+BA+B2|A + B| \leq |A| + |B| - 2. Выберем произвольное множество CZ/pZC \subseteq \mathbb{Z}/p\mathbb{Z}, содержащее A+BA + B, мощности C=A+B2|C| = |A| + |B| - 2.

Построим многочлен от двух переменных над полем Fp\mathbb{F}_p:

f(x,y)=cC(x+yc)f(x, y) = \prod_{c \in C} (x + y - c)

Степень этого многочлена равна C=A+B2|C| = |A| + |B| - 2. Положим:

  • t1=A1t_1 = |A| - 1,
  • t2=B1t_2 = |B| - 1.

Заметим, что t1+t2=A+B2=deg(f)t_1 + t_2 = |A| + |B| - 2 = \deg(f). Найдём коэффициент при мономе xt1yt2x^{t_1} y^{t_2} в f(x,y)f(x, y). Этот моном порождается только однородной частью наивысшей степени (x+y)C(x + y)^{|C|}:

(x+y)t1+t2=k=0t1+t2(t1+t2k)xkyt1+t2k(x + y)^{t_1 + t_2} = \sum_{k=0}^{t_1 + t_2} \binom{t_1 + t_2}{k} x^k y^{t_1 + t_2 - k}

Коэффициент при xt1yt2x^{t_1} y^{t_2} равен биномиальному коэффициенту:

(t1+t2t1)=(A+B2A1)\binom{t_1 + t_2}{t_1} = \binom{|A| + |B| - 2}{|A| - 1}

Так как t1+t2=A+B2<pt_1 + t_2 = |A| + |B| - 2 < p, все сомножители в числителе строго меньше pp, и биномиальный коэффициент не делится на pp, то есть отличен от нуля в поле Fp\mathbb{F}_p.

Положим S1=AS_1 = A и S2=BS_2 = B. Мощности множеств удовлетворяют условиям:

  • S1=A>t1=A1|S_1| = |A| > t_1 = |A| - 1,
  • S2=B>t2=B1|S_2| = |B| > t_2 = |B| - 1.

Все условия комбинаторной теоремы о нулях выполнены. Следовательно, существуют такие aAa \in A и bBb \in B, что:

f(a,b)0f(a, b) \neq 0

Но по построению многочлена f(a,b)=cC(a+bc)f(a, b) = \prod_{c \in C} (a + b - c). Если f(a,b)0f(a, b) \neq 0, то a+bCa + b \notin C, что противоречит выбору множества CA+BC \supseteq A + B. Теорема доказана.

Сравнение подходов полиномиального анализа

В арсенале дискретной математики полиномиальный метод занимает уникальную нишу между вероятностными и аналитическими конструкциями:

Характеристика Лемма Шварца — Зиппеля Combinatorial Nullstellensatz Локальная лемма Ловаса (LLL)
Природа метода Алгебро-вероятностная Чисто алгебраическая Теоретико-вероятностная
Требование к полю Достаточно большое (Sd|S| \gg d) Любое поле F\mathbb{F} Поле не требуется
Цель Проверка тождества / поиск точки Доказательство существования Доказательство существования
Входные данные Вычислимый многочлен Явный моном высшей степени Система редких событий
Типичные применения PIT, паросочетания, связность Списочная раскраска, суммы множеств Раскраски гиперграфов, k-SAT

Шварц — Зиппель даёт эффективный рандомизированный алгоритм там, где поиск детерминированного свидетеля вычислительно сложен. Теорема Алона даёт бескомпромиссные неконструктивные сертификаты существования в экстремальных задачах, полностью устраняя необходимость исследовать геометрию пересечений.

Экстремальная комбинаторика и лемма о регулярности

Экстремальная комбинаторика и лемма о регулярности

Сколько рёбер может содержать граф на nn вершинах, не содержащий ни одного треугольника? В 1907 году голландский математик Виллем Мантель доказал, что этот порог равен n2/4\lfloor n^2 / 4 \rfloor, а экстремальной конфигурацией служит полный двудольный граф с равными долями. Но что произойдёт, если добавить всего одно ребро сверх этого порога? Граф не просто обзаведётся одним изолированным треугольником — в нём мгновенно возникнет не менее n/2\lfloor n / 2 \rfloor треугольников.

Этот феномен лежит в основе экстремальной комбинаторики: локальные подструктуры не возникают независимо, их появление диктуется глобальной плотностью рёбер. В теоретической информатике этот принцип определяет границы возможностей алгоритмов с сублинейным временем работы (property testing), структуры кодов, исправляющих ошибки, и пределы применимости методов усреднения. Главным инструментом, связывающим макроскопическую плотность графа с микроскопическим поведением его подграфов, служит лемма Семереди о регулярности.

От теоремы Турана к квазислучайности

Обобщая результат Мантеля, Пал Туран в 1941 году описал структуру графов без полных подграфов Kr+1K_{r+1}. Граф Турана T(n,r)T(n, r) строится разбиением nn вершин на rr максимально равных по размеру долей без рёбер внутри долей, но со всеми возможными рёбрами между разными долями. Количество рёбер в T(n,r)T(n, r) составляет:

e(T(n,r))=(11r)n22+O(n)e(T(n, r)) = \left( 1 - \frac{1}{r} \right) \frac{n^2}{2} + O(n)

Здесь e(G)e(G) обозначает число рёбер графа GG, а rr — число долей. Теорема Турана утверждает, что T(n,r)T(n, r) — единственный граф с максимальным числом рёбер среди всех графов порядка nn, не содержащих клику Kr+1K_{r+1}.

Парадокс заключается в том, что для произвольного запрещённого подграфа HH точное экстремальное число ex(n,H)\mathrm{ex}(n, H) асимптотически зависит исключительно от его хроматического числа χ(H)\chi(H), а не от тонкой структуры связей. Фундаментальная теорема Эрдёша — Стоуна — Симоновича (1946–1966) гласит:

ex(n,H)=(11χ(H)1)(n2)+o(n2)\mathrm{ex}(n, H) = \left( 1 - \frac{1}{\chi(H) - 1} \right) \binom{n}{2} + o(n^2)

Если подграф HH является двудольным (χ(H)=2\chi(H) = 2), то старший член (n2)\binom{n}{2} обращается в ноль, и плотность рёбер в экстремальном графе падает до o(n2)o(n^2). Но если χ(H)3\chi(H) \geq 3, плотность рёбер в критической точке строго положительна. Чтобы понять внутреннее устройство плотных графов на этом пороге, Эрдёш предположил, а венгерский математик Эндре Семереди в 1975 году доказал, что любой достаточно большой плотный граф можно аппроксимировать объединением случайных двудольных графов.

Портрет Эндре Семереди

Анатомия регулярности: определение ε\varepsilon-регулярной пары

Пусть G=(V,E)G = (V, E) — граф, а A,BVA, B \subseteq V — непересекающиеся подмножества вершин. Обозначим через e(A,B)e(A, B) число рёбер с одним концом в AA и другим в BB.

Плотность рёбер (edge density) между подмножествами вершин AA и BB определяется отношением числа существующих рёбер к максимально возможному их числу:

d(A,B)=e(A,B)ABd(A, B) = \frac{e(A, B)}{|A| \cdot |B|}

В случайном двудольном графе Эрдёша — Реньи G(n,n,p)G(n, n, p) рёбра между долями возникают независимо с вероятностью pp. В таком графе для любых достаточно больших подмножеств XAX \subseteq A и YBY \subseteq B фактическая плотность d(X,Y)d(X, Y) сконцентрирована около pp. Семереди формализовал это свойство детерминистически.

ε\varepsilon-регулярная пара: Пара непересекающихся подмножеств (A,B)(A, B) называется ε\varepsilon-регулярной, если для любых подмножеств XAX \subseteq A и YBY \subseteq B, удовлетворяющих условиям XεA|X| \geq \varepsilon |A| и YεB|Y| \geq \varepsilon |B|, выполняется неравенство:

d(X,Y)d(A,B)ε|d(X, Y) - d(A, B)| \leq \varepsilon

Параметр ε>0\varepsilon > 0 управляет точностью аппроксимации: чем меньше ε\varepsilon, тем равномернее распределены рёбра между AA и BB. Запрет на сильные флуктуации плотности действует не на все подмножества, а только на линейно крупные по отношению к AA и BB. Мелкие множества размера менее εA\varepsilon |A| могут иметь произвольную локальную структуру (например, быть полностью пустыми или полными кликами), но они не могут разрушить макроскопическую квазислучайность.

Лемма Семереди о регулярности

Лемма о регулярности утверждает, что абсолютно любой плотный граф можно разрезать на ограниченное число долей одинакового размера так, что почти все пары между ними ведут себя как ε\varepsilon-регулярные.

Пусть V=V0V1VkV = V_0 \cup V_1 \cup \dots \cup V_k — разбиение вершин графа GG. Такое разбиение называется эквипарцией (равновеликим разбиением) с исключительным классом V0V_0, если V1=V2==Vk|V_1| = |V_2| = \dots = |V_k| и V0εV|V_0| \leq \varepsilon |V|. Исключительный класс V0V_0 вводится исключительно ради технического удобства делимости V|V| на kk.

Лемма Семереди о регулярности (1978): Для любого вещественного ε>0\varepsilon > 0 и любого натурального числа mm существуют константы M=M(ε,m)M = M(\varepsilon, m) и N0=N0(ε,m)N_0 = N_0(\varepsilon, m) такие, что любой граф GG с числом вершин VN0|V| \geq N_0 допускает разбиение вершин на непересекающиеся классы V0,V1,,VkV_0, V_1, \dots, V_k, где:

  1. mkMm \leq k \leq M;
  2. V0εV|V_0| \leq \varepsilon |V| и V1=V2==Vk|V_1| = |V_2| = \dots = |V_k|;
  3. Все пары (Vi,Vj)(V_i, V_j) при 1i<jk1 \leq i < j \leq k, за исключением не более чем εk2\varepsilon k^2 пар, являются ε\varepsilon-регулярными.

Решающий факт для алгоритмического анализа состоит в том, что число компонент kk ограничено константой M(ε,m)M(\varepsilon, m), не зависящей от числа вершин графа nn. Граф колоссального размера сжимается до компактного графа плотностей фиксированного размера.

Аргумент инкремента энергии: почему константа MM башенная?

Откуда берётся ограничение M(ε,m)M(\varepsilon, m) и какова его цена? Доказательство Семереди основано на аналитическом приёме, получившем название аргумент инкремента энергии (energy increment argument).

Для разбиения P={V1,,Vk}\mathcal{P} = \{V_1, \dots, V_k\} множества вершин VV введём функционал «энергии» (среднеквадратичной плотности):

ind(P)=1k21i<jkd(Vi,Vj)2\mathrm{ind}(\mathcal{P}) = \frac{1}{k^2} \sum_{1 \leq i < j \leq k} d(V_i, V_j)^2

Поскольку для любых множеств 0d(Vi,Vj)10 \leq d(V_i, V_j) \leq 1, полная энергия строго ограничена:

0ind(P)10 \leq \mathrm{ind}(\mathcal{P}) \leq 1

Доказательство строится итеративно:

  1. Начинаем с произвольного равновеликого разбиения на mm классов.
  2. Проверяем, является ли текущее разбиение P\mathcal{P} искомым ε\varepsilon-регулярным.
  3. Если да — алгоритм останавливается.
  4. Если нет, существует не менее εk2\varepsilon k^2 пар (Vi,Vj)(V_i, V_j), нарушающих условие регулярности. Для каждой такой пары найдутся свидетельствующие подмножества XijViX_{ij} \subseteq V_i и YijVjY_{ij} \subseteq V_j, на которых плотность отличается более чем на ε\varepsilon.
  5. Мы измельчаем разбиение P\mathcal{P}, проводя разбиение каждого класса ViV_i на пересечения со всеми множествами-свидетелями. Применяя неравенство Коши — Буняковского — Шварца, удаётся доказать, что энергия нового разбиения P\mathcal{P}' строго возрастает:

ind(P)ind(P)+c(ε)\mathrm{ind}(\mathcal{P}') \geq \mathrm{ind}(\mathcal{P}) + c(\varepsilon)

где c(ε)=Ω(ε5)c(\varepsilon) = \Omega(\varepsilon^5).

Поскольку энергия не может превысить 11, а на каждом шаге несоответствия она возрастает минимум на ε5\varepsilon^5, процесс обязан завершиться не более чем за Sε5S \leq \varepsilon^{-5} шагов.

Однако на каждом шаге измельчения класс ViV_i может делиться всеми свидетелями от других классов, что приводит к экспоненциальному взрыву: если на шаге tt было ktk_t классов, то на шаге t+1t+1 число классов становится порядка 2kt2^{k_t}. Рекуррентное соотношение kt+12ktk_{t+1} \leq 2^{k_t} за O(ε5)O(\varepsilon^{-5}) шагов порождает башню экспонент:

M(ε,m)tow(O(ε5))=222M(\varepsilon, m) \leq \mathrm{tow}\left(O(\varepsilon^{-5})\right) = 2^{2^{\cdot^{\cdot^2}}}

где высота башни составляет Θ(ε5)\Theta(\varepsilon^{-5}). Тимоти Гауэрс в 1997 году доказал, что башенный рост здесь не артефакт доказательства, а фундаментальное комбинаторное свойство: существуют графы, регулярное разбиение которых действительно требует башенного числа частей высоты порядка log(1/ε)\log(1/\varepsilon).

Параметр разбиения Случайный граф G(n,p)G(n, p) Произвольный плотный граф (Лемма)
Регулярность пар Выполняется почти наверное для любых долей Гарантирована для (1ε)(1 - \varepsilon)-доли пар
Число классов kk Достаточно k=1k = 1 ktow(O(ε5))k \leq \mathrm{tow}(O(\varepsilon^{-5}))
Локальная структура Однородна везде Сложная внутри ViV_i и на нерегулярных парах
Тип аппроксимации Точечная независимость рёбер Блочная квазислучайность

Лемма о подсчёте и лемма об удалении треугольников

Сама по себе регулярность пар была бы бесполезна без инструмента подсчёта подграфов. Лемма о подсчёте (Counting Lemma) показывает, что внутри ε\varepsilon-регулярных долей число подграфов заданного типа практически совпадает с ожидаемым числом в случайном графе с соответствующими плотностями рёбер.

Для треугольника (K3K_3) утверждение формулируется прозрачно: если тройка множеств V1,V2,V3V_1, V_2, V_3 попарно ε\varepsilon-регулярна с плотностями рёбер d12,d23,d31d_{12}, d_{23}, d_{31}, причём dijεd_{ij} \gg \varepsilon, то число треугольников с вершинами v1V1,v2V2,v3V3v_1 \in V_1, v_2 \in V_2, v_3 \in V_3 оценивается как:

(12ε)(d12ε)(d23ε)(d31ε)V1V2V3e(V1,V2,V3)(1 - 2\varepsilon)(d_{12} - \varepsilon)(d_{23} - \varepsilon)(d_{31} - \varepsilon)|V_1||V_2||V_3| \leq e(V_1, V_2, V_3)

Объединение леммы регулярности и леммы о подсчёте порождает знаменитую лемму Ружи — Семереди об удалении треугольников (Triangle Removal Lemma).

Лемма об удалении треугольников (Имре Ружа, Эндре Семереди, 1978): Для любого δ>0\delta > 0 существует такое γ>0\gamma > 0, что если граф GG на nn вершинах содержит не более γn3\gamma n^3 треугольников, то можно удалить не более δn2\delta n^2 рёбер, чтобы полностью уничтожить все треугольники в GG.

Доказательство леммы — классический образец регулярного метода:

  1. Применяем лемму регулярности к графу GG с параметром ε=ε(δ)=δ/4\varepsilon = \varepsilon(\delta) = \delta / 4. Получаем разбиение V0,V1,,VkV_0, V_1, \dots, V_k.

  2. Удаляем рёбра трёх «патологических» типов:

    • Рёбра, инцидентные исключительному классу V0V_0 (их не более εn2\varepsilon n^2);
    • Рёбра между парами (Vi,Vj)(V_i, V_j), которые не являются ε\varepsilon-регулярными (их не более εk2(n/k)2=εn2\varepsilon k^2 \cdot (n/k)^2 = \varepsilon n^2);
    • Рёбра между регулярными парами с низкой плотностью: d(Vi,Vj)<εd(V_i, V_j) < \varepsilon (их суммарно не более ε(k2)(n/k)2εn2/2\varepsilon \binom{k}{2} (n/k)^2 \leq \varepsilon n^2 / 2).
  3. Суммарно удалено не более 3εn2<δn23\varepsilon n^2 < \delta n^2 рёбер.

  4. Допустим, в оставшемся графе остался хотя бы один треугольник с вершинами в классах Vi,Vj,VlV_i, V_j, V_l. Поскольку рёбра сохранились, эти три класса обязаны быть попарно ε\varepsilon-регулярными, и плотность между каждой парой не меньше ε\varepsilon.

  5. По лемме о подсчёте в такой конфигурации содержится не менее:

    (12ε)(εε)3c(ε)ViVjVl=Ω(ε3n3k3)(1 - 2\varepsilon)(\varepsilon - \varepsilon)^3 \dots \geq c(\varepsilon) |V_i||V_j||V_l| = \Omega\left(\varepsilon^3 \frac{n^3}{k^3}\right)

    треугольников.

  6. Выбрав γ<c(ε)/k3\gamma < c(\varepsilon) / k^3, получаем противоречие с исходным условием, что в графе было меньше γn3\gamma n^3 треугольников. Следовательно, треугольников в очищенном графе не осталось вовсе.

От графов к числам: теорема Рота об арифметических прогрессиях

Ружа и Семереди продемонстрировали вычислительную мощь леммы об удалении треугольников, решив знаменитую проблему аддитивной комбинаторики — теорему Рота (1953): всякое подмножество натуральных чисел A{1,,N}A \subseteq \{1, \dots, N\} положительной верхней плотности содержит арифметическую прогрессию длины 3 (x,x+d,x+2dx, x+d, x+2d).

Сведение осуществляется через конструкцию трёхдольного графа:

  1. Пусть A{1,,N}A \subseteq \{1, \dots, N\}, и AA не содержит нетривиальных трёхчленных арифметических прогрессий (a+c=2ba + c = 2b влечёт a=b=ca = b = c).

  2. Построим трёхдольный граф GG с долями X,Y,ZX, Y, Z, где вершины кодируют целые числа:

    • X={1,,2N}X = \{1, \dots, 2N\};
    • Y={1,,4N}Y = \{1, \dots, 4N\};
    • Z={1,,6N}Z = \{1, \dots, 6N\}.
  3. Проведём рёбра по следующим правилам:

    • Между xXx \in X и yYy \in Y, если yxAy - x \in A;
    • Между yYy \in Y и zZz \in Z, если zyAz - y \in A;
    • Между xXx \in X и zZz \in Z, если (zx)/2A(z - x)/2 \in A.
  4. Треугольник в графе образован тройкой (x,y,z)(x, y, z), для которой элементы a=yxa = y - x, b=(zx)/2b = (z - x)/2, c=zyc = z - y лежат в AA. Заметим тождество:

    a+c=(yx)+(zy)=zx=2ba + c = (y - x) + (z - y) = z - x = 2b

    Это в точности уравнение арифметической прогрессии! Поскольку в AA нет нетривиальных прогрессий, должно выполняться a=b=ca = b = c.

  5. Каждому элементу aAa \in A и каждой вершине xXx \in X соответствует ровно один тривиальный треугольник с вершинами xx, y=x+ay = x + a, z=x+2az = x + 2a. Все такие треугольники реберно не пересекаются: каждое ребро графа входит ровно в один такой треугольник.

  6. Число таких треугольников равно XA=2NA|X| \cdot |A| = 2N|A|. Так как они реберно не пересекаются, для уничтожения всех этих треугольников необходимо удалить как минимум по одному ребру из каждого, то есть не менее 2NA2N|A| рёбер.

  7. Применяя лемму об удалении треугольников, если AδN|A| \geq \delta N, то граф содержит линейное число непересекающихся треугольников, что невозможно при условии отсутствия треугольников общего вида. Отсюда вытекает, что A=o(N)|A| = o(N).

Приложение в Theoretical Computer Science: Property Testing

В алгоритмах с сублинейным временем работы центральное место занимает тестирование свойств графов (property testing). Задача состоит в том, чтобы за O(1)O(1) обращений к матрице смежности графа определить, обладает ли граф некоторым свойством PP (например, свободен от треугольников), или он δ\delta-далёк от него (необходимо удалить или добавить не менее δn2\delta n^2 рёбер, чтобы получить свойство PP).

Тестер свойства «быть свободным от треугольников»:

  1. Выбрать случайно и независимо t=Θ(1/γ(δ))t = \Theta(1 / \gamma(\delta)) троек вершин (u,v,w)(u, v, w).
  2. Запросить наличие рёбер между ними.
  3. Если хотя бы одна тройка образует треугольник — вернуть REJECT.
  4. Если ни одна тройка не образовала треугольник — вернуть ACCEPT.

Если граф не содержит треугольников, тестер гарантированно вернёт ACCEPT. Если же граф δ\delta-далёк от свободного от треугольников, то по лемме Ружи — Семереди в нём обязано содержаться не менее γ(δ)n3\gamma(\delta) n^3 треугольников. Следовательно, случайная тройка вершин окажется треугольником с вероятностью не менее 6γ(δ)6\gamma(\delta). Выбрав t=1/γ(δ)t = 1/\gamma(\delta) повторений, тестер обнаружит треугольник с вероятностью не менее 1(16γ)1/γ1e6>0.991 - (1 - 6\gamma)^{1/\gamma} \geq 1 - e^{-6} > 0.99.

Время работы тестера зависит исключительно от δ\delta и не зависит от размера графа nn. Однако платой за эту универсальность становится зависимость от δ\delta: из-за башенной константы в лемме Семереди число запросов t(δ)t(\delta) растёт как башня экспонент от (1/δ)(1/\delta).

Нерешённой задачей и активной областью исследований остаётся построение полиномиальных тестеров для широких классов графовых свойств без использования леммы о регулярности. Экстремальная комбинаторика здесь очерчивает водораздел: структурные инварианты гарантируют существование константных алгоритмов проверки, но комбинаторная сложность регулярных разбиений ставит предел их вычислительной эффективности.

Комбинаторные методы доказательства нижних оценок сложности

Комбинаторные методы доказательства нижних оценок сложности

Чтобы доказать равенство или неравенство классов PP и NPNP, не требуется привлекать непрерывный анализ или квантовую физику: достаточно исследовать булевы схемы. Задача о клике CLIQUECLIQUE на графе из nn вершин либо вычисляется схемой полиномиального размера из базовых логических вентилей «И», «ИЛИ», «НЕ», либо требует суперполиномиального числа элементов. Казалось бы, перед нами сугубо дискретный объект: таблица истинности конечна, граф вентилей ацикличен, а арсенал экстремальной теории графов отточен десятилетиями. Однако для общих булевых схем лучший доказанный нижний барьер для явной функции из класса NPNP до сих пор едва превышает скромную линейную величину 3n3n. Почему мощный комбинаторный аппарат, с лёгкостью находящий предельные плотности подграфов, внезапно упирается в невидимую стену при анализе логических цепей?

Ответ кроется в дуализме вычислений: алгоритм или логическая схема — это не просто статическая структура, а каскадное сжатие информации. Чтобы доказать невозможность быстрого вычисления, комбинаторике приходится решать обратную задачу: выявлять топологические и структурные инварианты, которые схема обязана разрушить за малое число шагов. Проследим, как эта идея развивалась от пространственных разбиений в теории коммуникации до метода аппроксимаций и знаменитого барьера естественных доказательств.

Коммуникационная сложность и геометрия прямоугольников

Самый прозрачный способ превратить комбинаторную геометрию в нижнюю оценку вычислительной сложности предложил Эндрю Яо в 1979 году. Представим двух участников, Алису и Боба. Алиса получает входную строку x{0,1}nx \in \{0, 1\}^n, Боб — строку y{0,1}ny \in \{0, 1\}^n. Их общая цель — вычислить булеву функцию f(x,y)f(x, y), пересылая друг другу минимальное число битов.

Любой детерминированный протокол коммуникации разбивает пространство всех возможных входов {0,1}n×{0,1}n\{0, 1\}^n \times \{0, 1\}^n на элементарные области. Если на некотором шаге Алиса отправляет бит, зависящий только от её входа xx, она разделяет текущее множество строк Алисы на два непересекающихся подмножества. После завершения протокола, передавшего cc бит, всё комбинаторное пространство оказывается разбитым не более чем на 2c2^c частей особого вида — комбинаторных прямоугольников.

Комбинаторным прямоугольником в пространстве X×YX \times Y называется декартово произведение A×BA \times B, где AXA \subseteq X и BYB \subseteq Y. Прямоугольник называется монохроматическим для функции ff, если для всех пар (x,y)A×B(x, y) \in A \times B значение f(x,y)f(x, y) одинаково.

— Эндрю Яо, «Some Complexity Questions Related to Distributive Computing»

Если протокол останавливается и выдаёт верный ответ, каждый лист его дерева протокола обязан соответствовать монохроматическому прямоугольнику. Отсюда вытекает фундаментальный принцип:

D(f)log2C(f)D(f) \geq \lceil \log_2 C(f) \rceil

Здесь D(f)D(f) обозначает детерминированную коммуникационную сложность функции (число переданных бит в худшем случае), а C(f)C(f) — минимальное количество непересекающихся монохроматических прямоугольников, на которые можно разбить матрицу значений функции Mf=[f(x,y)]x,yM_f = [f(x, y)]_{x,y}.

Чтобы превратить это свойство в числовую оценку, используют комбинаторный инструмент — обманное множество (fooling set). Множество пар SX×YS \subseteq X \times Y называется обманным для значения z{0,1}z \in \{0, 1\}, если для любой пары (x,y)S(x, y) \in S выполняется f(x,y)=zf(x, y) = z, но для любых двух различных пар (x1,y1),(x2,y2)S(x_1, y_1), (x_2, y_2) \in S хотя бы одна из «перекрёстных» точек (x1,y2)(x_1, y_2) или (x2,y1)(x_2, y_1) даёт значение, отличное от zz. Никакие два элемента обманного множества не могут лежать в одном монохроматическом прямоугольнике. Следовательно, размер обманного множества S|S| даёт строгую нижнюю оценку на число прямоугольников: C(f)SC(f) \geq |S|, а значит, D(f)log2SD(f) \geq \log_2 |S|.

Рассмотрим классическую функцию равенства строк: EQ(x,y)=1EQ(x, y) = 1, если x=yx = y, и 00 в противном случае. Выберем множество пар вида S={(x,x)x{0,1}n}S = \{(x, x) \mid x \in \{0, 1\}^n\}. Для любых двух различных векторов x1x2x_1 \neq x_2 перекрёстная точка (x1,x2)(x_1, x_2) даёт EQ(x1,x2)=01EQ(x_1, x_2) = 0 \neq 1. Множество SS содержит ровно 2n2^n пар и является обманным множеством для единицы. Отсюда мгновенно следует: D(EQ)log2(2n)=nD(EQ) \geq \log_2(2^n) = n. Алиса и Боб принципиально не способны выяснить равенство своих данных, не передав объём информации, равный длине самого входа.

Коммуникационные нижние оценки дают строгие ограничения для потоковых алгоритмов, динамических структур данных и глубины логических формул через теорему Карчмера — Вигдерсона. Однако переход от прямоугольников матриц к произвольным булевым схемам требует работы с вентилями, способными произвольно перемешивать входные биты.

Монотонные схемы и метод аппроксимаций

Булева схема над базисом {,,¬}\{\land, \lor, \neg\} представляет собой направленный ациклический граф, где входные вершины помечены переменными x1,,xnx_1, \dots, x_n, а внутренние узлы реализуют логические операции. Если исключить операцию отрицания ¬\neg, мы получим класс монотонных схем. Монотонная схема способна вычислять только монотонные булевы функции: добавление единиц во входной вектор никогда не превратит единичный выход в нулевой.

Многие канонические NPNP-полные задачи монотонны по своей природе. Например, задача CLIQUEn,kCLIQUE_{n, k}: дан граф GG с nn вершинами, закодированный (n2)\binom{n}{2} булевыми переменными (по переменной на каждое возможное ребро). Требуется определить, содержит ли граф клику размера kk. Добавление нового ребра не может разрушить уже существующую клику, поэтому функция CLIQUEn,kCLIQUE_{n, k} монотонна.

Долгое время предполагалось, что монотонные схемы ненамного слабее общих, и доказательство суперполиномиальной оценки для монотонной клики станет решающим шагом к доказательству PNPP \neq NP. В 1985 году советский математик Александр Разборов совершил прорыв, создав метод аппроксимаций.

Портрет Александра Разборова

Идея метода аппроксимаций строится на замене сложного дискретного вычисления последовательностью контролируемых проекций на упрощённую структуру:

  1. Исходная монотонная схема состоит из реальных вентилей \land и \lor.
  2. Каждому вентилю схемы сопоставляется приближённый оператор: вместо точных операций конъюнкции и дизъюнкции вводятся операторы \sqcap и \sqcup, действующие на специально выбранном классе простых булевых функций (аппроксиматоров).
  3. Доказывается, что при замене каждого вентиля на приближённый количество ошибок, вносимых на специальном тестовом множестве графов, невелико.
  4. Показывается, что итоговая функция, полученная на выходе аппроксимирующей схемы, кардинально отличается от целевой функции CLIQUEn,kCLIQUE_{n, k}.

Если каждый шаг приближения вносит мало ошибок, а итоговая разность колоссальна, схема обязана содержать экспоненциальное число вентилей, чтобы накопить требуемое расхождение.

Ключевым математическим аппаратом для построения таких аппроксиматоров служит экстремальная теория гиперграфов, а именно свойства конфигураций, называемых подсолнухами.

Экстремальные гиперграфы: лемма о подсолнухах

Аппроксиматоры Разборова конструируются как монотонные ДНФ, дизъюнкты которых имеют ограниченный размер. Однако при вычислении логического «И» от двух таких формул размеры конъюнкций начинают расти, грозя комбинаторным взрывом. Чтобы упростить гиперграф реберных множеств и вернуть его в класс малых функций, требуется найти структуру с регулярным пересечением и «схлопнуть» её. Такой структурой выступает подсолнух (или Δ\Delta-система).

Семейство множеств F={S1,S2,,Sp}\mathcal{F} = \{S_1, S_2, \dots, S_p\} называется подсолнухом с pp лепестками и ядром CC, если для любых двух различных индексов iji \neq j выполняется:

SiSj=CS_i \cap S_j = C

Множества SiCS_i \setminus C называются лепестками подсолнуха и обязаны быть попарно непересекающимися и непустыми. Само ядро CC при этом может быть пустым.

Фундаментальная лемма Пала Эрдёша и Рихарда Радо устанавливает порог, гарантирующий появление подсолнуха в достаточно большом семействе однородных множеств.

F>(p1)ll!|\mathcal{F}| > (p - 1)^l \cdot l!

В этом неравенстве ll обозначает максимальный размер множеств в семействе (Sil|S_i| \leq l для всех SiFS_i \in \mathcal{F}), а pp — требуемое количество лепестков.

Если число множеств превосходит указанную величину, семейство F\mathcal{F} гарантированно содержит подсолнух с pp лепестками.

Практический пример: пусть семейство состоит из троек элементов (l=3l = 3), и мы ищем подсолнух из p=3p = 3 лепестков. Оценка гарантирует существование такой конфигурации, как только число троек превысит (31)33!=86=48(3 - 1)^3 \cdot 3! = 8 \cdot 6 = 48.

В методе Разборова лемма о подсолнухах работает как оператор сжатия информации: если при раскрытии скобок в конъюнкции возникает слишком много конъюнктивных членов размера не более ll, среди них находится подсолнух {CL1,CL2,,CLp}\{C \cup L_1, C \cup L_2, \dots, C \cup L_p\}. В силу монотонности дизъюнкция лепестков:

(CL1)(CL2)(CLp)(C \cup L_1) \lor (C \cup L_2) \lor \dots \lor (C \cup L_p)

заменяется на одно лишь ядро CC. За счёт этой редукции размер формулы резко сокращается. Но насколько велика ошибка такой аппроксимации?

Для измерения ошибки Разборов ввёл два семейства тестовых графов:

  • Положительные тесты P\mathcal{P}: графы, состоящие из единственной случайно выбранной клики на kk вершинах и изолированных оставшихся nkn - k вершин. На них функция CLIQUEn,kCLIQUE_{n, k} строго равна 11.
  • Отрицательные тесты N\mathcal{N}: полные (k1)(k - 1)-дольные графы, где вершины графа случайно распределены по k1k - 1 долям. В таком графе по принципу Дирихле невозможно найти клику размера kk, поэтому функция CLIQUEn,kCLIQUE_{n, k} тождественно равна 00.

Замена подсолнуха на его ядро не вносит ни единой ошибки на положительных тестах: если в графе была клика, содержащая хотя бы один полный лепесток CLiC \cup L_i, то она заведомо содержит и подмножество CC. Ошибки возникают исключительно на отрицательных тестах: граф может случайно содержать ядро CC, не содержа ни одного из исходных лепестков целиком.

Используя вероятностный метод и комбинаторный подсчёт раскрасок долей, Разборов показал: вероятность того, что случайный (k1)(k-1)-дольный граф содержит все рёбра ядра CC, но обходит стороной каждое из расширений CLiC \cup L_i, экспоненциально мала по параметру pp. Балансируя параметры размера лепестков ln1/8l \approx n^{1/8} и числа лепестков pn1/8p \approx n^{1/8}, получается финальный результат: монотонная сложность клики составляет nΩ(k)n^{\Omega(\sqrt{k})}. При выборе kn2/3k \approx n^{2/3} это даёт суперполиномиальную и даже экспоненциальную оценку 2Ω(n1/8)2^{\Omega(n^{1/8})}.

Это был триумф экстремальной комбинаторики. Казалось, что до преодоления главного барьера теории сложности остался один шаг — перенести метод аппроксимаций на вентили отрицания ¬\neg.

Барьер естественных доказательств (Natural Proofs)

Попытки включить отрицание в метод аппроксимаций или использовать сходные экстремальные инварианты натолкнулись на непреодолимое препятствие. В 1994 году Александр Разборов и Стивен Рудич опубликовали работу, объяснившую природу этой неудачи. Они ввели понятие естественного доказательства (Natural Proof) и доказали метатеорему: существующие комбинаторные методы в принципе не способны разделить классы PP и NPNP, если в информатике существует надежная криптография.

Пусть fn:{0,1}n{0,1}f_n: \{0, 1\}^n \to \{0, 1\} — булева функция от nn переменных. Её таблица истинности представляет собой битовую строку длины N=2nN = 2^n. Обозначим через Fn\mathcal{F}_n множество всех булевых функций от nn переменных. Комбинаторное доказательство нижней оценки всегда строится вокруг некоторого комбинаторного свойства ΦFn\Phi \subseteq \mathcal{F}_n (например, «функция имеет высокий ранг матрицы коммуникации», «функция не аппроксимируется полиномами малой степени», «функция содержит мало подсолнухов»).

Доказательство вида «схема размера SS не может вычислять функцию ff» называется естественным, если свойство Φ\Phi, на которое оно опирается, удовлетворяет двум условиям:

Критерий Формальное определение Комбинаторный смысл
Масштабность (Largeness) Случайная булева функция обладает свойством Φ\Phi с вероятностью не менее 2O(n)2^{-O(n)} (или хотя бы 1/poly(N)1/\operatorname{poly}(N)). Подавляющее большинство случайных дискретных структур естественно некоррелированы и обладают искомым инвариантом сложности.
Конструктивность (Constructivity) Принадлежность таблицы истинности длины N=2nN = 2^n свойству Φ\Phi проверяется детерминированным алгоритмом за время poly(N)=2O(n)\operatorname{poly}(N) = 2^{O(n)}. Сам комбинаторный инвариант вычисляется эффективно относительно размера таблицы истинности функции.

Практически все классические нижние оценки — от теоремы Фёрста — Сакса — Сипсера и теоремы Смоленского для схем ограниченной глубины AC0AC^0 и AC0[p]AC^0[p] до метода аппроксимаций для монотонных схем — оказались естественными. Комбинаторное свойство вычислялось полиномиально от матрицы функции и выполнялось для случайных функций.

В чём же заключается барьер? В предположении о существовании псевдослучайных генераторов (PRG).

Если в компьютерных науках существуют вычислительно стойкие односторонние функции (основа RSA, эллиптической криптографии и протоколов шифрования), то существуют семейства функций, вычислимых схемами полиномиального размера, которые невозможно отличить от истинно случайных функций за полиномиальное время от размера таблицы NN.

Складывается парадокс:

  1. В силу масштабности, свойство Φ\Phi обязано срабатывать на случайных функциях.
  2. В силу конструктивности, свойство Φ\Phi служит эффективным статистическим тестом, распознающим это свойство за время poly(N)\operatorname{poly}(N).
  3. Значит, алгоритм проверки свойства Φ\Phi обязан мгновенно отбраковывать псевдослучайные функции (ведь они имеют малые схемы и свойством Φ\Phi обладать не могут), но принимать случайные.

Это означало бы взлом любого псевдослучайного генератора. Конструктивное комбинаторное доказательство нижних оценок для общих схем одновременно являлось бы алгоритмом дешифрования защищенных криптографических систем за субэкспоненциальное время.

Если существуют криптографически стойкие псевдослучайные генераторы, то ни одно естественное комбинаторное доказательство не может показать, что некоторая явная функция требует суперполиномиального размера общих булевых схем.

— Александр Разборов, Стивен Рудич, «Natural Proofs»

Этот барьер показал: простота комбинаторных формулировок обманчива. Методы, опирающиеся на «усредненные» инварианты распределений, неизбежно слепы к тонкой границе между псевдослучайным поведением и истинной вычислительной сложностью. Преодоление этого барьера в современном теоретическом Computer Science ищется через «неестественные» подходы: геометрическую теорию сложности Малмули — Сохони (Mulmuley — Sohoni), опирающуюся на алгебраическую геометрию и теорию представлений, или алгоритмический метод Райана Уильямса (использование нетривиальных алгоритмов анализа схем для вывода нижних оценок).