¿Alguien podría señalar uno o más sitios web donde sea posible descargar una implementación funcional de un solucionador #SAT? Estoy interesado en aquellos que devuelven el recuento exacto de la solución, no una aproximación.
¿Alguien podría señalar uno o más sitios web donde sea posible descargar una implementación funcional de un solucionador #SAT? Estoy interesado en aquellos que devuelven el recuento exacto de la solución, no una aproximación.
Respuestas:
Puede hacer esto con SAT4J , simplemente iterando sobre todos los modelos: http://www.sat4j.org/howto.php#models . Me imagino que la mayoría de los solucionadores de SAT tienen esta habilidad.
Una opción es usar una biblioteca BDD, como JavaBDD . Todas estas bibliotecas tienen una función que cuenta las soluciones rápidamente o, al menos, facilitan la escritura de dicha función. La desventaja, sin embargo, es que la construcción del BDD será lenta en muchos casos y puede requerir mucha memoria.
Tema relacionado: Mejor solucionador SAT .
Lo mejor que encontré es "compilador c2d". http://reasoning.cs.ucla.edu/c2d/
Utiliza d-DNNF y necesita la opción -count .
El MBound Solver que se proporciona aquí http://www.cs.cornell.edu/~sabhar/ puede proporcionar recuentos de modelos con garantías probabilísticas. Es mucho más rápido que enumerar todas las soluciones.
Escribí un modelo pequeño / enumerador implicante principal . Esto ya se puede usar para el conteo de modelos con la enumeración de modelos, pero eso no es muy práctico. Si alguien está interesado, puedo extenderlo para que cuente modelos de implicantes principales.
El sitio web BeyondNP contiene un buen inventario de las herramientas existentes para resolver #SAT (y otros problemas difíciles relacionados con las fórmulas CNF). También puede encontrar una lista de herramientas para el conteo aproximado de modelos y la compilación de conocimientos (la tarea de transformar el CNF en una estructura de datos con suerte sucinta que a menudo admite el conteo de modelos de tiempo polinomiales).
También puede encontrar una lista de herramientas para preprocesar fórmulas CNF que pueden ser útiles para mejorar el rendimiento de los contadores de modelos y varios puntos de referencia .
Aquí hay uno llamado tensorCSP y basado en una herramienta llamada redes tensoriales. Se explica en este documento .
La glucosa es un solucionador SAT muy eficiente desarrollado en la universidad de Burdeos.