¿Son triviales los circuitos cuasi-polinomiales para 3-SAT?

10

Supongamos que consideramos 3-SAT con v variables y cláusulas . Estoy investigando un método que parece tomar tiempo / espacio para resolver cualquier problema SAT que se ajuste a esta descripción, dentro de un error que se puede ajustar a una cantidad arbitraria. Sin embargo, hay una trampa.O ( v 2 + log c )cO(v2+logc)

Este método requiere un conjunto de valores calculados previamente, después de lo cual puede resolver un problema arbitrario de 3-SAT que se ajusta a la descripción anterior. Los valores calculados previamente son un conjunto de tamaño y cada valor ocupa espacio . El verdadero problema es que cada uno de estos valores podría tomar tiempo para calcular. Existe la posibilidad de que pueda encontrar una manera de acelerar estos cálculos.O ( 1 ) O ( 2 v )O(v2+logc)O(1)O(2v)

Estoy pensando que los límites en sí mismos superan los límites superiores presentados en esta pregunta (para la pequeña ). Entonces me pregunto, ¿hay una manera trivial de alcanzar los límites superiores que describo si permitimos las precomputaciones ?O ( v 2 + log c )cO(v2+logc)

Me gustaría continuar esta investigación y, con suerte, publicar mis resultados si todo funciona, pero primero me gustaría saber si hay una manera trivial de hacerlo tan bien o mejor.


ACTUALIZAR

He estado estudiando problemas relacionados además de investigar este algoritmo. Hice esta pregunta en el sitio de seguridad de TI de StackExchange en relación con el descifrado de contraseñas y SAT, si está interesado. Al menos una de las respuestas refleja esto.

Matt Groff
fuente
Dices que toma O (N ^ 2 + logc) tiempo / espacio ... ¿Entonces no está en PSPACE? Pero en QSPACE (cuasi-espacio)?
Tayfun paga el
@ Payfun Pay: se ejecuta en . Es un algoritmo determinista que le da a un módulo de resultados un primo (tenga en cuenta que este resultado es suficiente para que el resto del algoritmo determine una asignación satisfactoria). Se puede ejecutar para cualquier primo. Correr por más de una prima aumenta sus posibilidades de encontrar una tarea satisfactoria. Tiene la posibilidad de encontrar una asignación satisfactoria, si existe, de . p ( p - 1 ) / pO(v(2+logc))p(p1)/p
Matt Groff el
¿Necesita O (N ^ (2 + log (c))) ESPACIO?
Tayfun paga el
@ Payfun Pay: Sí. Todavía no he encontrado una manera de reducir las consideraciones de espacio.
Matt Groff el
1
Propondría cambiar el título a uno más apropiado. El título actual no parece atractivo, mientras que la pregunta en sí lo parece.
Yoshio Okamoto

Respuestas:

16

Si lo que estás estudiando funcionó, definitivamente no sería trivial.

Implicaría que 3SAT tiene circuitos (no uniformes) de tamaño . Entonces, cada lenguaje en N P (y la jerarquía de tiempo polinomial) tendría circuitos de tamaño cuasi polinomiales (es decir, n O ( log c n ) ).nO(logn)NPnO(logcn)

Incluso si tomara tiempo de preprocesamiento para producir una estructura de datos de solo 2 O ( log 2 n ) que luego podría responder correctamente consultas arbitrarias 3SAT de tamaño n en 2 O ( log 2 n ) tiempo aleatorio con alta probabilidad, 3SAT tendrían circuitos de tamaño cuasi polinomial, utilizando la traducción conocida de algoritmos aleatorios a circuitos. Esto no mejoraría los límites de tiempo del algoritmo conocido debido al preprocesamiento, pero aún sería extremadamente interesante como resultado no uniforme.22n2O(log2n)n2O(log2n)

¿Qué quiere decir con "dentro de un error que puede ajustarse a una cantidad arbitraria"? ¿El algoritmo es aleatorio?

Ryan Williams
fuente
:Gracias por tu respuesta. El algoritmo no es aleatorio. El tiempo de ejecución real del algoritmo en sí no es tan simple como lo describí. Básicamente, sin embargo, podemos ejecutarlo a través de ejecuciones repetidas para eliminar el error. Entonces, si lo ejecutamos veces, la probabilidad de error se reduciría por debajo de 1 / ( 2 x ) . Dudo en revelar los detalles porque me preocupa que revele demasiado sobre el algoritmo. x1/(2x)
Matt Groff el
3
¿Cómo puede el algoritmo no ser aleatorizado, sin embargo, puede ejecutarlo repetidamente para reducir el error? Creo que probablemente tenga que dar al menos algunos detalles más para comprender su pregunta.
Ryan Williams
2
Su algoritmo es tal que (si funciona), para cada primer , si el número de asignaciones satisfactorias no es un múltiplo de p, entonces el algoritmo encuentra una asignación satisfactoria.ppSe refiere (erróneamente) a eso como "un cambio para encontrar una asignación satisfactoria, si existe, de ".(p1)/pSi la dependencia del tiempo de ejecución en no es enorme, entonces esto produce circuitos (deterministas) de tamaño cuasi polinomial para SAT.p
El paso de preprocesamiento necesita . ¿Puedo tener una referencia a "la traducción conocida de algoritmos aleatorios a circuitos"? Entonces, si desea reducir el error, debe ejecutar el preprocesamiento n veces. Dudo que esto se pueda traducir a un cuasi circuito. ¿Qué ventaja tendrá esto sobre un algoritmo trivial? pn
Zirui Wang
@ZiruiWang: Busque . Supongamos que la estructura de datos responde a las consultas correctamente con probabilidad 3 / 4 . Tome 100 n copias de la estructura de datos de tamaño 2 O ( log 2 n ), cada una sembrada con diferentes cadenas de bits aleatorios. Tome la respuesta mayoritaria de todas las copias. Este es un algoritmo aleatorio tiempo quasipolynomial con error de menos de 1 / 2 n . Esto se puede convertir en un circuito de tamaño cuasipolinomial codificando una semilla adecuada. BPPP/poly3/4100n2O(log2n)1/2n
Ryan Williams
3

No sé si su resultado, si es válido, sería un avance no trivial, pero aquí hay un tipo de problema en el que podría probarlo:

Problema. Arregle una función . Dado y { 0 , 1 } n , encuentre x { 0 , 1 } n tal que f ( x ) = y .f:{0,1}n{0,1}ny{0,1}nx{0,1}nf(x)=y

Si puede calcularse eficientemente (digamos, por un pequeño circuito), su resultado implica algún tipo de solución a este problema.f

f2n22n/322n/3xy22n/322n/3STST=2nff

f

DW
fuente