Rapport de stage: Analyse et comparaison de paramétrage pour des algorithmes de recherche locale Wenjie Fang ENS Stage effectué au LINA, Université de Nantes sous la direction de Charlotte Truchet (LINA, Université de Nantes) et Frédéric Saubion (LERIA, Université d Angers) du 1 er juin 2010 au 24 e aout 2010. 7 septembre 2010 Résumé Le but de ce stage était d étudier le paramétrage de WalkSAT, un algorithme de recherche locale pour le problème SAT. Cette étude nécessite un benchmark représentatif pour obtenir un panorama raisonnablement large des performances de WalkSAT. Suivant une méthode inspiré par le solveur SATzilla (méta-solveur qui choisit l algorithme de résolution sur des critères statistiques), l obtention d un tel benchmark a été abordée de façon statistique, à partir de critères intrinsèque à l instance. Un regroupement des instances SAT par clustering sur les caractéristiques statistiques des instances est proposé. Bien que l analyse n ait pas permis de retrouver un classement des instances selon leur nature et leur origine, les caractéristiques statistiques a montré leur importance dans une étude des instances 3SAT aléatoires autour du seuil de satisfaisabilité. Dans un deuxième temps, une étude de l influence des paramètres sur la performance de WalkSAT a été réalisée. Pour trouver le paramétrage optimal de WalkSAT, une version l algorithme Revac, qui est simplifiée et adaptée à WalkSAT, a été utilisée. L expérience a montré que le paramétrage optimal pourrait varier entre les instances différentes, ce qui est en accord avec le point de vue No Free Lunch. Afin d explorer d autres caratérisations des instances SAT, une nouvelle caractéristique ϕ 0, inspirée de travaux en physique statistique, a été étudiée. Le comportement de ϕ 0 et ϕ 0 a été étudié expérimentalement. Les liens possibles de ϕ 0 avec la difficulté des instances SAT et le problème MAXSAT ont été aussi explorés. Ces études ont produit des résultats intéressants, et ouvrent des pistes de recherche intéressantes. 1
Table des matières 1 Introduction 3 1.1 Le problème SAT........................... 3 1.2 WalkSAT, parmi les algorithmes de recherche locale....... 4 1.3 Instances SAT et la mesure de performance............ 5 2 Autour des caractéristiques statistiques 7 2.1 Motivations.............................. 7 2.2 Statistical Analysis Toolkit for SAT (SAT4SAT)......... 8 2.3 Regroupement des instances avec SAT4SAT............ 9 2.4 Temps de calcul et caractéristiques statistiques.......... 12 2.5 La structure fine autour du seuil des instances 3SAT aléatoires. 12 3 Paramétrage de WalkSAT 15 3.1 Implémentation modifiée de WalkSAT............... 16 3.2 Distribution du temps de calcul de WalkSAT........... 16 3.3 Evolution de la performance suivant les paramètres de WalkSAT 17 3.4 Variation du nombre de flips par seconde de WalkSAT selon le paramètre de bruit p......................... 19 3.5 Paramétrage automatique de Walksat............... 22 4 Découvrir une nouvelle caractéristique 25 4.1 Un point de vue physique...................... 25 4.2 Mesure de ϕ 0............................. 27 4.3 Evolution de ϕ 0 suivant le nombre de variables avec c/v fixé... 27 4.4 Fluctuation de ϕ 0.......................... 28 4.5 Corrélation avec la difficulté des instance aléatoire........ 31 4.6 Corrélation avec la solution de MAXSAT............. 31 5 Conclusion 32 2
1 Introduction Ce rapport présente les travaux effectués lors de sur mon stage de L3 à l Université de Nantes du 1 er juin au 24 août 2010, encadré par Charlotte Truchet à l Université de Nantes et Frédéric Saubion à l Université d Angers dans le projet RUBIS. Ce stage porte sur l étude du paramétrage d algorithmes de recherche locale dans le domaine d optimisation combinatoire, plus particulièrement, sur le problème SAT et l algorithme WalkSAT[20]. Le problème SAT est important et même canonique en optimisation combinatoire, et l algorithme WalkSAT est très connu et très performant parmi les algorithmes de recherche locale pour le problème SAT. Il est connu que les paramètres peuvent fortement influencer la performance des algorithmes de recherche locale. Cependant, le paramétrage de ces algorithmes a fin d obtenir la meilleure performance est encore un problème largement ouvert. Ce problème est aussi important car ces algorithmes de recherche locale sont très utilisés dans la recherche et dans l industrie. Durant ce stage, l algorithme WalkSAT a été étudié car il est représentatif des algorithmes visés pour le problème SAT. Afin de paramétrer l algorithme WalkSAT, il faut d abord étudier l influence des paramètres sur la performance de WalkSAT, et donc mesurer et comparer cette performance avec différents paramètres. Pour ne pas influencer les mesures, il faut choisir un ensemble représentatif d instances de SAT, ce qui nécessite une classification des instances de SAT. Le but de ce stage est de proposer une méthode de sélection des instances représentatives de SAT pour la mesure et la comparaison de la performance des algorithmes, et d étudier l influence des paramètres sur la performance de WalkSAT. Ce rapport est organisé en 5 sections. Le reste de cette section est consacrée à l introduction du problème SAT, l algorithme WalkSAT et l importance des problèmes à étudier dans ce stage. Dans la section 2 on décrira d une tentative de méthode pour classifier les instances de SAT et choisir celles qui sont les plus représentatives. La section 3 concerne l étude de l influence des paramètres sur la performance de WalkSAT et des résultats obtenus. La section 4 prśente une nouvelle caractérisation pour les instances de SAT, qui pourrait servir à la classification des instances. La dernière section conclut ce rapport. 1.1 Le problème SAT Le problème SAT est un problème de décision qui consiste à décider si une formule de la logique propositionnelle en forme normale conjonctive est satisfaisable. C est un problème au cœur de divers domaines, comme par exemple la complexité et l optimisation combinatoire. Il est le premier problème démontré NP-complet [8]. Beaucoup de problèmes NP-complets peuvent être ramenés à SAT par une réduction polynomiale, d où son importance, car ces réductions s appliquent aussi pour les versions d optimisation de ces problèmes. SAT a aussi diverses applications dans le domaine de l intelligence artificielle et dans l industrie. Son importance théorique et pratique incite beaucoup de chercheurs et programmeurs à inventer des algorithmes de plus en plus efficaces pour résoudre ce problème. Voici quelques exemples : SATzilla [24], glucose [1], WalkSAT [20]. Une instance de SAT est une formule logique propositionnelle F en forme 3
normale conjonctive, c est-à-dire une conjonction de clauses qui sont des disjonctions de littéraux, où un littéral est une variable booléenne ou une négation de variable booléenne. En notant E l ensemble des variables booléennes de l instance, on peut définir une valuation comme une fonction de E dans {0, 1}. En fixant l ordre des variables, une valuation peut être considérée comme un vecteur booléen. Une instance est dite satisfaisable si et seulement s il existe une valuation pour laquelle l instance soit logiquement vraie. On dit que cette valuation satisfait cette instance. Dans le cas contraire, l instance est dite non satisfaisable. Désormais, pour simplifier la notation, on appellera instance une instance SAT, et toutes les variables mentionnées sont booléennes sauf indication contraire. 1.2 WalkSAT, parmi les algorithmes de recherche locale Originellement problème de décision, le problème SAT a une forme d optimisation appelée MAXSAT, visant à trouver une valuation qui minimise le nombre de clauses fausses dans la formule. Si on trouve une valuation qui rend nul le nombre de clauses fausses de l instance proposée, on peut affirmer que cette instance est satisfaisable, et donc résoudre le problème SAT pour cette instance. Dans ce contexte, on peut appliquer des méthodes dans le domaine de l optimisation combinatoire. L optimisation combinatoire est un domaine de l informatique consacré à la résolution des problèmes d optimisation dans le contexte discret. Plus précisément, il s agit d optimiser une fonction objectif dans un espace discret de recherche. Dans ce domaine, il y a une famille d algorithmes simples et performants qui suscite beaucoup d intérêt de la part des chercheurs : les algorithmes de recherche locale. La recherche locale est une méta-heuristique permettant d optimiser la fonction objectif en se promenant itérativement dans l espace de recherche suivant une structure de voisinage. Les algorithmes et méta-heuristiques de recherche locale sont très utilisés et très performants en pratique, par exemple la recherche tabou et le recuit simulé [20]. Il est donc raisonnable d aborder le problème SAT par la recherche locale. Afin d adapter la recherche locale au problème SAT, on introduit une correspondance entre les ingrédients nécessaires pour la recherche locale et la structure d une instance SAT. Etant donné une instance avec n variables, une solution est un vecteur booléen de longueur n vu comme une valuation, l espace de recherche est l ensemble des vecteurs booléens de longueur n. La fonction objectif pour cette instance est le nombre de clauses fausses dans cette valuation. Si la fonction objectif est nulle pour une certaine valuation, par définition l instance est satisfaite par cette valuation. La structure de voisinage est donnée par la distance de Hamming, c est-à-dire le nombre de variables ayant deux valeurs différentes entre deux valuations. Le voisinage d une valuation est l ensemble des valuations ayant la distance de Hamming de 1 avec la valuation concernée. On se déplace dans cette structure de voisinage en changeant la valeur d une composante dans le vecteur courant, qui est compatible avec la définition de voisinage. Un tel déplacement en changeant la valuation d une variable est appelé un flip sur cette variable. On dit aussi flipper une variable dans la valuation. Pour mieux optimiser la fonction objectif, il est favorable que le déplacement soit glouton, c est-à-dire se déplacer toujours vers les voisins ayant une meilleure 4
valeur de fonction objectif. Un obstacle majeur de cette approche est l existence de minima locaux, qui peuvent coincer une recherche locale trop gloutonne. Pour contourner cet obstacle, des mécanismes dédiés à faire sortir la recherche de minima locaux sont proposés. Deux stratégies souvent utilisées sont la perturbation stochastique et le restart, qui sont aussi utilisées dans l algorithme WalkSAT. Une autre utilité du restart est de diversifier la recherche, qui nous permet d explorer plus complètement l espace de recherche. WalkSAT est un algorithme de recherche locale pour le problème SAT proposé par Selman, Kautz et Cohen qui améliore leur algorithme précédent, GSAT [20]. Cet algorithme possède plusieurs variantes. La variante étudiée dans ce stage est WalkSAT/SKC, la version de l implémentation maintenue par Kautz [19]. Voici son pseudo-code dans l Algorithme 1. Algorithm 1 WalkSAT Require: Une instance SAT F Ensure: Renvoyer une valuation qui satisfait F si l algorithme termine loop T := une valuation tirée aléatoirement for i := 1 to Maxiter do if T satisfait F then return T else C := une clause de F aléatoirement choisie non satisfaite par T if rand(0, 1) < p then Flipper dans T une variable aléatoirement choisie dans C else Flipper dans T une variable dans C qui minimise le nombre de clauses rendues fausses après le flip end if end if end for end loop WalkSAT décrit ici ne garantit pas la terminaison, mais la validité de la solution est évidente en cas de terminaison. Dans la pratique, il y a souvent une contrainte de temps de calcul pour que l algorithme ne boucle pas indéfiniment. Dans WalkSAT il y a deux paramètres, Maxiter et p, qui correspondent respectivement à deux stratégie pour contourner le problème des minima locaux, le restart et la perturbation stochastique. En fait le restart aussi sert à diversifier la recherche. Ces deux paramètres influencent beaucoup la performance de WalkSAT [13]. Dans la pratique, ces paramètres sont souvent déterminés empiriquement. Dans l implémentation maintenue par Kautz, les valeurs par défaut de M axiter et p sont respectivement 100000 et 0.5. D autres ont déjà travaillé sur le paramétrage automatique [12, 18]. 1.3 Instances SAT et la mesure de performance Pour étudier l influence des paramètres sur la performance de WalkSAT, il faut choisir des instances assez représentatives comme benchmarks, ce qui nécessite une compréhension des instances de SAT courantes. 5
Une source importante de benchmarks de SAT est la Compétition SAT et la SAT Race [3]. Ce sont des compétitions entre des solvers de SAT lors de la conférence annuelle SAT. Les instances utilisées sont publiées sur leur site web, avec la performance des solvers les plus avancés. Dans la Compétition SAT, les instances sont divisées selon leur origine en trois catégories : industrielle, fabriquée et random. Les instances industrielles viennent de l application de SAT dans l industrie, par exemple la vérification automatique de circuits intégrés. Ces instances sont souvent de taille très grande et difficiles. Les instances fabriquées sont des instances issues d autre problèmes de décision, mais codées comme des instances de SAT. Ces instances sont structurées dû au codage de problème. Quant aux instances random, comme leur nom l indique, ce sont des instances générées de façon aléatoire. Ces instances sont, par nature, non structurées. Les instances sont en plus regroupées selon leur satisfaisabilité. Généralement, une instance satisfaisable est plus facile à résoudre, car il suffit de proposer une valuation satisfaisante. Quant à une instance non satisfaisable, il faut prouver la non-satisfaisabilité. Un autre composant important de la Compétition SAT est une collection de solvers. Il y a en général deux types de solvers, complet et incomplet. Les instances dans les différentes catégories se comportent différemment sur ces solvers. Presque tout les solvers complets sont basés sur l algorithme Davis Putnam - Logemann Loveland(DPLL) renforcé avec de l apprentissage de clauses. Ces solvers complets explorent systématiquement toutes les possibilités et sont capables de distinguer les instances satisfaisables et non satisfaisables. Un exemple de solveur complet est glucose [1], développé par G. Audemard et L. Simon. Les solvers complets sont plus performants dans la catégorie industrielle et fabriquée, mais souvent échouent dans la catégorie random. Les solvers incomplets, quant à eux, utilisent tous la stratégie de recherche locale pour trouver une valuation qui satisfait l instance donnée. Par construction ces solvers ne sont pas capables de résoudre une instance non satisfaisable, mais ils peuvent résoudre des instances satisfaisables très rapidement. WalkSAT est un solveur incomplet. Les solvers incomplets sont extrêmement efficaces sur les instances aléatoires satisfaisables, mais ils sont beaucoup moins efficaces dans les autres catégories. En raison de cette diversité d instances de SAT, dans la mesure de performance d un algorithme, il faut être capable de classer les instances automatiquement et de choisir des représentants pour éviter des biais. A priori les instances doivent être classées selon leur nature. Cependant, la nature d une instance n est pas une notion bien définie, même si elle existe, par exemple une instance peut être plus ou moins structurée. Cet aspect de regroupement des instances de SAT est étudié dans ce stage pour choisir des benchmarks. Le résultat peut être utile pour la suite concernant l étude de l influence des paramètres sur la performance de WalkSAT, qui nécessite beaucoup de mesure de performance. Dans ce stage, on s intéresse à l algorithme WalkSAT, qui est probabiliste. Plus précisément, on voudrait comprendre la sensibilité de WalkSAT au paramétrage. L influence des paramètres sur la performance de WalkSAT n admet pas encore une analyse théorique assez satisfaisante, à cause de la nature probabiliste de WalkSAT. Par conséquent, il est raisonnable, même favorable, d essayer une approche pratique. 6
1. La taille d instance Nombre de clauses, noté c Nombre de variables, noté v Ratio clause/variable, noté c/v 2. Le graphe variable-clause Statistiques sur le degré des nœuds de variables : moyen, coefficient de variation, min, max et entropie Statistiques sur le degré des nœuds de clauses : moyen, coefficient de variation, min, max et entropie 3. Le graphe des variables Statistiques sur le degré des nœuds : moyen, coefficient de variation, min et max 4. Statistiques sur la balance Ratio de littéraux positifs et négatifs dans chaque clause : moyen, coefficient de variation, min, max et entropie Ratio d occurrences positives et négatives de chaque variable : moyen, coefficient de variation, min, max et entropie Fraction des clauses binaires et ternaires 5. Proximité d une formule de Horn Fraction de clauses de Horn Nombre d occurrences dans une clause de Horn pour chaque variable : moyen, coefficient de variation, min, max et entropie 6. Sondage par algorithme DPLL Nombre de propagations unitaires : à la profondeur 1, 4, 16, 64 et 256 Estimation de la taille de l espace de recherche : profondeur moyenne d une contradiction, estimation du logarithme de nombre de nœuds 7. Sondage par algorithme de recherche locale Nombre de flips au meilleur minimum local dans une exécution : moyen, médiane, 10 e et 90 e centiles pour l algorithme SAPS Amélioration moyenne de chaque flip au meilleur minimum local dans une exécution : mesurée pour l algorithme SAPS Fraction moyenne d amélioration due au premier minimum local : mesurée pour l algorithme SAPS et GSAT Coefficient de variation de nombre de clauses fausses au chaque minimum local : moyenné parmi plusieurs exécution de SAPS Figure 1 Les caractéristiques considérées par SATzilla, étudiées et expliquées dans [16] Dans les sections suivantes, toujours avec une approche pratique, on étudiera des aspects différents du problème SAT et de WalkSAT. On cherchera à obtenir plus de connaissances sur les instances SAT et sur les algorithmes probabilistes à l aide d une approche statistique. On cherche aussi à comprendre le lien entre les paramètres et la performance de WalkSAT, qui pourrait servir à l amélioration du paramétrage et au paramétrage automatique ou semi-automatique. 2 Autour des caractéristiques statistiques 2.1 Motivations La différence de performance de solvers sur les instances de différents types a inspiré les chercheurs à créer des solvers de type portfolio. Un solveur portfolio est composé d une collection de solvers et d un contrôleur qui sélectionne un solveur approprié pour résoudre efficacement une instance donnée. Un exemple de solveur portfolio est SATzilla [24], qui est très performant dans la Compétition SAT. Comme les solvers ont une différence de performance sur les instances de différente nature, cette procédure de sélection de solveur peut être considérée comme un regroupement d instance. Typiquement un solveur portfolio utilise des caractéristiques extraites de l instance donnée pour la sélection du solveur. La Figure 1 liste les caractéristiques considérées par SATzilla [24]. On peut distinguer deux types de caractéristiques d une instance, les ca- 7
ractéristiques statistiques qui sont des grandeurs statistiques extraites directement de la structure de l instance, et les caractéristiques de sondage qui sont dynamiquement obtenues en appliquant des algorithmes sur l instance. Par exemple, dans la liste des caractéristiques considérées par SATzilla, les 5 premiers groupes sont des caractéristiques statistiques, et les 2 derniers sont des caractéristiques de sondage. Inspiré par SATzilla, nous allons poursuivre cette approche statistique pour étudier le regroupement des instances à partir des caractéristiques. L analyse est concentrée sur les caractéristiques statistiques car elles reflètent directement la structure d une instance et donc sa nature, de plus elles sont plus facile à obtenir. On utilisera une méthode de clustering pour classer les instances, qui nécessite un outil d extraction automatique de caractéristiques statistiques et de clustering automatique. Avec cet outil, on essayera d obtenir un ensemble de benchmark représentatif pour la mesure de performance. Cette approche consistante à étudier les instance SAT par leurs caractéristiques statistiques est aussi applicable aux autres questions sur la nature des instances de SAT. Un outil d extraction automatique de caractéristiques statistiques peut aussi servir dans ce genre d étude. 2.2 Statistical Analysis Toolkit for SAT (SAT4SAT) Statistical Analysis Toolkit for SAT (SAT4SAT) est un outil développé pendant ce stage. Il est composé de deux composants, l un pour l extraction de caractéristiques statistiques, l autre le pour le clustering automatique. Pour l extraction, les caractéristiques statistiques considérées sont celles de SATzilla, c est-à-dire celles des groupes 1-5 dans la Figure 1. La partie de clustering est adaptée d une implémentation de David Arthur de K-means++ [2], un algorithme de clustering k-means. Cet outil est principalement conçu pour la collection automatique de caractéristiques statistiques des instances. Il énumère toute instances sous son répertoire d exécution et extrait leurs caractéristiques statistiques, puis offre l option de poursuivre un clustering selon un ensemble de caractéristiques statistiques choisi interactivement par l utilisateur. Il demande aussi le nombre de clusters pour le clustering nécessaire pour l algorithme K-means++. Dans l implémentation de l extraction de caractéristiques statistiques, il y a un problème de mémoire concernant la construction du graphe des variables. Le graphe des variables d une instance est un graphe dont chaque nœud représente une variable. Si deux variables apparaissent dans une même clause, les deux nœuds correspondants sont reliés. Les caractéristiques statistiques extraites de ce graphe concernent la distribution de degré du nœud, il suffit donc de calculer le degré de chaque nœud. Il existe deux approches possibles pour calculer le degré de chaque nœud, soit par construction directe d une liste d adjacence du graphe en une passe sur toutes les clauses, soit en scannant pour un nœud donné toutes les clauses dans lesquelles la variables correspondante apparaît. L approche par liste d adjacence est très rapide, mais demande beaucoup de mémoire, elle n est donc pas capable de traiter les instances de taille très grande, comme par exemple certaines instances industrielles. L autre approche demande peu de mémoire, mais avec une perte significative de vitesse. 8
Afin d avoir un compromis entre la consommation de mémoire et la vitesse, une stratégie mixte est utilisée dans SAT4SAT. La demande de mémoire d une liste d adjacence est estimée avant le calcul sur le graphe de variables. Si la demande est inférieure à un certain seuil, l approche par liste d adjacence est utilisée ; sinon, la secondes approche est utilisée. Cette stratégie garantit une bonne vitesse sur la plupart des instances sans perte de généralité. Cependant, dans le pratique, les très grandes instances prennent beaucoup de temps, donc leur calcul est souvent interrompu par l utilisateur ou par le système. Cet outil est temporairement hébergé sur http://www.eleves.ens.fr/home/ wfang/sat4sat/toolkit.html, avec le code de source disponible dans lequel il y a plus de détails. Il sera aussi disponible sur le site web du projet RUBIS (en cours de construction à l Université de Nantes). D autres caractéristiques pourraient être ajoutées à l avenir. SAT4SAT est destiné à servir à la collection et à l analyse de données dans ce stage. L utilisation montre que cet outil est très pratique pour la collection massive des caractéristiques statistiques car il est totalement automatique et performant. Pour la collection des caractéristiques statistiques des 570 instances dans la catégorie random de la compétition SAT 2009, SAT4SAT sous cygwin prend environ 150 secondes sur une machine de Core 2 Duo T7200. 2.3 Regroupement des instances avec SAT4SAT On choisit les instances de la Compétition SAT 2007 [3] pour étudier le regroupement des instances par caractéristiques statistiques. Le regroupement est fait avec le clustering k-means ; SAT4SAT est utilisé pour le calcul de caractéristiques statistiques et le clustering. Cette approche est inspirée par le succès de SATzilla, qui utilise un modèle de difficulté empirique obtenu avec l apprentissage sur un ensemble de caractéristiques pour estimer le temps de calcul des solvers et pour la sélection de solveur. Les instances de la Compétition SAT 2007 sont organisées selon leur catégorie et leur origine, ce qui facilite l interprétation des résultats, car les instances de même origine sont a priori de même nature. Pour la plupart des instances, SAT4SAT est très performant. Généralement, les instances industrielles sont plus grandes, et donc prennent plus de temps pour SAT4SAT que les autres instances. Il y a même des instances industrielles de taille gigantesques pour lesquelles SAT4SAT échoue en raison d une limite de temps de calcul imposée par le système. Ces instances sont exclues dans l analyse suivante. Le choix des caractéristiques statistiques à considérer est aussi important pour le résultat. Le clustering k-means a pour but de regrouper les points d un espace euclidien en minimisant la somme des carrés des distances euclidiennes des points dans un même cluster. Par conséquent, la dispersion de la distribution d une dimension influence l importance de cette dimension dans le clustering k- means. En d autres termes, plus les données sur une dimension sont dispersées, plus cette dimension est importante. Par exemple, le nombre de variables est plus important que le ratio clause/variable pour les instances de la Compétition SAT 2007, car la taille de ces instances varie énormément. Ce phénomène n est pas souhaité en absence d information a priori sur l importance de chaque caractéristique statistique. Pour minimiser ce phénomène, on choisit des caractéristiques qui sont moins dispersées dans la distribution des instances. On veut aussi que ces caractéristiques soient insensibles à la taille des 9
Figure 2 Résultat de l analyse cluster sur les instances de la Compétition SAT 2007. Le nombre de clusters est fixé à 25. Chaque couleur correspond à un cluster. instances, car on peut construire des instances de tailles diverses ayant la même nature. Pour éviter ce phénomène, il est aussi possible de normaliser les caractéristiques. Cependant, par la nature de K-Means++, la longueur d intervalle de chaque caractéristique normalisée a une influence très importante sur l importance de cette caractéristique dans le clustering. Puisque l importance de chaque caractéristique est inconnue, choisir a priori des facteurs pour la normalisation peut introduire un risque la validité du clustering. Un autre problème du clustering k-means est qu il demande le nombre de clusters. Cependant, le nombre de types d instances n est pas connu a priori. Il faut estimer empiriquement cette valeur. Malgré ces efforts, l analyse cluster des instances de la Compétition SAT 2007 n aboutit pas à un résultat assez significatif. Le résultat de cette analyse est présenté dans la Figure 2. Le nombre de clusters donné à l algorithme est 25. Les axes sont les caractéristiques avec les plus grands écarts types. Les points de même couleur représentent les instances d un même groupe. On voit bien qu il y a des regroupements distinctifs, mais aussi certains groupes dispersés même dans cette projection sur les caractéristiques les plus importantes. On constate que les instances de même origine sont souvent classées dans le même groupe. C est toujours le cas pour les instances aléatoires. On voit des exceptions dans les deux autres catégories. Parmi les instances de même origine, il peut en exister une ou deux classées différemment. Nous avons un cas extrême où chaque instance est classée dans un groupe différent, bien qu elles soient de même origine. Cette exception n invalide pas cette méthode de regroupement, 10
mais pose quand même une doute sur l utilisation d un tel résultat. La diversité des instances soulève un autre problème. Les instances, surtout celles de la catégorie fabriquée et la catégorie industrielle, présentent une diversité trop riche pour la méthode de clustering. Des instances d origines différentes peuvent être classées dans le même groupe. Une des raisons est que l estimation du nombre des différent types d instance est trop restreinte, ce qui introduit forcément des collisions. Une autre explication est que les caractéristiques considérées ne sont pas suffisantes pour séparer ces instances mal classées. Ces deux problèmes concernent la catégorie fabriquée et la catégorie industrielle. Une amélioration possible consisterait à introduire des caractéristiques qui ont une chance de séparer plus correctement les instances. Cependant, l analyse par clustering marche très bien sur les instances aléatoires. On peut identifier assez clairement quelques types d instances dans la catégorie random. Toutes les instances de même origine sont classées dans un même groupe. Les problèmes dans les deux autres catégories ne sont pas apparus, probablement grâce à une faible diversité des types d instances. De plus, les instances aléatoires sont caractérisées par quelques paramètres, leur caractéristiques statistiques varient peu, qui permet un bon regroupement par clustering. Dans la catégorie random, il y a plusieurs types d instance : les instances dites 2 + p composées de clauses binaires et ternaires, les instances 7SAT de grande taille et régulière (chaque nœud dans le graphe des variables est de même degré), les instances (3SAT, 5SAT) aléatoires ayant un ratio c/v au seuil de la séparation de satisfaisabilité [9]. Dans l analyse par clustering, les différentes classes sont assez bien identifiées, mais il y a aussi des erreurs, par exemple les instances 2+p sont regroupées avec celles 3SAT aléatoires. Il y a aussi des instances fabriquées qui sont classées avec les instances aléatoires. Cette expérience montre que cette méthode de regroupement des instances SAT n est pas assez discriminante. La validité du résultat n est pas garantie pour un ensemble d instances de grande diversité, ni quand il n y a pas d informations a priori sur le nombre de types d instance (afin de préciser le nombre de classes souhaité). Etant donné un regroupement des instances, on peut choisir des instances parmi chaque groupe pour établir un ensemble de jeux de test assez représentatif de l ensemble initial des instances. Cependant, la validité de cette approche est liée directement à celle du regroupement, qui est mise en doute pour les instances industrielles et fabriquées. De plus, on souhait d avoir un jeux de test plus synthétique pour gagner du temps de calcul. Pour les instances industrielles et fabriquées, leur diversité empêche d avoir un échantillonnage synthétique et représentatif, ce qui est aussi reflété par cette analyse par clustering précédemment présentée. Malgré tout, cette analyse reste valable pour les instances aléatoires. Cependant, dans cette catégorie, la façon la plus simple de choisir des instances représentatives est de les générer aléatoirement, car il n y a pas beaucoup de type d instances, et de plus ces types sont assez distinctifs entre eux. En conclusion, théoriquement cette méthode pour choisir des instances représentatives parmi un ensemble d instances est faisable, mais en pratique, son utilisation et sa validité sont mises en doute pour les instances industrielles et les instances fabriquées qui sont de grande diversité. Pour rendre plus efficiente cette approche, des raffinements seront nécessaires. 11
2.4 Temps de calcul et caractéristiques statistiques Toujours inspiré par SATzilla, on souhait chercher un lien entre temps de calcul et caractéristiques statistiques des instances. SATzilla utilise des méthodes d apprentissage automatique pas toujours bien explicitées, qui le rendent difficile à étudier. Pour faciliter le travail, dans ce stage on se concentrera sur une approche par des relations linéaires. Les données de la Compétition SAT 2007 obtenues dans la Section 2.3 seront utilisées. A priori, il faut faire une analyse pour chaque algorithme, car les algorithmes visent des aspects différents de SAT, qui peuvent beaucoup influencer la performance. Plus précisément, les algorithmes DPLL visent la question de la satisfaction de SAT et les algorithmes de recherche locale l aspect optimisation. Pour l analyse, le temps de calcul de chaque algorithme est extrait avec des scripts Perl. Les coefficients de corrélation entre le temps de calcul et des caractéristiques statistiques sont calculés. Cette analyse est élaborée sur les algorithmes gagnants de la Compétition SAT 2007. En général, les corrélations sont souvent faibles. Le temps de calcul est bien corrélé avec la taille d instance. Les autres caractéristiques sont peu corrélées au temps de calcul, avec quelques exceptions peu significatives. En conclusion, l analyse est trop simple et naïve pour découvrir correspondance entre le temps de calcul et les caractéristiques statistiques. Il faut utiliser des techniques plus avancées, comme dans SATzilla. 2.5 La structure fine autour du seuil des instances 3SAT aléatoires Cette sous-partie décrit l étude de la distribution des instances 3SAT aléatoires à l aide de l outil SAT4SAT. On sait depuis les années 1990 que, pour les instances 3SAT aléatoires, il existe une valeur critique du ratio clauses/variables notée α c, autour duquel une transition de phase SAT/UNSAT a lieu [9]. Au-dessous de ce seuil, les instances 3SAT aléatoires sont satisfaisables avec une grande probabilité. Au contraire, au-dessus de ce seuil, les instances sont non-satisfaisables avec une grande probabilité. Les instances autour de ce seuil présentent souvent une difficulté significative pour les solvers qu ils soient complets ou non. C est pourquoi cette zone intéresse beaucoup de chercheurs. On veut essayer d observer une structure plus fine de cette zone avec d autres caractéristiques statistiques. Un ensemble d instances 3SAT aléatoires est échantillonné avec l outil makewff (disponible sur le site de WalkSAT [19]) et traitées avec WalkSAT. Les modifications effectuées seront expliquées dans la section suivante. Pour déterminer la satisfiabilité, le solveur march hi est utilisé. Ce solveur est le champion dans la catégorie random non satisfaisable de la Compétition SAT 2009 [3]. C est un algorithme de type DPLL, mais renforcé avec une technique de Look-Ahead [10]. Les caractéristiques statistiques sont récupérées avec SAT4SAT. Le nombre de variables des instances générées est fixé à 360 en considérant la performance de march hi. Les tests sont conçus sous l hypothèse que α c 4.26. Cette valeur est en accord avec [9] et les instances de la Compétition SAT [3]. Le premier test explore la région de ratio c/v autour de α c, plus précisément l intervalle [4.05, 4.47]. Dans cet intervalle 49 valeurs de ratio c/v sont échantillonnées, avec 20 instances générées pour chaque valeur de c/v. Sur la Figure 12
Figure 3 Distribution des instances aléatoires satisfaisables et non satisfaisables dans la région critique autour du seuil de c/v. L axe Y est choisi a fin de faciliter la distinction entre la région satisfaisable et non satisfaisable. 3 on voit bien la transition de phase. On veut trouver une relation simple qui sépare au mieux les instances satisfaisables et non satisfaisables que le ratio c/v. Une technique possible pour effectuer ce genre de classification est la méthode Support Vector Machine(SVM), qui calcule un hyperplan séparant au mieux deux classes de points, pour deux ensembles de points déjà classés dans un espace. Le résultat peut être utilisé pour classifier de nouveaux points. L outil libsvm [7] est utilisé pour l analyse SVM. On a effectué une phase d apprentissage puis une phase de test. L exactitude obtenue dans la phase de test est environ de 89%, ce qui n est pas significativement meilleure que celle de la prédiction par le ratio c/v, qui est de 81% avec la séparation c/v = 4.26. La difficulté des instances dans cette région a été aussi étudiée. On mesure la difficulté d une instance par le temps de calcul utilisé pour la résoudre. Cette mesure de difficulté est définie par rapport à l algorithme utilisé. Dans ce test WalkSAT et march hi sont utilisés pour cette mesure de difficulté. Les résultats sont présentés dans la Figure 4. Selon ce graphe, il n existe pas de corrélation significative entre le temps de calcul et le ratio c/v pour WalkSAT. Ce n est pas un résultat définitif à cause du problème de précision de la mesure de temps de calcul pour WalkSAT dont on discutera dans la section suivante. De plus, il est probable que l échantillonnage ne soit pas suffisamment large. Le résultat pour march hi est beaucoup plus intéressant. On constate qu en moyenne les instances non satisfaisables sont significativement plus difficiles que celles satisfaisables, ce qui est en accord avec la discussion dans la Section 1.3. Pourtant il n y a pas de corrélation significative pour les instances satisfaisables, on voit une corrélation assez claire entre le temps de calcul et le ratio c/v pour 13
Figure 4 Temps de calcul des instances aléatoire dans la région critique pour WalkSAT et pour march hi. Le temps de calcul est mesuré en seconde. Le temps de calcul pour WalkSAT est la moyenne de 100 exécutions dont la limite de temps de calcul est 120 secondes. les instances non satisfaisables. Plus le ratio c/v est grand, c est-à-dire plus l instance est surcontrainte, plus vite march hi résout cette instance. Ce résultat est aussi naturel, car plus une instance est contrainte, plus elle est facile pour un algorithme de type DPLL de trouver des conflits et donc gagner du temps pour démontrer l insatisfaisabilité. Revenons à la structure fine autour du ratio c/v critique. Il existe peutêtre d autres caractéristiques statistiques indépendantes du ratio c/v qui ont un lien avec la satisfiabilité d une instance. Même si l analyse SVM n aboutit pas à un résultat assez significatif : il est possible que l influence des autres caractéristiques statistiques soit masquée par celle du ratio c/v qui est très forte. Le deuxième test envisage plus précisément l influence des autres caractéristiques statistiques sur la satisfaisabilité des instances. 1000 instances 3SAT aléatoires sont générées, chacune avec 360 variables et 1533 clauses, donc le ratio c/v est près de α c. La satisfaisabilité est déterminée avec march hi, et les caractéristiques statistiques sont collectées avec SAT4SAT. Une seule caractéristique qui semble avoir un lien visible avec la satisfaisabilité est le coefficient de variation du ratio d occurrences positives et négatives de chaque variable. Cependant, cette liaison est très faible, comme ce que l on peut voir dans la Figure 5. Cette séparation, bien qu elle existe, est vraiment souple et peu significative par rapport au ratio c/v. Il est difficile d obtenir une valeur de séparation optimale. De plus, il est possible que cette valeur de séparation optimale soit en fonction de ratio c/v. Il n existe pas encore d explication théorique pour cette séparation. Une étude plus approfondie sur cette séparation dépasse le cadre de ce stage. 14
Figure 5 Séparation très souple de satisfaisabilité des instances avec le ratio c/v fixé à α c. La caractéristique séparant est le coefficient de variation du ratio d occurrences positives et négatives de chaque variable. 3 Paramétrage de WalkSAT Dans cette section on discutera de l influence des paramètres sur la performance de WalkSAT et du paramétrage de WalkSAT, comme déjà motivé dans la Section 1.2. Puisque la validité de la méthode pour choisir un benchmark représentatif précédemment proposée n est pas complètement concluante, la mesure de performances dans cette section utilise toujours les instances 3SAT aléatoires, sauf indication contraire. Ce choix est aussi justifié par le fait que 3SAT est NPcomplet et que les algorithmes de recherche locale sont performants sur les instances 3SAT aléatoires. L influence du paramètre p de perturbation stochastique sur la performance de WalkSAT est étudiée théoriquement dans [22] et expérimentalement dans [12, 18]. L influence du paramètre M axiter est étudiée théoriquement dans [22], mais les études expérimentales sont rares. On essayera d étudier expérimentalement l influence de ces deux paramètres dans la suite. Le résultat peut servir comme indication pour obtenir un paramétrage optimal de WalkSAT, par exemple il peut indiquer une région plus restreinte contenant une combinaison de paramètres optimale. Il existe des études sur le paramétrage adaptatif de WalkSAT [12, 18]. Il existe aussi des méthodes génériques pour paramétrer un algorithme, comme par exemple Revac [15]. Dans [18] on constate que les combinaisons de paramètres adaptées aux résolutions d instances différentes sont différentes. On reprend ici une modification de l algorithme Revac pour constater ce même phénomène similaire sur la performance, ce qui est en accord avec le point de vue No Free Lunch Theorems de la communauté d optimisation [23], qui suggère qu il n existe pas de meilleur algorithme de recherche adapté pour toutes les instances. 15
3.1 Implémentation modifiée de WalkSAT Dans ce stage, on utilise une version modifiée de l implémentation de Selman et Kautz, disponible sur le site web de Kautz [19]. Afin de simplifier le code, les fonctionnalités superflues sont supprimées, le format d entrée-sortie est aussi modifié pour un meilleur enchaînement avec les autres programmes. WalkSAT est un algorithme stochastique, donc l utilisation de générateur de nombres aléatoires est nécessaire dans son implémentation. Dans l implémentation originale de Selman et Kautz, le générateur de nombres aléatoires utilisé est celui de la bibliothèque standard. Pour obtenir un nombre aléatoire entre 0 et n 1, on utilise rand()%n dans l implémentation. Cette méthode risque parfois une perte de qualité des nombres aléatoires générés. Dans la plus part des compilateurs, le générateur de nombres aléatoires fourni par la bibliothèque standard est un générateur congurentiel linéaire (linear congruential generator, LCG) [17]. Un LCG est défini par la relation de récurrence suivante. X n+1 = (ax n + c) mod m Ces paramètres a, c et m caractérisent un LCG. Le terme initial X 0, appelé seed (graine aléatoire), peut être initialisé par le programme. Dans glibc, les paramètres a = 1103515245, c = 12345, m = 2 32 sont pris, et la sortie de rand() est composée des 31 bits de poids faible de X n courant [4]. Les paramètres et les bits utilisés peuvent varier entres des bibliothèques. Avec un LCG, l utilisation de rand()%n pourrait perdre en qualité des nombres aléatoires générés. Si n m, le résultat de rand()%n suivra la relation de récurrence Y n+1 = (ay n+1 + c) mod n, qui a une période d au plus n, qui peut être significativement plus petite que m. Dans le cas du LCG de glibc, ce problème a lieu quand n est une puissance de 2. Même si dans WalkSAT la valeur de n change souvent donc cet effet n est pas fortement présent, c est mieux d abandonner cette méthode pour générer des nombres aléatoires entre 0 et n 1. Une autre méthode de génération de nombres aléatoires entre 0 et n 1 est avec l expression (double)rand()/rand MAX*n, où RAND MAX-1 est la sortie maximale de rand(). Dans la modification de WalkSAT pour ce stage, cette méthode remplace la méthode originale pour assurer la qualité des nombres aléatoires générés. Cette substitution est aussi faite sur l outil makewff, générateur des instances k-sat aléatoires. Pour facilement contrôler le temps de calcul, une fonctionnalité de terminaison automatique avec une limite de temps de calcul donnée par la ligne de commande est ajoutée à WalkSAT. La limite par défaut est de 5 minutes. 3.2 Distribution du temps de calcul de WalkSAT S agissant d un algorithme stochastique, le temps de calcul de WalkSAT sur une instance varie entre les exécutions. Par conséquent, on mesure la performance en moyenne du le temps de calcul sur plusieurs exécutions. Pour avoir une idée sur le nombre d exécutions nécessaire pour bien mesurer la performance, il est préférable d envisager expérimentalement la distribution du temps de calcul. Ceci est étudié dans [13]. 16
Figure 6 Distribution du temps de calcul de WalkSAT(p = 0.5, Maxiter = 150000) sur 600 exécutions Une distribution du temps de calcul de WalkSAT mesurée expérimentalement est présentée dans la Figure 6. Cette distribution est un échantillonnage de 600 exécutions de WalkSAT avec pour paramètres p = 0.5 et Maxiter = 150000 sur une instance 3SAT aléatoire satisfaisable. On voit que le temps de calcul de WalkSAT peut énormément varier. Pour bien mesurer la performance, il faut faire tourner WalkSAT plusieurs fois. Cependant, des exécutions répétées demandent beaucoup de puissance de calcul. Il faut choisir le nombre de répétitions selon la nature de mesure pour balancer l exactitude et la puissance de calcul demandée. En général, le nombre de répétitions est au moins 20 dans ce stage, car on demande une relativement bonne exactitude de mesure pour étudier la performance de WalkSAT. 3.3 Evolution de la performance suivant les paramètres de WalkSAT On a des observations et des spéculations qualitatives sur la manière dont la performance peut évoluer selon les paramètres. Quand p 0, l algorithme est trop glouton, donc facilement piégé dans un minimum local ; quand p 1, il y a trop de bruit qui empêche l algorithme d atteindre à un minimum local. Quand Maxiter est petit, l algorithme n a pas assez de temps pour descendre vers un minimum ; quand M axiter est trop grand, l algorithme peut perdre du temps en se promenant dans un zone sans solution. Il existe aussi des analyses théoriques et expérimentales sur l évolution de la performance de WalkSAT. Par exemple dans [22], on suggère p = 0.5 ou p = 0.55 comme valeur optimale pour p sur les instances aléatoires étudiées dans [13]. La même recherche propose aussi une analyse raisonnablement spéculative qui suggère que le mécanisme de restart perdra rapidement son intérêt quand M axiter devient trop grand. On veut mesurer et visualiser la performance de WalkSAT en fonction des paramètres pour vérifier les analyses précédemment mentionnées. L instance choisie pour cette mesure est une instance 3SAT aléatoire satisfaisable de la Compétition SAT 2007 avec 650 variables et un ratio c/v critique. Etant donné 17
Figure 7 Evolution de performance de WalkSAT suivant les paramètres, échantillonné avec p de 0 à 1 à un pas 0.05, Maxiter de 1 à 140001 à un pas 10000. Le temps de calcul est mesuré en moyenne parmi 20 exécutions, avec une limite de 300 secondes. Cette mesure est faite sur le cluster du LINA. que cette mesure demande un calcul exhaustif extrêmement lourd, on n effectue pas ici une moyenne de la performance sur des instances différentes. Une limite de temps de calcul de 300 secondes est mise en place, le temps moyen de calcul mesuré est donc inférieur ou égal à la valeur réelle. Sur la Figure 7, on voit une structure qui rassemble à une vallée. On voit un zone de bonne performance avec des points autour de p = 0.45 et Maxiter > 40000. Dans cette zone, les points sont proche en performance. Autour de cette zone il y a des falaises abruptes. Le temps de calcul croît rapidement quand p s éloigne de la zone de bonne performance. Pour Maxiter, son effet sur la performance reste secondaire dans la zone de bonne performance. Cependant, la Figure 7 n est pas assez précise pour conclure. Il faut une mesure plus précise avec un échantillonnage plus fin, qui demande une puissance de calcul très grande. Pour réduire ce besoin, on constate dans le graphe précédent que les effets de p et de Maxiter ne sont pas a priori très corrélés, on étudiera donc l évolution de la performance séparément selon ces deux paramètres. L évolution de performance suivant le paramètre p est mesurée sur la même instance que précédemment, avec un échantillonnage plus fin et une mesure plus précise. Le résultat est présenté dans la Figure 8. On voit que la performance est meilleure autour de p = 0.5, mais elle reste relativement bonne dans la zone [0.35, 0.55], dans laquelle la moyenne du temps de calcul reste inférieure 18
Figure 8 Evolution de performance de WalkSAT suivant p, échantillonné avec p de 0 à 1 à un pas 0.01, avec Maxiter = 100000. Le temps de calcul est mesuré en moyenne parmi 100 exécutions, avec une limite de 300 secondes. On note que le temps de calcul est en échelle logarithmique. Cette mesure est faite sur le cluster du LERIA. au double du meilleur obtenu. En raison de la fluctuation sévère du temps de calcul mentionnée dans la Section 3.2, il est difficile de distinguer le meilleur p dans ce graphe. Pour l influence de Maxiter sur la performance de WalkSAT, la Figure 9 présente le résultat d une mesure. On voit bien une fluctuation significative, qui empêche une analyse précise. Cependant, il est clair que le temps de calcul descend très vite selon la croissance de Maxiter, puis se stabilise vers le point Maxiter = 120000, après lequel la différence de temps de calcul entre les valeurs différentes de M axiter est petite devant la fluctuation. Cependant, car la valeur testé de Maxiter est limitée, le jugement de tendance de la performance de M axiter au delà de cette limite est encore spéculatif. En combinant ces deux résultats, on voit que, pour avoir une bonne performance, il suffit de choisir Maxiter assez grand, et p assez près de la valeur optimale. Cependant, il faut avoir conscience que la validité de ces résultats repose sur l instance analysée. De toute manière, ces résultats sont seulement indicatifs pour la suite. 3.4 Variation du nombre de flips par seconde de WalkSAT selon le paramètre de bruit p La performance de WalkSAT est parfois exprimée en nombre de flips, comme dans l article original de WalkSAT [20]. Le nombre de flips est une mesure robuste car il est indépendant de l implémentation de l algorithme et est invariant entre des machines différentes. Cependant, si le nombre de flips est utilisé dans le 19
Figure 9 Evolution de performance de WalkSAT suivant M axiter, échantillonné avec Maxiter de 1 à 140001 à un pas 100 et de 140001 à 500001 à un pas 1000, avec p = 0.5. Le temps de calcul est mesuré en moyennant parmi 100 exécutions, avec une limite de 300 secondes. On note que le temps de calcul est en échelle logarithmique. Cette mesure est faite sur le cluster du LINA. paramétrage de WalkSAT ou dans l étude concernant l influence des paramètres sur la performance, il faut que le nombre de flips par seconde soit indépendant des paramètres, ce qui n est pas garanti car il dépend de l implémentation. Dans l étude décrit dans la Section 3.3, une anomalie a été observée. Les combinaisons de paramètres avec p = 0 et p = 1 ont de mauvaises performances et dépassent toujours la limite de temps de calcul. Cependant, même si les exécutions prennent le même temps, le nombre de flips effectués est différent entre les différentes combinaisons de paramètres. Les combinaisons avec p proche de 0 ont un nombre de flips clairement plus élevé. La Figure 10 montre une courbe représentant cette variation avec l implémentation de WalkSAT par Selman et Kautz [19]. On voit qu il peut y avoir une différence de 20% pour des valeurs de p différentes. Cette variation n existe pas théoriquement dans l algorithme WalkSAT, elle vient donc de l implémentation, qui fait des optimisations pour mieux suivre la satisfaction des clauses. Ces optimisations comportent typiquement des mises à jour compliquées, qui peuvent introduire un biais en terme de performance. La procédure de choix de variable à flipper n est pas pertinent pour expliquer cette variation, car elle prend le même temps sur chaque exécution dans cette implémentation. En étudiant le code, on voit que le nombre d occurrences de la variable flippée est un facteur important pour la performance de la mise à jour. Pour analyser cette influence, la Figure 11 montre une courbe du nombre d occurrences moyenne de variables flippées en fonction de p. On voit que, pour les instances 3SAT aléatoires, les flips gloutons de WalkSAT préfèrent les variables d occurrences faibles. Il n y a pas encore d explication rigoureuse de ce phénomène, mais il est possible que ceci soit du au fait qu un flip de variable d occurrence faible tend à rendre moins de clauses fausses. C est seulement un argument qualitatif, l analyse théorique n existe pas encore. 20
Figure 10 Variation du nombre de flips par seconde, mesurée sur une instance 3SAT aléatoire, avec p variant de 0 à 1 à un pas 0.05. Chaque point est mesuré avec une seule exécution. Figure 11 Variation d occurrence moyenne de variable flippée, mesurée sur une instance 3SAT aléatoire, avec p variant de 0 à 1 à un pas 0.05. Chaque point est mesuré avec une seule exécution. 21
Revenons à la variation du nombre de flips par seconde. Avec cette variation, le nombre de flips n est plus un indicateur fidèle de la performance. Dans la suite, la performance est toujours mesurée avec le temps de calcul. 3.5 Paramétrage automatique de Walksat Etant donné une instance, on souhaite trouver la combinaison optimale des paramètres avec la meilleure performance pour WalkSAT. Sous-entendu, l instance donnée doit être satisfaisable pour que WalkSAT puisse la résoudre. Même si une réponse exacte nécessite la résolution de l instance, le résultat peut être indicatif pour les instances de même type mais de taille beaucoup plus grande. Le problème de trouver automatiquement la combinaison optimale des paramètres est lui-même un problème d optimisation. Il y a déjà des outils génériques de paramétrage automatique, par exemple Revac [15]. Cependant, ils sont de très grande taille et nécessitent des logiciels commerciaux pré-installés comme Matlab. Pour alléger ce processus de paramétrage automatique, j ai repris [15] pour écrire une simplification de Revac adapté à WalkSAT, qui n a que deux paramètres, qui peuvent être considérés comme discrets. L idée principale de Revac est de faire évoluer une distribution, en tirant des combinaisons de paramètres, en mesurant leur performance, et en corrigeant la distribution selon les mesures effectuées. Plus précisément, Revac prend d abord une distribution initiale pour chaque paramètre, tire une population selon la distribution et évalue leur performance. Puis à chaque itération, Revac remplace la distribution courante de chaque paramètre par celles des combinaisons de paramètres avec de meilleures performances, tire quelques combinaisons selon les nouvelles distributions pour remplacer les anciens combinaison dans la population, et mesure leur performance. En itérant plusieurs fois, la distribution va converger vers la combinaison optimale de paramètres. Cette méthode est bien adaptée à WalkSAT, dont les paramètres sont largement indépendants comme indiqué dans la Section 3.3. Dans ce cas là, c est équivalent à faire évoluer les distributions de chaque paramètre indépendamment en même temps, ce qui bien efficace. Dans la version simplifiée dédiée à Walksat, on se concentre sur des distributions discrètes pour des aspects techniques de la programmation. Pour éviter l extinction des valeurs de paramètres autour du paramètre optimal et pour lisser la distribution, dans chaque tirage de combinaison de paramètre, on perturbe la valeur tirée avec une certaine probabilité. L Algorithme 2 montre le pseudo code associé. On arrête l algorithme quand les distributions convergent. Au centre des distributions se trouve des combinaisons de paramètres de bonne performance. La taille de la population, la vitesse de renouvellement et la taille de la population utilisée pour la mise à jour des distributions peuvent être modifiées. La mesure de performance est effectuée en faisant la moyenne du temps de calcul de 5 exécutions avec une limite de 60 secondes, car cet algorithme de paramétrage est stochastique et demande moins de précision. A cause de l incertitude de la mesure de performance mentionnée dans la Section 3.2 et le résultat indicatif mentionné dans la Section 3.3, la convergence des distributions dans une exécution n est pas garantie. Il est même probable que des exécutions différentes trouvent des combinaisons très différentes. 22
Algorithm 2 Paramétrage automatique de WalkSAT Require: Une instance SAT satisfaisable Initialiser les distributions discrètes de p et de M axiter par des distributions uniformes Initialiser la population avec 200 combinaisons de paramètres et mesurer leur performance sur l instance donnée. loop Mettre à jour les distributions de p et de Maxiter avec les 150 meilleures combinaisons de paramètres Tirer 5 combinaisons selon la distribution de chaque paramètre avec une fluctuation aléatoire, puis mesurer leur performance sur l instance donnée. Remplacer les 5 combinaisons les plus anciennes dans la population par les nouveaux combinaisons. Imprimer certains centiles des distributions courantes. end loop Pour tester cet algorithme de paramétrage, on utilise des instances 3SAT aléatoires satisfaisables avec le ratio c/v près du ratio critique α c. La satisfaisabilité de ces instances est déterminée avec march hi. Puisque le paramétrage effectue un grand nombre de mesure de temps de calcul, il nécessite beaucoup d exécutions. Pour rendre le temps total de calcul raisonnable, le nombre de variables des instances est limité à 500. La Figure 12 correspond à un exemple d une exécution de l algorithme de paramétrage. On voit que les deux distributions convergent éventuellement. Cependant, il est possible que cette convergence soit due à l incertitude de mesure de temps de calcul, pourtant on peut espérer une bonne performance de cette combinaison de paramètres. Ce qui est pire que l incertitude de convergence est le fait qu entre des exécutions différentes, la valeur de convergence peut être différente. Pour deux paramétrages sur la même instance, on obtient deux combinaisons de paramètres différentes. Cependant, ce phénomène n est pas surprenant en raison de l observation d une grande zone de bonne performance dans la Section 3.3, de l incertitude de mesure du temps de calcul, et du fait que l algorithme de paramétrage est stochastique. L algorithme de paramétrage automatique est aussi testé sur une instance fabriquée, bwlarge large.b proposée par Kautz et Selman [14], disponible sur SATLib [11]. On voit sur la Figure 13 que la distribution de Maxiter ne converge presque pas. Cela indique que la valeur de Maxiter n est pas cruciale pour la performance. Sinon, il existera une valeur de Maxiter avec une significativement meilleure performance, la distribution convergera autour de cette valeur. C est aussi en accord avec l observation que Maxiter n influence pas significativement la performance de WalkSAT à partir d une certaine valeur. Pour cette instance, la combinaison optimale retrouvée est p = 0.38, M axiter = 100000, qui est très différente de celle de l instance aléatoire utilisée précédemment. C est en accord avec le point de vue No Free Lunch, qui suggère qu il n existe pas de meilleure combinaison de paramètres adaptée pour toutes les instances. 23
Figure 12 Un exemple de paramétrage automatique avec l algorithme proposé. L instance utilisée est une instance 3SAT aléatoire de ratio c/v critique avec 500 variables. Les distributions sont désignées en forme de centiles. Notons que sur le premier graphe, l axe Y est p 200. Dans cet exemple, la combinaison optimale retrouvée est p = 0.515, Maxiter = 50000. Figure 13 Un autre exemple de paramétrage automatique avec l algorithme proposé. L instance utilisée est une instance fabriquée disponible sur SATLib. Les distributions sont désignées en forme de centiles. Dans cet exemple, la combinaison optimale retrouvée est p = 0.38, Maxiter = 100000. En fait la valeur de M axiter n a pas beaucoup d importance. 24
4 Découvrir une nouvelle caractéristique 4.1 Un point de vue physique Dans la Section 2, on a essayé d étudier les instances de SAT avec leurs caractéristiques statistiques. Cette approche est valide, même si le résultat obtenu n est pas totalement significatif. Pour mieux étudier les instances de SAT, on veut à présent explorer de nouvelles caractéristiques. Dans l article [21] de Semerjian et Monasson, une approche avec des outils issus de la physique statistique est utilisée pour étudier les instances de SAT aléatoires. Ils utilisent un algorithme (voir L Algorithme 3) appelé Random- WalkSAT pour étudier l influence du ratio c/v sur la difficulté de l instance. Une transition de phase du temps de calcul polynomial à exponentiel avec RandomWalkSAT est trouvé vers c/v 2.7 pour 3SAT aléatoire. Algorithm 3 RandomWalkSAT Require: Une instance SAT F Ensure: Renvoyer une valuation qui satisfait F si l algorithme termine T := une valuation tirée aléatoirement for i := 1 to Maxiter do if T satisfait F then return T else C := une clause de F aléatoirement choisie non satisfaite par T Flipper dans T une variable aléatoirement choisie dans C end if end for Pour mieux comprendre le problème, on a introduit un point de vue de physique statistique pour le problème SAT. D un point de vue physique, une instance SAT peut être considérée comme un système de verre de spins, une notion de physique statistique. Un système de verre de spins est composé de spins pouvant prendre des états distincts. Dans cette section on peut considérer que tout spin a deux états distincts, donc l état d un spin s exprime en une variable booléenne. Les spins interagissent entre eux de façon non locale, et les interactions peuvent inclure plusieurs spins. Chaque interaction induit une quantité d énergie déterminée par les états des spins concernés. Ces interactions détermine ainsi l énergie du système, qui est très importante pour étudier l évolution du système. L état d un système de verre de spins est défini par les états de ses spins. Etant donné un système, ses interactions et un état du système, on peut déterminer l énergie de cet état. L état le plus important est l état fondamental, c est un état d énergie minimale. Un état fondamental est stable par définition, car il possède l énergie la plus basse possible. Une autre notion importante est celle des états dits métastables. Un état métastable est un état qui n est pas fondamental, mais qui est stable pour tout changement local, par exemple un changement d état d un seul spin. Du point de vue physique, une instance SAT peut donc être considérée comme un système de verre de spins. Les variables sont les spins, les clauses sont les interactions. Un état du système est une valuation des variables. L énergie 25
du système est le nombre de clauses fausses sous la valuation correspondant à l état courant. Par la suite on confond les termes correspondants. Par définition, l énergie du système coïncide avec la fonction objectif de la version d optimisation de SAT. Ainsi on peut étudier des algorithmes de recherche locale dans le contexte de système de verre de spins. Un état fondamental est une solution du problème MAXSAT correspondant. Une instance est satisfaisable si et seulement si elle admet un état fondamental d énergie nulle. Un état métastable correspond à un minimum local pour une algorithme de recherche locale. Le but d un algorithme de recherche locale est de trouver un état fondamental. D un point de vue algorithmique, une instance SAT ayant beaucoup d états métastables présente une difficulté pour les algorithmes de recherche locale, car ces algorithmes tendent à ne pas trouver un état fondamental en se promenant parmi les nombreux états métastables. Typiquement, un algorithme de recherche locale se promène sur un plateau d états métastables qui est a priori relié à l algorithme, avec parfois des fluctuations d énergie. Ces fluctuations d énergie conduisent éventuellement à une solution, s il en existe. On peut alors spéculer que les caractéristiques de plateau métastable soient corrélés avec la performance des algorithmes de recherche locale, par exemple WalkSAT. L article [21] étudie l effet des états métastables en utilisant l algorithme RandomWalkSAT. Une exécution de RandomWalkSAT, correspondant à une évolution du système déterminé par l instance donnée, peut être séparée dans deux phases : la phase de relaxation et la phase métastable. Dans la phase de relaxation, l énergie du système descend rapidement, jusqu à arriver au plateau des états métastables ou à un état fondamental (dans ce cas l algorithme termine). Dans le premier cas, RandomWalkSAT se promène parmi des états métastables, ceci est la phase métastable. Dans cette phase, l énergie du système varie autour d une certaine valeur pendant longtemps, avec des fluctuations éventuelles qui pourrait ramener le système à un état fondamental. La Figure 14 présent un exemple de l évolution d énergie dans une exécution de RandomWalkSAT. Dans [21], c est la fraction de clauses fausses, noté ϕ 0, qui est étudiée au lieu de l énergie. Ce choix est avantageux dans le sens où ϕ 0 est normalisé. Avec des outils de physique statistique, Semerjian et Monasson analysent théoriquement le comportement de ϕ 0 pour les instances aléatoires, avec des vérifications expérimentales. D un point de vue statistique, on peut aussi considérer ϕ 0, la hauteur moyenne de la plateau métastable de toute exécution possible, comme une caractéristique d instances SAT et l utiliser pour étudier les instances de SAT avec la méthodologie mentionnée dans la Section 2. Selon la classification de caractéristiques d instances SAT dans la Section 2, ϕ 0 est une caractéristique de sondage. Par conséquent l étude sur ϕ 0 aussi complète l étude précédente car elle explore le domaine des caractéristiques de sondage. Dans ce stage, ϕ 0 et ϕ 0 sont étudiés expérimentalement. On va vérifier certains résultats obtenus dans [21], reprendre certaines études dans la Section 2 avec ϕ 0, et analyser le comportement de ϕ 0. 26
Figure 14 Evolution d énergie dans une exécution de RandomWalkSAT, mesurée avec une instance non satisfaisable 3SAT aléatoire sur le ratio c/v critique avec 3000 variables. 4.2 Mesure de ϕ 0 Etant donné l évolution de l énergie du système, il n est pas évident de trouver ϕ 0 automatiquement. Pour éviter des biais survenus de la phase de relaxation, il faut savoir, au moins approximativement, où commence le plateau. Je propose ici une méthode pour retrouver le début approximatif du plateau, en supposant la validité de la séparation en deux phases de l évolution d énergie. En séparant l évolution d énergie en segment de longueur de n flips, on choisit comme point de départ du plateau le premier segment d énergie croissante, qui est déterminé par régression. Avec n assez grand, ce premier segment croissant n est jamais dans la phase de relaxation. L existence de ce segment n est pas garantie, mais si on accepte que ϕ 0 varie autour de ϕ 0 avec des fluctuations, un tel segment croissant existe a priori. La valeur de n choisie ici est le nombre de variables. On constate que RandomWalkSAT est équivalent à WalkSAT avec p = 0. Le code de WalkSAT est repris pour l implémentation de RandomWalkSAT. Puisque c est le nombre de clauses fausses à chaque itération qui est étudié, certaines modifications sont faites pour adapter l implémentation et pour bien l enchaîner avec les autres programmes. J ai aussi écrit un outil qui calcule automatiquement le ϕ 0 d une instance. Ces programmes sont beaucoup utilisés dans la suite de cette section concernant l étude de ϕ 0 et de ϕ 0. 4.3 Evolution de ϕ 0 suivant le nombre de variables avec c/v fixé Dans [21], la formule décrivant l évolution de ϕ 0 suivant le nombre de variables N avec c/v = α fixé moyennant parmi toute instance de K-SAT aléatoire est donnée comme suite. 27
Figure 15 Convergence de ϕ 0. Chaque point représente une instance 3SAT aléatoire avec un ratio c/v = 4.26. C est une composition de trois échantillonnages. lim ϕ 0 = 1 ( ) N + 2 K 1 2K 1 αk On veut vérifier expérimentalement ce résultat. La Figure 15 décrit l évolution de ϕ 0 selon N avec les autres paramètres fixés. Chaque point représent une instance. ϕ 0 est mesuré avec la méthode précédemment proposé, en moyennant sur 10 exécutions. On voit que ϕ 0 des instances aléatoirement tirées convergent, donc très probablement leur moyenne converge aussi, qui est le résultat dans [21]. De ce graphe la limite de ϕ 0 est entre 0.048 et 0.050. Cependant, la limite donnée par la formule précédente est 0.0565, qui se trouve en dehors de l intervalle [0.048, 0.050]. Une explication possible de cet écart est que la limite donnée dans [21] est la limite de la moyenne de ϕ 0 sur toute instance de de K-SAT aléatoire, mais la limite donnée par la Figure 15 est la limite de la valeur dominante de ϕ 0. La moyenne et la valeur dominante d une même distribution ne coïncide pas nécessairement, d où vient probablement cet écart. Cependant, il faut une étude précise sur la distribution de ϕ 0 pour examiner la validité de cette explication. Cette expérience vérifie que ϕ 0 converge, mais la limite observée expérimentalement est différente de celle obtenue théoriquement. La source de ce désaccord est encore inconnue. 4.4 Fluctuation de ϕ 0 Dans la phase métastable de RandomWalkSAT, ϕ 0 varie autour de ϕ 0 avec des fluctuations qui peuvent ramener le système vers un état fondamental, c està-dire une solution. La fréquence de grande fluctuation est donc importante pour 28
Figure 16 Fréquence de grande fluctuation ϕ 0 [0.047, 0.0471] pour des instances 3SAT aléatoires de ratio c/v critique. Le nombre de variables varie de 100000 à 550000. Chaque point est mesuré en faisant la moyenne parmi 20 instances, avec 500N itérations dans RandomWalkSAT. Notons que la fréquence est en échelle logarithmique. envisager la possibilité de résolution. Dans [21], la fréquence de grande fluctuation est étudiée pour les instances de K-SAT aléatoires, et le résultat théorique est vérifié indirectement par la fréquence de résolution d une instance par RandomWalkSAT. Ici on veut vérifier directement ce résultat, c est-à-dire que la fréquence d apparition de ϕ 0 = ϕ est approximativement exp(nζ(ϕ)) avec N le nombre de variables, ζ < 0 et ζ(ϕ) dépendent seulement de α = c/v et K pour les instances de K-SAT aléatoires. Donc la fréquence d apparition de ϕ 0 = ϕ descend exponentiellement quand N tend vers l infini. On veut étudier expérimentalement ce phénomène. La Figure 16 présent un résultat expérimental. On voit qu il vérifie relativement bien le résultat théorique. Mais l évidence n est pas encore assez forte pour conclure, car le nombre de variables n est pas assez grand. Une autre approche possible est d étudier l écart type σ 0 de ϕ 0, indiquant aussi la variation de ϕ 0. On note N le nombre de variables par la suite. Le résultat expérimental est illustré dans la Figure 17. On voit une linéarité très claire entre ln(n) et ln(σ 0 ). Une régression montre que la relation entre N et σ 0 est probablement σ 0 = CN 1/2, avec C une certaine constante. Pour étudier les grandes fluctuations avec l écart type, il faut connaître la distribution de ϕ 0. La Figure 18 montre la répartition de ϕ 0 mesurée expérimentalement. On voit que la distribution de ϕ 0 est très proche d une distribution normale. Dans l analyse suivante, on approxime la distribution de ϕ 0, qui est discrète, par une distribution normale, qui est continue. Soit [(a ɛ)ϕ 0, aϕ 0 ] un intervalle assez loin de ϕ 0 avec 0 a < 1 et ɛ > 0 petit devant a. Supposons σ 0 = CN 1/2. La probabilité que ϕ 0 [aϕ 0, (a+ɛ)ϕ 0 ] est : 29
Figure 17 Evolution de l écart type de ϕ 0 suivant le nombre de variables. Chaque point représente une instance 3SAT aléatoire avec ratio c/v = 4.26. C est une composition de trois échantillonnages. Notons que les deux axes sont en échelle logarithmique. Figure 18 Répartition de ϕ 0, mesurée avec une instance 3SAT aléatoire d un ratio c/v = 4.26 avec 3000 variables. La ligne bleue est la fonction de répartition de la distribution normale. 30
N p(n) = 1 ( erf ( (a 1) ϕ 0 2π C Ici erf est la fonction d erreur donnée par : erf(x) = 2 x e t2 dt π A l aide de Maple, on obtient le résultat suivant. ( ln(p(n)) (1 a)ϕ0 lim = N + N C ) ( ϕ 0 N ) ) erf (a ɛ 1) C On voit que p(n) descend exponentiellement quand N tend vers infini. La validité de cette démonstration est basée sur deux hypothèses, σ 0 = CN 1/2 et la distribution de ϕ 0 soit normale. Ces deux hypothèses ne sont pas rigoureusement démontrées, mais elles sont bien en accord avec l expérience, et donc très probablement valides. Elles méritent néanmoins une analyse théorique plus précise. 4.5 Corrélation avec la difficulté des instance aléatoire La caractéristique ϕ 0 est intimement liée aux algorithmes de recherche locale, car elle résume d une certaine façon la situation des états métastables. Ces états métastables sont cruciaux pour les algorithmes de recherche locale, car ce sont des minima locaux, un obstacle majeur pour la recherche locale. On peut espérer une corrélation entre ϕ 0 et la difficulté de l instance pour la recherche locale. On se limite toujours à 3SAT aléatoire, car les instance 3SAT aléatoires sont faciles à gérer du point de vue génération et statistique. On mesure la difficulté de l instance pour la recherche locale par le temps de calcul de WalkSAT. Il est aussi intéressant de voir si ϕ 0 est liée à la difficulté de l instance pour des algorithme de type DPLL. Pour envisager cette possibilité, l analyse avec le temps de calcul de march hi est aussi faite. Les résultats sont présentés dans la Figure 19. Malheureusement on ne peut pas en déduire une corrélation assez claire, ni pour WalkSAT, ni pour march hi. 4.6 Corrélation avec la solution de MAXSAT Rappelons que MAXSAT est un problème intimement lié à SAT. Au lieu de demander si une instance est satisfaisable, MAXSAT demande le nombre maximal de clauses satisfaites pour toute possibilité de valeurs des variables. MAXSAT est bien une extension de SAT et apparemment plus difficile, car si on peut résoudre MAXSAT on peut résoudre SAT en demandant si le nombre maximal de clauses satisfaites est le nombre total de clauses. De ce fait, MAX- SAT est classé comme un problème de la classe de complexité NP-difficile. On peut voir la solution de MAXSAT d une instance comme une mesure qualitative de conflits entre les clauses à satisfaire. Moins il y a des conflits logiques entre les clauses, plus la portion maximale de clauses satisfaites donnée par MAXSAT est grande. Ceci est lié à la notion de noyaux inconsistants. 0 ) 2 31
Figure 19 Temps de calcul de WalkSAT et de march hi contre ϕ 0. Chaque point correspond à une instance 3SAT aléatoire de ratio c/v critique avec 400 variables. Le temps de calcul de WalkSAT est mesuré en moyennant parmi 50 exécutions avec p = 0.55, Maxiter = 100000. Dans un autre domaine, ϕ 0 pour RandomWalkSAT peut aussi servir comme indicateur de la difficulté à satisfaire des clauses d une instance. En effet, RandomWalkSAT cherche à diminuer la portion de clauses non satisfaites. Moins il y a de conflits logiques entre les clauses, plus RandomWalkSAT est capable de faire diminuer le nombre de clauses non satisfaites et donc ϕ 0 aussi. Etant donné ces deux indicateurs d incohérence d une instance, il est tout à fait justifié de postuler que ces deux indicateurs soient corrélés, car ils mesurent le même aspect d une instance. Si une telle corrélation existe, il est possible de l exploiter pour résoudre le problème MAXSAT, car ϕ 0 peut être calculé en temps polynomial et on peut utiliser cet information dans la résolution de MAXSAT, par exemple deviner une borne supérieure plus fine dans les méthodes de type branch and bound. Une expérience sur les instances aléatoirement générées est effectuée. La solution de MAXSAT est calculée avec maxsatz (disponible au site web [6]). La Figure 20 présente le résultat obtenu avec 500 instances 3SAT aléatoires composées de 800 clauses et 70 variables. On voit une corrélation assez claire entre le nombre minimal de clause non satisfaite et ϕ 0. Plus ϕ 0 est grand, plus le nombre minimal de clause non satisfaite est grand, comme ce que l on espèrait. La même expérience est aussi faite pour les instances de Max-SAT 2009, une compétition pour le problème MAXSAT [5]. Parmi les instances de même type, la même corrélation est observée. 5 Conclusion Ce stage concerne surtout l aspect statistique du problème SAT et le paramétrage de WalkSAT. Afin d étudier le paramétrage de WalkSAT, on voudrait obtenir un benchmark non biaisé pour bien mesurer les performances de WalkSAT sous des paramétrages différents. Inspiré par SATzilla [24], l approche par caractéristiques statistiques est prise pour classer les instances et en choisir des représentants. 32
Figure 20 Le nombre minimal de clause non satisfaite contre ϕ 0. Chaque point correspond à une instance 3SAT aléatoire avec 800 clauses et 70 variables. La programmation d un outil, SAT4SAT, pour récupérer automatiquement les caractéristiques statistiques des instances de SAT puis effectuer une analyse par clustering, nous a permis de regrouper les instances SAT pour obtenir un benchmark (i.e un ensemble de jeux de test) représentatif. Cependant, le regroupement obtenu n est pas corrélé ni à la difficulté d instance, ni à la nature d instance. Pourtant l outil SAT4SAT s avère utile dans les autres études, par exemple celle sur la structure fine de la distribution des instances 3SAT aléatoires satisfaisables et non satisfaisables autour de ratio critique c/v = α c. L étude sur le paramétrage de WalkSAT est poursuivie avec des restrictions du domaine de validité de résultat. Pour comprendre l importance des paramètres de WalkSAT, l influence des paramètres sur la performance est étudiée expérimentalement, montrant que p est plus important que M axiter et que les deux paramètres sont largement indépendants. Sous ces observations, l algorithme Revac [15] est repris et simplifié pour l adapter à WalkSAT pour le paramétrage automatique. Des expériences montrent la validité de cette méthode. Les résultats obtenus sur les instances de différente nature confirme le point de vue No Free Lunch : il n existe pas de paramétrage optimal unique pour toutes les instances. En poursuivant la méthodologie statistique, une nouvelle caractéristique ϕ 0 d instance SAT, apparue dans [21], est étudiée. Un point de vue physique sur SAT est aussi introduit. Le comportement de ϕ 0 et de ϕ 0 est étudié expérimentalement pour vérifier des résultats théoriques présentées dans [21]. Des désaccords sont trouvés, une explication qualitative, qui est encore à vérifier, est proposée. On retrouve expérimentalement que la distribution de ϕ 0 est très proche d une distribution normale. Sous cette hypothèse, on peut obtenir une expression asymptotique de la probabilité de grande fluctuation. Ces résultats, même si expérimentaux et encore speculatifs, méritent une analyse théorique plus précise. 33
Les liens possibles entre ϕ 0 et la difficulté d instance SAT sont aussi étudiées, mais cette étude n aboutit pas à un résultat clair. Cependant, un lien entre ϕ 0 et la solution du problème MAXSAT, au moins pour les instances aléatoires, est retrouvée. Remerciement Ce stage est accompli avec de l aide de beaucoup de personnes. Ici je voudrais remercier ces personnes avec mes sentiments distingués. Merci de Damien Vergnaud pour l organisation des stages de L3 du DI de l ENS. Merci de mon tuteur, Julien Bertrane, pour ses conseils sur ce stage. Merci de Isabelle Délais et Mme Drant pour l aide sur les documents administratifs. Merci de Charlotte Truchet et de Frédéric Saubion pour m avoir accepté en ce stage et pour avoir encadré ce stage. Les discussions avec eux, surtout avec Charlotte Truchet, sont inspirant pour ce stage et aussi pour la culture scientifique générale. Merci de Guilhem Semerjian pour la discussion sur son papier sur Random- WalkSAT. C est la source principale d idée de la section concernant la nouvelle caractéristique. Merci des doctorants au LINA, surtout Marie Palleau, pour leur amitié, l aide pour mon intégration dans la laboratoire et l environnement confortable maintenu par eux. Merci Marie pour relire ce rapport et proposer des corrections de mes fautes de français. Merci de l équipe Contrainte pour m avoir ouvert une porte vers le domaine de programmation par contrainte. Merci aux techniciens du LINA pour le bon fonctionnement du système informatique, surtout du centre de calcul. C est très important pour ce stage. Merci de mes parents pour la soutenance quand ils pensent que j ai un souci, qui n est jamais le cas. Enfin, je remercie mon laptop pour son bon fonctionnement, qui est aussi important pour ce stage. Références [1] Award-winning glucose home page. http://www.lri.fr/~simon/ glucose/. [2] Implementation of k-means++. http://www.stanford.edu/~darthur/ kmpp.zip. [3] The international sat competitions web page. http://www. satcompetition.org/. [4] Linear congruential generator - wikipedia, the free encyclopedia. http: //en.wikipedia.org/wiki/linear_congruential_generator. [5] Max-sat 2009. http://www.maxsat.udl.cat/09/. [6] maxsatz. http://www.laria.u-picardie.fr/~cli/englishpage.html. [7] Chih-Chung Chang and Chih-Jen Lin. LIBSVM : a library for support vector machines, 2001. Software available at http://www.csie.ntu.edu. tw/~cjlin/libsvm. 34
[8] S.A. Cook. The complexity of theorem-proving procedures. In Proceedings of the third annual ACM symposium on Theory of computing, page 158. ACM, 1971. [9] J.M. Crawford and L.D. Auton. Experimental results on the crossover point in random 3-SAT. Artificial intelligence, 81(1-2) :31 57, 1996. [10] M. Heule, M. Dufour, J. Van Zwieten, and H. Van Maaren. March eq : Implementing additional reasoning into an efficient look-ahead SAT solver. In Theory and Applications of Satisfiability Testing, pages 345 359. Springer, 2005. [11] H. Hoos and T. Stützle. SATLIB The Satisfiability Library. Web site at : http ://www. satlib. org. [12] H.H. Hoos. An adaptive noise mechanism for WalkSAT. In Proceedings of the national conference on artificial intelligence, pages 655 660. Menlo Park, CA ; Cambridge, MA ; London ; AAAI Press ; MIT Press ; 1999, 2002. [13] H.H. Hoos and T. Stützle. Local search algorithms for SAT : An empirical evaluation. Journal of Automated Reasoning, 24(4) :421 481, 2000. [14] H. Kautz, D. McAllester, and B. Selman. Encoding plans in propositional logic. In PRINCIPLES OF KNOWLEDGE REPRESENTATION AND REASONING-INTERNATIONAL CONFERENCE-, pages 374 385. Citeseer, 1996. [15] V. Nannen and AE Eiben. A method for parameter calibration and relevance estimation in evolutionary algorithms. In Proceedings of the 8th annual conference on Genetic and evolutionary computation, page 190. ACM, 2006. [16] E. Nudelman, K. Leyton-Brown, H.H. Hoos, A. Devkar, and Y. Shoham. Understanding random SAT : Beyond the clauses-to-variables ratio. Principles and Practice of Constraint Programming CP 2004, pages 438 452, 2004. [17] S. K. Park and K. W. Miller. Random number generators : good ones are hard to find. Commun. ACM, 31(10) :1192 1201, 1988. [18] D.J. Patterson and H. Kautz. Auto-WalkSAT : a self-tuning implementation of WalkSAT. Electronic Notes in Discrete Mathematics, 9 :360 368, 2001. [19] B. Selman and H. Kautz. Walksat home page. http://www.cs.rochester. edu/~kautz/walksat/. [20] B. Selman, H. Kautz, and B. Cohen. Local search strategies for satisfiability testing. DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 26 :521 532, 1996. [21] G. Semerjian and R. Monasson. Relaxation and metastability in a local search procedure for the random satisfiability problem. Physical Review E, 67(6) :66103, 2003. [22] C. Truchet, D. Noguès, and N. Jussien. Un modèle markovien pour GSAT et WalkSAT résultats préliminaires. 2008. [23] D.H. Wolpert and W.G. Macready. No free lunch theorems for optimization. IEEE transactions on evolutionary computation, 1(1) :67 82, 1997. 35
[24] L. Xu, F. Hutter, H.H. Hoos, and K. Leyton-Brown. SATzilla : portfoliobased algorithm selection for SAT. Journal of Artificial Intelligence Research, 32(1) :565 606, 2008. 36