¿Cuánto ayudaría un oráculo SAT a acelerar los algoritmos de tiempo polinomiales?

23

El acceso a un oráculo proporcionaría una mayor aceleración súper polinomial para todo en (suponiendo que el conjunto no esté vacío). Sin embargo, está menos claro cuánto se beneficiaría de este acceso al oráculo. Por supuesto, la aceleración en no puede ser superpolinomial, pero aún puede ser polinomial. Por ejemplo, ¿podríamos encontrar un camino más corto más rápido con un oráculo que sin él? ¿Qué tal algunas tareas más sofisticadas, como la minimización de funciones submodulares o la programación lineal? ¿Se beneficiarían ellos (u otros problemas naturales en ) de un oráculo ?SATNPPPPSATPSAT

En términos más generales, si podemos detectar algún problema en y usar un oráculo para ello, ¿cuál de los problemas en podría ver una aceleración?NPPP

Andras Farago
fuente
2
¿Qué tan rápido es el oráculo? Si toma tiempo , se pueden acelerar más problemas que si toma tiempo , donde es el tamaño de la fórmula SAT. O(s)O(s5)s
Peter Shor
2
@PeterShor Supongo que el oráculo, al recibir una fórmula SAT como una consulta, devuelve una respuesta SÍ o NO, lo que significa si la fórmula es satisfactoria o no, en un solo paso (tiempo constante). Esto es independiente del tamaño de la fórmula. Por supuesto, la fórmula tiene que ser construida para ser consultada. Este tiempo de construcción no es independiente del tamaño de la fórmula, y también depende del problema qué fórmulas deben consultarse. Pero una vez que se construye la fórmula, recibir la respuesta se cuenta como un solo paso, para cualquier fórmula.
Andras Farago
3
Si en lugar de un oráculo SAT Σ2SAT oráculo SAT \ Sigma_2 , entonces podría usarse para encontrar circuitos mínimos para cualquier problema. Esto daría un costo amortizado casi óptimo a cualquier problema (la razón por la que solo se amortiza es que si solo usa esto una vez, entonces el tamaño de la fórmula Σ2SAT que anota es esencialmente el tiempo de ejecución de su algoritmo de tiempo polivinílico original: pero después de ese paso, tendrá un circuito óptimo para todas las instancias de tamaño n ).
Joshua Grochow
@JoshuaGrochow ¡Tu comentario es muy interesante! Sería genial verlo como una respuesta, con más detalles.
Andras Farago

Respuestas:

15

En realidad, la aceptación de las máquinas de Turing no deterministas en el tiempo es reducible en tiempo a SAT (la construcción es a través de una simulación inconsciente, ver Arora-Barak), por lo que generalmente cada vez que una máquina no determinista es apreciablemente más rápida que una determinista uno, veremos al menos algo de aceleración con un oráculo SAT.tO(tlogt)

Para ser más concretos, me viene a la mente la prueba de primalidad, ya que la mejor variante del algoritmo AKS parece probar la primalidad de un número de bits en el tiempo . Pero si vamos a la "vieja escuela", Pratt dio una TM no determinista para decidir la primalidad en el tiempo . La aceptación de esta máquina se puede reducir (determinísticamente) en tiempo a una instancia SAT.nO(n6polylogn)O(n3polylogn)O(n3polylogn)

El problema 3SUM puede ser otro ejemplo, ya que parece que uno puede adivinar una solución y verificarla en tiempo subcuadrático, y luego la aceptación de dicha máquina puede reducirse a SAT en tiempo subcuadrático.

Joe Bebel
fuente
7

En términos más generales, si podemos detectar algún problema en NP − P y usar un oráculo para ello, ¿cuál de los problemas en P podría ver una aceleración?

Esta pregunta se vuelve más directa en la representación y el tiempo requerido para reducir un problema a otro ...

La respuesta principal que tengo en mente es un oráculo de programación entera / lineal. La versión de decisión de ese problema es NP-complete. Hay una "reducción" trivial de la programación lineal porque es un caso especial. Pero un oráculo para la programación lineal solo (y mucho menos para ILP) acelera muchos problemas que pueden resolverse inmediatamente mediante programación lineal. Pueden reducirse en tiempo lineal reescribiendo el problema como un LP. Por ejemplo, caminos más cortos y otros problemas de flujo, coincidencias.

Pero no creo que ILP sea el único de ninguna manera, probablemente es más que la gente no ha pensado mucho, por ejemplo, reducir el camino más corto a TSP, etc.

usul
fuente
3

En una nota relacionada (más de un comentario, publicando como respuesta por solicitud), si en lugar de un oráculo uno permite un oráculo , entonces podría usarse para encontrar circuitos mínimos para cualquier problema en (Esto sigue la misma idea que la prueba de Karp-Lipton). Esto daría un costo amortizado casi óptimo a cualquier problema; la razón por la que solo se amortiza es que si solo usa esto una vez, entonces el tamaño de la fórmula que anota es esencialmente el tiempo de ejecución de su algoritmo original de poli-tiempo, pero después de ese paso, entonces tiene un circuito óptimo para todos instancias de tamaño .Σ 2 S A T P Σ 2 S A T nSATΣ2SATPΣ2SATn

Joshua Grochow
fuente
Encuentro esta respuesta muy interesante, porque muestra que un oráculo puede ser mucho más útil / poderoso que un oráculo N P , ¡incluso para problemas prácticos en P ! Por supuesto, sabíamos que N P N PN P (suponiendo P H no se derrumba debajo del segundo nivel), pero parecía un hecho teórico bastante oscura que no tiene nada que ver con P . Pero esta percepción estaba mal, la diferencia puede ser incluso esencial para los problemas prácticos en P . (Lástima que no tengamos una N P ni unaNPNPNPPNPNPNPPHPPNP oráculo ...)NPNP
Andras Farago
1
@AndrasFarago: ¡Punto interesante! Me pregunto si hay alguna consecuencia interesante y natural para los "problemas prácticos en " de tener oráculos más arriba en P H . Mi conjetura inicial sería que realmente no sabemos, en relación con el hecho de que realmente no sabemos cómo usar muy bien algunas alternancias de cuantificadores muy bien: cstheory.stackexchange.com/a/11403/129PPH
Joshua Grochow
@ JoshuaGrochow Un problema al usar un oráculo de nivel superior de PH podría verse así. Encuentre un circuito de tamaño mínimo que resuelva correctamente el problema original. Entre los circuitos de tamaño mínimo (puede haber exponencialmente muchos), encuentre uno que tenga la máxima eficiencia energética (con alguna definición de eficiencia energética). Entre los circuitos resultantes (posiblemente todavía exponencialmente muchos), encuentre uno que tenga una profundidad mínima. Y así sucesivamente, minimice / maximice alternativamente varias funciones objetivas, posiblemente muchas de ellas. Creo que para optimizaciones mínimas / máximas anidadas necesitaríamos un oráculo de nivel k + 2 de PH. kk+2
Andras Farago