• Thèse soutenue le :
  • 2014-10-03
  • Salle des thèses

Résumé

Dans cette thèse, nous nous intéressons à la résolution du problème de la satisfiabilité propositionnelle (SAT). Ce problème fondamental en théorie de la complexité est aujourd’hui utilisé dans de nombreux domaines comme la planification, la bioinformatique, la vérification de matériels et de logiciels. En dépit d’énormes progrès observés ces dernières années dans la résolution pratique du problème SAT, il existe encore une forte demande d’algorithmes efficaces pouvant permettre de résoudre les problèmes difficiles. C’est dans ce contexte que se situent les différentes contributions apportées par cette thèse. Ces contributions s’attellent principalement autour de deux composants clés des solveurs SAT : les heuristiques de choix de variables de branchement et l’apprentissage de clauses.

Premièrement, nous proposons une méthode de résolution permettant d’exploiter les fonctions booléennes cachées généralement introduites lors de la phase d’encodage CNF pour réduire la taille des clauses apprises au cours de la recherche. Ensuite, nous proposons une approche de résolution basée sur le principe d’intensification qui indique les variables sur lesquelles le solveur devrait brancher prioritairement à chaque redémarrage. Ce principe permet ainsi au solveur de diriger la recherche sur la sous-formule booléenne la plus contraignante et de tirer profit du travail de recherche déjà accompli en évitant d’explorer le même sous-espace de recherche plusieurs fois. Dans une troisième contribution, nous proposons un nouveau schéma d’apprentissage de clauses qui permet de dériver une classe particulière de clauses Bi-Assertives et nous montrons que leur exploitation améliore significativement les performances des solveurs SAT CDCL issus de l’état de l’art. Finalement, nous nous sommes intéressés aux principales stratégies de gestion de la base de clauses apprises utilisées dans la littérature. En effet, partant de deux stratégies de réduction simples : élimination des clauses de manière aléatoire et celle utilisant la taille des clauses comme critère pour juger la qualité d’une clause apprise, et motiver par les résultats obtenus à partir de ces stratégies, nous proposons plusieurs nouvelles stratégies efficaces qui combinent le maintien de clauses courtes (de taille bornée par une valeur $k$), tout en supprimant aléatoirement les clauses de longueurs supérieures à $k$. Ces nouvelles stratégies nous permettent d’identifier les clauses les plus pertinentes pour le processus de recherche.