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

2017 Математические основы информатики и программирования №36

МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ

УДК 510.52

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

А. Н. Рыбалов

Омский государственный технический университет, г. Омск, Россия

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

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

DOI 10.17223/20710410/36/8

ON GENERIC NP-COMPLETENESS OF THE BOOLEAN SATISFIABILITY PROBLEM

A. N. Rybalov

Omsk State Technical University, Omsk, 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. Many classical undecidable or hard algorithmic problems become feasible in the generic case. But there are generically hard problems. In this paper we introduce a notion of generic polynomial reducibility algorithmic problems, which preserve the property of polynomial decidability of the problem for almost all inputs and has the property of transitivity. It is proved that the classical satisfiability problem of Boolean formulas is complete with respect to this generic reducibility in the generic analogue of class NP.

Keywords: generic complexity, Boolean satisfiability problem, NP-completeness.

Введение

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

1 Работа поддержана грантом РНФ № 17-11-01117.

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

В данной работе вводится понятие генерической полиномиальной сводимости алгоритмических проблем, которое сохраняет свойство разрешимости проблемы за полиномиальное время для почти всех входов при условии равенства классов P = BPP, где класс BPP состоит из проблем, разрешимых за полиномиальное время на вероятностных машинах Тьюринга. В работе [6] доказано, что это равенство следует из весьма правдоподобных гипотез о вычислительной сложности некоторых трудных проблем. Далее в работе доказывается, что проблема выполнимости булевых формул [7] является полной относительно генерической полиномиальной сводимости в генерическом аналоге класса NP.

1. Генерические алгоритмы

Пусть I — некоторое множество. Функция size : I ^ N называется функцией размера, если для любого n G N множество In = {x G I : size(x) = n} конечно. Например, если I = Е* —множество слов над конечным алфавитом Е, то функцией размера будет функция, определённая для любого слова w как его длина |w|. Для множества натуральных чисел N функция размера сопоставляет любому натуральному числу длину его двоичной записи. Как обычно делается в теории вычислимости, будем под алгоритмическими проблемами понимать проблемы распознавания подмножеств из некоторого множества входов с определённой на нем функцией длины. Для подмножества S С I определим последовательность

Pn(S) = ^, n =1, 2, 3,...,

1 ^n 1

где Sn = S П In — множество входов из S размера n. Заметим, что pn

p(S) = lim pn(S).

n—^^o

Множество S называется генерическим, если p(S) = 1, и пренебрежимым, если p(S) = 0. Очевидно, что S генерическое тогда и только тогда, когда его дополнение I \ S пренебрежимо.

Следуя [4], назовём множество Б строго пренебрежимым, если последовательность рп(Б) экспоненциально быстро сходится к нулю, т.е. существуют константы а, 0 < а < 1, и С > 0, такие, что для любого п

р„(Б) < Сап.

Теперь Б называется строго генерическим, если его дополнение I \ Б строго пренебрежимо.

Алгоритм А с множеством входов I и множеством выходов 3 и {?} (? Е 3) называется (строго) генерическим, если

1) А останавливается на всех входах из I;

2) множество {х Е I : А(х) = ?} является (строго) генерическим.

Аналогично определяется понятие вероятностного генерического алгоритма. Гене-

рический алгоритм А вычисляет функцию / : I ^ 3, если (А(х) = у Е 3) ^ (/(х) = у) для всех х Е I. Ситуация А(х) = ? означает, что А не может вычислить функцию / на аргументе х. Но условие 2 гарантирует, что А корректно вычисляет / на почти всех входах (входах из генерического множества). Множество Б С I называется (строго) генерически разрешимым за полиномиальное время, если существует (строго) генери-ческий полиномиальный алгоритм, вычисляющий его характеристическую функцию. Различие между генерически разрешимыми проблемами и строго генерически разрешимыми проблемами поясняется в работе [8].

2. Генерическая полиномиальная сводимость

