Мой коллега и я только что нажали несколько заметок одного из наших профессоров. В примечаниях говорится, что есть задачи, которые можно решить за полиномиальное время (относятся к классу PF), но которые НЕ поддаются проверке за полиномиальное время (НЕ относятся к классу NPF).
Чтобы уточнить эти классы: мы получаем некоторый вход X и производим некоторый выход Y такой, что (X, Y) находятся в отношении R, представляющем нашу задачу. Если за полиномиальное время можно получить Y для X, задача относится к классу PF. Если возможно проверить сертификат Z полиномиальной длины, который доказывает, что кортеж (X, Y) находится в отношении R за полиномиальное время, задача относится к классу NPF.
Мы не говорим о проблемах решения, где ответом является просто ДА или НЕТ (более формально, если некоторая строка принадлежит какому-либо языку). Для решения проблем кажется, что PF является подходящим подмножеством NPF. Однако для других задач все может быть иначе.
Знаете ли вы о задаче, которая может быть решена за полиномиальное время, но не проверена за полиномиальное время?
источник
Ответы:
Это возможно только при наличии множества допустимых выходов для данного входа. Т.е. когда отношение не является функцией, потому что оно нарушает единственность.R
Например, рассмотрим эту проблему:
Решение этой проблемы тривиально: продолжайте добавлять несколько избыточных состояний к TM , возможно, с некоторыми фиктивными переходами между ними, пока его кодировка не превысит n . Это базовое повторное применение леммы Паддинга к ТМ. Это потребует n дополнений, каждое из которых может добавить одно состояние, следовательно, это может быть сделано за полиномиальное время.M n n
С другой стороны, с учетом является неразрешимым , чтобы проверить , если Н является правильным выходом для входов п , М . Действительно, проверка L ( M ) = L ( N ) неразрешима (примените теорему Райса), и ограничение # N > n отбрасывает только конечное число N s из них. Поскольку мы удаляем конечное количество элементов из неразрешимой проблемы, мы все равно получаем неразрешимую проблему.n,M,N N n,M L(M)=L(N) #N>n N
Вы также можете заменить неразрешимое свойство чтобы получить вариации, которые все еще вычислимы, но NP сложны / полны. Например, учитывая n (в унарном порядке), тривиально вычислить граф G, имеющий n- клик внутри. Но с учетом n , G трудно проверить, существует ли n- клик.L(M)=L(N) n G n n,G n
источник
Это всего лишь проработка первого предложения ответа @ chi, так как я не нашел его очевидным.
Идея в том, что если у вас есть алгоритм, который находит ответ на некоторую проблему за полиномиальное время, то есть две возможности:
Ранее вы доказали (математически), что вывод алгоритма является решением проблемы, и в этом случае сами шаги алгоритма образуют доказательство правильности.
У вас есть другой алгоритм для проверки того, что вывод действительно является решением, и в этом случае вы должны запустить этот алгоритм (в противном случае вы попали бы в случай № 1), что подразумевает, что вы делаете это за полиномиальное время.
Поэтому такой проблемы быть не может.
источник