Estoy tratando de resolver un problema SAT de 25k cláusulas 5k variables. Como ha estado funcionando durante una hora (precosat) y me gustaría resolver los más grandes después, estoy buscando un SAT-Solver multinúcleo.
Como parece haber muchos solucionadores SAT, estoy bastante perdido.
¿Alguien podría señalarme el mejor para mi caso?
También sería feliz si alguien me pudiera dar el tiempo aproximado (si es posible).
algorithms
reference-request
parallel-computing
sat-solvers
multsatsolv
fuente
fuente
Respuestas:
Echa un vistazo a los resultados de la competencia SAT 2013 de este año . En base a estos resultados, definitivamente pruebe Lingeling . Plingeling es la variante paralela de la misma.
Si no necesita demostrar su insatisfacción (tal vez sepa que la instancia es satisfactoria y solo necesita conocer una tarea que la haga SAT), también puede probar los métodos de búsqueda locales.
fuente
No estoy seguro de la existencia de prácticos solucionadores de satélite multinúcleo, pero hay algunos proyectos y documentos:
También encontré este punto interesante: puede ejecutar un solucionador de satélites regular varias veces con diferentes semillas en el mismo problema en paralelo, para obtener un efecto multinúcleo.
Editar: Incorporando mis comentarios sobre la idea de vzn aquí:
Nadie puede darle un tiempo aproximado basado en variables, cláusulas, porque algunos problemas SAT son extremadamente difíciles de resolver (léase: no sucederán), incluso con un relativamente pequeño ; mientras que otras instancias enormes se pueden resolver relativamente rápido (y es para estas instancias que los solucionadores de satélites son útiles).n m , nmetro norte m , n
fuente
En realidad, hay una manera muy simple de convertir cualquier solucionador SAT en una versión paralela porque SAT es vergonzosamente paralelo en el siguiente sentido.
Elija un poder de dos para dividirlo por . Luego elija variables y asigne todos los valores booleanos posibles. Habrá fórmulas SAT resultantes después de las asignaciones. Resuelve cada uno por separado (en paralelo). Existe una solución general si existe una de las soluciones separadas y la solución completa es exactamente la unión de todas las soluciones separadas. n 2 n2n n 2n
fuente