Пусть I, 3 — некоторые множества входов с определёнными на них функциями размера, Р(3) —множество всех подмножеств 3. Множество А С I генерически полиномиально сводится к множеству В С 3 (обозначается А ^СепР В), если существуют вероятностный полиномиальный алгоритм ^ : I х N ^ Р(3) и {?,!} , полином р(п), полином д(п) степени больше 2 и константа С > 0, такие, что:

1) для всех х Е I либо (Уп ^(х,п) = ?), либо для всех п ^ д(к), где к = в1ге(х), выполнены следующие условия:

а) Уу Е Я(х,п) (у = ! ^ з1ге(у) = п);

б) все элементы в ^(х, п) \ {!} выдаются алгоритмом ^ равновероятно;

в) вероятность получить ответ ! в ^(х,п) не больше 2-Ск; ) |К(х,п)| > 1

) |3п| (Р(п))к;

д) х Е А ^ Я(х,п) С В;

е) х Е А ^ я(х,п) С 3 \ В;

2) множество {х Е I : Уп (^(х,п) = ?)} строго пренебрежимо.

Рассмотрим подробнее каждое из свойств данного определения. Помимо элементов множества 3, алгоритм ^ может выдавать два особых выхода: ? — неопределённый ответ и ! — неудачная генерация. Вероятностный полиномиальный алгоритм ^ (если его выход не равен ?) каждому элементу х множества входов I проблемы А и каждому размеру п ^ д(в1ге(х)) сопоставляет достаточно большое подмножество (свойство 1, г) Я(х,п) входов 3 проблемы В размера п (свойство 1, а). При этом каждый элемент из Я(х,п), за исключением элемента !, генерируется равновероятно (свойство 1, б). Вероятность получить неудачно сгенерированный выход ! экспонециально мала (свойство 1, в). Свойства 1, д и 1, е гарантируют, что это подмножество полностью попадает в В, если х Е А, и полностью лежит вне В для х Е А. Свойство 2 говорит о том, что

алгоритм R лишь для пренебрежимого множества входов из I может всегда выдавать неопределённый ответ.

Теорема 1. Если A ^oenp B и B строго генерически разрешимо за полиномиальное время, то для A существует полиномиальный вероятностный алгоритм, распознающий A на некотором полиномиальном строго генерическом множестве. Таким образом, при условии P = BPP множество A строго генерически разрешимо за полиномиальное время.

Доказательство. Пусть R — полиномиальный вероятностный алгоритм, осуществляющий генерическую полиномиальную сводимость A ^oenp B ; B — строго ге-нерический полиномиальный алгоритм, вычисляющий характеристическую функцию множества B; q(n) —многочлен из определения сводимости A ^oenp B. Вероятностный генерический алгоритм A, вычисляющий характеристическую функцию множества A, работает на входе x размера n следующим образом:

1) запустить алгоритм R(x,q(n)), который выдаёт ответ y;

2) если y = ?, выдать ?;

3) если y = !, выдать НЕТ;

4) иначе запустить алгоритм B на y G J ;

5) если B(y) = ?, выдать НЕТ;

6) иначе выдать ответ B(y).

Очевидно, что этот вероятностный алгоритм полиномиален. Кроме того, неопределённый ответ он выдаёт на строго генерическом множестве — это следует из свойства 2 определения генерической полиномиальной сводимости. Заметим, что неправильный ответ алгоритм может выдать на шагах 3 и 5. Докажем, что вероятность этого меньше 1/2. Для шага 3 вероятность меньше 2-Cn по свойству 1, в из определения сводимости— меньше 1/4 при достаточно большом n. Для шага 5 она не больше

Ky G J : B(y) = ?}q(n)1 _ Ky G J : B(y) = ?}q(n)! |Jç(n)!

Напомним, что индекс ^(п) внизу означает, что мы рассматриваем в соответствующих множествах только элементы размера ^(п). Так как алгоритм В строго генерический, то существует константа а > 0, такая, что

|{у С 3 : В(у) = ?},(„)! < 1

|J|q(n) 2aq(n) '

Из свойства 1, г определения сводимости следует, что существует полином p(n), такой, что для любого n

,JJ^, < p(q(n))n = 2nlog(P(q(n))). |R(x,q(n))|

