Les solveurs SAT sont de plus en plus efficaces dans la résolution de grandes instances et sont utilisés comme back-end dans divers contextes. Chaque fois que l'on veut les utiliser pour résoudre un problème dans un domaine spécifique, il / elle doit proposer un encodage ad hoc qui a non seulement le bon ensemble de solutions mais met également les contraintes (même redondantes) sous une forme qui aide l'heuristique des solveurs à trouver une solution plus rapidement.
Beaucoup de tels encodages me semblent très courants, par exemple: affirmer qu'un ensemble fini de nœuds est lié comme un arbre, ou comme un DAG, ou qu'une liste est triée ...
Existe-t-il un référentiel / livre de recettes d'encodages courants pour les problèmes courants avec des solutions optimisées?
la source
Réponses:
Il y a quelques années, j'ai lu un document d'enquête qui semble pertinent, " Successful SAT Encoding Techniques " de Magnus Björk.
Abstrait:
la source
C'est toujours une bonne idée de consulter d'abord le Manuel de satisfaction [1] (je suppose qu'il n'est pas disponible gratuitement, désolé). Ici, le chapitre 2 est intitulé "Encodages CNF". À tout le moins, le livre fournit des références bibliographiques sur l'état de l'art au moment de la rédaction, et vous pouvez élargir votre recherche à travers elles.
De plus, voici et voici deux diapositives récentes sur le prétraitement SAT. Les diapositives donnent un aperçu concis des techniques de prétraitement, ainsi que d'autres références. L'idée est qu'au lieu d'essayer de modéliser "manuellement" le problème de manière efficace, vous le modélisez simplement de la manière la plus simple, appuyez sur OK, et un logiciel vous offre un encodage efficace.
[1] Biere, Armin, Marijn Heule et Hans van Maaren, éd. Manuel de satisfiabilité. Vol. 185. IOS Press, 2009.
la source
pas exactement une réponse directe mais un autre angle de plus en plus étroitement lié: une partie de cela est couverte par un domaine de recherche relativement nouveau connu sous le nom de SMT, Satisfiability Modulo Theories . l'idée de base est de combiner des encodages de problèmes (par exemple, arithmétique entière, graphiques, etc.) dans le solveur SAT, mais également d'utiliser / tirer parti des connaissances supplémentaires qui découlent de ce couplage pour créer des algorithmes de solution plus avancés. voici une enquête. comme indiqué, ils peuvent être beaucoup plus efficaces que de combiner un mécanisme de codage ad hoc avec des solveurs SAT standard.
Théories de Modulo de satisfaction: un apéritif / Leonardo de Moura et Nikolaj Bjørner
la source