Существует ли задача, которая разрешима за полиномиальное время, но не поддается проверке за полиномиальное время?

34

Мой коллега и я только что нажали несколько заметок одного из наших профессоров. В примечаниях говорится, что есть задачи, которые можно решить за полиномиальное время (относятся к классу PF), но которые НЕ поддаются проверке за полиномиальное время (НЕ относятся к классу NPF).

Чтобы уточнить эти классы: мы получаем некоторый вход X и производим некоторый выход Y такой, что (X, Y) находятся в отношении R, представляющем нашу задачу. Если за полиномиальное время можно получить Y для X, задача относится к классу PF. Если возможно проверить сертификат Z полиномиальной длины, который доказывает, что кортеж (X, Y) находится в отношении R за полиномиальное время, задача относится к классу NPF.

Мы не говорим о проблемах решения, где ответом является просто ДА или НЕТ (более формально, если некоторая строка принадлежит какому-либо языку). Для решения проблем кажется, что PF является подходящим подмножеством NPF. Однако для других задач все может быть иначе.

Знаете ли вы о задаче, которая может быть решена за полиномиальное время, но не проверена за полиномиальное время?

Drozi
источник
8
Возможно, я неправильно понимаю, но почему следующий алгоритм проверки не является полиномиальным? Учитывая , вычислите функцию f ( x ) самостоятельно, используя алгоритм полиномиального времени, и верните «исправить», если f ( x ) = y . Возможно ли, что вы неправильно поняли или ошиблись профессором и вместо этого хотели сказать, что есть проблемы, поддающиеся проверке в полиномиальное время, но не решаемые в полиномиальное время? (x,y)f(x)f(x)=год
Lieuwe Vinkhuijzen
1
@LieuweVinkhuijzen "сказать, что есть проблемы, поддающиеся проверке за полиномиальное время, но не решаемые за полиномиальное время?" [см. необходимо]
Т. Веррон
@ T.Verron Хаха, я тоже был бы очень рад увидеть доказательства профессора в этом утверждении;)
Lieuwe Vinkhuijzen

Ответы:

44

Это возможно только при наличии множества допустимых выходов для данного входа. Т.е. когда отношение не является функцией, потому что оно нарушает единственность.R

Например, рассмотрим эту проблему:

Учитывая (представленный в унарном виде) и TM M , создайте другой TM N такой, что L ( M ) = L ( N ) и # N > n (где # N обозначает кодирование (число Геделя) N в натуральное число)nNMNL(M)=L(N)#N>n#NN

Решение этой проблемы тривиально: продолжайте добавлять несколько избыточных состояний к TM , возможно, с некоторыми фиктивными переходами между ними, пока его кодировка не превысит n . Это базовое повторное применение леммы Паддинга к ТМ. Это потребует n дополнений, каждое из которых может добавить одно состояние, следовательно, это может быть сделано за полиномиальное время.Mnn

С другой стороны, с учетом является неразрешимым , чтобы проверить , если Н является правильным выходом для входов п , М . Действительно, проверка L ( M ) = L ( N ) неразрешима (примените теорему Райса), и ограничение # N > n отбрасывает только конечное число N s из них. Поскольку мы удаляем конечное количество элементов из неразрешимой проблемы, мы все равно получаем неразрешимую проблему.n,M,NNn,ML(M)=L(N)#N>nN

Вы также можете заменить неразрешимое свойство чтобы получить вариации, которые все еще вычислимы, но NP сложны / полны. Например, учитывая n (в унарном порядке), тривиально вычислить граф G, имеющий n- клик внутри. Но с учетом n , G трудно проверить, существует ли n- клик.L(M)=L(N)nGnn,Gn

чи
источник
1
Ожидается, что это не так. Отличный ответ!
Филип Хаглунд
7
Это не отвечает на вопрос. ОП специально задала вопрос о проблеме, которую нельзя проверить в обычном смысле, когда в дополнение к вводу и предполагаемому ответу мы получаем сертификат который подтверждает правильность ответа. В вашем случае сертификат - это биты, используемые для недетерминированной генерации новой эквивалентной машины Тьюринга. Учитывая M , N и Z , то легко проверить , является ли г дает машину M . Без z вопрос заключается в том, легко ли создавать жесткие экземпляры языков (NPC), что справедливо только для Minicrypt и Cryptomania. zM,NzzMz
Lieuwe Vinkhuijzen
2
@chi Не все пары могут быть сертифицированы, но набор пар M , N, сгенерированных вашим алгоритмом, может быть сертифицирован. Сертификат является расшифровкой вашего алгоритма, создающего N из M (например, «начните с M , затем добавьте это состояние и добавьте этот переход, затем ... и вуаля, N !»). В общем, если T является недетерминированным алгоритмом, который, учитывая x , всегда вычисляет допустимый y , то расшифровка стенда пути вычисления T ( x ) является свидетельством того, что данный y допустим.M,NM,NNMMNTxyT(x)y
Lieuwe Vinkhuijzen
3
@chi В этом вопросе есть небольшой нюанс: для произвольного отношения возможно, что не все допустимые y являются сертифицируемыми, и вы привели элегантный пример. Однако, вопрос не спрашивает , является ли допустимым , но uncertifiable отношения существуют (ответ да , на вашем примере), вместо этого он спрашивает , может ли у нас есть алгоритм , который производит допустимый, uncertifiable выход. Ответ здесь, должно быть, нет , из-за аргумента выше. Ry
Lieuwe Vinkhuijzen
2
NPP
1

Это всего лишь проработка первого предложения ответа @ chi, так как я не нашел его очевидным.

Идея в том, что если у вас есть алгоритм, который находит ответ на некоторую проблему за полиномиальное время, то есть две возможности:

  1. Ранее вы доказали (математически), что вывод алгоритма является решением проблемы, и в этом случае сами шаги алгоритма образуют доказательство правильности.

  2. У вас есть другой алгоритм для проверки того, что вывод действительно является решением, и в этом случае вы должны запустить этот алгоритм (в противном случае вы попали бы в случай № 1), что подразумевает, что вы делаете это за полиномиальное время.

Поэтому такой проблемы быть не может.

Mehrdad
источник
Я не понимаю # 2. Что означает, что другой алгоритм выполняется за полиномиальное время?
Альберт Хендрикс
@AlbertHendriks: Если верификатор не выполнялся за полиномиальное время, то исходный решатель не мог утверждать, что нашел правильное решение за полиномиальное время, потому что ему нужно запустить верификатор, чтобы убедиться, что его решение корректно.
Мердад