Получаем оценку сверху для вероятности выдачи ответа на шаге 5

2n log(p(q(n))) \ \ \

_ = 2a log(p(q(n)))-aq(n) < 1/4

2«ç(n) '

для достаточно больших n, так как многочлен q(n) имеет степень не меньше 2. Итого, получаем, что вероятность неправильного ответа меньше 1/4 + 1/4 = 1/2. Таким отбразом, вероятностный алгоритм A работает корректно.

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

Теорема 2. Если А ^СепР В и В ^СепР С, то А ^СепР С.

Доказательство. Пусть ^1, — полиномиальные вероятностные алгоритмы, осуществляющие генерические полиномиальные сводимости А ^оепр В и В ^оепр С. Пусть р1 (п), р2 (п), (п), д2 (п) — соответствующие полиномы и С1, С2 — соответствующие константы. Вероятностный алгоритм осуществляющий сводимость А ^оепр С, работает на входе (х,п), где п > д2(д1(к)), к = в1ге(х), следующим образом:

1) запустить алгоритм (х,д1(к)), который выдаст ответ у;

2) если у = ?, выдать ?;

3) если у = !, выдать !;

4) иначе запустить алгоритм ^2(у,п), который выдаст ответ г;

5) если г = ?, выдать !;

6) если г = !, выдать !;

7) иначе выдать г.

Очевидно, что этот вероятностный алгоритм является полиномиальным. Необходимо проверить, что выполнены все свойства полиномиальной генерической сводимости. Свойство 2 выполнено, так как алгоритм выдаёт неопределённый ответ только на тех элементах х, на которых это делает алгоритм Свойства 1, а и 1, б выполняются, так как они выпонены для алгоритма Свойства 1, д и 1, е выполняются, так как они верны для алгоритмов и Свойство 1, г также следует из того, что оно выполнено для алгоритма при этом соответсвующий полином р3(п) = р2(п). Докажем свойство 1, в. Ответ ! может быть выдан на шагах 3, 5 и 6. Оценим вероятность для каждого шага. Для шага 3 вероятность меньше 2-С1к. На шаге 5 вероятность оценивается как в доказательстве теоремы 1: она не больше

^к 1о§(р1 (д1(к)))-ад1(к) < 2-^1 к

для достаточно больших к. Для шага 6 эта вероятность меньше 2-С>281ж(у) < 2-°2к по свойству 1, в для сводимости В ^оепр С. Итого получаем оценку сверху

2-С1к + 2-С1к + 2-°2к < 2-Сзк

для некоторой константы С3 > 0.

3. Генерическая NP-полнота проблемы выполнимости булевых формул

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

Напомним вкратце, в чём заключается этот способ представления. Булевой формуле ф в базисе {V, Л, —} сопоставляется бинарное дерево Тф, внутренние вершины которого помечены символами V и Л, а листья — переменными или их отрицаниями. С бинарным деревом Тф, имеющим п листьев, связывается множество переменных {х1,... , хп} так, что каждому листу Тф может быть приписана, вообще говоря, произвольная переменная из множества {х1,... ,хп} либо её отрицание. Под размером з(ф) формулы ф будем понимать число листьев п дерева Тф. В дальнейшем будем отождествлять каждую булеву формулу ф с деревом Тф. Обозначим через Т множество всех булевых формул, а через Тп — множество всех формул в Т размера п.

1 /2п\

Лемма 1 [8]. |^"п| = 2п-1(2п)пСп_ 1, где Сп =-( ) — п-е число Каталана.

п + 1 \ п )

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

Е?(ф) = {ф V ((х1 Л — х1) Л ф), ф — произвольная формула}.

Очевидно, что ф выполнима тогда и только тогда, когда любая формула из Ед(ф) выполнима.

Лемма 2. Для любой формулы ф имеет место

|ТП| (16(п - 2))г

для любого п > к + 2, где к — размер формулы ф.

