2016 Математические основы информатики и программирования №2(32)
МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ
УДК 510.52
О ГЕНЕРИЧЕСКОЙ СЛОЖНОСТИ ПРОБЛЕМЫ ОБЩЕЗНАЧИМОСТИ БУЛЕВЫХ ФОРМУЛ1
А. Н. Рыбалов
Институт математики им. С. Л. Соболева СО РАН, г. Новосибирск, Россия
Генерический подход к алгоритмическим проблемам предложен А. Мясниковым, И. Каповичем, П. Шуппом и В. Шпильрайном в 2003 г. В рамках этого подхода рассматривается поведение алгоритмов на множествах почти всех входов. В данной работе изучается генерическая сложность проблемы общезначимости (тождественной истинности) булевых формул. Доказывается, что эта проблема неразрешима за полиномиальное время на любом полиномиальном строго генерическом множестве формул при условии её трудноразрешимости в худшем случае.
Ключевые слова: генерическая сложность, проблема общезначимости булевых формул.
DOI 10.17223/20710410/32/9
ON GENERIC COMPLEXITY OF THE VALIDITY PROBLEM FOR BOOLEAN FORMULAS
A. N. Rybalov
Sobolev Institute of Mathematics SB RAS, Novosibirsk, Russia E-mail: alexander.rybalov@gmail.com
Generic-case approach to algorithmic problems was suggested by Miasnikov, Kapovich, Schupp and Shpilrain in 2003. This approach studies behavior of an algorithm on typical (almost all) inputs and ignores the rest of inputs. In this paper, we consider generic complexity of the validity problem for Boolean formulas and prove that this problem is generically hard if it is hard in the worst case.
Keywords: generic complexity, validity problem for Boolean formulas.
Введение
В работе [1] развита теория генерической сложности вычислений. В рамках этого подхода алгоритмическая проблема рассматривается не на всём множестве входов, а на некотором подмножестве «почти всех» входов. Такие входы образуют так называемое генерическое множество. Понятие «почти все» формализуется введением естественной меры на множестве входных данных. С точки зрения практики алгоритмы,
1 Работа поддержана грантом РФФИ №16-01-00577.
быстро решающие проблему на генерическом множестве, так же хороши, как и быстрые алгоритмы для всех входов. Классическим примером такого алгоритма является симплекс-метод — он за полиномиальное время решает задачу линейного программирования для большинства входных данных, но имеет экспоненциальную сложность в худшем случае. Более того, может так оказаться, что проблема трудноразрешима или вообще неразрешима в классическом смысле, но легкоразрешима на генерическом множестве. В [1, 2] доказано, что таким поведением обладают многие алгоритмические проблемы алгебры, а в [3] построено генерическое множество, на котором разрешима классическая проблема остановки для машин Тьюринга с лентой, бесконечной в одном направлении. Для многих классических NP-полных проблем существуют полиномиальные генерические алгоритмы [4].
Проблема общезначимости булевых формул состоит в следующем: для любой булевой формулы, записанной в стандартном базисе {V, Л, —}, определить, является ли она тождественно истинной. Из классического результата С. Кука [5] о NP-полноте проблемы выполнимости следует, что проблема общезначимости является полной относительно полиномиальной сводимости в классе co-NP (он состоит из множеств, являющихся дополнениями к множествам из класса NP). Это означает, что, при условии неравенства классов P и NP, для неё не существует полиномиального алгоритма, решающего её на всём множестве булевых формул. Поэтому возникает вопрос об изучении подпроблем проблемы общезначимости и построению для них эффективных разрешающих алгоритмов. Естественным желанием является то, чтобы в эти классы попадало как можно больше формул, а в идеале «почти все» формулы. В терминах теории ге-нерической сложности речь идёт об алгоритмах, работающих быстро на генерических множествах формул.
В данной работе доказывается, что проблема общезначимости булевых формул неразрешима за полиномиальное время на любом полиномиальном строго генери-ческом множестве формул при условии несовпадения классов P и NP и совпадения классов P и BPP. Здесь класс BPP — это класс проблем, разрешимых за полиномиальное время на вероятностных машинах Тьюринга. Большинство исследователей сейчас считает, что имеет место равенство P = BPP. Это равенство означает, что любой полиномиальный вероятностный алгоритм можно эффективно дерандомизировать, т. е. построить полиномиальный детерминированный алгоритм, решающий ту же задачу. Хотя это равенство пока ещё не доказано, имеются серьёзные результаты в его пользу [6]. При доказательстве основного результата работы использованы методы, развитые в [7, 8].
1. Определения
Следуя [1], дадим основные определения теории генерической сложности вычисления. Пусть I — множество всех входов, а In — множество входов размера п. Для любого подмножества S С I определим следующую последовательность
|S n In| 1 _ _ Pn(S) = |М , п =1, 2, 3,...
Величина pn(S) —это вероятность получить вход из множества S при случайной и равномерной генерации входов из In. Асимптотической плотностью S назовем следующий предел (если он существует):
p(S) = lim pn(S).
n—^^o
Множество 5 называется генерическим, если р(Б) = 1, и пренебрежимым, если р(Б) = 0. Очевидно, что Б генерическое тогда и только тогда, когда его дополнение I \ Б пренебрежимо.
Следуя [1], назовём множество Б строго пренебрежимым, если последовательность рп(Б) экспоненциально быстро сходится к нулю, т.е. существуют константы 0 < а < 1 и С > 0, такие, что для любого п
Теперь Б называется строго генерическим, если его дополнение I \ Б строго пренебрежимо.
Множество Б С I генерически разрешимо за полиномиальное время, если существует множество О С I, такое, что
1) О генерическое;
2) О разрешимое за полиномиальное время;
3) Б П О разрешимое за полиномиальное время.
Если О строго генерическое, то Б называется строго генерически разрешимым за полиномиальное время. Генерический алгоритм А для Б работает на входе х Е I следующим образом. Сначала А решает, принадлежит ли х множеству О. Если х Е О, то А может решить Б на О, иначе А отвечает «Я НЕ ЗНАЮ!» Таким образом, А корректно решает Б на «почти всех» входах (входах из генерического множества).
Имеется существенное различие между генерически разрешимыми проблемами и строго генерически разрешимыми проблемами. Допустим, имеется проблема Б, разрешимая на некотором разрешимом генерическом множестве О, для которого
Таким образом О — генерическое, но не строго генерическое множество. Теперь хоть проблема Б и разрешима для почти всех входов, тем не менее есть быстрый способ получить «плохой» вход, на котором генерический алгоритм не работает. Быстрый (полиномиальный) алгоритм для генерации плохих входов следующий:
1) сгенерировать равномерно случайный вход х размера п;
2) если х Е О, повторить шаг 1, иначе закончить.
Действительно, вероятность получить только хорошие входы за п2 раундов
поэтому с вероятностью, очень близкой к 1, будет получен плохой вход. С другой стороны, легко видеть, что если проблема разрешима на строго генерическом множестве, то такой простой алгоритм генерации потребует экспоненциального числа раундов и будет неэффективным. Для приложений к криптографии это означает, что просто генерическая легкоразрешимость проблемы не делает эту проблему бесполезной для создания на её основе криптосистемы, так как для неё существует эффективная процедура генерации трудных входов. В то же время строго генерически легкоразрешимые проблемы в этом смысле бесполезны для криптографии.
Pn(S) < Can.
|G П /га| _ n - 1 |1n| n
2. Представление булевых формул
Классическое представление булевых формул с помощью таблиц истинности с практической точки зрения является громоздким в том смысле, что размер таблицы истинности растет экспоненциально с ростом числа переменных. Гораздо более компактным и практичным является представление формул с помощью бинарных деревьев. Оно часто используется в программировании различных приложений, связанных с символьными вычислениями. Кроме того, оно удобно для различного рода подсчётов.
Пусть ф — булева формула в базисе {V, Л, —}. Без ограничения общности можно считать, что в ней отрицания находятся только над переменными. Любую булеву формулу можно легко привести к такому виду с помощью законов де Моргана, поэтому в дальнейшем будем рассматривать только такие формулы. Естественным образом формуле ф можно сопоставить бинарное дерево Тф, которое представляет конструкцию ф из переменных и их отрицаний с помощью конъюнкций и дизъюнкций. Внутренние вершины Тф помечены символами V и Л, а листья Тф — переменными или их отрицаниями. С другой стороны, по любому такому бинарному дереву можно восстановить булеву формулу. Это дает взаимно однозначное представление булевых формул размеченными бинарными деревьями. Если Тф имеет п листьев, то не более п переменных могут встретиться в Тф, поэтому в дальнейшем будем полагать, что все переменные Тф лежат в множестве {я^ ..., хп}. Представление ф состоит из бинарного дерева Тф. Заметим также, что число булевых операций в ф равно п — 1. Под размером формулы ф будем понимать число листьев п.
Например, на рис. 1 представлена формула (—х1) Л V — х3).
Рис. 1
В дальнейшем будем отождествлять булевы формулы с их представлениями. Обозначим через Т множество всех булевых формул, а через Тп — множество всех формул в Т размера п. Напомним, что числа Каталана Сп определяются следующим образом:
Сп =
П + 1 \ п
где ( ) — соответствующий биномиальный коэффициент. п
Лемма 1. |Тп | = 2п-1(2п)пСп-1.
Доказательство. Любая формула из Т размера п есть размеченное бинарное дерево с п листьями и п — 1 внутренними вершинами. Известно [9], что существует Сп-1
неразмеченных бинарных деревьев с п листьями. Каждая внутренняя вершина такого дерева может быть помечена символами V или Л, поэтому есть всего 2П-1 таких разметок. Каждый лист может быть помечен одной из п переменных или её отрицанием, поэтому существует (2п)п таких разметок. Это показывает, что |^га| = 2га-1(2п)гаСга-1. Лемма доказана. ■
Для любой формулы ф определим множество
ОЯ(ф) = {ф V ф, ф — произвольная формула}.
Лемма 2. Для любой формулы ф множество ОЯ(ф) не строго пренебрежимо. Более того,
|од(ф) п Тп1 > 1
(16п)к
для любого п > к, где к — размер формулы ф.
Доказательство. Пусть формула ф имеет размер к. Тогда для любой формулы ф V ф из множества ОЯ(ф) П Тп формула ф должна иметь размер п — к. Кроме того, в этой формуле может участвовать любая из п переменных. Поэтому аналогично тому, как это делалось в доказательстве леммы 1, можно подсчитать
|ОД(ф) П^„| = 2п-к-1(2п)п-кСП-к-1.
Отсюда
/2(п — к — 1)
|ОД(ф) П^„| 2п-к-1(2п)п-кСП-к-1 1 СП-к-1 1 п V п — к — 1
|^п| 2п-1 (2п)гаС„-1 (4п)к СП-1 (4п)к п — к /2(п — 1)
V п — 1
1 (п — 1)! 2(п — к — 1)... (п — к) _ 1 ((п — 1)... (п — к))2 > (4п)к (п — к — 1)! 2(п — 1) ...п = (4п)к 2(п — 1)... (2п — 2к — 1) > 1 / (п — 1)... (п — к) \2 1 1 1
>
(4п)Н 2(п — 1)... (2п — 2к — 1)/ (4п)к 22к (16п)к
Таким образом, имеем — п > --—г, что и требовалось доказать.
1к
|РД(Ф)п| >
(16п)к
3. Основной результат
Теорема 1. Если существует строго генерическое полиномиальное множество булевых формул, на котором проблема общезначимости булевых формул разрешима за полиномиальное время, то существует вероятностный полиномиальный алгоритм, разрешающий эту проблему на всём множестве формул.
Доказательство. Допустим, что существует строго генерическое разрешимое множество формул С, такое, что существует полиномиальный алгоритм А, определяющий для любой булевой формулы ф Е С, является ли она тождественно истинной. Построим теперь алгоритм В, определяющий тождественную истинность любой формулы ф. На формуле ф размера п алгоритм В будет работать следующим образом:
1) Проверяет, принадлежит ли ф множеству С. Если да, то с помощью алгоритма А определяет выполнимость ф. Если нет, то переходит к шагу 2.
2) Генерирует случайную формулу ф размера п2 — п.
3) Проверяет, принадлежат ли формулы ф V ф и ф V — ф множеству С. Если обе формулы принадлежат С, то с помощью алгоритма А определяет их общезначимость и переходит к шагу 4. Если не принадлежат, то выдаёт ответ «НЕ ОБЩЕЗНАЧИМА».
4) Так как обязательно хотя бы одна из формул ф и —ф не является тождественно истинной, то возможны следующие варианты:
— Если ф V ф и ф V —ф тождественно истинны, то ф тоже тождественно истинна и алгоритм выдаёт ответ «ОБЩЕЗНАЧИМА».
— Если хотя бы одна из них не тождественно истинна, то и ф тоже не тождественно истинна и алгоритм выдаёт ответ «НЕ ОБЩЕЗНАЧИМА».
В любом из этих двух случаев алгоритм выдаёт правильный ответ. Заметим, что алгоритм выдаёт правильный ответ на шагах 1 и 4, а на шаге 3 может выдать неправильный ответ. Нужно доказать, что вероятность того, что ответ выдаётся на шаге 3, меньше 1/2. Вероятность того, что случайная формула вида ф Л ф из ОЯ(ф)п2 не попадёт в С, не больше
|(Т\ С)п2 | = |(Т\ С)п2 | |Тп2 | |0Я(ф)п2 | |Тп2 | |ОЯ(Ф)п2 |
Так как С строго генерическое, то существует константа а > 0, такая, что
1(Т\ С)п2 | < |Тп21 2ап2
для любого п. С другой стороны, по лемме 2
__ < (16n2
|од(Ф}„21 < (16n j •
Поэтому искомая вероятность не больше
(16n2)n 24n+2n log n 2«n2 2®n2
и при больших n меньше 1/4. Аналогично делается оценка для формул вида ф V —ф. Вероятность же непопадания в G хотя бы одной из формул ф V ф или ф V —ф не больше 1/4+1/4 = 1/2. Это означает, что вероятность выдачи ответа на шаге 3 меньше 1/2.
Осталось доказать полиномиальность алгоритма. Для этого нужно за полиномиальное время уметь генерировать случайно и равномерно формулу размера N = п2 — п. Это делается следующим образом:
1) Генерируем некоторую последовательность (далее «слово») из N символов а и N — 1 символов p.
2) Делаем такой циклический сдвиг этого слова, чтобы оно начиналось на символ a и заканчивалось на p. Этому слову соответствует обратная польская запись для скобочного выражения от символов a.
3) По слову ищём скобочное выражение следующим образом: пробегаем по всем символам слова, если встречаем символ а, то помещаем его в стек. Если встречаем символ p, то извлекаем два элемента из стека, затем добавляем между ними символ p, заключаем их в скобки и помещаем в стек. Если по ходу процедуры стек окажется пуст, то переходим к шагу 2. Если все пройдёт нормально и мы дойдём до конца слова, и при этом в стеке останется всего один элемент, то искомым скобочным выражением и будет этот элемент. Иначе переходим к шагу 2.
4) Вместо букв p подставляем V или Л — равновероятно.
5) Каждую букву а в слове заменяем на переменную x1,..., xn или её отрицание (какую — выбираем равновероятно).
Корректность этого алгоритма и равномерность генерации формул следует из того, что существует взаимно-однозначное соответствие между обратными польскими записями из N символов a и N — 1 символов p и бинарными деревьями с N листьями, которые помечены символом а [9].
Итак, в предположении существования полиномиального строго генерического множества, на котором проблема выполнимости булевых формул разрешима за полиномиальное время, построен вероятностный полиномиальный алгоритм, разрешающий эту проблему на всём множестве формул. ■
Непосредственно из теоремы 1 следует
Теорема 2. Если P = NP и P = BPP, то не существует строго генерического полиномиального подмножества булевых формул, на котором проблема общезначимости булевых формул разрешима за полиномиальное время.
ЛИТЕРАТУРА
1. KapovichI., Miasnikov A, Schupp P., and Shpilrain V. Generic-case complexity, decision problems in group theory and random walks //J. Algebra. 2003. V. 264. No. 2. P. 665-694.
2. Kapovich I., Miasnikov A., Schupp P., and Shpilrain V. Average-case complexity for the word and membership problems in group theory // Adv. Math. 2005. V. 190. P. 343-359.
3. Hamkins J. D. and Miasnikov A. G. The halting problem is decidable on a set of asymptotic probability one // Notre Dame J. Formal Logic. 2006. V. 47. No. 4. P. 515-524.
4. GilmanR., Miasnikov A. G., Myasnikov A. D., and Ushakov A. Report on generic case complexity // Herald of Omsk University. 2007. Special Issue. P. 103-110.
5. Cook S. A. The complexity of theorem proving procedures // Proc. 3d Annual ACM Symposium on Theory of Computing. N. Y., USA, 1971. P. 151-158.
6. Impagliazzo R. and Wigderson A. P = BPP unless E has subexponential circuits: Derandomizing the XOR Lemma // Proc. 29th STOC. El Paso: ACM, 1997. P. 220-229.
7. Myasnikov A. and Rybalov A. Generic complexity of undecidable problems // J. Symbolic Logic. 2008. V. 73. No. 2. P. 656-673.
8. Rybalov A. Generic complexity of presburger arithmetic // Theory Comput. Systems. 2010. V. 46. No. 1. P. 2-8.
9. Кнут Д. Искусство программирования. М.: Вильямс, 2010. 720 с.
REFERENCES
1. KapovichI., Miasnikov A., Schupp P., and Shpilrain V. Generic-case complexity, decision problems in group theory and random walks. J. Algebra, 2003, vol. 264, no. 2, pp. 665-694.
2. Kapovich I., Miasnikov A., Schupp P., and Shpilrain V. Average-case complexity for the word and membership problems in group theory. Adv. Math., 2005, vol. 190, pp. 343-359.
3. Hamkins J. D. and Miasnikov A. G. The halting problem is decidable on a set of asymptotic probability one. Notre Dame J. Formal Logic, 2006, vol.47, no.4, pp. 515-524.
4. GilmanR., Miasnikov A. G., Myasnikov A. D., and Ushakov A. Report on generic case complexity. Herald of Omsk University, 2007, Special Issue, pp. 103-110.
5. Cook S. A. The complexity of theorem proving procedures. Proc. 3d Annual ACM Symposium on Theory of Computing, N. Y., USA, 1971, pp. 151-158.
6. Impagliazzo R. and Wigderson A. P = BPP unless E has subexponential circuits: Derandomizing the XOR Lemma. Proc. 29th STOC, El Paso, ACM, 1997, pp. 220-229.
7. Myasnikov A. and Rybalov A. Generic complexity of undecidable problems. J. Symbolic Logic, 2008, vol.73, no. 2, pp. 656-673.
8. Rybalov A. Generic complexity of presburger arithmetic. Theory Comput. Systems, 2010, vol.46, no. 1, pp. 2-8.
9. Knuth D. E. The Art of Computer Programming. Reading, Massachusetts, Addison-Wesley, 1997.