Un algorithme de recherche dispersée pour le problème MAX-SAT

publicité
|
Prépublication n° 44
|
Fascicule n° 2
Un algorithme de recherche dispersée
pour le problème MAX-SAT
Dalila Boughaci
LSIS, UMR CNRS 6168, CMI
39 rue Frédéric Joliot-Curie, 13453 Marseille
LRIA-USTHB
BP32 El-Alia, Beb-Ezzoaur, Algiers, 16111
[email protected]
Résumé :
Dans ce papier, nous proposons une variante de recherche dispersée (SSV) pour le problème
MAX-SAT. Notre approche est basée sur la diversité et la qualité pour choisir une collection de
solutions qui participent à la phase de reproduction pour donner une descendance. L’approche
utilise un opérateur de combinaison spécifique au problème MAX-SAT pour générer de nouvelles
solutions qui sont améliorées par une recherche locale stochastique (SLS). Plusieurs expérimentations numériques sont réalisées sur des instances MAX-SAT dans le but de tester et de prouver
l’efficacité de notre approche
Mots-clés : satisfiabilité, MAX-SAT, recherche dispersée, recherche locale, opérateur de
combinaison, diversification, intensification.
1
Introduction
Le problème SAT de la logique booléenne est le premier problème démontré NP-Complet
[1]. C’est la satisfiabilité d’une formule propositionnelle donnée sous forme clausale : conjonction de clauses, où chaque clause est une disjonction de littéraux, et un littéral est une
variable ou sa négation. Le problème est de décider alors s’il y a une affectation de valeurs
de vérité aux variables propositionnelles qui rend la formule vraie. Dans le cas où cette
affectation n’existe pas, l’ensemble de clauses est dit non satifaisable et une variante du
problème appelée MAX-SAT est introduite. Cette variante consiste à chercher une affectation de valeurs de vérité qui maximise le nombre de clauses satisfaites.
Pour contribuer à la résolution du problème MAX-SAT par les approches évolutionnaires, nous proposons, tout d’abord, une nouvelle stratégie de sélection qui se base sur
la diversité et la fitness pour choisir une collection de solutions qui participent à la phase
Dalila Boughaci
« Un algorithme de recherche dispersée pour le problème MAX-SAT »
Schedae, 2007, prépublication n° 44, (fascicule n° 2, p. 293-297).
293
294 |
de reproduction pour donner une descendance. Ensuite, nous utilisons un opérateur de
combinaison spécifique au problème MAX-SAT pour générer de nouveaux enfants qui sont
améliorés par une recherche locale stochastique (SLS). Les trois composantes proposées
ont été incorporées dans un algorithme de recherche dispersée, et ce pour résoudre le
problème MAX-SAT.
2
Une variante de recherche dispersée pour MAX-SAT
La variante de recherche dispersée proposée pour résoudre le problème MAX-SAT démarre
d’une population variée P de solutions. Ensuite, une collection B de solutions est choisie
parmi la population courante pour participer à la phase de reproduction et produire d’autres
solutions. La collection B contient, d’une part, un certain nombre B1 de bonnes solutions
choisies selon leur fitness. D’autre part, un certain nombre B2 de solutions sont tirées de la
population restante P − B et rajoutées à la collection B pour la compléter. Les B2 solutions
sont les solutions les plus éloignées des meilleures solutions de B , elles sont appelées : solutions diversifiées. La diversité d’une solution est mesurée par la distance de Hamming. La
nouvelle stratégie de sélection que nous proposons aide l’algorithme à maintenir à chaque
génération une population diversifiée et de meilleure qualité. Après avoir choisi un ensemble de solutions bonnes et diversifiées, la phase de reproduction est lancée. Une fois que
deux parents sont choisis, leurs chromosomes sont combinés pour construire un enfant. La
combinaison utilise un opérateur spécifique au problème MAX-SAT permettant de restaurer
la consistance des clauses falsifiées simultanément par les parents. L’opérateur de combinaison essaie de minimiser le nombre de clauses falsifiées par le fils résultant des parents.
Il combine deux parents appartenant à la collection B . Le nouveau fils est ensuite amélioré
par la recherche locale stochastique basée sur Walksat [2], et rajouté à la collection de solutions dans le cas où il améliore la qualité ou la diversité de la collection courante. Autrement,
il sera écarté. Ce processus est réitéré pour un certain nombre de générations fixé d’une
manière empirique.
L’algorithme de la variante de recherche dispersée pour le problème MAX-SAT est
donné dans la procédure 1.
3
Résultats expérimentaux
Dans le but de valider notre approche, des tests ont été effectués sur différents problèmes
MAX-SAT. Dans nos expériences, nous avons considéré des instances de MAX-2-SAT et
MAX-3-SAT produites par Borchers et al 1 . En plus de ces instances, nous avons considéré
des instances de la librairie de SATLIB 2 .
Nos algorithmes ont été implémentés en C sous Linux et sous la machine Pentium-IV
2.8 GHZ, 1GB de RAM.
Afin de bien évaluer la qualité des solutions trouvées, nous avons implémenté les algorithmes de comparaison suivants :
– GA : est un algorithme génétique standard utilisant un croisement uni-point, une
mutation standard et sans recherche locale ;
– SLSA : est la recherche locale stochastique basée sur Walksat, exécutée toute seule.
1.
http ://www.nmt.edu/˜borchers/maxsat.html.
2.
http ://www.cs.ubc.ca/˜hoos/SATLIB/benchm.html.
Schedae, 2007, prépublication n° 44, (fascicule n° 2, p. 293-297).
|
Algorithme 1: Procédure 1 : algorithme de la recherche dispersée pour MAX-SAT
Entrée : une instance MAX-SAT
Sortie : une affectation booléenne maximisant le nombre de clauses satisfaites
début
Générer une population initiale variée P ;
tant que le nombre maximum de générations n’est pas atteint faire
Sélectionner un ensemble de référence B de P ;
tant que une nouvelle solution est introduite dans B faire
Pour chaque deux solutions de B , utiliser l’opérateur de combinaison pour
produire une nouvelle solution V ;
Améliorer la nouvelle solution en utilisant la SLS ;
si V améliore la qualité de B alors
Ajouter V aux B1 meilleures solutions ;
Enlever de B la mauvaise solution ;
sinon
si V améliore la diversité de B alors
Ajouter V aux B2 solutions dispersées ;
Enlever de B la solution la moins dispersée ;
Régénérer une nouvelle population P ;
retourner la meilleure solution trouvée.
fin
Les paramètres de la SSV : la taille de la population =100, la taille de l’ensemble de référence B1 = 5,
B2 = 5. L’étape de la recherche locale est lancée pour 60s pour chaque appel, wp = 0.3 et dp = 0.6..
Les paramètres de la GA : la taille de la population =100, le taux de croisement (uni-point)= 0.6 et le taux de
la mutation = 0.1. Les paramètres de la SSLA : wp = 0.3 et dp = 0.6.. Un temps total de 300 seconde a
été fixé pour les trois méthodes, et ce pour mesurer d’une manière équitable la performance de chacune.
Instances
(#Vars/#Cls)
par16-5(1015/3358)
par32-1-c (1315/5254)
par32-5 (3176/10325)
ais12 (265/5666)
Mat25 (588/1968)
Mat26 (744/2464)
color-10-3 (300/6475)
color-18-4 (1296/95904)
glassy-v450-(450/2100)
hgen2-v500-a (500/1750
difp_19_0 (1201/6563)
difp_19_3 (1201/6563)
difp_19_99 (1201/6563)
f1000 (1000/4250)
f2000 (2000/8500
f600 (600/ 2550)
jnh208 (100/800)
jnh209 (100/800)
p2300 (150/300)
p2450 (150/450)
p3400 (50/400)
p3450 (50/450)
p3750 (150/ 750)
SAT
Y
Y
Y
Y
N
N
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
N
Y
N
N
N
N
N
SSV
sol
1
6
8
0
3
3
0
15
8
1
14
9
10
3
5
0
1
0
4
22
11
15
5
time
17.87
185.04
54.03
97.26
181.81
251.62
61,84
23.75
163.39
181.45
20.56
200.37
139.17
166.56
215.01
12.20
0.5780
0.0790
0.0160
0.0160
0.01
0.01
0.03
GA
sol
485
615
1575
642
270
335
167
273
197
171
628
637
619
450
958
236
27
24
40
69
24
29
52
time
171.81
142.7
157.5
280.18
202.15
228.18
142.11
22.26
197.2
90.75
98.54
240.07
116.15
255.10
146.34
208.26
93.57
99.43
297.37
209.93
51.34
87.32
288.23
SLSA
sol
3
9
17
1
5
10
0
31
10
3
18
19
15
7
24
3
1
0
4
22
11
15
5
time
169.2
273.54
295.5
2.03
119.15
127.93
85.46
168.82
160.25
140.92
240.06
284.00
249.59
239.82
231.42
254.21
5.25
2.23
0.016
0.063
0.141
0.188
46.70
Tab. 1: Comparaison entre SSV, GA et SLSA.
Schedae, 2007, prépublication n° 44, (fascicule n° 2, p. 293-297).
295
296 |
Les paramètres de FlipGA sont : une population de 10 solutions, un nombre maximum de croisement de 102 et un taux de mutation = 0.9. Les paramètres de GASAT sont : une population de
100 solutions, une sous population de 15 solutions, un nombre maximum de croisement est 103 et
une recherche taboue comme technique locale d’amélioration avec 104 itérations pour chaque appel.
Instances
GASAT
(#Vars/#Cls)
fc
sec
FlipGA
fc
sec
SSV
fc
sec
f1000(1000/4250)
2.30
45
8.90
47
3
166.56
f2000(2000/8500)
7.35
97
16.90
122
5
215.01
par32-5-c(1711/5722)
19.60
129
27.40
77
11
142.72
par32-5(6458/13748)
41.25
813
50.65
290
17
295.5
Mat25.shuffled(588/1968)
7.60
161
10.10
28
3
181.81
Mat26.shuffled(744/2464)
8.00
749
12.89
44
3
251.62
difp_19_0(1201/6563)
84.25
661
87.60
109
14
20.56
difp_19_99(1201/6563)
81.40
658
87.95
107
10
139.17
glassy-a(399/1862)
5.00
18
7.60
16
6
18.57
glassy-b(450/2100)
8.95
86
11.45
21
8
163.39
hgen2-a(500/1750)
1.40
22
6.24
16
5
22.77
hgen2-b(500/1750)
7.00
1.80
22
18
1
181.45
Tab. 2: Comparaison avec GASAT et FlipGA.
Dans la table 3 3 , pour chaque méthode, nous donnons le meilleur nombre de clauses
violées dans la meilleure solution trouvée (sol) et le temps de calcul en seconde nécessaire
pour atteindre cette solution (time).
À partir de la Table 3, on remarque que la recherche dispersée SSV trouve l’optimum
pour certaines instances, et pour les autres l’écart à l’optimum n’est pas très grand. Les résultats trouvés par SSV et SLSA sont nettement meilleurs que ceux fournis par l’algorithme GA.
La version traditionnelle de l’algorithme génétique (GA) échoue à trouver une solution aux
différentes classes de problèmes de MAX-SAT. Ceci confirme la convergence prématurée
de l’algorithme (GA).
Les résultats trouvés par la SSV sont nettement meilleurs que ceux fournis par le GA et la
SLSA. Notre SSV réussit à trouver la solution optimale pour quelques classes de problèmes
(MAX-2-SAT, MAX-3-SAT, classe de jnh, classe d’ais, f600, color10-3). Pour les autres classes,
la SSV trouve des solutions satisfaisantes en un temps raisonnable.
Dans le but de tester et de prouver l’efficacité de notre approche, une étude comparative avec quelques algorithmes de l’état de l’art concernant MAX-SAT à savoir FlipGA [3]
et GASAT [4]. est établie dans ce papier.
Comparant notre approche à FlipGA, SSV surpasse clairement FlipGA pour toutes les
instances MAX-SAT. Comparant notre approche à GASAT, la table 3 montre une légère
performance en faveur de notre variante SSV. SSV produit de meilleures solutions sur les
problèmes de parity, de Mat* et de difp* comparé à GASAT qui s’exécute mieux sur des
instances f1000 et glassy*.
L’efficacité de notre approches est expliquée par la bonne combinaison entre la diversification et l’intensification ce qui mène l’algorithme à explorer efficacement l’espace de
recherche et localiser une bonne solution.
3.
vars (respectivement cls) est le nombre de variables (respectivement de clauses) de l’instance MAX-SAT.
SAT : Y signifie que l’instance est satisfaisable. N signifie que l’instance est insatisfaisable.
Schedae, 2007, prépublication n° 44, (fascicule n° 2, p. 293-297).
|
Références
[1] M. R. Garey and D. S. Johnson. Computers and Intractability, A Guide to the Theory of NPCompleteness. W. H. Freeman, 1979.
[2] B. Selman, H. A. Kautz, and B. Cohen. Noise strategies for improving local search. In Proceedings of
the Twelfth National Conference on Artificial Intelligence (AAAI’94), pages 337–343, Seattle, 1994.
[3] E. Marchiori and C Rossi. A flipping genetic algorithm for hard 3-SAT problems. In Proceedings of
the Genetic and Evolutionary Computation Conference, volume 1, pages 393–400. Morgan Kaufmann, 13-17 1999.
[4] F. Lardeux, F. Saubion, and J.K. Hao. Gasat : A genetic local search algorithm for the satisfiability
problem. Journal of Evolutionary Computation, 14(2) :223–253, 2006.
Schedae, 2007, prépublication n° 44, (fascicule n° 2, p. 293-297).
297
Téléchargement