О генерической сложности проблемы выполнимости булевых формул

МАТЕМАТИКА

Вестн. Ом. ун-та. 2013. № 4. С. 52-56.

УДК 510.52 А.Н. Рыбалов

О ГЕНЕРИЧЕСКОЙ СЛОЖНОСТИ ПРОБЛЕМЫ ВЫПОЛНИМОСТИ БУЛЕВЫХ ФОРМУЛ*

Рассматривается генерический подход к алгоритмическим проблемам, предложенный в 2003 г. А. Мясниковым, И. Каповичем, П. Шуппом и В. Шпильрайном. В рамках этого подхода алгоритмическая проблема рассматривается не для всего множества входов (сложность в худшем случае), а для множества «почти всех» входов. Термин «почти все входы» уточняется при помощи введения естественной меры на множестве входных данных. Изучается генерическая сложность классической проблемы выполнимости булевых формул. Доказывается, что проблема выполнимости булевых формул остается вычислительно трудной и в генерическом случае.

Ключевые слова: генерическая сложность, проблема выполнимости булевых формул.

Введение

В работе [1] была развита теория генерической сложности вычислений. В рамках этого подхода алгоритмическая проблема рассматривается не на всем множестве входов, а на некотором подмножестве «почти всех» входов. Такие входы образуют так называемое генерическое множество. Понятие «почти все» формализуется введением естественной меры на множестве входных данных. С точки зрения практики алгоритмы, решающие быстро проблему на генерическом множестве, так же хороши, как и быстрые алгоритмы для всех входов. Классическим примером такого алгоритма является симплекс-метод - он за полиномиальное время решает задачу линейного программирования для большинства входных данных, но имеет экспоненциальную сложность в худшем случае. Более того, может так оказаться, что проблема трудно разрешима или вообще не разрешима в классическом смысле, но легкоразрешима на генерическом множестве. В работах [1; 2] было доказано, что таким поведением обладают многие алгоритмические проблемы алгебры, а в работе [3] было построено генерическое множество, на котором разрешима классическая проблема остановки для машин Тьюринга с лентой, бесконечной в одном направлении.

Проблема выполнимости булевых формул является классической проблемой информатики, изучаемой многие десятилетия. В 1971 г. С. Кук доказал [4], что эта проблема является МР-полной, то есть все проблемы из класса МР сводятся к ней за полиномиальное время. Это означает, что, при условии неравенства классов Р и МР для нее не существует полиномиального алгоритма, решающего ее на всем множестве булевых формул. Поэтому многочисленные исследования посвящены изучению подпроблем проблемы выполнимости и построению для них эффективных разрешающих алгоритмов. Естественным желанием является то, чтобы в эти классы попадало как можно больше формул, а в идеале «почти все» формулы. В терминах теории генерической сложности речь идет об алгоритмах, работающих быстро на генерических множествах формул.

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

Работа выполнена при финансовой поддержке РФФИ (13-01-00239а, 11-01-00081-а, 12-01-31008 мол_а). Исследование выполнено при поддержке Министерства образование и науки Российской Федерации (проекты 14.В37.21.0359 и 0859) и гранта РФФИ 13-01-00239.

© А.Н. Рыбалов, 2013

классов Р и МР и совпадения классов Р и ВРР. Здесь класс ВРР - это класс проблем, разрешимых за полиномиальное время на вероятностных машинах Тьюринга. Большинство исследователей сейчас считает, что имеет место равенство Р = ВРР. Это равенство означает, что любой полиномиальный вероятностный алгоритм можно эффективно дерандомизировать, т. е. построить полиномиальный детерминированный алгоритм, решающий ту же задачу. Хотя это равенство пока еще не доказано, имеются серьезные доказательства в пользу него (см.

[5]). При доказательстве данного результата будут использованы методы, развитые в статьях [6-8]. Булевы формулы на протяжении всей статьи будут рассматриваться в

классическом базисе {л, V, —1} . Для удобства

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

Генерическая вычислимость и сложность

Пусть А есть множество всех входов для некоторой алгоритмической проблемы, а S - некоторое его подмножество.

Рассмотрим последовательность

О (5) - I-5 П А-|

где А. - множество всех входов проблемы размера . . Если случайно и равновероятно генерировать входы размера . , то вероятность попасть в 5 равна рп (5) . Определим асимптотическую плотность множества 5 как предел (если он существует):

М(5) - ШР. (5).

п^да

Если предела не существует, то считаем, что асимптотическая плотность не определена.

Множество входов 5 с А называется генерическим, если /л(5) — 1, и пренебре-жимым, если ^(5) — 0 . Непосредственно из определения следует, что 5 является генерическим тогда и только тогда, когда А \ 5 пренебрежимо. Понятие генерического множества формализует интуитивное понятие множества «почти всех» входов в том смысле, что при увеличении размера входа вероятность того, что случайно сгенерированный вход попадет в генерическое множество, стремится к 1. Если последовательность рп (5) стремится к 0 экспоненциально

быстро, т. е. существуют константы С > 0 и 0 < а < 1 такие, что для любого п

Рп (5) < Сап,

