загрузка...

АЛГОРИТМЫ - Разработка и применение - 2016 год

Глава 9. PSPACE: класс задач за пределами NP

До сих пор в этой книге одним из основных вычислительных ресурсов считалось время выполнения. Именно эта концепция стала основой для принятия полиномиального времени как рабочего определения эффективности; и неявно именно она определяет различия между P и NP. В некоторой степени также упоминались требования к пространству (то есть затратам памяти) алгоритмов. В этой главе рассматривается класс задач, который определяет пространство как фундаментальный вычислительный ресурс. Попутно будет разработан естественный класс задач, превышающих по сложности NP и co-NP.

9.1. PSPACE

Мы будем изучать класс PSPACE — множество всех задач, которые могут быть решены алгоритмом с полиномиальной пространственной сложностью (то есть алгоритмом с затратами пространства, полиномиальными по размерам входных данных).

Для начала рассмотрим отношение PSPACE к классам задач, которые рассматривались выше. Прежде всего, за полиномиальное время алгоритм может потреблять не более чем полиномиальное пространство; итак, можно утверждать:

(9.1) P PSPACE

Однако множество PSPACE намного шире. Например, рассмотрим алгоритм, который просто считает от 0 до 2n - 1 в двоичной системе. Он просто реализует и-разрядный счетчик, который работает по тому же принципу, что и одометр в автомобиле. Таким образом, алгоритм выполняется за экспоненциальное время, после чего останавливается; при этом он использует полиномиальное пространство. И хотя этот алгоритм не делает ничего особенно интересного, он демонстрирует один важный принцип: пространство может повторно использоваться в вычислениях, тогда как для времени это по определению невозможно.

А вот более впечатляющее применение этого принципа.

(9.2) Существует алгоритм, решающий задачу 3-SAT с полиномиальными затратами пространства.

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

Для этого мы увеличиваем и-разрядный счетчик с 0 до 2n - 1, как описано выше. Значения счетчика ставятся в соответствие логическим присваиваниям: когда счетчик достигает значения q, оно интерпретируется как присваивание v, при котором xi содержит значение i-го бита q.

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

Так как 3-SAT является NP-полной задачей, у (9.2) имеется одно важное следствие.

(9.3) NP PSPACE

Доказательство. Рассмотрим произвольную задачу Y из NP. Так как YР 3-SAT, существует алгоритм, который решает Y с полиномиальным количеством шагов плюс полиномиальное количество обращений к «черному ящику» для 3-SAT. Используя алгоритм в (9.2) для реализации «черного ящика», мы получаем алгоритм для Y, использующий только полиномиальное пространство. ■

Как и в случае с классом Р, задача X принадлежит PSPACE в том, и только в том случае, если ее дополняющая задача также принадлежит PSPACE. Из этого следует, что co-NP PSPACE. Структурная диаграмма этих классов задач изображена на рис. 9.1.

Рис. 9.1. Отношения между подмножествами различных классов задач. Учтите, что гипотезы о том, что все эти классы отличны друг от друга, до сих пор не доказаны

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





загрузка...

загрузка...