Transparents

publicité
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
Téléchargement