Может ли любая NP-полная проблема быть решена с использованием не более чем полиномиального пространства (но при использовании экспоненциального времени?)

12

Я читал о NPC и его связи с PSPACE, и я хотел бы знать, могут ли проблемы NPC быть детерминированно решены с использованием алгоритма с наименьшим требованием к полиномиальному пространству, но потенциально с экспоненциальным временем (2 ^ P (n), где P - полиномиальный).

Более того, может ли оно быть обобщено до ОПЫТА в целом?

Причина, по которой я спрашиваю об этом, заключается в том, что я написал несколько программ для решения вырожденных случаев проблем с NPC, и они могут потреблять очень большие объемы оперативной памяти для сложных случаев, и мне интересно, есть ли лучший способ. Для справки см. Https://fc-solve.shlomifish.org/faq.html .

Рыба шломи
источник

Ответы:

27

Вообще говоря, для любого алгоритма верно следующее:

  1. Предположим, что - это алгоритм, который выполняется за время . Тогда не может занимать больше, чем места, так как для записи битов требуется время .Af(n)Af(n)f(n)f(n)
  2. Предположим, что - это алгоритм, требующий пространства . Тогда за времени может посетить каждое из его различных состояний, поэтому ничего не может получить, выполнив более времени.Af(n)2f(n)A2f(n)

Это следует из того:

NP PSPACE

Утверждение известно как часть отношений между классами, как показано на следующей диаграмме:

отношения между классами

Объяснение простое: проблема имеет сертификат полиномиальной длины . Алгоритм, который проверяет все возможные сертификаты, является алгоритмом, который решает во времени .Q NPyQ2nO(1)

Требуемое пространство:

  • y (многочлен от )n
  • пространство, необходимое для проверки . Поскольку является полиномиальным сертификатом, его можно проверить за полиномиальное время, следовательно, он не может требовать больше, чем полиномиальное пространство.yy

Поскольку сумма двух полиномов также является полиномом, можно определить с помощью полиномиального пространства.Q


Пример:

Предположим, что является экземпляром 3-CNF для литералов с предложениями. Назначение - это некоторая функция .φx1xnmff:{x1xn}{0,1}

Он гласит:

  • Есть разных назначений.2n
  • Дано задание , требуется время , чтобы вычислить значение , поэтому он не может требовать больше , чем пространства.fO(m)φO(m)

Таким образом, алгоритм который проверяет все возможные назначения, будет использовать полиномиальное пространство, работать в экспоненциальном времени и принимать решение 3-SAT.A

Это следует из того:

3-SAT , а так как 3-SAT является NP-Complete,PSPACENP PSPACE

жидкий кислород
источник
1
Почему EXPSPACE и EXPTIME связаны между собой? Я думал, что время и пространство были разными ресурсами. Один из примеров, который приходит на ум, - это взломать криптографическую схему, которая потребовала бы EXPTIME, но с постоянным пространством
WeCanBeFriends
6
f(n)f(n)2f(n)
F (n) отличается от O (n) в вашем примере?
WeCanBeFriends
1
@WeCanBeFriends Нельзя использовать экспоненциальное время с постоянным пространством: вам нужно по крайней мере пространство, используемое для подсчета до этого экспоненциального числа (например, счетчик программы на языке ассемблера), которое является полиномиальным (логарифмическое в экспоненциальном)
гигабайты
4
PEXPTIME
9

Да. Вот набросок прямого доказательства.

NPMpMnp(n)p(n)

cMMccp(n)ncp(n)p(n)cp(n)Miii6

00Mc1cp(n)p(n)2p(n)

Дэвид Ричерби
источник