В теории сложности вычислений задача решения является PSPACE-полной, если ее можно решить, используя объем памяти, полиномиальный по входной длине ( полиномиальному пространству ), и если любая другая задача, которая может быть решена в полиномиальном пространстве, может быть преобразована в нее. за полиномиальное время . Задачи, которые являются PSPACE-полными, можно рассматривать как самые сложные проблемы в PSPACE , классе задач решения, решаемых в полиномиальном пространстве, поскольку решение любой такой проблемы можно легко использовать для решения любой другой проблемы в PSPACE.
Задачи, известные как PSPACE-полные, включают определение свойств регулярных выражений и контекстно-зависимых грамматик , определение истинности количественных булевых формул , пошаговые изменения между решениями задач комбинаторной оптимизации, а также множество головоломок и игр.
Задача считается PSPACE-полной, если ее можно решить, используя полиномиальный объем памяти (она принадлежит PSPACE), и каждая задача в PSPACE может быть преобразована за полиномиальное время в эквивалентный экземпляр данной задачи. [1]
Многие подозревают, что PSPACE-полные задачи находятся за пределами более известных классов сложности P (полиномиальное время) и NP (недетерминированное полиномиальное время), но это неизвестно. [2] Известно, что они лежат вне класса NC , класса задач с высокоэффективными параллельными алгоритмами , поскольку задачи в NC могут быть решены в объеме пространства, полиномиальном от логарифма входного размера, и класса проблемы, решаемые в таком небольшом пространстве, строго содержатся в PSPACE в соответствии с теоремой об иерархии пространства .
Преобразования, которые обычно рассматриваются при определении PSPACE-полноты, представляют собой редукции «многие-единицы» за полиномиальное время , преобразования, которые преобразуют один экземпляр проблемы одного типа в эквивалентный единственный экземпляр проблемы другого типа. Однако полноту также можно определить с помощью сокращений Тьюринга , при которых одна проблема может быть решена за полиномиальное количество вызовов подпрограммы для другой задачи. Неизвестно, приводят ли эти два типа редукций к разным классам PSPACE-полных задач. [3] Также рассматривались другие типы сокращений, такие как сокращения «многие единицы», которые всегда увеличивают длину преобразованного входного сигнала. [4]
Версия гипотезы Бермана-Хартманиса для PSPACE-полных множеств утверждает, что все такие множества выглядят одинаково в том смысле, что все они могут быть преобразованы друг в друга с помощью биекций за полиномиальное время . [5]
Учитывая регулярное выражение , определение того, генерирует ли оно каждую строку в своем алфавите, является PSPACE-полным. [6]
Первой известной PSPACE-полной проблемой была проблема слов для детерминированных контекстно-зависимых грамматик . В словесной задаче для контекстно-зависимых грамматик дается набор грамматических преобразований, которые могут увеличивать, но не могут уменьшать длину предложения, и требуется определить, может ли данное предложение быть произведено с помощью этих преобразований. Техническое условие «детерминизма» (грубо подразумевающее, что каждое преобразование делает очевидным его использование) гарантирует, что этот процесс может быть решен в полиномиальном пространстве, а Курода (1964) показал, что каждая (возможно, недетерминированная) программа, вычислимая в линейном пространстве . пространство можно преобразовать в анализ контекстно-зависимой грамматики таким образом, чтобы сохранить детерминизм. [7] В 1970 году теорема Савича показала, что PSPACE закрыт в условиях недетерминизма, подразумевая, что даже недетерминированные контекстно-зависимые грамматики находятся в PSPACE. [1]
Стандартная проблема PSPACE-полноты, используемая во многих других результатах PSPACE-полноты, представляет собой проблему количественной булевой формулы , обобщение проблемы булевой выполнимости . Задача количественной булевой формулы принимает в качестве входных данных логическое выражение, все его переменные которого количественно определены либо универсально, либо экзистенциально, например:
Проблемы реконфигурации касаются связности пространства состояний решений комбинаторной задачи. Например, проверка того, могут ли две 4-раскраски графа быть соединены друг с другом ходами, которые меняют цвет одной вершины за раз, сохраняя на каждом шаге допустимую 4-раскраску, является PSPACE-полной, [8] даже хотя ту же задачу для 3-раскрасок можно решить за полиномиальное время. [9] Другое семейство задач реконфигурации, используемое аналогично количественным булевым формулам в качестве основы для доказательства PSPACE-полноты многих других проблем в этой области, включает в себя недетерминированную логику ограничений , в которой состояния представляют собой ориентации графа ограничений, подчиняющегося определенным ограничениям. от того, сколько ребер должно быть ориентировано внутрь в каждой вершине и в каком случае переходы из состояния в состояние меняют ориентацию одного ребра. [10]
Задачу с количественной булевой формулой можно интерпретировать как игру двух игроков: проверяющего и фальсификатора. Игроки делают ходы, которые заполняют значения кванторных переменных в том порядке, в котором они вложены: проверяющий заполняет экзистенциально кванторные переменные, а фальсификатор заполняет универсальные кванторные переменные; игру выигрывает проверяющий, если заполненная формула становится истинной, и фальсифицирующий в противном случае. Количественная формула верна тогда и только тогда, когда проверяющий имеет выигрышную стратегию. Аналогично, проблема определения победителя или проигравшего во многих других комбинаторных играх оказывается PSPACE-полной. Примерами игр, которые являются PSPACE-полными (если они обобщены так, что в них можно играть на доске), являются игры Hex и Reversi . Некоторые другие обобщенные игры, такие как шахматы , шашки (шашки) и го, являются EXPTIME-полными, поскольку игра между двумя идеальными игроками может быть очень продолжительной, поэтому они вряд ли будут находиться в PSPACE. Но они станут PSPACE-полными, если будет соблюдаться полиномиальная граница количества ходов. [11]
Головоломки, в которые играет один игрок, также могут быть PSPACE-полными. Их часто можно интерпретировать как проблемы реконфигурации, [10] и включают в себя пасьянсы « Час пик» , «Маджонг» , «Атомикс» и «Сокобан» , а также механический компьютер «Тьюринг Тамбл» . [11]
PSPACE-полнота основана на сложности как функции входного размера в пределе неограниченного роста. Головоломки или игры с ограниченным числом позиций, такие как шахматы на обычной доске, не могут быть PSPACE-полными, поскольку их можно решить в постоянном времени и пространстве с использованием очень большой справочной таблицы . Чтобы сформулировать PSPACE-полные версии этих игр, их необходимо изменить таким образом, чтобы число их позиций было неограниченным, например, вместо этого играя в них на доске . В некоторых случаях, например в шахматах, эти расширения являются искусственными.