Para (versiones de búsqueda) de problemas completos de NP , verificar una solución es claramente más fácil que encontrarla, ya que la verificación se puede hacer en tiempo polinómico, mientras que encontrar un testigo lleva (probablemente) tiempo exponencial.
En P , sin embargo, la solución también se puede encontrar en tiempo polinómico, por lo que no parece obvio cuándo es la verificación más rápida que encontrar la solución. De hecho, diferentes problemas parecen comportarse de manera diferente desde este punto de vista. Algunos ejemplos:
3SUM: dados números de entrada, encuentre 3 entre ellos que sumen 0. Por lo que sé, el algoritmo más rápido conocido se ejecuta en el tiempo , y este orden se conjetura como óptimo. Por otro lado, la verificación de una solución es mucho más rápida, ya que todo lo que tenemos que hacer es verificar que los 3 números encontrados sumen 0.O ( n 2 - o ( 1 ) )
Rutas más cortas de todos los pares: dado un gráfico con pesos de borde, calcule su matriz de distancia de ruta más corta. Una vez que se proporciona una matriz de este tipo, ¿se puede verificar más rápido que es la matriz de distancia correcta, en lugar de volver a calcularla? Supongo que la respuesta es quizás sí, pero ciertamente es menos obvio que para 3SUM.
Programación lineal. Si se proporciona una solución óptima reclamada, comprobarla es más fácil que volver a calcularla, cuando también se proporciona información auxiliar (una solución dual óptima). Por otro lado, si solo está disponible la solución primaria, no está claro si se puede verificar más rápido, en lugar de resolver el LP.
Pregunta: ¿qué se sabe sobre este tema? Es decir, ¿cuándo es más fácil verificar una solución para un problema en P que encontrar la solución?