то множество 5 называется строго пренеб-режимым. Строго пренебрежимое множество существенно меньше просто пренебре-жимого в том смысле, что никакое (не строго) пренебрежимое множество не может содержаться в строго пренебрежимом. Множество 5 называется строго генерическим, если А \ 5 строго пренебрежимо.

Алгоритмическая проблема 5 с А (строго) генерически полиномиально разрешима, если существует множество О с А такое, что:

1) О - (строго) генерическое;

2) О - разрешимое за полиномиальное время;

3) 5 П О - разрешимое за полиномиальное время.

Генерический алгоритм, решающий

проблему 5 , работает следующим образом. Сначала определяет, принадлежит ли вход генерическому множеству. Если да, то проверяет принадлежность входа 5. Если нет, то отвечает «НЕ ЗНАЮ». Такой алгоритм правильно решает проблему 5 на «почти всех» входах.

Имеется существенное различие между генерически разрешимыми проблемами и строго генерически разрешимыми проблемами. Допустим, имеется проблема 5, разрешимая на некотором разрешимом генерическом множестве О , для которого

рп(5) = П~\ = .

Таким образом О - генерическое, но не строго генерическое множество. Теперь хоть и проблема 5 разрешима для «почти всех» входов, тем не менее есть быстрый способ получить «плохой» вход, на котором генерический алгоритм не работает. Быстрый (полиномиальный) алгоритм для генерации «плохих» входов следующий:

1. Сгенерировать равномерно случайный вход х размера п .

2. Если х е О, то повторить шаг 1, иначе закончить.

Действительно, вероятность получить только хорошие входы за п2 раундов:

1V2 ({ 1 лп V

п -1 1 (, 1 1

1---I ^ е-п .

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

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

Представление булевых формул

Под проблемой выполнимости булевых формул понимается следующая проблема. На входе имеется булева формула р(х1,..., хп) от переменных х1,..., хп , содержащая только конъюнкции, дизъюнкции и отрицания переменных. Нужно определить, существуют ли значения переменных х1,... , хп такие, при которых формула будет истинной.

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

Пусть ф - булева формула в базисе

{л, V, —} . Без ограничения общности можно

считать, что в ней отрицания находятся только над переменными. Любую булеву формулу можно легко привести к такому виду с помощью законов де Моргана, поэтому в дальнейшем будем рассматривать только такие формулы. Естественным образом можно сопоставить формуле ф бинарное дерево Тф , которое представляет конструкцию ф из переменных и их отрицаний с помощью конъюнкций и дизъюнкций. Внутренние вершины Тф помечены символами V ил, а листья Тф помечены переменными или их отрицаниями. С другой стороны, по любому такому бинарному дереву можно восстановить булеву формулу. Это дает взаимно-однозначное представление булевых формул размеченными бинарными деревьями. Если Тф имеет п листьев, то не более п переменных могут встретиться в Тф, поэтому в дальнейшем будем полагать, что все переменные Тф лежат в множестве х1,...,хп . Будем отождествлять булеву формулу ф и дерево Тф . Заметим также, что

число булевых операций в бескванторной части ф равно п — 1. Под размером формулы ф будем понимать число листьев п . Легко видеть, что этот размер не превосходит длины формулы, умноженной на некоторую константу. Обозначим через ^ множество всех формул и через Еп - множество всех формул размера п .

Лемма 1.

1 = 2п—1(2п )пСп—1,

где

= 1 ( 2(п — 1) >

Сп—1

п

п—1

- это (п — 1 )-е число

/

Каталана.

Доказательство. Любая формула размера п , состоит из бинарного дерева с п листьями и (п — 1 )-й внутренней вершиной. Существуют Сп—1 неизоморфных деревьев с

п листьями, где

Сп—1=

Г 2(п — 1) ^

п—1

- это

( п - 1 )-е число Каталана. Каждая внутренняя вершина может быть помечена либо V , либо л (всего п — 1 таких вершин - 2п—1 вариантов разметки). Каждый лист дерева может быть какой-нибудь переменной либо ее отрицанием, отсюда 2п способов разметки каждого листа дерева. Так как всего п листьев, то получаем (2п)п вариантов разметки листьев. В итоге получается 2п—1(2п)пСп—1 различных формул размера п . Лемма доказана.

Для любой формулы ф определим следующие множества:

АШ(ф) — {ф л у, у — произвольная формула } .

Лемма 2. Для любой формулы ф множество АЖ^(ф) не строго пренебрежимо. Более того,

\АШ>(ф) п 1

К| > (16п)*

для всех п > к , где к - размер формулы ф .

Доказательство. Пусть формула ф имеет размер к . Тогда для любой формулы флу из множества АЫБ(ф)п¥п формула у должна иметь размер п — к . Кроме того, в этой формуле может участвовать любая из п переменных. Поэтому аналогично тому, как это делалось в доказательстве леммы 1, можно подсчитать

\АКО(ф)п— 2п—*—'(2п)п—кСп—*—,.

1

п

Отсюда

\AND(ф) п = 2п—к—‘(2п)п—kCn—k—, =

Е 2п—^С—,

= 1 C^±±

2k (2n)k См .

Теперь оценим отношение чисел Ката-

C

n - 1 = p

Cn 1

=C-і =

Cp

p+1

f 2(p - к)' p - к

p - к +1 f 2 p л

V p у

p! 2

2 р...(2(р — к) +1) ч 2 р...(2 р — к +1) Таким образом, имеем

2

>

21к

|AND^) n Fn\

1

\Рп\ (16п)к ’

что и требовалось доказать.

Основной результат

Теперь все готово, чтобы доказать основной результат статьи.

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

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

1. Проверяет, принадлежит ли ф множеству О . Это делается за полиномиальное время, так как множество О разрешимо за полиномиальное время. Если ф є О , то с помощью алгоритма А определяет выполнимость ф . Если нет, то переходит к шагу 2.

2. Генерирует случайную формулу /

размера п2 — п .

3. Проверяет, принадлежат ли формулы ф А/ и фл — у множеству О. Если обе формулы принадлежат О , то с помощью алгоритма А определяет их выполнимость и

переходит к шагу 4. Если нет, то выдает ответ «НЕ ВЫПОЛНИМА».

4. Так как обязательно хотя бы одна из формул / и — / выполнима, то возможны

следующие варианты:

• если ф л / и ф л — у невыполнимы, то

ф тоже невыполнима.

• если хотя бы одна из них выполнима, то и ф тоже выполнима.

5. В любом из этих двух случаев алгоритм выдает правильный ответ.

Заметим, что алгоритм выдает правильный ответ на шагах 1 и 4, а на шаге 3 может выдать неправильный ответ. Нужно доказать, что вероятность того, что ответ выдается на шаге 3, меньше 1/2.

Вероятность того, что случайная формула вида фл/ из AND(ф)пЕ2 не попадет в

п

О , не больше (Е \ О )2

AND^)

F.

AND^)

Так как О строго генерическое, то существует константа а >0 такая, что

(Р \ О) 2 1

п -1-

F

2а

для любого п .

С другой стороны, по лемме 2

Е ^

< (16п2)п.

AND^) 2

