В теории вычислительной сложности задача принятия решений является 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-полной полноты, — это задача квантифицированной булевой формулы , обобщение задачи выполнимости булевой формулы . Задача квантифицированной булевой формулы принимает в качестве входных данных булево выражение, все переменные которого квантифицированы либо универсально, либо экзистенциально, например: Выходом задачи является значение квантифицированного выражения. Нахождение этого значения является PSPACE-полной. [1]
Проблемы реконфигурации касаются связности пространства состояний решений комбинаторной задачи. Например, проверка того, могут ли две 4-раскраски графа быть соединены друг с другом с помощью ходов, которые меняют цвет одной вершины за раз, сохраняя на каждом шаге допустимую 4-раскраску, является PSPACE-полной, [8] хотя та же самая задача для 3-раскрасок может быть решена за полиномиальное время. [9] Другое семейство проблем реконфигурации, используемых аналогично квантифицированным булевым формулам в качестве основы для доказательств полноты PSPACE многих других проблем в этой области, включает недетерминированную логику ограничений , в которой состояния являются ориентациями графа ограничений, подчиняющегося определенным ограничениям на то, сколько ребер должно быть ориентировано внутрь в каждой вершине, и в которых переходы из состояния в состояние меняют ориентацию одного ребра. [10]
Проблему квантифицированной булевой формулы можно интерпретировать как игру двух игроков, верификатора и фальсификатора. Игроки делают ходы, которые заполняют значения для квантифицированных переменных в порядке их вложения, причем верификатор заполняет экзистенциально квантифицированные переменные, а фальсификатор заполняет универсально квантифицированные переменные; игру выигрывает верификатор, если заполненная формула становится истинной, и фальсификатор в противном случае. Квантифицированная формула истинна тогда и только тогда, когда у верификатора есть выигрышная стратегия. Аналогично, задача определения победителя или проигравшего во многих других комбинаторных играх оказывается PSPACE-полной. Примерами игр, которые являются PSPACE-полными (при обобщении так, чтобы в них можно было играть на доске), являются игры Hex и Reversi . Некоторые другие обобщенные игры, такие как шахматы , шашки и го, являются EXPTIME-полными , поскольку игра между двумя идеальными игроками может быть очень долгой, поэтому они вряд ли будут в PSPACE. Но они станут PSPACE-полными, если будет применена полиномиальная граница числа ходов. [11]
Также возможно, что головоломки, сыгранные одним игроком, будут PSPACE-полными. Их часто можно интерпретировать как проблемы переконфигурации, [10] и включают в себя игры-пасьянсы Rush Hour , Mahjong , Atomix и Sokoban , а также механический компьютер Turing Tumble . [11]
PSPACE-полнота основана на сложности как функции размера входных данных , в пределе, поскольку растет без ограничений. Головоломки или игры с ограниченным числом позиций, такие как шахматы на обычной доске, не могут быть PSPACE-полными, потому что их можно решить за постоянное время и в постоянном пространстве с использованием очень большой таблицы поиска . Чтобы сформулировать PSPACE-полные версии этих игр, их необходимо модифицировать таким образом, чтобы сделать их число позиций неограниченным, например, играя в них на доске. В некоторых случаях, например, для шахмат, эти расширения являются искусственными.