¿Hay una tarea que se pueda resolver en tiempo polinómico pero que no se pueda verificar en tiempo polinómico?


34

Un colega mío y yo acabamos de tocar algunas notas de uno de nuestros profesores. Las notas indican que hay tareas que son posibles de resolver en tiempo polinomial (están en la clase de PF) pero que NO son verificables en tiempo polinomial (NO están en la clase de NPF).

Para elaborar sobre estas clases: obtenemos algo de entrada X y producimos algo de salida Y de tal manera que (X, Y) están en relación con R que representan nuestra tarea. Si es posible obtener Y para X en tiempo polinómico, la tarea pertenece a la clase de PF. Si es posible verificar el certificado de longitud polinómica Z que demuestra que una tupla (X, Y) está en relación con R en tiempo polinómico, la tarea pertenece a la clase de NPF.

No estamos hablando de problemas de decisión, donde la respuesta es simplemente SÍ o NO (más formalmente si alguna cadena pertenece a algún idioma). Para problemas de decisión, parece que PF es un subconjunto adecuado de NPF. Sin embargo, para otras tareas puede ser diferente.

¿Conoces una tarea que pueda resolverse en tiempo polinómico pero no verificada en tiempo polinómico?


8
Quizás no entiendo bien, pero ¿por qué el siguiente no es un algoritmo de verificación de tiempo polinomial? Dado , calcule la función f ( x ) usted mismo, utilizando el algoritmo de tiempo polinomial, y devuelva "correcto" si f ( x ) = y . ¿Es posible que haya leído mal o que el profesor habló mal y haya querido decir que hay problemas verificables en el tiempo polinómico pero que no se pueden resolver en el tiempo polinómico? (x,y)f(x)f(x)=y
Lieuwe Vinkhuijzen

1
@LieuweVinkhuijzen "¿decir que hay problemas verificables en el tiempo polinómico pero que no se pueden resolver en el tiempo polinómico?" [árbitro. necesario]
T. Verron

@ T.Verron Jaja sí, yo también estaría muy feliz de ver la prueba del profesor para este reclamo;)
Lieuwe Vinkhuijzen

Respuestas:


44

Esto solo es posible si hay muchas salidas admisibles para una entrada dada. Es decir, cuando la relación no es una función porque viola la unicidad.R

Por ejemplo, considere este problema:

Dado (representado en unario) y una TM M , produzca otra TM N tal que L ( M ) = L ( N ) y # N > n (donde # N representa la codificación (número de Gödel) de N en un número natural)nNMNL(M)=L(N)#N>n#NN

Resolver esto es trivial: continúe agregando algunos estados redundantes al TM , posiblemente con algunas transiciones ficticias entre ellos, hasta que su codificación exceda n . Esta es una aplicación básica repetida de Padding Lemma en TMs. Esto requerirá n rellenos, cada uno de los cuales puede agregar un estado, por lo tanto, se puede hacer en tiempo polinómico.Mnn

Por otra parte, dado es undecidable para comprobar si N es una salida correcta para las entradas de n , M . De hecho, verificar L ( M ) = L ( N ) es indecidible (aplicar el teorema de Rice), y la restricción # N > n solo descarta finitamente muchos N s de esos. Como eliminamos una cantidad finita de elementos de un problema indecidible, aún obtenemos un problema indecidible.n,M,NNn,ML(M)=L(N)#N>nN

También puede reemplazar la propiedad indecidible para obtener variaciones que todavía son computables pero NP duras / completas. Por ejemplo, dado n (en unario) es trivial calcular una gráfica G que tiene una n -clique dentro. Pero dado n , G es difícil verificar si existe una n -clique.L(M)=L(N)nGnn,Gn


1
Se esperaba que este no fuera el caso. ¡Gran respuesta!
Filip Haglund

77
Esto no responde la pregunta. El OP solicitó específicamente un problema no verificable en el sentido habitual, donde, además de la entrada y la supuesta respuesta, obtenemos un certificado que certifica la exactitud de la respuesta. En su caso, el certificado son los bits utilizados para generar de forma no determinista la nueva máquina Turing equivalente. Dada M , N y Z , es fácil comprobar si z da la máquina M . Sin z , la pregunta es si es fácil generar instancias difíciles de lenguajes (NPC), lo cual solo es cierto en Minicrypt y Cryptomania. zM,NzzMz
Lieuwe Vinkhuijzen

2
@chi No todos los pares pueden certificarse, pero el conjunto de pares M , N generado por su algoritmo puede certificarse. El certificado es la transcripción de su algoritmo que produce N a partir de M (por ejemplo, "comience con M , luego agregue este estado y agregue esta transición, luego ... y voilà, N !"). En general, si T es un algoritmo no determinista que, dado x , siempre calcula una y admisible , entonces una transcripción de una ruta de cálculo de T ( x ) es un certificado de que una y dada es admisible.M,NM,NNMMNTxyT(x)y
Lieuwe Vinkhuijzen

3
@chi Hay un ligero matiz en la pregunta: ¿Para una relación arbitraria , es posible que no todos admisible y son certificables, y le dará un ejemplo elegante. Sin embargo, la pregunta no pregunta si existen relaciones admisibles pero no certificables (la respuesta es , por su ejemplo), sino que pregunta si podemos tener un algoritmo que produzca resultados no certificables admisibles. La respuesta, aquí, debe ser no , debido al argumento anterior. Ry
Lieuwe Vinkhuijzen

2
@chi No sé qué pretendía preguntar el OP, pero encontré su respuesta muy esclarecedora, ¡aprendí algo! En mi opinión, la pregunta puede leerse de la manera que usted lo hace, o igualmente plausible como " ¿existen funciones unidireccionales? " (tal vez) o "¿ son fáciles de generar instancias difíciles de problemas NP? " (espero que así sea para RSA), o, la forma en que lo leí, como " ¿Es ?NPP " (no).
Lieuwe Vinkhuijzen

1

Esto es simplemente una elaboración de la primera oración de la respuesta de @ chi, ya que no lo encontré obvio.

La idea es que si tiene un algoritmo que encuentra la respuesta a algún problema en tiempo polinómico, entonces hay dos posibilidades:

  1. Anteriormente ha demostrado (matemáticamente) que la salida del algoritmo es una solución al problema, en cuyo caso, los pasos del algoritmo en sí mismos constituyen la prueba de corrección.

  2. Tiene un algoritmo diferente para verificar que la salida es realmente una solución, en cuyo caso debe estar ejecutando este algoritmo (de lo contrario, estaría en el caso n. ° 1), lo que implica que lo está haciendo en tiempo polinómico.

Por lo tanto, no puede haber tal problema.


I don't understand #2. What implies that the different algorithm runs in polynomial time?
Albert Hendriks

@AlbertHendriks: If the verifier didn't run in polynomial time then the original solver could not claim to have found a correct solution in polynomial time, because it needs to run the verifier to make sure its solution is correct.
Mehrdad
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.