Доказательство. Пусть формула ф имеет размер к. Тогда для любой формулы ф V ((х1 Л — х1) Л ф) из множества Ед(ф) П ^п+2 формула ф должна иметь размер п — к. Кроме того, в этой формуле может участвовать любая из п переменных. Поэтому, аналогично тому, как это делалось в доказательстве леммы 1, можно подсчитать

|£д(ф) П^п+2| = 2п-г-1(2п)п-гСп-*-1.

Отсюда

/ 2

|£д(ф) П^п+2| 2п-г-1(2п)п-гСп-к-1 1 Сп-к-1 1 п V п — к — 1

|^п+21 2п-1

п — 1

1 (п — 1)! 2(п — к — 1)... (п — к) = 1 ((п — 1)... (п — к))2 > (4п)г (п — к — 1)! 2(п — 1) ...п = (4п)г 2(п — 1)... (2п — 2к — 1) > >_ (п — 1)... (п — к) ч2 > 1 1 _ 1

>

(4п)Н 2(п — 1)... (2п — 2к — 1)7 (4п)г 22г (16п)г' т . |Ед(ф)п+2к 1 |Ед(ф)пк 1 _

Таким образом, имеем ——-.— > , откуда ——— > ---—г.

|^п+2| (16п)г |^п| (16(п — 2))г

Определим генерический аналог класса ЫР. Множество Б С I принадлежит классу sgNP, если существует полиномиальное строго генерическое множество О С I, такое, что Б П О Е ЫР. Множество Б € sgNP называется генерически ЫР-полным, если для любого А Е sgNP имеет место А ^СепР Б.

Теорема 3. Проблема выполнимости булевых формул генерически ЫР-полна.

Доказательство. Пусть А € sgNP. Тогда существует полиномиальное строго генерическое множество О, такое, что АП О Е NP. Отсюда, по теореме Кука, следует, что существует классическая полиномиальная сводимость f множества А П О к проблеме выполнимости. Полиномиальный вероятностный алгоритм генерически сводящий проблему А к проблеме выполнимости, работает на входе (ж, п) следующим образом:

1) проверяет, принадлежит ли ж множеству О;

2) если ж Е О, выдаёт ?;

3) если ж Е О, то строит формулу ф = f(ж), такую, что ф выполнима тогда и только тогда, когда ж Е А;

4) случайно и равновероятно генерирует формулу из множества П Fn. Как

это делается за полиномиальное время, описано в [8]. Проверим свойства полиномиальной сводимости. Свойство 2 следует из того, что множество G строго генерическое. Свойства 1, а, б следуют из описания шага 4. Свойство 1, в очевидно выполняется: алгоритм вообще не выдаёт ответ !. Свойства 1, д, е также выполняются по построению формулы ф. Наконец, свойство 1, г следует из леммы 2.

Автор выражает благодарность рецензенту за полезные замечания и предложения по улучшению текста статьи.

ЛИТЕРАТУРА

1. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982. 419 с.

2. Levin L. Average case complete problems // SIAM J. Computing. 1987. V. 15. P. 285-286.

3. Gurevich Y. Average case completeness //J. Computer System Sciences. 1991. V. 42. P. 346398.

4. 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.

5. 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.

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. 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.

8. Рыбалов А. О генерической сложности проблемы общезначимости булевых формул // Прикладная дискретная математика. 2016. №2(32). С. 119-126.

REFERENCES

1. Garey M. and Johnson D. Computers and Intractability. N. Y., Freeman & Co, 1979. 340 p.

2. Levin L. Average case complete problems. SIAM J. Computing, 1987, vol. 15, pp. 285-286.

3. Gurevich Y. Average case completeness. J. Computer System Sciences, 1991, vol.42, pp.346398.

4. 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.

5. Gilman R., Miasnikov A. G., Myasnikov A. D., and Ushakov A. Report on generic case complexity. Herald of Omsk University, 2007, Special Issue, pp. 103-110.

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. 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.

8. Rybalov A. O genericheskoy slozhnosti problemy obshcheznachimosti bulevykh formul [On generic complexity of the validity problem for Boolean formulas]. Prikladnaya Diskretnaya Matematika, 2016, no. 2