Mejores límites superiores en SAT

43

En otro hilo , Joe Fitzsimons preguntó sobre "los mejores límites inferiores actuales en 3SAT".

Me gustaría ir a otro lado: ¿Cuál es el mejor límite superior actual en 3SAT? En otras palabras, ¿cuál es la complejidad temporal del solucionador SAT más eficiente?

En particular, ¿es concebible encontrar un algoritmo sub-exponencial (pero super-polinomial) para SAT?

MS Dousti
fuente
2
No sé acerca de los resultados analíticos, pero puede encontrar resultados experimentales aquí baldur.iti.uka.de/sat-race-2010/results.html (vea los enlaces "HTML")
Radu GRIGore
1
el título de esta pregunta es un poco engañoso, debido a la existencia de esta pregunta: cstheory.stackexchange.com/questions/1295/sat-solver-download . ¿Creo que podría reformularse como 'Mejores límites superiores en SAT'?
Suresh Venkat
@Suresh: La pregunta a la que se refiere se refiere a "#SAT", mientras que esta corresponde a SAT. Además, se hizo esa pregunta aproximadamente una semana después de esta. De todos modos, ¿todavía sugieres cambiar el título de este?
MS Dousti
sí, porque un "SAT Solver" es un objeto específico bien conocido, una base de código real para resolver SAT. Google se confundirá y redirigirá a las personas que buscan código aquí :).
Suresh Venkat
44
Con respecto a la motivación para esta pregunta, pensé que varias personas habían probado los solucionadores SAT en las instancias de 17x17. Parece ser la frontera de lo que se puede manejar con un solucionador SAT. En su lugar, podría intentar un solucionador paralelo, pero tenía la impresión, según las publicaciones de Bill Gasarch, de que necesitaría un esfuerzo a gran escala. También puede aplicar un solucionador SMT con una teoría adecuada, o utilizar un solucionador de restricciones que implemente una restricción global que tenga un propagador eficiente. En cada uno de estos casos, la nueva idea sería expresar una propiedad importante que es difícil de hacer usando cláusulas.
András Salamon

Respuestas:

38

Hay dos tipos de "mejores" solucionadores SAT, uno para teoría y otro para práctica.

Teoría

aleatorizado ( 1.32113 n ) para 3SAT.O(1.32113norte)

aleatorizado ( 1.321 n ) para 3SAT.O(1.321norte)

determinista ( 1.439 n ) para 3SAT.O(1.439norte)

Práctica

Consulte la conferencia SAT para ver los resultados de la competencia de cada año.

Tian Liu
fuente
Encontré un enlace a Iwama et al. papel . Entonces, ¿es realmente el último y mejor resultado para resolver SAT hasta ahora? O(1.32113norte)
MS Dousti
@ Sadeq: Creo que sí, pero solo para 3-SAT, no SAT.
Tian Liu
2
Ahora el mejor algoritmo está en tiempo de Timon Hertli, Robin A. Moser y Dominik Scheder. O(1.321n)
Tian Liu
10
Otra actualización más: en FOCS 2011, Timon Hertli ( arxiv.org/abs/1103.2165 ) demostró que el algoritmo PPSZ resuelve cada instancia de 3SAT en veces. 1.308n
Ryan Williams
21

No conozco ningún algoritmo aleatorio de error cero (o algoritmos coNE / Eadvice ,
para el caso) para SAT que tenga mejores límites que los algoritmos deterministas conocidos,
independientemente de si se promete o no una asignación satisfactoria.


"El problema 3-SAT se puede resolver determinísticamente en el tiempo ".O(1.3303norte)


"Para un 3-CNF excepcionalmente satisfactorio (resp. 4-CNF) en variables, la asignación satisfactoria se puede encontrar en el tiempo de ejecución determinista como máximo Onorte
(resp. OO(1.3071norte) ) ".O(1.4699norte)


  1. "Existe un algoritmo aleatorio para 3-SAT con
    error unilateral que se ejecuta en el tiempo ". O(1.30704norte)
  2. "Existe un algoritmo aleatorio para 4-SAT con
    error unilateral que se ejecuta en el tiempo ".O(1.46899norte)


