|293
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
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érimen-
tations 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 : con-
jonction 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 affecta-
tion 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 évolution-
naires, 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).
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 Pde solutions. Ensuite, une collection Bde solutions est choisie
parmi la population courante pour participer à la phase de reproduction et produire d’autres
solutions. La collection Bcontient, d’une part, un certain nombre B1de bonnes solutions
choisies selon leur fitness. D’autre part, un certain nombre B2de solutions sont tirées de la
population restante PBet rajoutées à la collection Bpour la compléter. Les B2solutions
sont les solutions les plus éloignées des meilleures solutions de B, elles sont appelées : so-
lutions 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 ensem-
ble 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 combi-
naison 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 solu-
tions 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 al1. 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 Csous 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 algo-
rithmes 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).
|295
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 Bde P;
tant que une nouvelle solution est introduite dans Bfaire
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 Vaméliore la qualité de Balors
Ajouter Vaux B1meilleures solutions ;
Enlever de Bla mauvaise solution ;
sinon
si Vaméliore la diversité de Balors
Ajouter Vaux B2solutions dispersées ;
Enlever de Bla 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.3et 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.3et 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 SAT SSV GA SLSA
(#Vars/#Cls) sol time sol time sol time
par16-5(1015/3358) Y 117.87 485 171.81 3 169.2
par32-1-c (1315/5254) Y 6185.04 615 142.7 9 273.54
par32-5 (3176/10325) Y 854.03 1575 157.5 17 295.5
ais12 (265/5666) Y 097.26 642 280.18 1 2.03
Mat25 (588/1968) N 3181.81 270 202.15 5 119.15
Mat26 (744/2464) N 3251.62 335 228.18 10 127.93
color-10-3 (300/6475) Y 061,84 167 142.11 0 85.46
color-18-4 (1296/95904) Y 15 23.75 273 22.26 31 168.82
glassy-v450-(450/2100) Y 8163.39 197 197.2 10 160.25
hgen2-v500-a (500/1750 Y 1181.45 171 90.75 3 140.92
difp_19_0 (1201/6563) Y 14 20.56 628 98.54 18 240.06
difp_19_3 (1201/6563) Y 9200.37 637 240.07 19 284.00
difp_19_99 (1201/6563) Y 10 139.17 619 116.15 15 249.59
f1000 (1000/4250) Y 3166.56 450 255.10 7 239.82
f2000 (2000/8500 Y 5215.01 958 146.34 24 231.42
f600 (600/ 2550) Y 012.20 236 208.26 3 254.21
jnh208 (100/800) N 10.5780 27 93.57 1 5.25
jnh209 (100/800) Y 00.0790 24 99.43 0 2.23
p2300 (150/300) N 40.0160 40 297.37 4 0.016
p2450 (150/450) N 22 0.0160 69 209.93 22 0.063
p3400 (50/400) N 11 0.01 24 51.34 11 0.141
p3450 (50/450) N 15 0.01 29 87.32 15 0.188
p3750 (150/ 750) N 50.03 52 288.23 5 46.70
Tab. 1: Comparaison entre SSV, GA et SLSA.
Schedae, 2007, prépublication n° 44, (fascicule n° 2, p. 293-297).
296 |
Les paramètres de FlipGA sont : une population de 10 solutions, un nombre maximum de croise-
ment de 102et 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 103et
une recherche taboue comme technique locale d’amélioration avec 104itérations pour chaque appel.
Instances GASAT FlipGA SSV
(#Vars/#Cls) fc sec fc sec fc sec
f1000(1000/4250) 2.30 45 8.90 47 3 166.56
f2000(2000/8500) 7.35 97 16.90 122 5215.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 3181.81
Mat26.shuffled(744/2464) 8.00 749 12.89 44 3251.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 8163.39
hgen2-a(500/1750) 1.40 22 6.24 16 5 22.77
hgen2-b(500/1750) 7.00 1.80 22 18 1181.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ésul-
tats 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 compar-
ative 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 diver-
sification 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 : Ysignifie que l’instance est satisfaisable. Nsignifie que l’instance est insatisfaisable.
Schedae, 2007, prépublication n° 44, (fascicule n° 2, p. 293-297).
|297
Références
[1] M. R. Garey and D. S. Johnson. Computers and Intractability, A Guide to the Theory of NP-
Completeness. 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 Kauf-
mann, 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).
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !