Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué André Abramé et Djamal Habet Université d’Aix-Marseille, LSIS UMR 7296 {andre.abrame, djamal.habet}@lsis.org André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 1 / 29 Plan 1 Introduction 2 Algorithme de recherche locale pour SAT (Adaptnovelty++) 3 Règles d’inférence pour Max-SAT 4 Notre contribution : Règles d’inférence et recherche locale (IRAnovelty++) 5 Étude expérimentale 6 Conclusion André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 2 / 29 Le Problème Max-SAT Définitions: Max-SAT Soit X = {x1 , x2 , . . . , xn } un ensemble de variables booléennes. Un littéral l est une variable xi ou sa négation ¬xi . Une clause C est une disjonction de littéraux C = (l1 ∨ l2 ∨ · · · ∨ lk }. Une formule CNF Φ est une conjonction de clauses Φ = (C1 ∧ C2 ∧ · · · ∧ Cm }. Le problème Max-SAT Trouver une interprétation I des variables de X qui maximise le nombre de clauses satisfaites de Φ. Max-SAT est la version optimisation de SAT et il est NP-difficile. André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 3 / 29 Le Problème Max-SAT Définitions: Max-SAT valué On associe à chaque clause C un poids w . Le problème Max-SAT valué Trouver une interprétation I des variables de X qui maximise la somme des poids des clauses satisfaites de Φ. André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 4 / 29 Le Problème Max-SAT Résoudre Max-SAT (valué) Résoudre Max-SAT méthodes complètes : Branch’n’Bound (avec des règles d’inférence) méthodes incomplètes : algorithme de recherche locale pour SAT, programmation semie-définie, optimisation pseudo booléenne, etc. André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 5 / 29 Objectif Construire un algorithme de recherche locale pour Max-SAT en incluant des règles d’inférence dans un algorithme classique de recherche locale pour SAT. Un algorithme de recherche locale pour SAT Adaptnovelty++ + Des règles d’inférence pour Max-SAT SUP + Max-resolution ⇓ Un nouveau solveur de recherche locale pour Max-SAT IRAnovelty++ André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 6 / 29 Algorithme de recherche locale pour SAT (Adaptnovelty++) Un algorithme de recherche locale pour SAT Adaptnovelty++ + Des règles d’inférence pour Max-SAT SUP + Max-resolution ⇓ Un nouveau solveur de recherche locale pour Max-SAT IRAnovelty++ André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 7 / 29 Algorithme de recherche locale pour SAT (Adaptnovelty++) Algorithme basé sur WalkSat pour SAT Data: Φ, MaxRestarts, FreqRelances. Result: Si une interprétation satisfaisable I est trouvée alors I , sinon ∅. 1 2 3 4 5 6 begin for i = 0 to MaxRestarts do I = interprétation aléatoire(); for j = 0 to FreqRelances do if est satisfaite( Φ|I ) then return I ; c = choix clause falsifiée(Φ|I ); x = choix variable à flipper(c); I = flippe(I , x); 7 8 9 10 return ∅ André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 8 / 29 Algorithme de recherche locale pour SAT (Adaptnovelty++) AdaptNovelty++ Walksat: choix aléatoire des clauses falsifiées choix de la variable à flipper basé sur le score. score(x) = make(x) − break(x) make(x) = nombre de clauses qui deviendront satisfaites si on flippe x. break(x) = nombre de clauses qui deviendront falsifiées si on flippe x. AdaptNovelty++ est basé sur Walksat avec en complément: prise en compte de l’âge des variables et de probabilitées de diversification (p, dp) dans le choix de la variable à flipper (novelty++, [1]). age(x) = nombre d’itérations de l’algorithme depuis le dernier flippe de x. système d’ajustement dynamique des probabilités (p, dp) (adaptive, [2]). André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 9 / 29 Algorithme de recherche locale pour SAT (Adaptnovelty++) AdaptNovelty++ pour Max-SAT et Max-SAT valué Extension d’AdaptNovelty++ pour Max-SAT et Max-SAT valué : mémorisation de la meilleure solution trouvée et de l’interprétation correspondante. heuristique de choix des clauses falsifiées basée sur le poids des clauses, avec un système de tabou. André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 10 / 29 Règle d’inférence basée sur la Max-résolution Un algorithme de recherche locale pour SAT Adaptnovelty++ + Des règles d’inférence pour Max-SAT SUP + Max-resolution ⇓ Un nouveau solveur de recherche locale pour Max-SAT IRAnovelty++ Les règles d’inférence transforment une formule Φ en une formule équivalente Φ0 . André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 11 / 29 Règle d’inférence basée sur la Max-résolution Propagation unitaire simulée propagation unitaire (UP) Si une clause contient un unique littéral l, alors toute les clauses contenant l et toute les occurrences de ¬l peuvent être supprimées de la formule. ⇒ ne préserve pas l’équivalence pour Max-SAT. propagation unitaire simulée (SUP) UP est appliquée sur la formule pour détecter les conflits (clauses falsifiées), mais ces conséquences ne sont pas appliquées à la formule. André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 12 / 29 Règle d’inférence basée sur la Max-résolution Max-resolution resolution {{x, A}, {¬x, B}} ∪ Φ0 {{A, B}, {x, A}, {¬x, B}} ∪ Φ0 ⇒ ne préserve pas l’équivalence pour Max-SAT. Max-résolution [3] {C1 , C2 } ∪ Φ0 {Cr , Cc1 , Cc2 , Cc3 , Cc4 } ∪ Φ0 les clauses originales: C1 = ({x, A}, w1 ) C2 = ({¬x, B}, w2 ) la clause résolvante: Cr = ({A, B}, m) André Abramé et Djamal Habet (LSIS) les clauses de compensation: Cc1 = ({x, A}, w1 − m) Cc2 = ({¬x, B}, w2 − m) Cc3 = ({x, A, ¬B}, m) Cc4 = ({¬x, ¬A, B}, m) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 13 / 29 Règle d’inférence basée sur la Max-résolution SUP + Max-resolution Principe : 1 utiliser SUP pour détecter les conflits 2 construire l’arbre de réfutation pour chaque conflit trouvé 3 appliquer la Max-resolution selon les arbres de réfutation André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 14 / 29 Règle d’inférence basée sur la Max-résolution Exemple a) Φ = {c1, c2, c3, c4, c5} ∪ Φ1 with c1={x1} , c2={x1,x2} , c3={x1,x3} , c4={x2,x3,x4} and c5={x1,x2,x4} b) c2 c1 X1@1 c4 c3 x3@3 c) c5 x2@2 c4 x4@4 c5 □@5 {x1,x2,x3,x4} {x1,x2,x3,x4} c5 c4 {x1,x2,x3} c3 {x1,x2} c2 {x1} c1 c5 {x1,x2,x3} d) Φ' = { □ , {x1,x2,x3,x4} , {x1,x2,x3,x4} , {x1,x2,x3} } ∪ Φ1 □ André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 15 / 29 IRAnovelty++ : AdaptNovelty++ et règles d’inférence Un algorithme de recherche locale pour SAT Adaptnovelty++ + Des règles d’inférence pour Max-SAT SUP + Max-resolution ⇓ Un nouveau solveur de recherche locale pour Max-SAT IRAnovelty++ André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 16 / 29 IRAnovelty++ : AdaptNovelty++ et règles d’inférence Principe Dans AdaptNovelty++ pour Max-SAT : ajouter une interprétation partielle I 0 , initialement vide A chaque flippe fait par AdaptNovelty++ : ajouter la variable flippée et sa nouvelle valeur à I 0 appliquer SUP sur Φ|I 0 pour chaque conflit détecté par SUP : construire l’arbre de réfutation correspondant R appliquer la Max-resolution sur Φ selon R André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 17 / 29 IRAnovelty++ : AdaptNovelty++ et règles d’inférence Paramètres Paramètre hérité d’AdaptNovelty++: FreqRelances : fréquence des relances. Paramètres propres à IRAnovelty++: LimSUP : taille maximum de la formule transformée, en ratio de l’originale. LimMR : taille maximum des résolvants lors de l’application de la Max-résolution, en ratio de la plus petite clause de l’arbre de réfutation. André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 18 / 29 IRAnovelty++ : AdaptNovelty++ et règles d’inférence Algorithme 1 2 3 begin // . . . if est satisfaite( Φ0 |I ) then return (0, I ); 12 c ← choix clause falsifiée(Φ0 |I ); x ← choix variable à flipper(c); I ← flippe(I , x); I 0 ← affecte(I 0 , x); if |Φ0 | < LimSUP∗|Φ| then for clause c vide ∈ SUP(Φ0 |I 0 ) do R ← arbre réfutation(I 0 , c); if |res( R)| ≤ LimMR∗min{|c|, c ∈src( R)} then Φ0 ← max résolution(Φ0 , R); 13 if 4 5 6 7 8 9 10 11 P c vide P ∈Φ0 |I poids( c) 14 b← 15 Ib ← I ; < b then c vide ∈Φ0 |I poids(c); // . . . André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 19 / 29 Étude expérimentale Machines : Ubuntu serveur Benchmark issue des compétitions Max-SAT : 150 non valuée max-2-sat aléatoire processeur Intel Xeon 2.4 GHz 24 Go RAM Protocole : 150 non valuée max-3-sat aléatoire temps d’exécution : 15 minutes 167 non valuée max-2-sat crafted mémoire maximum disponible : 1.5 Go 80 valuée max-2-sat aléatoire 80 valuée max-3-sat aléatoire 65 valuée max-2-sat crafted Critères de comparaisons : pourcentage d’instances résolues temps médian pour atteindre l’optimum André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 20 / 29 Étude expérimentale Impact de la fréquence des relances sur les performances d’AdaptNovelty++ pourcentage d’optimums trouvés 100 % 80 % 60 % global unweighted random max2sat unweighted random max3sat unweighted crafted max2sat weighted random max2sat weighted random max3sat weightd crafted max2sat 40 % 20 % 0% 0 50 100 FreqRelances 150 200 (a) Pourcentage d’optimum trouvés André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 21 / 29 Étude expérimentale Impact de la fréquence des relances sur les performances d’IRAnovelty++ pourcentage d’optimums trouvés 100 % 98 % 96 % 94 % 92 % global unweighted random max2sat unweighted random max3sat unweighted crafted max2sat weighted random max2sat weighted random max3sat weightd crafted max2sat 90 % 88 % 86 % 0 50 100 FreqRelances 150 200 (b) Pourcentage d’optimum trouvés André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 22 / 29 Étude expérimentale Impact de LimSUP sur les performances d’IRAnovelty++ pourcentage d’optimums trouvés 100 % 90 % 80 % 70 % 60 % global unweighted random max2sat unweighted random max3sat unweighted crafted max2sat weighted random max2sat weighted random max3sat weightd crafted max2sat 50 % 40 % 30 % 20 % 2 4 6 8 10 12 LimSUP 14 16 18 20 (c) Pourcentage d’optimum trouvés André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 23 / 29 Étude expérimentale Temps pour atteindre l’optimum (secondes) Impact de LimSUP sur les performances d’IRAnovelty++ 0.4 0.35 0.3 0.25 0.2 0.15 2 4 6 8 10 12 LimSUP 14 16 18 20 (d) Temps médian pour trouver l’optimum André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 24 / 29 Étude expérimentale Impact de LimMR sur les performances d’IRAnovelty++ pourcentage d’optimums trouvés 100 % 90 % 80 % 70 % 60 % global unweighted random max2sat unweighted random max3sat unweighted crafted max2sat weighted random max2sat weighted random max3sat weightd crafted max2sat 50 % 40 % 30 % 20 % 1 1.5 2 2.5 3 LimMR 3.5 4 4.5 5 (e) Pourcentage d’optimum trouvés André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 25 / 29 Étude expérimentale Temps pour atteindre l’optimum (secondes) Impact de LimMR sur les performances d’IRAnovelty++ 1.4 1.2 1 0.8 0.6 0.4 0.2 0 1 1.5 2 2.5 3 LimMR 3.5 4 4.5 5 (f) Temps médian pour trouver l’optimum André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 26 / 29 Étude expérimentale AdaptNovelty++ vs. IRAnovelty++ Instances aléatoires non-valuées Max-2-SAT aléatoires non-valuées Max-3-SAT crafted non-valuées Max-2-SAT aléatoires valuées Max-2-SAT aléatoires valuées Max-3-SAT crafted valuées Max-2-SAT Total AdaptNovelty++ %O ftO 19.33 129.41 100 < 0.01 38.92 0.11 100 0.07 100 0.04 95.52 0.01 67.44 0.02 IRAnovelty++ %O ftO 100 0.66 100 0.09 99.4 0.08 100 0.31 100 0.1 97.01 0.47 99.57 0.16 avec : %O pourcentage d’instances résolues ftO temps médian pour atteindre l’optimum André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 27 / 29 Conclusions Nous avons montré dans ce papier : Les règles d’inférence améliorent sensiblement les performances d’un algorithme de recherche locale pour Max-SAT. Notre approche est robuste. Futur travaux : Tester sur d’autres algorithme de recherche locale. Comparer avec les autres solveurs de l’état de l’art. André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 28 / 29 Références C. Li and W. Huang, “Diversification and determinism in local search for satisfiability,” in Theory and Applications of Satisfiability Testing - SAT’05, ser. LNCS, F. Bacchus and T. Walsh, Eds. Springer Berlin / Heidelberg, 2005, vol. 3569, pp. 158–172. H. H. Hoos, “An adaptive noise mechanism for walksat,” in Proceedings of the 18th National Conference on Artificial Intelligence - AAAI’02, 2002, pp. 655–660. J. Larrosa and F. Heras, “Resolution in max-sat and its relation to local consistency in weighted csps,” in Proceedings of the Nineteenth International Joint Conference on Artificial Intelligence - IJCAI’05, L. P. Kaelbling and A. Saffiotti, Eds. Morgan Kaufmann Publishers Inc., 2005, pp. 193–198. André Abramé et Djamal Habet (LSIS) Règles d’inférence et recherche locale pour Max-SAT et Max-SAT valué 29 / 29