"Hay un algoritmo aleatorio para unique-3-SAT tal que para ϵ=1/ /(1024)y
el número real que permite que el tiempo de ejecución del trabajo anterior para 3-SAT se exprese comoS
O(2(S+o(1))norte), el algoritmo del trabajo actual se ejecuta a tiempo ".O(2(S-ϵ+o(1))norte)


Comunidad
fuente
16

El algoritmo de Schoening es un algoritmo probabilístico para k-SAT con tiempo de ejecución , donde a = 2 ( k - 1 ) / k . Esto da como resultado un algoritmo O ( 1.33334 n ) para 3SAT, un O ( 1.5 n )O(unanorte)una=2(k-1)/ /kO(1.33334norte)O(1,5norte) para 4SAT, etc.

El algoritmo también ha sido (casi completamente) desrandomizado por Moser y Scheder, quienes dan un algoritmo determinista para resolver el tiempo de ejecución de kSAT donde a es la misma constante que antes, y ϵ > 0O((a+ϵ)n)aϵ>0 se puede hacer arbitrariamente pequeño

Nota: En esta respuesta, la gran notación Oh oculta los factores poli (n). Quería usar la notación , pero no se procesa correctamente.O

Robin Kothari
fuente
1
¿Por qué dices "casi por completo"? ¿Me perdí algo en el periódico?
András Salamon
1
Hay un O determinista ( ( 2 - 2algoritmo para k-SAT de ocho personas, así que perdóneme sin mencionarlos a todos. Aquí está el enlace:linkshub.elsevier.com/retrieve/pii/S0304397501001748. Entonces, parak=3tenemosO(1.5n)y no es tan bueno como otros límites para 3-SAT presentados aquí, pero para k-SAT es el mejor, que yo sepa. O((2-2k+1)norte)k=3O(1,5norte)
Grigory Yaroslavtsev
44
Dije "casi por completo" solo para indicar que hay un factor épsilon allí. Supongo que uno esperaría que una desrandomización completa logre el mismo tiempo de ejecución (hasta factores polinomiales). O tal vez eso no sea razonable esperar.
Robin Kothari
1
@Grigory Yaroslavtsev: ¿No es el algoritmo determinista Moser-Scheder para kSAT que mencioné más rápido que el que usted citó? ¿Me estoy perdiendo de algo?
Robin Kothari
1
Estaba preocupado por esto en tu notación, por lo que es más rápido. Parece que el artículo apareció en arXiv hace solo unos días: arxiv.org/PS_cache/arxiv/pdf/1008/1008.4067v1.pdf , así que no me sorprende que no lo supiera. ϵ
Grigory Yaroslavtsev
12

Como ya se mencionó, si está interesado en las garantías teóricas de tiempo de ejecución, esta pregunta es un duplicado.

Pero me gustaría señalar que si realmente desea resolver un problema concreto (como el problema de coloración que mencionó), creo que no tiene absolutamente ningún sentido estudiar los límites superiores teóricos.

Aunque deseaba evitar los aspectos de "ingeniería", le sugiero que tome algunos solucionadores SAT populares, los pruebe y vea qué sucede (la mayoría de ellos pueden leer el mismo formato de archivo DIMACS, por lo que es fácil intentarlo diferentes solucionadores). Puede tener sorpresas positivas y negativas. Recientemente tuve una familia de instancias SAT; Un montón de instancias con decenas de miles de variables y más de un millón de cláusulas resultaron fáciles de resolver, mientras que las instancias aparentemente mucho más simples con solo cientos de variables y miles de cláusulas fueron demasiado difíciles para cualquier solucionador que intenté.

Jukka Suomela
fuente
8
Además del resumen de Jukka, también vale la pena señalar que hay dos tipos principales de solucionadores de SAT: aquellos basados ​​en la propagación de encuestas, que funcionan bien para instancias de SAT aleatorias, y aquellos que usan el aprendizaje de cláusulas combinado con la resolución de la unidad, que tienden a funcionar bien descubrir estructura combinatoria. Estos tienen un comportamiento bastante diferente. Los peores casos para los solucionadores de SAT tienden a ser instancias que no son satisfactorias, pero donde el espacio de nogoods tiene una estructura compleja que no permite muchas podas. Lamentablemente, los casos de combinatoria tienden a ser de este tipo.
András Salamon
11

O(1.308norte)

Kaveh
fuente
Supongo que cuando a alguien se le ocurre un límite superior mejor, citaría este artículo. Solo se ha citado una vez este documento, que es "Un algoritmo de satisfacción y dureza promedio de mayúsculas y minúsculas para fórmulas sobre la base binaria completa". Y parecen hablar solo de ciertos tipos de fórmulas. Por lo tanto, este parece ser el mejor límite superior hasta ahora.
Tayfun paga
@TayfunPay: El último papel en mi respuesta cita ese papel.
@RickyDemer Uhuh! ¿Es un límite mejor que esto? La notación no es tan clara para mí.
Tayfun paga
@TayfunPay: Sí, y puede buscar en los dos documentos como se describe a continuación. S3Sk En la parte superior de la página 11, ese documento dice que su algoritmo tiene el mismo límite que PPSZ, lo que significa que no mostraron nada más de lo que mencioné en mi oración anterior. (continúa ...)
(... continuación) S2SnorteSS3
8

Es imposible que 3SAT tenga algoritmos sub-exponenciales a menos que la hipótesis del tiempo exponencial sea ​​falsa.

O(1.324norte)

O(1.32216norte)

Mohammad Al-Turkistany
fuente
15
¿No es eso una tautología?
Tsuyoshi Ito
1
2o(norte)
El trabajo de Kazuo Iwama et al. (2004) es más nuevo que el de Schoening (1999). Me pregunto si hay resultados aún más recientes disponibles.
MS Dousti
8
Para evitar la posibilidad de confusión, mi último comentario se refiere a la primera oración de la respuesta: "Es imposible que 3SAT tenga algoritmos sub-exponenciales a menos que la hipótesis del tiempo exponencial (ETH) sea falsa". Entiendo que el tiempo exponencial La hipótesis es la misma hipótesis que establece que no hay un algoritmo para 3SAT cuyo tiempo de ejecución sea subexponencial (es decir, 2 ^ {o (n)}) en el número de variables.
Tsuyoshi Ito
10
Y para evitar más confusión, agregaré que cuando Tsuyoshi publicó su comentario, la respuesta solo contenía esa oración, lo que hizo que su comentario fuera muy apropiado.
Robin Kothari
7

Esta publicación trata de los límites superiores en SAT. Este uno se ocupa de mejores cotas inferiores. Este enlace brinda detalles de la competencia anual que compara las implementaciones de solucionadores SAT, que se pueden descargar. Para simplificar, puede comenzar con SAT4J , una biblioteca basada en Java para la resolución de SAT.

Dave Clarke
fuente
Resulta que esta cuestión fue ya le han hecho antes; Simplemente no lo vi cuando busqué en el sitio web. La respuesta de Tian Liu en la pregunta de los límites superiores es exactamente lo que estaba buscando. Gracias por los enlaces, Dave!
Daniel Apon
1
Esto es evidencia de que paso mucho tiempo aquí ;-)
Dave Clarke
estamos contentos de que lo hagas :)
Suresh Venkat
2
No estoy seguro de si recomendaría sat4J, no solo es significativamente más lento que el estado de la técnica, sino también algo más complejo. Sin embargo, es cierto que es muy personalizable debido a la estructura orientada a objetos. MiniSat está muy bien escrito y 2.2 es de última generación.
Mikolas
3

El mejor algoritmo determinista para 3-SAT ahora tiene un límite superior 1.32793 ^ n, consulte https://arxiv.org/abs/1804.07901 de Sixue Liu. Básicamente, los límites superiores para todos los k-SAT se han mejorado en este documento.

EN KI Wong
fuente