¿Los principales solucionadores de SAT pueden factorizar números fáciles?

11

Los solucionadores de SAT modernos son muy buenos para resolver muchos ejemplos del mundo real de instancias de SAT. Sin embargo, sabemos cómo generar los difíciles: por ejemplo, use una reducción de factoring a SAT y proporcione los números RSA como entrada.

Esto plantea la pregunta: ¿qué pasa si tomo un ejemplo fácil de factoring? En lugar de tomar dos números primos grandes en bits, ¿qué sucede si tomo un primo en bits y un primo q en bits, deje y la codificación como una instancia SAT. sería un número fácil de factorizar mediante métodos de búsqueda de fuerza bruta o tamiz, ya que uno de los factores es muy pequeño; ¿Un solucionador de SAT moderno con alguna reducción estándar de factoring a SAT también capta esta estructura?n/2plognn/lognN=pqFACTOR(N)N

Puede superar el factor de solución de SAT donde rápidamente?N=pq|p|=logn

Artem Kaznatcheev
fuente

Respuestas:

10

Hay otras instancias mucho más simples que sabemos que los algoritmos actuales no pueden resolver en un tiempo sub-exponencial. Estos algoritmos son incapaces de contar (casi todos son mejoras de DPLL que corresponden al sistema de resolución de prueba proposicional).

Lamentablemente, tales ejemplos son instancias insatisfactorias. La pregunta sobre cómo encontrar instancias duras satisfactorias naturales para estos algoritmos es un problema de investigación interesante (Russeell Impagliazzo lo mencionó durante el taller de complejidad de pruebas el año pasado en Banff). Hay instancias satisfactorias en las que sabemos que los algoritmos fallan gravemente si existe, pero no son muy naturales (se basan en fórmulas que expresan la solidez de los algoritmos).

Con respecto a la factorización, si el tamaño de los números es pequeño (por ejemplo, logarítmico como en su caso, es decir, los números se dan en unario), entonces, teóricamente, no hay ningún resultado que diga que los algoritmos actuales no pueden resolverlo, y de hecho podemos escribir de manera simple. algoritmos de tiempo polinómico que factorizan estos números. Entonces, si un programa particular de solución SAT puede resolverlos, puede depender del algoritmo particular.

Kaveh
fuente
Esperaba usar binario y solo tener uno de los factores para ser muy pequeño (en el orden , mientras que el otro es ) para preservar la mayor cantidad posible de factoring normal (tengo ganas de cambiar a Unary solo cambia muchas cosas para mí). Gracias por la información sobre problemas más simples, ¿puede proporcionar un enlace a un documento sobre las instancias difíciles e insatisfactorias basadas en el conteo? logNN/logN
Artem Kaznatcheev
@Artem, cualquier complejidad de prueba de límite inferior para la resolución daría un ejemplo, tome por ejemplo el principio del agujero de paloma. Uno puede extraer fácilmente una prueba de Resolución (refutación) para la instancia insatisfactoria a partir del cálculo de estos algoritmos en esa instancia. Hubo una buena encuesta realizada por Nathan Segerlind de 2007 que IIRC cubre esto entre otras cosas. Avíseme si no está allí y le encontraré otra referencia.
Kaveh
@Artem, creo que el argumento funciona también en el caso de que solo uno de los números sea logarítmico, es decir, podemos resolverlo en tiempo polinómico revisando todos los números pequeños para ver si uno de ellos es un factor del producto.
Kaveh
@Kaven sí, es por eso que hice uno de los números de tamaño logarítmico. Lo explico en la pregunta. Simplemente no quiero una respuesta que asuma una representación unaria como sugiere su tercer párrafo. Echaré un vistazo a Segerlind más tarde. Una vez más, gracias por el comentario: D.
Artem Kaznatcheev
@ Arte, de nada. :) (Solía ​​unario porque asumí que ambos números son pequeños y solía ser unario para tratar el hecho de que el tamaño debería ser exponencial en ellos, alternativamente, uno puede simplemente rellenarlos para hacerlos grandes.)
Kaveh