n

я

Поэтому искомая вероятность не больше

„1\ n 24n+1n log n

2 ап 2 ап

и при больших п меньше 1/4 . Аналогично делается оценка для формул вида ф л — у .

Вероятность же непопадания в О хотя бы одной из формул у или фл — у не больше 1/4 +1/4 — 1/2 . Это и означает то, что вероятность выдачи ответа на шаге 3 меньше 1/2 .

Осталось доказать полиномиальность алгоритма. Для этого нужно за полиномиальное время уметь генерировать случайно и равномерно формулу размера N — п2 — п . Это делается следующим образом:

1. Генерируем некоторую последовательность (далее - «слово») из N символов а и N — 1 символов р .

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

лана:

<

1

n

3. По слову ищём скобочное выражение

следующим образом: пробегаем по всем

символам слова, если встречаем символ а , то помещаем его в стек. Если встречаем символ р , то извлекаем 2 элемента из стека, затем добавляем между ними символ р ,

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

4. Вместо букв р подставляем V или л равновероятно.

5. Каждую букву а в слове заменяем на переменную либо ее отрицание (переменные тоже выбраем равновероятно из множества

^..^ хп ).

Корректность этого алгоритма и равномерность генерации формул следует из того, что существует взаимно-однозначное соответствие между обратной польской записью из п символов а и п — 1 символов р и бинарным деревом с п листьями, которые помечены символом а (см. [9]).

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

шающий эту проблему на всем множестве

формул. Что и требовалось доказать.

ЛИТЕРАТУРА

[1] Karpovich I., Myasnikov A., Schupp P., Shpil-rain V. Generic-case complexity, decision problems in group theory and random walks // J. Algebra. 2003. № 2. P. 665-694.

[2] Kapovich I., Myasnikov A., Schupp P., Shpil-rain V. Average-case complexity for the word and membership problems in group theory // Advances in Mathematics. 2005. № 190. P. 343359.

[3] Hamkins J. D., Miasnikov A. The halting problem is decidable on a set of asymptotic probability one // Notre Dame Journal of Formal Logic. 2006. № 4. P. 515-524.

[4] Cook S. The complexity of theorem proving procedures // Proceedings of the Third Annual ACM Symposium on Theory of Computing. 1971. Р. 151-158.

[5] Impagliazzo R., Wigderson A. P=BPP unless E has Subexponential Circuits: Derandomizing the XOR Lemma // Proceedings of the 29th STOC. 1997. Р. 220-229.

[6] Myasnikov A, Rybalov A. Generic complexity of undecidable problems // Journal of Symbolic Logic. 2008. Vol. 73. № 2. Р. 656-673.

[7] Rybalov A. Generic Complexity of Presburger Arithmetic // Theory of Computing Systems. 2010. Vol. 46. № 1. Р. 2-8.

[8] Рыбалов А., Федосов В. Генерическая сложность алгебры Тарского // Вестн. Ом. ун-та. 2011. № 2. С. 21-25.

[9] Спивак А. Числа Каталана // Квант. 2004. № 3. С. 2-10.