Explanations for SAT Solvers
Explications pour les Solveurs SAT
Résumé
SAT solvers have become widely used tools for solving combinatorial decision or optimization problems, both inside and outside academia. One of the reasons for their success is their ability to efficiently explore the search space, which can be represented in the form of a tree. This type of tree can be used to justify that a decision problem has no solution (it is unsatisfiable). The aim of this thesis is to reduce this tree as much as possible to obtain a tree that can be assimilated by a user. To achieve this goal, we propose to recognize redundancies in the search tree by identifying sub-formulas that are unsatisfiable and proven as such several times during the search. When the search tree developed for these sub-formulas is of exponential size, significant compression can be achieved, which is moreover easily explainable to the user, justifying the use of expensive methods to identify them. During this thesis, we mainly studied two approaches. First, we focused on the detection of classical unsatisfiable formulas during the search: we proposed an algorithm to detect pigeon hole problems, which are matching problems that are simple to explain to the user but whose search tree is exponential. This algorithm relies both on a syntactic recognition of a part of the problem and on a semantic recognition of the mutual exclusions. In practice, few instances of this problem are found when solving SAT competition benchmarks. In a second step, we studied an approach of syntactic detection of inconsistent sub-formulas during the exploration of the combinatorial space by the solver. This time, we used a cache system for inconsistent formulas, detecting that the current formula contains an isomorphic subset of a cache entry already proven unsatisfiable. We use a reduction into subgraph isomorphisms to recognize the entries in this cache. This approach has been implemented into two SAT architectures: DPLL and CDCL. The complexity of the proposed approaches is very high. Indeed, on the one hand, the approach for detecting pigeon hole problems involves a significant combinatorics, and on the other hand, recognizing already proven unsatisfiable sub-formulas requires to regularly solve a sequence of NP-complete subgraph isomorphisms problems. As a result, we can apply our approaches only to a limited number of benchmarks, and obtain good results only on highly structured families of benchmarks. However, on these instances, the compression is impressive and gives trees that are really assimilable by the user.
Les solveurs SAT sont devenus des outils largement utilisés pour résoudre des problèmes de décision ou d’optimisation combinatoires, dans le monde académique comme dans le monde économique. L’une des raisons de leur succès est de parcourir efficacement l’espace de recherche, que l’on peut représenter sous la forme d’un arbre. Ce type d'arbre peut être utilisée pour justifier qu’un problème de décision n’admet pas de solution (il est incohérent). L’objectif de cette thèse est de réduire autant que possible cet arbre afin d'atteindre une taille assimilable par un utilisateur. Pour atteindre ce but, nous proposons de reconnaitre des redondances dans l'arbre de recherche en identifiant des sous-formules qui sont incohérentes et prouvées plusieurs fois comme telles au cours de la recherche. Lorsque l'arbre de recherche développé pour ces sous formules est de taille exponentielle, on peut obtenir une compression importante qui est de plus facilement explicable à l'utilisateur, ce qui justifie d'utiliser des méthodes couteuses pour les identifier. Au cours de la thèse, nous avons principalement étudié deux approches. Dans un premier temps, nous nous sommes intéressés à la détection de formules incohérentes classiques au cours de la recherche : nous avons proposé un algorithme pour détecter des problèmes de pigeons, qui sont des problèmes d’appariements simples à expliquer à l’utilisateur mais dont l’arbre de recherche est exponentiel. Cet algorithme repose à la fois sur une reconnaissance syntaxique d’une partie du problème et d’une reconnaissance sémantique des exclusions mutuelles. En pratique, on retrouve peu d’instances de ce problème lors de la résolution de benchmarks des compétitions SAT. Dans un second temps, nous avons étudié une approche de détection syntaxique de sous formules incohérentes lors de l’exploration de l’espace combinatoire par le solveur. Cette fois-ci, nous avons utilisé un système de cache de formules incohérentes en détectant que la formule courante contient un sous-ensemble isomorphe à une entrée du cache déjà prouvée incohérente. Nous utilisons une réduction en isomorphisme de sous-graphes pour reconnaitre les entrées de ce cache. Cette approche a été implémentée dans deux architectures de solveur SAT : DPLL et CDCL. Les approches proposées ont une complexité très élevée. En effet, d’un côté l’approche de détection de problèmes de pigeons implique une combinatoire importante, et de l’autre la reconnaissance de sous-formules déjà prouvées incohérentes nécessite de régulièrement résoudre une séquence de problèmes NP-complets d’isomorphismes de sous-graphes. De ce fait, nous ne parvenons à appliquer nos approches que sur un nombre limité de benchmarks et nous n’obtenons de bons résultats que sur des familles de benchmarks très structurées. Par contre, sur ces instances, la compression est impressionnante et donne des arbres qui sont de tailles réellement assimilables par l’utilisateur.
| Origine | Fichiers produits par l'(les) auteur(s) |
|---|---|
| Licence |
