Академический Документы
Профессиональный Документы
Культура Документы
ele
MEMOIRE
pour lobtention du
Master Deuxi`
eme Ann
ee de lUniversit
e dArtois
Sp
ecialit
e Informatique
par
Nicolas SZCZEPANSKI
Encadrants :
Gilles Audemard
Jean-Marie Lagniez
Laurent Simon
Sebastien Tabary
Mise en page avec memcril (B. Mazure, CRIL) et thloria (D. Roegel, LORIA).
iv
vi
Remerciements
Introduction gnrale
tat de lart
1.1.1
Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2
1.2.1
Smantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2
Dfinitions et thormes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
Formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4
Le problme SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
2.2
2.3
2.4
Modles parallles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.1.1
Prliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.1.2
Modles dexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.1.3
Modles de programmation . . . . . . . . . . . . . . . . . . . . . . . . . .
14
14
2.2.1
Le modle concurrentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.2.2
15
2.2.3
Le solveur PENELOPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.2.4
Le modle collaboratif . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.2.5
Le chemin de guidage . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2.6
18
2.2.7
21
21
2.3.1
Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.3.2
Lheuristique de coupure . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.3.3
24
2.3.4
24
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.2
3.3
26
26
3.1.1
Multi-armed bandit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.1.2
27
La stratgie UCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2.1
Dfinition et exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.2.2
Exemple dapplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
Lalgorithme UCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.3.1
Squelette de lalgorithme . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.3.2
Explication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.3.3
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
Contribution
ii
10
36
37
4.1.1
37
4.1.2
La communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
4.1.3
Hirarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
4.2
39
4.3
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
41
5.1
42
5.2
42
5.2.1
La descente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.2.2
45
5.2.3
46
5.2.4
47
5.2.5
La slection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.2.6
La simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
5.2.7
La remonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
5.3
50
5.4
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
Chapitre 6 Rsultats
53
6.1
Le programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
6.2
54
6.3
Exprimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
6.4
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
Conclusion
60
Bibliographie
62
iii
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
Schmas de processeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Paralllisme concurrentiel . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagramme des clauses apprises dans PENELOPE . . . . . . . . . . . . . . .
Paralllisme diviser pour rgner . . . . . . . . . . . . . . . . . . . . . .
Chemin de guidage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rquilibrage des charges : tat initial, F et G travaillent. . . . . . . . . . . .
rquilibrage des charges : F a termin son sous-arbre, G travaille. . . . . . .
rquilibrage des charges : F informe le matre, G travaille. . . . . . . . . . .
rquilibrage des charges : F rcupre un chemin de guidage depuis le matre.
rquilibrage des charges : le matre na plus de chemin fournir, il stoppe G
rquilibrage des charges : G envoie son chemin de guidage . . . . . . . . . .
rquilibrage des charges : les chemins de guidage sont rquilibrs . . . . .
Cube And Conquer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
11
15
17
17
18
19
19
19
20
20
20
21
21
3.1
3.2
27
30
4.1
4.2
Hirarchie des tches de chaque solveur SAT inspire des colonies dabeilles butineuses .
Droulement de lalgorithme mmtique . . . . . . . . . . . . . . . . . . . . . . . . . .
38
40
5.1
5.2
5.3
5.4
43
44
45
5.5
5.6
5.7
5.8
6.1
6.2
6.3
6.4
6.5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Fichier .cubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nombre de variables dans les cubes (partie 1) . . . . . . . . . . . . . . . . . . . . . . .
Nombre de variables dans les cubes (partie 2) . . . . . . . . . . . . . . . . . . . . . . .
Nombre de variables dans les cubes (partie 3) : UTI-20-5p1 : 1195016 clauses et 225926
variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Information sur la cration des cubes. . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
47
48
49
50
51
54
55
56
56
57
6.6
6.7
6.8
6.9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
58
58
59
CC
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2
3
4
UCT
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
descenteSelectionUCT(R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
remonteUCT(P,R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
31
33
5
6
7
descenteScoutV1(R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
descenteScoutV2(R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rcupCube(R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
47
51
vi
Remerciements
En premier lieu, je tiens remercier Eric Grgoire de mavoir permis deffectuer ce stage au sein du
CRIL.
Je remercie aussi mes encadrants Gilles Audemard, Jean-Marie Lagniez, Laurent Simon et Sbastien
Tabary pour leurs nombreuses relectures ainsi que leurs prcieux conseilles.
Je tiens galement remercier mes camarades de promotion pour leur sympathie et pour leur convivialit.
Ma famille et plus particulirement, lodie, pour ces nombreuses corrections.
Introduction gnrale
abrg par SAT, est un problme de dcision visant savoir sil existe un assignement qui satisfait une formule de la logique propositionnelle, ou
qui dtermine quun tel assignement nexiste pas. Nous classons respectivement ces formules comme
satifiables ou insatifiables. SAT est un problme thoriquement important car il a t le premier problme
tre prouv NP-Complet [Coo71]. Malgr une complexit thorique difficile, les solveurs SAT modernes sont devenus tonnamment efficaces et permettent de rsoudre de nombreux problmes venant
dapplications industrielles (planification, vrification formelle, bio-informatique, etc.). Deux raisons essentielles peuvent justifier cette performance. La premire est algorithmique et, est due lenvol des
solveurs SAT modernes de type CDCL (apprentissage, VSIDS, watched literal, ...). Tandis que la seconde
est technologique et, est intrinsquement lie un doublement des frquences de fonctionnement des
microprocesseurs qui a lieu tous les dix-huit mois (ce phnomne est nomm la loi de Moore). Ainsi,
jusqu 2005, les solveurs SAT modernes pouvaient profiter de ce gain technologique afin de rsoudre des
problmes de plus en plus difficiles. Cependant, lheure actuelle, cause de lchauffement important
des microprocesseurs des frquences avoisinant les 4 GHz, il na plus t envisageable daccrotre les
performances des solveurs de cette manire. En effet, les constructeurs ont donc dcid dopter pour une
multiplication des units de calcul afin de toujours doubler la puissance des ordinateurs. De ce fait, le
problme SAT doit tre repens par les dveloppeurs de manire sadapter un modle de programmation parallle.
Le problme SAT a longtemps t pens et cod sur un modle squentiel. Une adaptation consquente est donc ncessaire afin de pouvoir bnficier du paralllisme. A ce jour, deux mthodes permettent la rsolution dun problme SAT en parallle : une mthode collaborative et une autre concurrentielle exposes au chapitre 2. Ces mthodes peuvent rencontrer deux problmes technologiques freinant
le calcul. Le premier, appel le goulot dtranglement de Von Neumann, est une surcharge du bus entre
les processeurs et la mmoire. Le deuxime est un cot de communication dans les algorithmes parallles
pouvant tre trop important. Les tentatives de paralllisation pour SAT ont en majeure partie choues.
En effet, les approches parallles actuelles limitent au maximum le partage des informations et narrivent
pas suivre entirement la loi de Moore comme il tait possible dans le pass. De plus, les mthodes
ne passent pas lchelle : le fait daugmenter le nombre de curs dgrade les performances [ABK13].
Actuellement, un des meilleurs solveur parallle est un simple outil lanant en concurrence les meilleurs
solveurs de ltat de lart [Rou12].
Dans un but massivement parallle, nous nous inspirons du comportement de la nature (essaim
dabeilles, colonie de fourmis, gntique, ...) afin de dfinir un nouveau schma de paralllisation. En
effet, dans la nature, nous retrouvons beaucoup de situations o des tches doivent tre ralises en collaboration. Par exemple, la coopration des fourmis via des phromones leur permet de pouvoir faire des
tches complexes comme la recherche de nourriture plusieurs endroits distincts (tche qui ne pourrait
pas tre ralise pas une seule fourmi). Ainsi, ces fourmis sont capables dobtenir rapidement une bonne
3
Introduction gnrale
solution sur le problme du voyageur de commerce [DG97]. Ces algorithmes, nomms algorithmes mmtiques, font partie des dalgorithmes doptimisations (algorithme de colonie de fourmis, algorithme
dessaim dabeilles, ...). Grce une adaptation face au problme concern, ces algorithmes proposent
une srie de concepts pouvant tre exploits afin de dfinir des algorithmes massivement parallles. Dans
ce manuscrit, nous proposons dutiliser les algorithmes de colonies dabeilles pour rsoudre SAT sur une
architecture massivement parallle.
Tout dabord, aprs une prsentation de la logique propositionnelle, nous exposons le problme SAT
accompagn dun exemple (chapitre 1). Puis, nous expliquons les notions de la paralllisation pour exposer un tat de lart des solveurs SAT parallles. Nous distinguons alors les deux mthodes gnrales pour
parallliser le problme SAT : le modle concurrentiel et modle collaboratif (chapitre 2). Nous abordons
ensuite des notions qui sont essentielles dans nos travaux : le dilemme exploitation/exploration ainsi que
lalgorithme UCB (chapitre 3).
Nos contributions commencent par une subtile adaptation de lalgorithme des colonies dabeilles butineuses pour une paralllisation massive du problme SAT. Ce modle ncessite la mise en place de nombreux concepts tournant autour de lorganisation des abeilles butineuses. En effet, dans leur recherche
de nectar, les abeilles ont chacune leurs propres rles excuter (abeilles scouts, abeilles butineuses,
abeilles recrues). De plus, ces abeilles sont de deux types diffrents : celles sans mmoire et celles en
possdant (abeilles exprimentes). Les fonctionnalits nombreuses des abeilles butineuses mettent donc
en jeu autant de mta-heuristiques adapter dans notre contexte. Ce modle est expos dans le chapitre
4, il dfinit chaque rle distinct des abeilles, et chaque liaison entres elles dans le cadre dune paralllisation massive du problme SAT. D aux multiples tches que reprsentent ce modle, nous nous sommes
dans un premier temps concentr sur la cration dune abeille de type scout.
Les abeilles scouts ont pour fonction dexplorer les alentours afin de trouver des fleurs possdant
un maximum de nectars. Dans le contexte de SAT, nous avons dfini quil sagit davoir une mthode
gnrant des cubes. Nous entendons par un cube, une interprtation partielle en SAT : une conjonction
de littraux. Sachant que, par la suite, dautres abeilles butineuses pourront toujours affiner ces cubes via
notre modle de colonie dabeilles. Notre deuxime contribution expose dans le chapitre 5 a donc pour
objectif de crer un ensemble de cubes : nous avons nomm cette mthode SCOUT. De plus, nous souhaitons ordonner les cubes du meilleur au moins bon. Nanmoins, estimer la qualit dune interprtation
partielle est aussi difficile que de rsoudre linstance initiale.
lintrieur du chapitre 2, nous avons choisi de dcrire en dtail la mthode Cube And Conquer (CC)
[HKWB12] pour une bonne raison. Il se trouve que celle-ci possde un point commun avec nos travaux :
elle effectue aussi une division en millions de cubes. De plus, dans loptique de choisir les meilleurs
cubes dans un arbre de recherche, nous avons t confronts au dilemme exploitation/exploration : fautil exploiter un cube dj considr comme bon en lui rajoutant des littraux ou retenter notre chance avec
un nouveau cube. Rcemment, la naissance dun algorithme pour les jeux deux joueurs nomm UCT
traite ce problme : exploiter un tat de la partie qui semble tre bon, ou explorer dautres tats moins
bons. Nous avons donc adapt lalgorithme UCT afin de gnrer des cubes dans notre mthode SCOUT.
Avant de conclure, nous exposons les rsultats apports par quelques exprimentations afin dtudier
la qualit des cubes gnrs par notre mthode SCOUT. La mthode SCOUT nest quune premire brique
utilise dans notre modle de colonie dabeilles pour SAT dans un but massivement parallle. Une thse
suivant ces travaux aura pour acquis le travail fourni pendant ce stage.
tat de lart
Chapitre 1
Le probleme SAT
La logique propositionnelle
Sommaire
1.1
1.1.1
Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2
1.2.1
Smantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2
Dfinitions et thormes . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
Formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4
Le problme SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Syntaxe
Ngation
Unaire
Conjonction
Binaire
Disjonction
Binaire
Implication
Binaire
Equivalence
Binaire
Ou exclusif
Binaire
1.1.2
La syntaxe permet de distinguer les formules bien formes parmi les assemblages quelconques de
symboles.
Dfinition (Formules de la logique propositionnelle). Les phrases du langage de la logique propositionnelle sont obtenues rcursivement partir des propositions et dun ensemble de rgles syntaxiques. Ces
phrases sont appeles formules :
Toute proposition x est une formule (rgle de base) ;
Si F et G sont des formules, alors F, (F G), (F G), (F G), (F G) et (F G) sont des
formules (rgle dinduction) ;
Une formule sobtient uniquement partir des rgles de base et dinduction (rgle de fermeture).
Smantique
1.2.2
Dfinitions et thormes
Dfinition (Interprtation). Une interprtation est une fonction qui associe toute variable propositionnelle une valeur de vrit. Cette fonction, dont le domaine est lensemble des propositions, est prolonge
lensemble des formules au moyen des rgles de la smantique. Le prolongement correspondant est
encore appel interprtation.
La logique propositionnelle
Dfinition (Modle). Un modle dune formule est une interprtation de cette formule qui la vrifie,
cest--dire, qui lui associe la valeur vraie.
Dfinition (Falsifie). Par opposition, on dit quune interprtation falsifie une formule lorsquelle lui associe la valeur faux.
Dfinition (Satisfiable, Insatisfiable). On dit quune formule est satisfiable ou consistante si et seulement si il existe au moins un modle qui la vrifie, sinon elle est insatisfiable.
Dfinition (Consquence logique). Si tout modle dune formule F est modle dune formule G alors G
est une consquence logique de F, not F |= G.
Dfinition (Logiquement quivalentes). Les formules F et Gsont logiquement quivalentes, si F |=
G et G |= F, not F G.
Dfinition (Formule valide, Tautologie). Lorsque la formule F est vrifie par toutes ses interprtations, F est une tautologie. On dit aussi que F est valide et on notera cette assertion F.
Dfinition (Thorme de la dduction). Soit F et G deux formules propositionnelles, on a F |= G si
et seulement si F G est une formule insatisfiable.
Exemple. Voici quelques tautologie de la logique propositionnelle :
Nom
Dfinition de
Dfinition de
Modus ponens
Modus tollens
Contraposition
Expressions
F GF G
(F G) ((F G) (G F)) ((F G) (G F))
((F G) F) G
((F G) G) F
(F G) (G F)
Chapitre 2
SAT
en parallle
Sommaire
2.1
2.2
2.3
2.4
Modles parallles . . . . . . . . . . . . . . . . . . . . .
2.1.1 Prliminaires . . . . . . . . . . . . . . . . . . . .
2.1.2 Modles dexcution . . . . . . . . . . . . . . . .
2.1.3 Modles de programmation . . . . . . . . . . . . .
Rsoudre SAT en parallle . . . . . . . . . . . . . . . . .
2.2.1 Le modle concurrentiel . . . . . . . . . . . . . .
2.2.2 Les solveurs concurrentiels . . . . . . . . . . . . .
2.2.3 Le solveur PENELOPE . . . . . . . . . . . . . . .
2.2.4 Le modle collaboratif . . . . . . . . . . . . . . .
2.2.5 Le chemin de guidage . . . . . . . . . . . . . . . .
2.2.6 Le chemin de guidage : le rquilibrage des charges
2.2.7 Les solveurs de type chemin de guidage . . . . . .
Cube And Conquer . . . . . . . . . . . . . . . . . . . . .
2.3.1 Algorithme . . . . . . . . . . . . . . . . . . . . .
2.3.2 Lheuristique de coupure . . . . . . . . . . . . . .
2.3.3 Lheuristique de choix de variables . . . . . . . . .
2.3.4 La rsolution des cubes . . . . . . . . . . . . . . .
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
12
14
14
14
15
16
16
17
18
21
21
22
23
24
24
25
ONGTEMPS tudi dans un contexte squentiel pour ses nombreuses applications industrielles (plani-
fication, vrification formelle, bio-informatique, etc.), le problme SAT a fait clore des algorithmes
efficaces et puissants qui sexpliquent la fois par lenvol des solveurs SAT modernes (apprentissage,
VSIDS , watched literal) et laccroissement de la puissance de calcul. Ainsi, les solveurs SAT modernes
permettent de rsoudre des problmes considrables contenant des millions de variables et de clauses.
Cependant, de nombreuses instances restent encore inabordables dues leur immense dimension et difficult structurelle. Par ces complications, la paralllisation des algorithmes de rsolution pour SAT semble
ncessaire. Davantage par le fait quactuellement la puissance dun ordinateur ne se traduit plus par une
amplification des frquences du microprocesseur mais par laugmentation du nombre de curs au sein
de celui-ci. Nanmoins, la paralllisation dun problme NP-Complet est une tche ardue, lefficacit
qui en rsulte reste attnue sur de nombreux curs.
10
PROCESSEUR MULTI-CUR
Cur 1
Cur 2
Cur 3
Cur 4
Mmoire cache L1
Mmoire cache L2
L2 partage
2.1.1
Prliminaires
Dfinition (Paralllisme). Le paralllisme en informatique donne la possibilit dexcuter plusieurs instructions conjointement.
11
Chapitre 2.
SAT
en parallle
Dfinition (Excution squentielle, excution parallle). Une excution squentielle est une excution
faite sur une unit de calcul (cur) tandis quune excution parallle est une excution faite sur plusieurs
units de calculs.
Dfinition (Temps dexcution squentiel, temps dexcution parallle). Le temps dexcution dun programme squentiel reprsentant un problme P est le temps coul entre le lancement du programme
P . Le temps dexcution dun programme reprsentant un
et lobtention du rsultat, nous le notons Tsec
problme P en parallle sur n processus est linstant o le dernier processus a termin son travail, nous
P (n).
le notons Tpar
Dfinition (Acclration absolue, acclration relative). Lacclration absolue reprsente le nombre de
fois que le programme a t acclr grce son excution en parallle par rapport au temps dexcution
squentielle du meilleur algorithme connu rsolvant un problme P :
Acc ab (n)=
P
Tsec
P (n)
Tpar
Lacclration relative reprsente le nombre de fois que le programme a t acclr grce son excution
en parallle par rapport au temps dexcution du mme programme lanc sur un seul cur :
P (1)
Tpar
Acc ab (n)= P
Tpar (n)
SAT
Dfinition (Acclration super linaire, acclration linaire, acclration sous linaire). Quand une acclration dpasse le gain possible de la paralllisation, cela montre que le programme en question obtient donc aussi un gain algorithmique en plus de ce gain : cette acclration est dite super linaire. Elle
est obtenue lorsque Acc(n) > n pour n processeurs. Dans le cas contraire, si Acc(n) < n (respectivement Acc(n) = n) pour n processeurs, lacclration est dite sous linaire (respectivement linaire).
Exemple. Pour un algorithme rsolvant le problme SAT, des performances super linaires sur une instance sont possibles si le paralllisme a permis de diminuer fortement la taille de larbre de recherche en
fonction du nombre de curs. Cela peut savrer frquent pour des problmes satisfiables, moins pour
des problmes insatisfiables.Nanmoins, ce cas nest pas abondant, il est difficile de trouver la bonne
manire pour partager larbre de recherche efficacement.
2.1.2
Modles dexcution
Il existe plusieurs manires dexcuter plusieurs tches simultanment, une classification nomme
taxinomie de Flynn [Fly72] a t labore afin de les distinguer. Elle contient donc larchitecture de von
12
CC - NUMA , N o RMA ).
Le modle
MIMD
Cache Coherent - Uniform Memory Access (CC - UMA) : la mmoire est globale et partage la mme
vitesse par tous les processeurs dun ordinateur.
Cache Coherent - Non Uniform Memory Access (CC-NUMA) : la mmoire est globale et partage
des vitesses diffrentes par tous les processeurs dun ordinateur.
No Remote Memory Access (NoRMA) : la mmoire est distribue sur les processeurs, chaque processeur accde uniquement sa mmoire locale.
Les architectures CC - UMA et CC-NUMA sont Cache Coherent, cela veut dire que la cohrence des
mmoires caches est garantie par lordinateur. Dans larchitecture CC - UMA, chaque processeur accde
la mmoire la mme vitesse grce un bus dinterconnexion, ce qui limite la taille quelques dizaines
de curs. Typiquement, un ordinateur multi-curs est darchitecture CC - UMA. Par contre, larchitecture
CC - NUMA ne possde pas de bus dinterconnexion : chaque cur possde une mmoire locale qui lui est
directement adressable trs grande vitesse et une autre, adressable par tous les curs, mais vitesse
rduite. Ce qui permet cette architecture daccueillir plus de curs que CC - UMA mais pour un cot
de cohrence des mmoires caches plus important. Larchitecture NoRMA est trs oppose aux deux
autres : elle ne possde pas de mmoire globale. Le partage de linformation seffectue dune manire
diffrente : lchange de messages entre processeurs travers le rseau dinterconnexion. Nanmoins,
cette architecture a latout de pouvoir compter plusieurs milliers de curs grce des difficults de
conception moindre. Le sujet de ce manuscrit, tant bas sur une application massivement parallle de
13
Chapitre 2.
SAT
en parallle
SAT ,
se doit donc par dfaut de choisir cette architecture. Remarquons que les supercalculateurs actuels
sont en gnral constitus dune hybridation des architectures prsentes ci-dessus : quasiment tous bass
sur une interconnexion NoRMA de nuds CC - UMA ou CC-NUMA.
2.1.3
Modles de programmation
Nous venons de voir que la communication entre les processeurs ne se fait toujours pas de la mme
faon suivant larchitecture utilise, ainsi, cela a un impact sur les algorithmes et la manire de programmer. Nous allons prsenter ici, deux modles conceptuels de communication pour crire des algorithmes
parallles.
Dfinition (PRAM). Dans le modle de programmation Parallel Random Access Machine (PRAM), la mmoire est directement accessible par lensemble des processeurs. Or, les accs concurrents en criture
la mmoire sont une complication pour le programmeur. Pour cela, il doit explicitement grer des verrous
daccs pour sassurer quun seul processeur accde une variable lors de lcriture. Les architectures
cibles pour ce type de programmation sont les machines CC - UMA et CC-NUMA.
Dfinition (DRAM). Dans le modle de programmation Distributed Random Access Machine (DRAM),
chaque unit de calcul a seulement accs en temps constant sa propre mmoire locale. La seule manire de communiquer est de la faire explicitement par lchange de messages. Larchitecture cible est la
machine NoRMA.
Utile pour le modle de programmation DRAM, la bibliothque de fonctions Message Passing Interface (MPI), conue en 1993, est une norme utilisable avec les langages C, C++ et Fortran. Elle permet
dexploiter des ordinateurs distants ou multiprocesseurs par passage de messages. Le terme calcul parallle (respectivement distribu) est associ au modle de programmation PRAM (respectivement DRAM).
A ne pas confondre avec la dfinition dun algorithme distribu (ou rparti) qui est gnralement un algorithme parallle (mais pas toujours, exemple, une communication tlphonique) rparti sur plusieurs
sites. Nos approches dans ce manuscrit seront bases sur le modle de programmation DRAM, qui possde avec les algorithmes de colonies dabeilles le point commun dutiliser un systme dchange de
messages. Nous allons maintenant tudier les approches pour rsoudre SAT en parallle.
2.2.1
Le modle concurrentiel
Le modle concurrentiel aussi nomm portfolio fait fonctionner les processeurs sur le mme problme sans le partager, mais en lexcutant sur diffrentes stratgies de rsolution avec des paramtrages
divers et varis. Ainsi, le premier trouvant la solution (SAT ou UNSAT) arrte tous les autres (figure 2.2).
14
Solveur 1
Solveur 2
Solveur 3
Solveur 4
Solution
Bien sr, cela na de sens que pour les problmes qui possdent plusieurs algorithmes distincts leur actif fourmillant de paramtres sensibles ou ayant un comportement alatoire. Il se trouve que le problme
SAT en regorge et qui plus est, les solveurs modernes sont extrmement sensibles au moindre changement de paramtre : cela sexplique par la structure interne des instances que connat le problme SAT.
Il est donc ncessaire que lensemble des solveurs fasse leurs recherches le plus diffremment possible
afin de former un ensemble complmentaire. Les solveurs concurrentiels utilisent en gnral le modle
de programmation PRAM afin de pouvoir partager des informations utiles tous les processeurs.
2.2.2
Il existe de nombreux solveurs concurrentiels, nous en mentionnons une liste non exhaustive ayant
pour but de voir une certaine volution. Dans le domaine des solveurs incomplets, citons le paralllisme
du solveur GNOVELTY+ T [PG09] qui est simplement lexcution concurrentielle et indpendante de
plusieurs solveurs GNOVELTY+ [PTGS08] utilisant une recherche locale stochastique afin de varier la
recherche. Le solveur GNOVELTY+ utilise un mcanisme de poids sur les clauses non satisfaites, incrment chaque fois que la clause a t teste non satisfaite. Cela amliore le choix de la prochaine
variable dont la valeur sera inverse.
Les solveurs complets modernes de type CDCL (ZCHAFF [Her03], MINISAT [SE02], PICOSAT [Bie08],
...) sont une extension de la procdure DPLL. La procdure CDCL, dabord introduite par [SS96], a apport son lot damliorations au fil du temps : le backjumping, lapprentissage de clauses, lheuristique
VSIDS , les restarts et une structure de donnes efficace nomme Watched literals. Un atout de la procdure CDCL dans le monde parallle est le partage des clauses apprises parmi les solveurs excuts. Le
solveur complet MANYSAT tente de tirer parti de cet avantage en jouant sur la sensibilisation des paramtres des solveurs CDCL [HS09]. Il procde un change des clauses apprises parmi les processeurs.
Nanmoins, un cot de communication ralentit la recherche, il faut donc dcongestionner un canal de
communication trop encombr. Les auteurs mettent en place une limite base sur la taille des clauses
changes : elles doivent tre de taille infrieure ou gale 8. De plus, afin de raliser une recherche
orthogonale et complmentaire, les auteurs proposent de diffrencier les solveurs sur leur stratgie de
redmarrage, de choix de variables, de choix de polarit et dapprentissage. Dun autre ct, le solveur
PLINGELING propose dchanger uniquement les clauses unaires avec des solveurs dont la stratgie diffre [Bie10].
15
Chapitre 2.
SAT
en parallle
Malgr cela, un simple outil de paralllisation statique PPFOLIO fait tourner les meilleurs solveurs
en concurrence sans change de clause, et obtient de meilleurs rsultats [Rou12]. A prsent, nous allons
dtailler le solveur PENELOPE, possdant loriginalit de sattaquer au surplus de clauses apprises en
proposant de geler certaines dentre elles [AHJ+ 12].
2.2.3
Le solveur PENELOPE
PENELOPE [AHJ+ 12] est un solveur concurrentiel de type portefolio reprenant pour socle le solveur MANYSAT. Intgrant les approches efficaces du cadre squentiel (propagation unitaire, structure de
donnes paresseuses, heuristique base sur lactivit des variables, apprentissage de clauses, etc.), son
atout est dintgrer une technique rcente permettant damnager la base de clauses apprises pour les
diffrencier suivant leur utilit un instant donn du solveur.
Voyons tout dabord la notion du progress saving qui consiste prserver la dernire polarit de
chaque variable dans une interprtation complte note P. Ainsi quand une dcision sera prise, le solveur
choisit pour valeur de vrit dune variable de dcision cette polarit sauvegarde. Le travail accompli
par le solveur pour rsoudre les sous-problmes traverss avant datteindre un conflit devient donc plus
utile [PD07]. Nanmoins, cette technique a le dsavantage de ne pas assez diversifier la recherche.
Pour grer la base de clauses apprises, les auteurs de [ALMS11] ont dfini une mesure nomme
progress saving based quality measure (PSM) dfinie comme suit : pour une clause C et une interprtation
complte P reprsentant la dernire polarit de chaque variable (le progress saving) :
PSM (C)
=|P C|
Quand PSM(C)est petit, la clause C a plus de chance de participer la propagation unitaire, elle est donc
pour nous importante et pertinente. A linverse, si PSM(C)est grand, cela signifie que la clause a plus de
chance dtre satisfaite par un littral, elle est donc moins utile cet instant de la recherche. Cet effet est
d linterprtation P qui nous donne une image de ltat courant de la recherche.
Lheuristique PSM est utilise pour classer les clauses apprises des solveurs. On peut distinguer 3
types de clauses apprises :
Les clauses actives A : clauses utilises dans la recherche ;
Les clauses geles G : clauses inutilises dans la recherche mais encore en mmoire (enleves de
la liste des watched-literals) ;
Et les clauses supprimes S de la mmoire.
Priodiquement, la mesure PSM est calcule sur toutes les clauses apprises. Suivant un seuil L, les
clauses ayant un petit PSM < L sont actives. A loppos, les clauses avec un grand PSM > L sont geles.
Grce au calcul priodique de PSM, les clauses changent donc de camp, pour devenir geles ou dgeles
(actives), suivant la recherche en cours. De plus, les clauses restant geles trop longtemps et les clauses
actives mais sans participation la recherche depuis un trop long laps de temps K sont supprimes, ce
qui nous donne notre troisime type de clauses apprises (figure 2.3).
2.2.4
Le modle collaboratif
Le modle collaboratif consiste rduire rcursivement larbre de recherche en plusieurs sousproblmes du mme type (figure 2.4). Pour cela, plusieurs approches ont t proposes souvent bties
16
ut
No
ilis
e
( )
e
iv
act
n
No
sur une programmation ne demandant que des changes minimes : le modle DRAM. Nous exposerons
la plus utilise, qui dcoupe larbre de recherche sous forme de trajet, intitule chemin de guidage.
Nanmoins, bien que cette division semble parfaite pour un solveur de type DPLL, elle pose souci au
niveau des backtracks non chronologiques dun solveur CDCL : il se peut quun processeur travaille pour
rien. Un autre dsavantage est la charge des processeurs qui est dsquilibre, en effet, la division de
larbre de recherche nous donne deux sous-problmes dont les difficults diffrent. Il faut donc amener
une politique dquilibrage de charge qui peut savrer coteuse. De plus, contrairement la mthode
concurrentielle, cette technique doit attendre que tous les solveurs ont termin leurs recherches pour
prouver lintisfaisabilit dune instance.
2.2.5
Le chemin de guidage
Dans cette section, nous prsenterons lapproche la plus populaire du modle collaboratif : cette notion appele chemin de guidage (Guiding path) a t propose par [ZB94]. Cette approche consiste
conserver des chemins de recherche permettant dindiquer quels sont les sous-arbres dvelopper pour
un processeur. Un tel chemin est reprsent par un ensemble de couples (Fi ,Ci ), ou Fi est un littral
propager et Ci est une variable boolenne indiquant quelles branches sont en cours de calcul parmi les
deux sous-arbres disponibles partir de la variable provenant du littral Fi . Cette variable boolenne est
dfinie comme suit :
Ci = les deux sous-arbres sont en cours de traitement ou traits.
Ci = un seul des deux sous-arbres est en cours de traitement ou trait.
17
Chapitre 2.
SAT
en parallle
Exemple. Le chemin de guidage de la figure 2.5 est ((x1 , ),(x2 , ),(x3 , )). A partir de celui-ci,
il est possible dobtenir deux chemins de guidage diffrents qui permettront dorienter deux processeurs : ((x1 , )) et ((x1 , ),(x2 , ),(x3 , )). Par la suite, si un troisime processeur est inutilis,
nous pouvons appliquer ce mme raisonnement sur la variable x2 pour avoir trois chemins de guidage :
((x1 , )), ((x1 , ),(x2 , )) et ((x1 , ),(x2 , ),(x3 , ))
Cette notion prsente le dfaut de donner au processeur des chemins dont le calcul est dsquilibr,
en effet, il se peut quun chemin soit trs long calculer tandis quun autre se finisse instantanment. Afin
de pallier ce problme, un modle dquilibrage de charge doit tre install. De plus, il est possible de
diviser le travail en deux sous-chemins, lun contenant le littral et lautre, son littral complmentaire.
2.2.6
Le rquilibrage des charges est bas sur un modle matre/esclave comme peut nous montrer la
figure 2.6. Un processeur matre est charg de distribuer les tches aux esclaves tandis quun processeur
esclave est charg de calculer une tche. Le modle mis en place pour quilibrer la charge par une
distribution des chemins de guidage est gnralement centralis au sein du processeur matre. Le matre
maintient jour une liste de chemins de guidage. Un chemin permet de symboliser le futur travail sur un
sous-arbre puisque le chemin permet de retrouver la racine dun sous-arbre. Un exemple du rquilibrage
des charges expos est donn par les figures 2.7, 2.8, 2.9, 2.10, 2.11 et 2.12, partiellement tirs de [VS09].
18
19
Chapitre 2.
SAT
en parallle
F IGURE 2.9 rquilibrage des charges : F rcupre un chemin de guidage depuis le matre.
F IGURE 2.10 rquilibrage des charges : le matre na plus de chemin fournir, il stoppe G
20
F IGURE 2.12 rquilibrage des charges : les chemins de guidage sont rquilibrs
Par le fait quun chemin de guidage peut se reprsenter par quelques entiers seulement, cette mthode a largement t tudie en pratique dans un modle DRAM. prsent, nous prsentons brivement
quelques solveurs bass sur ce principe.
2.2.7
Le premier solveur parallle utilisant cette technique est PSATO [ZBP+ 96] bas sur le solveur squentiel SATO. Par la suite, certaines bonifications sont apparues, // SATZ [JLU01] avec lintgration
de lheuristique base sur la propagation unitaire (PU) , lchange de clauses a t intgr par PASAT
[SBK01]. Citons aussi PMINISAT [CSH08] qui est la paralllisation du solveur MINISAT 2.0 [SE08] avec
la particularit dexploiter les chemins de guidage des processus pour amliorer la qualit des clauses
changes. A prsent, nous allons exposer un solveur collaboratif qui a pour intuition de diviser le problme sans chemin de guidage.
CONFLIT
21
Chapitre 2.
SAT
en parallle
La mthode Cube And Conquer (CC) a t introduite par [HKWB12] et vise rduire le temps de
rsolution des instances difficiles. Cette approche divise le problme en deux phases, la premire appele
Cube (figure 2.13) consiste transformer le problme original en million de cubes via un solveur lookahead tandis que la deuxime phase appele Conquer consiste rsoudre chaque cube dans des solveurs
CDCL distincts (spirales de figure 2.13). Lintuition est quun solveur CDCL est trs efficace sur de plus
petites instances grce leur heuristique base sur lactivit des variables alors quun solveur look-ahead
prend de meilleures dcisions au dbut de larbre de recherche, tant bases sur une heuristique globale.
Cette mthode a donc pour but de passer dune rsolution look-ahead une rsolution CDCL de type
look-back quand un des sous problmes semble devenir facile. Pour finir, elle a lavantage dtre paralllisable par sa nature.
Exemple. Soit F une formule sous forme CNF reprsentant notre instance initiale. La figure 2.13 reprsente larbre de recherche par un solveur look-ahead. En parcourant cet arbre de recherche, suivant une
heuristique, lalgorithme a cr quatre cubes, quil ajoutera F pour envoyer chaque formule modifie
F n (reprsentant nos sous problmes plus faciles) des solveurs CDCL distincts :
F1 = F (x2 x3 x1 )
F2 = F (x2 x3 x1 )
F3 = F (x2 x1 )
F4 = F (x2 x1 x3 )
2.3.1
Algorithme
Les auteurs ont donc modifi le solveur look-ahead pour en faire un outil de partitionnement du
problme initial. Ils se base sur un solveur DPLL, en lui ajoutant une heuristique look-ahead, nous avons
donc un parcours en profondeur dabord avec backtrack via un algorithme rcursif.
Algorithme 1 : CC
Donnes : F la formule initiale, A lensemble de cubes, C lensemble de clauses apprises,
lensemble des littraux de dcisions Ld et lensemble des littraux impliqus via la
propagation unitaire Li .
Rsultat : A lensemble des cubes envoy des solveurs CDCL distincts
1 Dbut
2
(F,Li ) simp(F,Ld ,Li );
3
si falsifie(Ld ,Li ) alors
/* Un conflit */
4
retourner (A,C {Ld });
/* Apprend une clause */
5
si coupureHeuristique() alors
6
retourner (A {Ld },C);
/* Ajoute le cube */
7
L decisionHeuristique(F,Ld ,Li );
8
(A,C) CC(F,A,C,Ld {L},Li );
9
retourner CC(F,A,C,Ld {L},Li );
10 Fin
Pour chaque nud de larbre de recherche, lalgorithme 1 reprsentant CC va dabord effectuer la
propagation unitaire et dautres simplifications, cela peut impliquer dautres littraux (ligne 2). Ensuite,
il regarde sil y a un conflit (ligne 3) : si cest bien le cas, il apprend la clause responsable du conflit (le
22
2.3.2
Lheuristique de coupure
Les auteurs ont implment trois heuristiques diffrentes pour slectionner celle qui coupe au mieux
larbre, cest la dernire qui sest rvle la plus efficace.
La mthode A propose de couper les branches aprs un certain nombre de dcisions K fix lavance,
lavantage est de savoir le nombre maximal de cubes : 2K qui pourront tre cres. Un inconvnient majeur : les cubes coups au mme niveau de larbre sont disproportionns au niveau de leur difficult :
certains seront trs faciles rsoudre tandis que dautres trs durs.
La mthode B propose de couper les branches ds quon a dpass un pourcentage du nombre des variables assignes. Elle pose principalement problme dans le fait que pour certaines instances, le nombre
de cubes devient trs grand alors que pour dautres, il devient trop petit.
23
Chapitre 2.
SAT
en parallle
La mthode C est lheuristique intgre dans CC. Elle utilise un produit avec le nombre de dcisions
et un autre avec le nombre de variables puis laffine suivant une variable dynamique . La branche est
coupe la condition de respecter cette inquation :
N bdec N bdec imp > N bvar
avec :
N bdec est le nombre de variables de dcisions ;
N bdec imp est le nombre de variables de dcisions plus le nombre de variables impliques ;
N bvar est le nombre de variables de la formule initiale ;
est la variable dynamique qui est initialise 1000.
A chaque appel, la variable est augmente de 5 pour empcher quelle ne devienne pas trop petite. Puis
lors dun conflit, elle est diminue de 15 pour essayer de couper les branches voisines avant lapparition
dautres conflits : de ce fait, plus il y a de conflits, plus lalgorithme cre des cubes. Cela permet aussi de
ne pas aller trop en profondeur dans larbre de recherche. A partir dun certain moment choisi suivant le
nombre de dcisions, on abaisse toujours pour couper toute les branches afin de crer tous les cubes
en quelques secondes.
2.3.3
Les auteurs ont utilis une heuristique base sur la fonction eval(X )comptant le nombre de littraux assigns grce la propagation du littral X . Le solveur CC choisit ensuite la variable maximisant
eval(X ) eval(X ), les galits sont brises par eval(X )+ eval(X ). Ils expliquent leur
choix en citant deux avantages : le premier est quelle est simple compare une heuristique lourde
en calcul, comme celle base sur les clauses rduites mais non satisfaites. De ce fait, elle ne require
pas la structure de donnes complexe souvent implmentes dans les solveurs look-ahead. Le deuxime
avantage pour les auteurs, est que cette heuristique est meilleure sur des instances qui contiennent beaucoup de clauses binaires comme nous pouvons en trouver dans les instances industrielles. En effet, nous
pouvons remarquer que plus une instance contient de clauses binaires, plus lensemble darrive de la
fonction eval(X )sera diversifi, ce qui augmentera son efficacit. En contrepartie, quand il ny a pas
ou peu de clauses binaires, cela rduira considrablement son efficacit.
2.3.4
Les auteurs se reposent sur un outil de paralllisation appel TARMO, celui ci se base sur les travaux
de la notion Bounded Model Checking (BMC). La technique multijob utilise pour CC consiste attribuer
un job (cube) ds quun nud de calcul est au repos. Quand deux nuds sont au repos en mme temps,
lordre dassignement des cubes est indfini, mais il est garanti que deux nuds ne fonctionneront jamais
sur le mme cube. Les auteurs ont aussi expriment une autre stratgie appele multijob+ qui se base
sur multijob except quil peut assigner un cube qui est dj en train dtre rsolu par dautres nuds
de calculs un nud qui serait de toute faon rest au repos. Cela dcoule du fait que certains cubes
sont trs faciles et se rsolvent donc rapidement tandis que dautres sont trop longs rsoudre. Grce
cette amlioration, une fois que les cubes les plus simples ont t rsolus, tout les autres sont sur tous
les nuds de calculs plusieurs fois si le nombre de nuds de calculs le permet. Pour finir, remarquons
que le solveur CC ne rivalise pas avec les solveurs actuels, mais il obtient quand mme de meilleure
performance avec une relle marge sur quelques instances difficiles.
24
2.4. Conclusion
2.4 Conclusion
Dans le chapitre 4 de la partie de contribution, nous avons conclu sur le fait que les algorithmes
de colonies dabeilles adapts au problme SAT doivent dabord avoir une base sur laquelle ces mtaheuristiques peuvent sappuyer. Comme pour CC, nous proposons donc de diviser notre problme en
million de cubes, afin dobtenir le nectar en question. Un cube sera donc considr comme un sousproblme, et plusieurs cubes seront considrs comme une nourriture pour une mta-heuristique de colonies dabeilles. Nous pouvons considrer cette cration de cubes comme lillustration dune abeille scout
du chapitre 4 ayant la mme fonctionnalit. Nanmoins, nous devons donc trouver les meilleurs cubes,
la qualit dun tel cube (interprtation partielle) est difficile connatre rellement dans une complexit
correcte, mais nous pouvons en faire une estimation. Nous entendons par meilleur les cubes qui mnent
une solution pour les instances SAT. Quand aux instances UNSAT, nous ne pouvons que considrer leur
facilit ou difficult prouver leur insatifaisabilit. Afin dtudier une manire de trouver les meilleurs
cubes, nous allons examiner les problmes de bandits ainsi que lalgorithme UCT. En effet, ce problme
traite un dilemme dexploration / exploitation, dilemme que nous pouvons retrouver dans la cration de
cubes.
25
Chapitre 3
3.2
3.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26
26
27
28
28
29
30
30
31
33
3.1.1
Multi-armed bandit
Un bandit manchot (One-armed bandit) est lexpression familire dune machine sous, comme
nous pouvons en trouver dans tous les casinos. Le problme de bandits (manchots) classique K bras
(Multi-Armed Bandit (MAB)) originellement propos par [Rob52] reprsente K machines sous ayant
26
Formellement, ce problme est dfini par des variables alatoires Xi,n avec 1 i K et n 1,
o i est le numro dun bras et n dnote linstant considr. Le tirage successif du bras i rapporte des
renforcements Xi,1 , Xi,2 , ... selon une loi de moyenne (esprance) i .
3.1.2
Dfinition (Stratgie dallocation). Une stratgie dallocation est un algorithme dterminant le bras
jouer linstant n + 1 en se basant sur la squence des bras dj tirs.
Pour valuer la performance dune stratgie dallocation donne, nous devons savoir quelle vitesse
cette stratgie permet datteindre un taux de rcompense moyen optimal. Pour cela, nous dfinissons le
regret depuis linstant n comme tant la perte par rapport la stratgie optimale. La valeur moyenne
du meilleur bras est donc le bras qui a lesprance maximale chaque instant : = max i avec
1 i K. Nous devons donc connatre ses probabilits de gain : quand lagent connat les lois, il
choisit alors le meilleur bras chaque instant et obtiendrait une rcompense moyenne .
Dfinition (Le regret cumul). Le regret cumul linstant n est alors dfini par :
Rn = n
n
P
rt
t=1
qui reprsente la diffrence en rcompenses cumules entre ce quil a obtenu et ce quil aurait pu obtenir
en moyenne sil avait jou dune faon optimale ds le dbut. rt est donc le gain obtenu par le bras
linstant t.
Exemple. Soit 4 bandits manchots dont les probabilits de gain sont connues : nous venons de tirer 3
fois le deuxime bras qui nous donne les gains 0.3, 0.4 et 0.6. Nous savons que le premier bras a une
27
Rne = n j
K
P
E[Tj (n)]
j=1
Tj (n) est le nombre de fois o le bras j a t tir depuis linstant n. j est lesprance des rcompenses
des bras tirs par la stratgie, donc lis E[Tj (n)]. Le regret cumul espr est ainsi lesprance de perte
due au fait que la stratgie dallocation ne joue pas systmatiquement le meilleur bras.
Le regret cumul espr est utilis pour trouver une bonne stratgie dallocation : en effet, nous nous
intressons dfinir des stratgies qui obtiennent un petit regret cumul espr. Ainsi, un bon algorithme
de bandit devra tirer peu souvent les bras sous-optimaux.
3.2.1
Dfinition et exemple
= max
1iK
UCB i (n)
Remarque.
i (n) : moyenne des gains obtenue en choisissant cette action ;
Le terme dexploitation M
28
(3.1)
2 ln n
: moins laction a t choisie dans le pass, plus ce terme est
Ti (n)
Nous obtenons ainsi un bon compromis : lorsque nous jouons un grand nombre de fois, la probabilit
ln(n)
ou n est le
dexplorer tend vers 0 avec une vitesse de convergence vers la stratgie optimale en
n
nombre de tirages : nous parlons alors de stratgie optimale dans lincertain.
Exemple. Soit 3 bandits manchots, nous venons de tirer deux fois le premier bras qui nous donne les
gains 0.3 et 0.4, puis deux fois, le deuxime bras qui nous donne les gains 0.3 et 0.5. Pour finir, le
troisime bras na t jou quune seule fois avec un gain de 0.5, nous sommes donc linstant n = 4.
Nous cherchons via la stratgie UCB le prochain bras jouer, calculons :
1 (4) = (0.3 + 0.4)/2 = 0.35
M
2 (4) = (0.3 + 0.5)/2 = 0.4
M
1 (4) = 0.4/1 = 0.4
M
UCB 1 (4)
UCB 2 (4)
UCB 3 (4)
Nous choisissons donc le troisime bras. Remarquons que le terme dexploration du troisime bras est
plus lev que les autres (1.665 vs 1,177), UCB cherche donc explorer, ce qui est normal car nous
sommes seulement linstant n = 4.
3.2.2
Exemple dapplication
Dautres stratgies de type UCB sont proposes dans [ACBF02] puis dans [AO10]. Dans [JLHS12],
les auteurs proposent dutiliser cette approche pour rsoudre un compromis exploration/exploitation dans
un solveur parallle. Dans MANYSAT, tous les curs partagent et changent les clauses apprises dont la
taille ne dpasse pas un certain seuil. Cependant, tant donn le cot de communication, cette approche
est inefficace lorsque le nombre de curs de calcul augmente. Ainsi, afin de dcongestionner le canal de
communication, il est ncessaire de dfinir quels seront les curs autoriss partager leurs informations.
Pour cela, les auteurs ont dfini un algorithme : Bandit Ensemble for parallel SAT Solving (BESS) qui
sinspire du problme du bandit manchot et de la stratgie UCB.
Lapproche BESS utilise un MAB particulier pour les curs rcepteurs. Un metteur est dit vivant dans
une certaine priode sil est autoris envoyer des clauses, autrement, un metteur est dit dormant. Au
commencement de chaque priode, le MAB particulier dcide si un metteur vivant reste en vie, sinon,
il devient un metteur dormant, et le plus vieux metteur dormant est rveill. Dans chaque priode de
temps, le MAB a pour tche :
Calcule le gain instantan du rcepteur : le gain instantan dun metteur en vie par rapport
un rcepteur est dfini en fonction dune heuristique inspire de Variable State Independant Decaying Sum (VSIDS). Grce cette heuristique, les auteurs mettent jour le gain cumul de chaque
metteur en vie ;
Met jour un seuil de vitalit inspir dUCB ;
Lmetteur vivant devient en sommeil si son gain cumul est infrieur au seuil de vitalit et, dans
ce cas, lmetteur en sommeil qui a t endormi le plus longtemps est rveill.
29
3.3.1
Squelette de lalgorithme
Rpter N fois
REMONTE
DESCENTE
SIMULATION
SLECTION
Pour utiliser lalgorithme UCT, Il faut tout dabord un arbre de recherche, en loccurrence dans ce
chapitre, un arbre de recherche reprsentant un jeu deux joueurs (chec, go, ...), sachant que cet algorithme peut tre adapt dans dautres contextes. De ce fait, larbre des possibles est donc larbre de
toutes les parties possibles depuis une position donne. Chaque nud reprsente donc un coup jouer,
dans une position donne sauf le nud racine. Comme nous montre la figure 3.2, lalgorithme UCT se
divise en plusieurs tapes rptes N fois :
30
Algorithme 2 : UCT
Donnes : A un arbre de recherche ne contenant que la racine dune position donne du jeu et N
le nombre de descentes dans larbre
Rsultat : Larbre A contenant le prochain coup jouer : cest le nud fils de la racine qui a le
meilleur UCB
1 Dbut
2
tant que N > 0 faire
3
P descenteSelectionUCT(racine(A));
4
R simulation(P);
5
remonteUCT(A,P,R);
6
N N +1;
retourner A;
7
8
Fin
Lalgorithme 2 associ notre figure 3.2 a loriginalit dexplorer larbre de recherche dune manire
asymtrique en ralisant un bon compromis pour notre dilemme fondamental exploration/exploitation.
Lalgorithme UCT simule itrativement des parties dans un jeu : les coups de la racine jusqu des feuilles
dans notre arbre de recherche. Une version rcursive peut tre vue dans [KS06] et [CM10]. Nous allons
prsenter une version itrative, notons que la version rcursive a latout de faire les tapes descente et
remonte dune manire rcursive dans larbre.
3.3.2
Explication
Algorithme 3 : descenteSelectionUCT(R)
Donnes : R la racine de larbre A
Rsultat : Le nud F slectionn
1 Dbut
2
tant que filsNonExplor(F)= faire
3
F filMaxUCT();
4
JouerCoup(R,F);
5
R F;
F FilsNonExplorHasard(R);
devientExplorer(F);
JouerCoup(R,F);
retourner F;
6
7
8
9
10
Fin
Lalgorithme UCT sadapte suivant le problme en question. Grce lindice UCB, il exploite en continuant dexplorer les branches qui semblent les meilleures compte tenu des feuilles quil a dj explores
31
32
10
11
Fin
3.3.3
Conclusion
Dans [CM10], [GW06] et [CM07], les auteurs prsentent des modifications dUCT. La mthode UCT
a t trs prometteuse dans le jeu de go : elle a permis lordinateur de battre des joueurs professionnels,
avant cela, ce ntait pas possible. Aujourdhui, la plupart des jeux implmente cette IA. Voici quelques
rfrences :
Sur le jeu de go : [GW06] ;
Le programme battant des joueurs professionnels au go (Mogo) : [CTL06] ;
Sur un jeu de carte allemand (Doppelkopf) : [Sil12] ;
Pour dautres jeux qui implmentent UCT : [Sen14].
Ce chapitre nous a montr une manire de traiter le dilemme Exploitation / Exploration que nous rencontrons dans le problme SAT, plus prcisment dans la cration dinterprtation partielle (cube) pour
SAT . Lide est donc dutiliser lalgorithme UCT cette fin : ce que reprsente le chapitre 5.
33
34
Contribution
35
Chapitre 4
4.1.2
La communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.3
Hirarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2
4.3
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
dans beaucoup dautres problmes, SAT peut tre rsolu via le biais dalgorithmes doptimisations (Recherche locale, recherche Tabou, ...). Grce une adaptation face au problme concern,
nous retrouvons une recherche de solutions qui tend vers un optimum. Ainsi nommes mta-heuristiques,
ces mthodes se comportent comme des algorithmes de recherche, tentant dapprendre les caractristiques dun problme afin den trouver une approximation de la meilleure solution. Elles peuvent tre
classes suivant leurs idologies, on distingue ainsi les algorithmes mmtiques sinspirant souvent de
la nature (algorithme de colonie de fourmis, de colonie dabeilles, volutionniste, gntique, ...). Ce
chapitre a pour vocation de vous prsenter notre approche visant exploiter les mta-heuristiques des
colonies dabeilles dans le contexte de SAT. Tout dabord, nous expliquons quelles sont les interactions
que nous avons choisies chez les abeilles pour notre intgration au problme SAT. Aprs une explication
sur le type de communication choisi au sein de notre mthode mmtique, nous discutons de chaque
tche lintrieur de celle-ci. Pour finir, nous expliquons le droulement de notre mthode ainsi que les
travaux effectuer pour aboutir nos buts. Nous adaptons donc notre approche en mimant au mieux possible ces hymnoptres pour ainsi fournir un socle thorique solide guidant une paralllisation massive
pour SAT.
OMME
Signalons que ce chapitre nest pas un tat de lart sur les colonies dabeilles. Ainsi, le lecteur intress pourra se rfrer [BOT07] qui dispose dune liste complte des mta-heuristiques des colonies
dabeilles puis [KA09] proposant une analyse de divers algorithmes.
36
4.1.2
La communication
4.1.3
Hirarchie
Les colonies dabeilles ont une hirarchie graduelle permettant dattribuer une tche bien prcise
chaque abeille. Nous utiliserons donc ce modle hirarchique pour nos solveurs SAT. Comme pour les
abeilles butineuses, distinguons tout dabord les solveurs avec mmoire contre ceux sans mmoire.
37
Sans Mmoire
Solveur Scout Expriment (SE )
Solveur Inspecteur Expriment (IE )
Solveur Butineur Expriment (BE )
F IGURE 4.1 Hirarchie des tches de chaque solveur SAT inspire des colonies dabeilles butineuses
La figure 4.1 nous montre les spcificits de ces deux types de solveurs, ou chaque rle a t fidlement inspir des abeilles. Dun ct, les solveurs sans mmoire sont dissocis en trois catgories ayant
chacune leur propre tche et leur propre population. Nous les nommons solveurs scouts (S), recrus (R),
et butineurs (B).
Dfinition (Solveur Scout (S)). Un solveur scout a pour but de chercher des cubes dans le problme original le mieux possible : les cubes quil qualifie de meilleurs par rapport dautres cubes. La population
des solveurs scout varie suivant la recherche, cela grce lassociation dune mta-heuristique propre
ce type de solveurs. Au dbut de la recherche, cette population est trs leve, par la suite, suivant la
qualit de la recherche et des cubes dj en jeu, elle diminue.
Dfinition (Solveur Recrut (R)). Un solveur recrut est un solveur en attente dune danse frtillante :
dune communication de la part dun autre solveur. Prt travailler ds quil reoit les informations
ncessaires, il devient un solveur butineur. Au dpart, un grand nombre de solveurs est en attente, la
mta-heuristique associe a pour but de diminuer un maximum le nombre de solveurs recrus.
Dfinition (Solveur Butineur (B)). Un solveur butineur exploite un cube, quil a reu de la part dun
autre solveur. Via une mta-heuristique calculant la qualit de la recherche en cours, il peut effectuer
trois actions :
Si la qualit est faible ou nulle alors il devient un solveur recrut.
Si la qualit est normale alors il reste solveur butineur puis continue la recherche.
Si la qualit est leve alors il communique dautres solveurs le cube en question afin de faire
travailler ces solveurs sur le mme sous-problme.
Un solveur butineur peut tre de nimporte quel type : recherche complte ou incomplte, solveur parallle ou squentiel. De plus, rappelons que lorsquune communication active un tel solveur, il peut
travailler en concurrence (sans changer le cube) ou collaborativement (en dcidant de(s) nouveau(x) littral(aux)).
Remarque. Estimer la qualit dun cube, autrement dit, dune interprtation partielle pour SAT est un
problme difficile, une telle estimation est NP-Complet, le lecteur intress est invit se reporter larticle [KSTW06a].
38
39
4.3 Conclusion
Lalgorithme de colonie dabeilles adapt SAT prcdemment nonc comporte de nombreuses
tches qui demandent une bonne organisation des solveurs. Nous avons dcid de commencer par la cration dun solveur scout. Ce solveur gnrera ainsi les cubes ncessaires au bon fonctionnement de notre
algorithme mmtique. La qualit de ces cubes est importante : si les cubes sont tous insatifiables pour
une instance satisfiable, cest que nous avons gnr de mauvais cubes. Estimer la qualit dun cube est
autant difficile que de rsoudre linstance initiale. Pour cela, nous avons tudi dans le chapitre 3, les mthodes de Monte-Carlo ainsi quune mthode permettant de traiter le dilemme exploitation/exploration :
UCT . Nous avons adapt UCT afin de crer des cubes pour SAT : ceci sera notre solveur scout. Nous estimerons donc la qualit des cubes pendant leur cration pour guider la recherche. Le prochain chapitre
expliquera en dtail cette cration du cube, dans la suite de ce manuscrit, des exprimentations vrifieront
la qualit de ces cubes.
40
Chapitre 5
5.3
5.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
42
42
43
45
46
47
48
49
50
50
51
donne une vision prcise de ladaptation dun algorithme mmtique reposant sur les abeilles butineuses dans le cadre de SAT. Il se conclut par le besoin de crer un
programme possdant la spcificit de gnrer des cubes afin de suivre le comportement dune abeille
butineuse de type scout. Un tel programme doit donc faire une recherche arborescente, afin de trouver
plusieurs interprtations partielles en SAT. De plus, les cubes gnrs doivent tre meilleurs que dautres :
le but est davoir beaucoup de cubes satisfiables dans un temps correct pour une instance satisfaisable
puis de les diffrencier avec un critre donn afin de les ordonner. Nous avons donc implment une nouvelle mthode de cration des cubes pour SAT que nous nommons SCOUT pour sa reprsentation dune
abeille scout.
E PRCDENT CHAPITRE
Deux mthodes de la littrature peuvent nous donner des ides sur la conception algorithmique dun
tel programme : elles ont t tudies dans notre tat de lart au chapitre 2. La premire est la mthode
collaborative appele chemin de guidage (Guiding path) qui joue avec des interprtations partielles afin
de distribuer la recherche sur les nuds de calculs. La deuxime, nomme Cube And Conquer (CC) gnre des cubes exactement comme nous pourrions le souhaiter un petit dtail prs, elle nobtient pas
dordre sur les cubes permettant de savoir si les cubes gnrs sont plus ou moins utiles.
41
Contrairement lalgorithme UCT de base qui considre lensemble des tats atteignables chaque
ouverture de nud (il cre donc potentiellement autant de noeuds que dtats atteignables), notre algorithme ne considre quune seule une variable x lors de lajout dun noeud et cre deux fils. Lun
reprsente le littral x et lautre, son oppos x. Cette solution a t choisie afin de limiter lexplosion
de la taille de larbre considr, nous lexpliquons en dtail dans ltape de la slection. Le fait que larbre
soit n-aire provient de la descente qui peut choisir un nud contenant dj des fils, la section 5.2.3 nous
explique en dtail ce phnomne. prsent, nous allons expliquer avec minutie chaque tape.
5.2.1
La descente
Algorithme 5 : descenteScoutV1(R)
Donnes : R la racine de larbre SCOUT
Rsultat : Le nud utilis pour ltape de la slection
1 Dbut
2
tant que possdeFils(R) faire
3
si maxUCBSpciale(R) alors
4
retourner R;
5
SolveurSATdcide(R);
R filMaxUCB(R);
passing(R) passing(R)+ 1;
6
7
retourner R;
8
9
Fin
La premire tape provenant dUCT a pour but de descendre dans larbre de recherche en choisissant
pour chaque nud parcouru, la branche maximisant les valeurs UCB de ses fils (via calculUCB())
ou la valeur UCB spciale (via calculUCBspciale()). Lalgorithme 5 reprsente une premire
version de la descente que nous affinerons dans la suite de ce manuscrit. Tant que le nud courant nest
pas une feuille (ligne 2), lalgorithme descend dans le fils possdant la valeur UCB (calculUCB()) la
43
La seconde sous-figure (sous-figure 5.2b) nous montre le cas darrt via la valeur UCB spciale.
Comme prcdemment, la plus grande valeur est celle du nud x2 (0.126), nous suivons donc ce
dernier. Par la suite, nous comparons la valeur UCB spciale (0.312) avec les valeurs UCB des fils
(0.712,0.678) du nud x2 . Le nud reprsentant le littral x6 (0.712) est donc choisi. Toujours de
la mme manire, nous comparons la valeur UCB spciale du littral x6 (0,950) avec les valeurs UCB de
ses fils (0.878,0.700). Cette fois-ci, cest la valeur UCB spciale qui est la maximale. Lalgorithme renvoie donc le nud reprsent par le littral x6 . De plus, le solveur SAT associ effectue donc les dcisions
suivantes x2 et x6 .
La valeur UCB spciale permet de gnrer des arbres n-aires car elle arrte la descente sur un nud
qui en contient dj des fils. Nous en reparlerons dans la section 5.2.3.
5.2.2
Pour bien comprendre UCB dans SCOUT, nous ne parlerons pas dans cette sous-section des valeurs
spciales (5.2.3). Nous choisissons de calculer les valeurs UCB des fils via une adaptation de lquation 3.1. Ce calcul est ralis par la mthode calculUCB. Nous avons choisi ladaptation suivante.
Lorsque passing > 0, lindice UCB associ au nud i est :
UCB
UCB i
= averagei
| {z }
Terme Exploitation
+ K
|
ln(passingpere(i) )
passingi
{z
}
(5.1)
Terme Exploration
Nous avons rgl la valeur K 0.009, ce rglage est d la moyenne choisie ainsi qu la nature
du problme pour un nud. Or, chaque nud a des fils qui diffrent, reprsentant donc des problmes
distincts. Chaque nud devrait calculer les valeurs UCB de ses fils avec son propre rglage K. Autrement
dit, il ne faut pas que K diffre suivant les fils dun pre, mais quil se distingue par rapport au nud
choisi lors de la descente.
Exemple. La figure 5.3 reprsente le choix de la branche choisir pour descendre dans larbre : le nud
qui a le plus grand UCB. Pour chaque fils i du nud racine, la valeur UCBi est calcule suivant ce tableau
en prenant K 0.009. De plus, passingpere(i) = 50 est le nombre ditrations UCT cet instant.
45
passing
10
5
15
7
10
8
average
0.108
0.105
0.111
0.120
0.085
0.100
Terme Exploration
0,005629155
0,007960827
0,004596186
0,006728127
0,005629155
0,006293587
UCB i
0,113629155
0,112960827
0,115596186
0,126728127
0,090629155
0,106293587
Nous remarquons que le terme exploration varie principalement en fonction de passing et de la variable K : plus passing est lev, plus le terme exploration devient petit. De mme, plus le nombre
ditrations UCT est grand, plus ce mme terme diminue, cela permet de tendre pendant la recherche vers
une exploration nulle. Dans notre exemple, la variable K est trop petite, elle devrait sajuster dynamiquement suivant lcart des moyennes. Une variable K mal rgle nous donne un terme dexploration trop
petit pour avoir un impact sur la recherche. Cette valeur devrait donc dans lidal sadapter dynamiquement. Nous reparlerons de ce rglage dans le chapitre 6.
5.2.3
Ltape de la descente peut nous renvoyer un nud pour la slection dans deux situations diffrentes.
Rappelons que pour chaque nud, nous descendons dans le fils ayant la plus grande valeur UCB associe,
ou nous slectionnons la valeur UCB spciale. Cette valeur spciale reprsente un autre dilemme exploration/exploitation et est calcule par la mthode calculUCBspciale(). Ltape de la descente peut
sarrter si la valeur UCB spciale est plus grande que celle des fils. Remarquons que mme la racine
peut calculer cette valeur UCB spciale via la mthode calculUCBspciale(). Lide derrire cette
fonctionnalit est de pouvoir diversifier les cubes. On peut prsent crer dans notre arbre un nouveau
cube qui commence par un littral diffrent : sans cette valeur UCB spciale, cela nest pas possible. Cet
ajout permet davoir un arbre n-aire car il cre lors de ltape de la slection des fils sur un nud qui en
contient dj. Nous voulons beaucoup de cubes, qui se ressemblent le moins possible. Et nous voulons
viter le plus possible davoir des cubes inclus dans dautres, ce que nous appellerons sous-cubes par la
suite.
Le dilemme nest plus le mme : faut-il ajouter un nud des nouveaux fils (pour explorer) ou
exploiter ceux dj prsents ? Nous adaptons lquation 3.1 pour calculer la valeur UCB spciale. Nous
ne considrons plus le nombre de passages dans le nud (passing) mais le nombre de fils que nous
avons. Moins nous avons de fils, plus la valeur UCB spciale sera grande, augmentant alors la possibilit
dexplorer.
special
UCB i
= averagei
| {z }
Terme Exploitation
+ K
|
ln(passingi )
nbFils }
{z
(5.2)
Terme Exploration
Notons tout de mme que cette UCB spciale a d tre multiplie par une constante afin de lassocier
aux autres valeurs UCB. Retenons que pour un nud, nous calculons donc les valeurs UCB de ses fils puis
la valeur UCB spciale de ce nud pour rcuprer la valeur qui maximise toutes les autres. Si la valeur
maximale appartient un fils, nous descendons dans ce fils, sinon nous nous arrtons sur ce nud pour
passer ltape de la slection.
46
SolveurSATdcide(R);
F filMaxUCB(R);
si estConflit(F) ou djAffectValeurOppose(F) alors
supprime(F);
remonte(R);
return NULL;
6
7
8
9
10
si djAffectMmeValeur(F) alors
supprime(F);
11
12
passing(R) passing(R)+ 1;
R F;
13
14
retourner R;
15
16
Fin
5.2.4
Lalgorithme 6 ajoute des cas particuliers lalgorithme gnral 5. Tout dabord, le solveur associ
redmarre en gardant les clauses apprises : il est donc la racine de son arbre de recherche et na encore
dcid daucun littral. Rappelons qu chaque descente dans larbre, le solveur SAT associ effectue des
points de choix (variables de dcisions associs au nuds choisis) et les propagations unitaires qui en
rsulte. A partir de l, plusieurs cas peuvent survenir :
Un conflit survient ;
Le solveur essaie daffecter un littral qui lest dj ;
Aucun des deux cas prcdents ne survient, et le solveur SAT se retrouve dans un tat fixe, tel quil
le serait avant un point de choix.
F IGURE 5.4 Conflit ou littral dj affect une valeur oppose lors de la descente dans notre algorithme SCOUT
Dans le cas dun conflit, le solveur SAT analyse ce dernier et apprend une nouvelle clause. De plus,
nous laguons simplement le nud en question dans larbre UCB (figure 5.4 et ligne 7 de lalgorithme).
47
F IGURE 5.5 Littral dj affect lors de la descente dans notre algorithme SCOUT
Dans le premier cas, nous laguons simplement le nud reprsentant le littral oppos dans le mme
niveau de larbre sil est prsent (figure 5.5 et ligne 11 de lalgorithme). Dans le second cas, nous laguons ce nud comme pour un conflit (figure 5.4 et ligne 7 de lalgorithme), puis nous faisons une
remonte des poids. En ralisant ce traitement, nous nous assurons de ne pas retomber sur ce mme
nud la prochaine itration UCT. Rappelons que dans les cas o nous supprimons un nud, nous redmarrons le solveur et notre algorithme, cela correspond respectivement un redmarrage la racine de
larbre binaire pour le solveur en gardant les clauses apprises et au passage de la prochaine itration UCT
pour notre algorithme SCOUT. Il en va de soi que lorsque nous laguons un tel nud, nous supprimons
rcursivement tous ses descendants.
Une amlioration possible est de ne pas remonter le poids des nuds. Ce fait nous permet de ne
pas revenir la racine de notre arbre mais de continuer choisir un autre littral pour descendre. On
accorderait alors une itration UCT de faire son travail compltement afin de passer ltape de la slection. Cela sans devoir retourner au dbut dune itration UCT par la faute dun conflit ou dun littral
dj affect. On viterait par l-mme un travail inutile au solveur en supprimant le redmarrage de ce
dernier. En contrepartie, la descente serait quelque peu fausse, car les poids nauraient pas t mis jour.
5.2.5
La slection
La figure 5.6 nous montre deux ajouts de nuds diffrents : gauche (sous-figure 5.6a), nous avons
un ajout standard sur une feuille de larbre tandis que sur la droite (sous-figure 5.6b), nous avons un
ajout sur un nud possdant dj des fils. Ce dernier ajout est d notre valeur UCB spciale calcule
durant la descente. Cette figure montre la slection dune variable suivant la descente reprsente par la
figure 5.2. Cette tape demande simplement au solveur SAT associ de lui fournir une nouvelle variable
ajouter dans larbre UCB sur le nud choisi. Nous avons choisi dutiliser lheuristique VSIDS utilis par
les dmonstrateurs CDCL (sur lexemple de la figure 5.6, la variable xn a t choisie). Nous avons utilis
lheuristique VSIDS base sur lactivit des conflits, pour choisir la prochaine variable ajouter lors de
ltape de la slection. Cette heuristique guide la recherche vers les conflits afin dessayer de se focaliser
sur une partie difficile du problme. Nous esprons ainsi rcolter des cubes les plus utiles possibles. En
contrepartie, nous pouvons gnrer plus de conflits (voir figure 5.4) et rduire ainsi le nombre de cubes
48
gnrs. Contrairement nous, la mthode Cube And Conquer (CC) explique au chapitre 2 utilise une
heuristique de type look-ahead : la variable choisie est celle produisant le plus de propagations unitaires.
Lutilisation dune telle heuristique est une de nos perspectives de travail.
5.2.6
La simulation
La simulation a pour but de calculer la premire valeur (average) au(x) nud(s) venant dtre slectionn(s). Une telle simulation va donc tre faite sur le cube reprsent par les littraux du chemin de la
racine de larbre ce nud. Elle doit valuer la qualit de ce cube (plus le cube est suppos intressant,
plus la valeur average du noeud est proche de 1). Diffrents travaux ont t raliss ces dernires annes
pour valuer la taille dun arbre de recherche [KSTW06b]. Dans un premier temps, nous avons choisi
pour premire heuristique de simulation de prendre tout simplement le nombre de littraux assigns au
moment de la simulation dun cube. Elle a lavantage dtre simple et rapide, mais a pour inconvnient
majeur de ntre pas assez prcise sur la qualit dun tel cube. Les tests effectus avec cette heuristique,
pourront servir de base dans le futur. Nous prvoyons des simulations en faisant appel des solveurs en
parallle qui seront beaucoup plus prcises.
49
5.2.7
La remonte
Lorsque un nud a t cr, nous avons calcul la valeur average via la simulation explique dans la
section prcdente. Il nous faut maintenant propager cette valeur sur les nuds ascendants, et ce, jusqu
la racine de larbre UCT. Cela est schmatis dans la figure 5.7. Lors du choix de la variable xn , nous
avons donc en rgle gnrale deux nuds xn et xn . Nous calculons alors une nouvelle valeur average
pour x5 , puis x3 et ainsi de suite jusqu la racine (dans le cas o nous avons cr des nouveaux fils
(voir section 5.2.3), le mme processus est ralis).
50
5.4. Conclusion
Algorithme 7 : rcupCube(R)
Donnes : R la racine de larbre
Rsultat : C lensemble ordonn des cubes rcuprs
1 Dbut
2
tant que possdeFils(R) faire
3
N R;
4
tant que possdeFils(N ) faire
5
N filMaxUCT(N );
C C rcupCubeFeuille(N );
P pre(N );
tant que possdeUnSeulFils(P) faire
delete(N );
N P;
P pre(P);
6
7
8
9
10
11
retourner C;
12
13
Fin
5.4 Conclusion
Nous avons expos une nouvelle mthode de construction de cubes pour SAT nomme SCOUT. Notre
mthode a loriginalit de sattaquer pour la premire fois ce problme en utilisant lalgorithme UCT,
qui tente de trouver un bon compromis entre lexploitation et lexploration. De plus, cette mthode a
t faite dans le but de crer un solveur massivement parallle grce lutilisation de mta-heuristique
sur les colonies dabeilles butineuses. La mthode SCOUT respecte donc trs bien son rle. Par la suite,
les cubes contenus dans notre arbre reprsent par la mthode SCOUT seront encore plus affins par des
abeilles butineuses. Ces solveurs pourront amliorer la qualit de cet arbre (figure 5.8).
51
52
Chapitre 6
Rsultats
Sommaire
6.1
6.2
6.3
6.4
Le programme . . . . . . . . . . . . .
Exprience sur les variables des cubes
Exprimentation . . . . . . . . . . . .
Conclusion . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
54
56
59
nomm SCOUT a t dvelopp en C++. Nous avons pris pour base le solveur
MINISAT V2 [SE02] qui offre plusieurs avantages. Tout dabord, il est aussi dvelopp en C++ simplifiant par la-mme la mise en oeuvre. Trs bien crit et trs bien document, il contient de plus toutes
les fonctionnalits dun solveur moderne (propagation unitaire, VSIDS, ...) utiles pour notre SCOUT. Malgr tout, notre programme est modulaire (hritage, interface...) et il est extrmement facile dinterfacer
un autre solveur SAT dans la mesure o celui-ci est adapt pour valuer une interprtation partielle.
E PROGRAMME
Tout dabord, nous exposerons notre programme et les interfaces utilises. Ensuite, nous allons dcrire les rsultats dune exprience visant savoir si nos cubes sont assez diversifis. Puis, nous donnerons des informations sur les cubes (sous-cubes, temps de gnration, ...). Aprs avoir expos des
rsultats bass sur sept instances, nous allons conclure ce chapitre.
Nous avons slectionn sept instances satisfiables issues de la comptition SAT 2013 pour nos exprimentations. Notre objectif est de tester les cubes crs par notre mthode SCOUT pour ces instances.
Ces exprimentations permettront davoir une ide sur la qualit des cubes.
6.1 Le programme
Le programme SCOUT a t dvelopp sur une interface nomme IMainSimulatorSolver et
dfinie comme lunion de deux interfaces : ISolver et ISimulator. La premire dfinit les mthodes
utiles au solveur SAT principal accompagnant la descente ainsi que la slection de notre algorithme tandis
que la seconde accompagne un solveur SAT permettant de simuler un cube. Par exemple, il est donc possible dadapter sparment un solveur de recherche locale afin de faire ltape de simulation et dutiliser
un solveur standard pour les autres tapes, et vice-versa. Il faut tout de mme programmer les interfaces
en question. Comme nous lavons dj dit, nous avons choisi dutiliser MINISAT. lDans cette tude exprimentale, nos tests sont uniquement bass sur lheuristique VSIDS pour le choix de variables lors de
53
Chapitre 6. Rsultats
la slection et sur la propagation unitaire pour la simulation.
Une fois que le programme a fini son excution sur une instance donne, un fichier .cubes portant
le nom de linstance est cr. Ce fichier contient toutes les interprtations partielles gnres dans un
ordre suivant la moyenne (average) de chaque nud de notre arbre de recherche SCOUT (voir section
5.3). La figure 6.1 reprsente un tel fichier dans lequel le nombre de la premire ligne est le nombre de
cubes.
CUBES 5085
3628 -3657 -597 1464 -3606 -1450 3631 3673 -3676 0
3628 -3657 -597 1464 -3606 -1450 3631 3673 3676 0
3628 -3657 -597 1464 -3606 -1450 3631 -3673 0
F IGURE 6.1 Fichier .cubes
Pour pouvoir effectuer nos tests , nous avons modifi un solveur MINISAT afin de le rendre capable
de charger un cube : une ligne dun fichier .cubes. Le solveur en question affecte les littraux prsents
sur la ligne dun fichier .cubes donne en paramtre et effectue aussi les propagations unitaires possibles. Le solveur affecte chaque littral du cube en les considrant comme des hypothses, comme cela
est fait en SAT incrmental [ALS13]. Une fois lensemble des littraux du cube affects, le solveur se
comporte comme un solveur classique. Afin de raliser nos exprimentations, nous utilisons plusieurs
programmes :
Le programme SCOUT ;
Un programme qui charge un cube afin de le rsoudre ;
Un programme comptant le nombre de sous-cubes dans un fichier .cubes ;
Un programme comptant le nombre doccurrence des variables dans un fichier .cubes.
54
Apparitions
4918
Apparitions
4830
69
V ariables
23
V ariables
(a) 003 : 72259 clauses et 4128 variables
Apparitions
910
Apparitions
1266
348
V ariables
(c) bob12m06 : 1369224 clauses et 482635 variables
205
V ariables
(d) pb20003lb03 : 311884 clauses et
77289 variables
55
Chapitre 6. Rsultats
Apparitions
4846
Apparitions
4041
607
V ariables
(a) pb30001lb00 : 595953 clauses et 140866 variables
345
V ariables
(b) pb30002lb06 : 630463 clauses et 148565 variables
Apparitions
4931
319
V ariables
F IGURE 6.4 Nombre de variables dans les cubes (partie 3) : UTI-20-5p1 : 1195016 clauses et 225926
variables
6.3 Exprimentation
A cause dun trop grand nombre de cubes (environ 5000 pour chaque instance), il est difficile de
tester tous ces cubes sur un cluster car cela prendrait trop de temps. Nous avons donc choisi de limiter
le nombre de cubes tester. De ce fait, sur ces sept instances, nous avons test les 100 meilleurs cubes
puis 100 autres cubes rpartis au hasard parmi les autres. Nous avons excut notre programme SCOUT
sur 5000 itrations UCT, puis sur 20000 itrations UCT. Nous discuterons uniquement des tests effectus
sur 5000 itrations UCT sachant que ceux sur 20000, nous apportent peu prs les mmes rsultats. Tout
dabord, la figure 6.5 nous prsente des informations sur la cration des cubes effectue par notre programme SCOUT.
la colonne Cubes prsente le nombre de cubes gnrs tandis que la colonne % de sous-cubes
56
6.3. Exprimentation
Instances
003
aes641keyfind1
bob12m06
pb30001lb00
pb30002lb06
pb20003lb03
UTI205p1
Clauses
72259
2632
1369224
595953
630463
311884
1195016
Variables
4128
596
482635
140866
148565
77289
225926
Cubes
5085
4918
8512
4297
4936
1348
4933
% sous-cubes
47
10
8
0.16
1.05
0
0.16
UCB
Explore souvent
Bien
Fait quexplorer
Bien
Bien
Bien
Bien
Conflits
41
70
75
412
54
2088
70
Fils Spciaux
116
22
3644
5
19
27
7
NbCube SAT
117
0
0
21
1
11
0
NbCube UNSAT
0
196
183
37
139
188
200
NbCube TIMEOUT
83
4
17
142
60
1
0
Chapitre 6. Rsultats
ptition SAT 2013. Nous avons donc quatre instances sur les sept qui nous ont donn des cubes satisfiables
parmi les 200 cubes choisis. Ces rsultats pourront tre compars avec de futures versions de notre programme : dautres heuristiques. Ne ne pouvons pas comparer ces rsultats avec dautres mthodes car
notre mthode SCOUT nest pas un solveur SAT. Nanmoins, nous esprons avoir plus de cubes satisfiables en changeant les heuristiques. Pour nous donner une ide sur la qualit des cubes satisfiables, la
figure 6.7 nous donne des informations sur les cubes satisfiables.
Instance
003.log
aes641keyfind1
bob12m06
pb30001lb00
pb30002lb06
pb20003lb03
UTI205p1
Moyenne % Assign
0%
9%
0%
2%
-
Moyenne Taille
8.15
14.57
6
5.27
-
La colonne Moyenne Temps CPU est le temps moyen CPU de la rsolution des cubes satisfiables.
La colonne Moyenne % Assign est la moyenne des variables assignes des cubes satisfiables tandis
que Moyenne Taille reprsente les longueurs en moyenne. Afin de se faire une ide plus prcise sur
la qualit des cubes, nous allons analyser le meilleur des cubes (en temps CPU) pour chaque instance.
Instance
003
aes641keyfind1
bob12m06
pb30001lb00
pb30002lb06
pb20003lb03
UTI205p1
Numro
34
428
4660
69
-
Taille
8
11
6
6
-
Assignement
4
10312
1170
2036
-
% Assignement
0%
7%
0%
2%
-
Temps MINISAT
1492.15s
94.83s
TIME OUT 2h
17.10s
4.97s
13.48s
732.63s
Temps cration
0.26s
0.05s
7.71s
22.56s
12.4s
4.81s
11.21s
Temps rsolution
62.22s
1.95s
45.75s
3.15s
-
6.4. Conclusion
003.log : 4 5 6 7 8 10 11 14 15 18 19 22 23 24 26 27 30 33 34 35 38 40 41 42 44 45 49 50 51 52 53 55
59 60 63 66 69 70 71 73 74 75 76 77 80 81 83 87 94 95 96 97 98 100 149 247 345 394 443 492 639 688
737 835 933 1031 1080 1178 1227 1325 1374 1423 1521 1619 1668 1815 1864 1962 2011 2109 2158
2207 2256 2452 2550 2599 2648 2746 2795 2893 3040 3089 3187 3236 3285 3334 3383 3530 3579
3628 3677 3726 3775 3824 3873 3922 4069 4118 4265 4314 4412 4559 4804 4902 4951 5000
pb30001lb00 : 4660
pb30002lb06 : 141 182 223 264 305 346 387 428 469 510 674 1084 1207 1289 1494 1535 1576 1617
1658 1699 3093
pb20003lb03 : 57 64 65 66 67 68 69 70 71 72 73
F IGURE 6.9 Numro des cubes satisfiables des instances en possdant.
6.4 Conclusion
Nos rsultats montrent que nos cubes sont assez diversifis. Cela nous prouve que ladaptation de
lalgorithme UCT afin de gnrer des cubes pour SAT est fonctionnelle. Nous observons aussi que le
calcul des valeurs UCB est mal rgl sur certaines instances. Une solution consisterait calculer les
valeurs UCB dynamiquement. Les tests sur la qualit des cubes nous montrent quil est envisageable de
faire une telle division de larbre de recherche en SAT dans un cadre massivement parallle. En effet, nous
trouvons quelques cubes satisfiables dont certains dune bonne qualit, sans avoir test tous les cubes
dune instance mais seulement 200. De futures recherches permettront de tester diffrentes heuristiques
et de faire une simulation plus prcise des cubes. Rappelons que cette gnration de cubes nest que la
premire brique de notre algorithme de colonie dabeilles adapt SAT. Nous pouvons considrer que le
solveur de type SCOUT est prt tre utilis dans notre algorithme mmtique.
59
Conclusion
Les travaux raliss durant ce stage concernent la mise en place dune approche massivement parallle pour la rsolution pratique du problme de satisfaisabilit de contraintes (SAT). Dans ce cadre, nous
proposons un nouveau schma de paralllisme bas sur un paradigme inspir des colonies dabeilles. En
effet, dans la nature, nous retrouvons de nombreuses situations o des tches sont ralises efficacement
en collaboration (colonies de fourmis, colonies dabeilles, ...).
Aprs avoir introduit, dans les chapitres 1 3, les diffrents lments ncessaires la comprhension
de ce manuscrit. Nous avons prsent dans les chapitres 4 et 5, nos contributions puis, dans le chapitre 6,
des rsultats exprimentaux prliminaires.
La premire contribution expose dans ce rapport concerne une dfinition formelle dune instanciation de lalgorithme mmtique des colonies dabeilles au cadre de la rsolution parallle du problme
SAT . Nous avons constat que ce schma sadapte naturellement la dfinition dune approche collaborative. En effet, nous avons pu voir quil tait possible de diviser la recherche dune solution de manire
assigner chaque type dabeilles un travail bien spcifique : des abeilles pour la gestion des clauses
apprises (le nectar), des abeilles pour une exploration collaborative (les abeilles scouts) et des abeilles
pour la recherche concrte dune solution (les abeilles butineuses).
Ce schma algorithmique tant complexe, nous nous sommes dans un premier temps focaliss sur
la mise en place des abeilles scouts. Ce type dabeilles a pour but dexplorer lespace de recherche afin
de trouver les parties intressantes. Dans le cadre de SAT, cela consiste la gnration dun arbre de
recherche incomplet o les chemins de la racine une feuille reprsentent une conjonction de littraux
(aussi appele cube), permettant la considration dun sous problme. Ici, nous avons principalement
tudi la mise en place dune abeille scout pour la rsolution dinstances satisfiables, cette mthode est
nomme SCOUT. Ainsi, le but du scout sera de gnrer des cubes conduisant une solution. La gnration
dun tel cube est aussi difficile que de rsoudre le problme initial. De ce fait, nous avons choisi de nous
appuyer sur une mthode nomme UCT permettant de traiter le dilemme exploitation/exploration. En effet, dans loptique de choisir les meilleurs cubes dans un arbre de recherche, nous avons t confronts
ce dilemme : faut-il exploiter un cube dj considr comme bon en lui rajoutant des littraux ou retenter
notre chance avec un nouveau cube. Les rsultats exposes au chapitre 6 sur la mthode SCOUT nous
montre quune telle adaptation est envisageable dans le cadre de SAT.
Nos contributions ouvrent de nombreuses perspectives, notamment au niveau des heuristiques choisies. En effet, il est prfrable de tester plusieurs heuristiques pour ainsi slectionner la meilleure. Notre
programme est capable dadapter plusieurs solveurs pour les heuristiques. Une amlioration possible est
de transformer notre mthode en utilisant la puissance de la paralllisation, afin daffiner les simulations
faites dans SCOUT. Pour linstant, nous nutilisons pas une vritable simulation. Par ailleurs, il se trouve
que les mta-heuristiques des colonies dabeilles nutilisent pas tous les curs au dbut de la recherche,
60
ces curs pourraient donc servir notre mthode SCOUT. Nous pouvons donc utiliser un solveur pour
faire la simulation. Noublions pas aussi que les abeilles continueront travailler sur larbre contenant les
cubes crs par la mthode SCOUT via notre algorithme gnral sur les colonies dabeilles butineuses. La
partie UCB de notre algorithme peut tre grandement amliore, en effet, ces valeurs UCB sont difficiles
rgler : un rglage statique ne suffit pas. La cration des fils spciaux possde aussi ce problme car
elle est base sur une valeur de type UCB.
Toutes ces amliorations sinscrivent dans un avenir proche. En effet, une thse sur ce mme sujet
poursuivra la construction de notre mthode mmtique. Les problmes alors rencontrs par les rsultats
nous ont permis davancer dans cette construction.
61
Bibliographie
[ABK13]
[ACBF02]
Peter AUER, Nicol C ESA -B IANCHI, et Paul F ISCHER. Finite-time Analysis of the
Multiarmed Bandit Problem. . Machine Learning, 47(2-3) :235256, 2002. 3, 3.2, 3.2.2
[ACBFS03] Peter AUER, Nicolo C ESA -B IANCHI, Yoav F REUND, et Robert E. S CHAPIRE. The
Nonstochastic Multiarmed Bandit Problem . SIAM J. Comput., 32(1) :4877, janvier
2003. 3
[AHJ+ 12]
[ALMS11]
[ALS13]
[AO10]
Peter AUER et Ronald O RTNER. UCB revisited : Improved regret bounds for the stochastic multi-armed bandit problem. . Periodica Mathematica Hungarica, 61(1-2) :5565,
2010. 3.2.2
[Bie08]
[Bie10]
Armin B IERE. Lingeling, Plingeling, PicoSAT and PrecoSAT at SAT Race 2010 .
Rapport technique, 2010. 2.2.2
[BOT07]
Adil BAYKASOGLU, Lale O ZBAKIR, et Pinar TAPKAN. Artificial Bee Colony Algorithm
and Its Application to Generalized Assignment Problem . Dans Swarm Intelligence, Focus
on Ant and Particle Swarm Optimization, FelixT.S.Chan and Manoj KumarTiwari (Ed.).
InTech, DOI : 10.5772/5101, 2007. 4
[CM07]
[CM10]
Antoine C ORNUEJOLS et Laurent M ICLET. Apprentissage artificiel : Concepts et algorithmes. Eyrolles, juin 2010. 8, 3.3.3
[Coo71]
[CSH08]
[CTL06]
[DG97]
[Fly72]
[GW06]
[Her03]
[JLHS12]
[JLU01]
Bernard J URKOWIAK, Chu Min L I, et Gil U TARD. Parallelizing Satz Using Dynamic
Workload Balancing . Dans In Proceedings of Workshop on Theory and Applications of
Satisfiability Testing (SAT2001, pages 205211. Elsevier Science Publishers, 2001. 2.2.7
[Joh88]
Eric E. J OHNSON. Completing an MIMD Multiprocessor Taxonomy . SIGARCH Comput. Archit. News, 16(3) :4447, juin 1988. 2.1.2
[KA09]
[KS06]
[KSTW06a] Philip K ILBY, John K. S LANEY, Sylvie T HIBAUX, et Toby WALSH. Estimating Search
Tree Size. . Dans AAAI, pages 10141019. AAAI Press, 2006. 4.1.3
[KSTW06b] Philip K ILBY, John K. S LANEY, Sylvie T HIBAUX, et Toby WALSH. Estimating Search
Tree Size. . Dans AAAI, pages 10141019. AAAI Press, 2006. 5.2.6
[MdWH14] Sid M IJNDERS, Boris de W ILDE, et Marijn H EULE. Symbiosis of Search and Heuristics
for Random 3-SAT . CoRR, abs/1402.4455, 2014. 5.3
[PD07]
[Pey12]
[PG09]
Duc-Nghia P HAM et Charles G RETTON. gNovelty+ (v. 2) . Dans SAT 2009 Competitive
Events Booklet, 2009. 2.2.2
63
Bibliographie
[PTGS08]
Duc Nghia P HAM, John T HORNTON, Charles G RETTON, et Abdul S ATTAR. Combining
Adaptive and Dynamic Local Search for Satisfiability . 4 :149172, July 2008. 2.2.2
[Rob52]
Herbert ROBBINS. Some aspects of the sequential design of experiments . Bull. Amer.
Math. Soc., 58(5) :527535, 1952. 3.1.1
[Rou12]
[SBK01]
Carsten S INZ, Wolfgang B LOCHINGER, et Wolfgang K CHLIN. PaSAT - parallel SATchecking with lemma exchange : Implementation and applications . Dans LICS 2001
Workshop on Theory and Applications of Satisfiability Testing (SAT 2001), volume 9 of
Electronic Notes in Discrete Mathematics. Elsevier Science Publishers, 2001. 2.2.7
[SE02]
Niklas S RENSSON et Niklas E EN. MiniSat v1.13 - A SAT solver with conflict-clause
minimization. 2005. SAT-2005 Poster. 1 Perhaps under a generous notion of part-time,
but still concurrently taking a statistics course and leading a normal life . Rapport technique, 2002. 2.2.2, 6
[SE08]
Niklas S RENSSON et Niklas E N. MiniSat 2.1 and MiniSat++ 1.0 SAT Race 2008
Editions . Rapport technique, 2008. 2.2.7
[Sen14]
S ENSEIS. Jeu qui implmente UCT : http ://senseis.xmp.net/ ?UCT . 2014. 3.3.3
[Sil12]
Sievers S ILVAN. Implementation of the UCT Algorithm for Dopp elkopf . 2012. 3.3.3
[SS96]
Joo P. Marques S ILVA et Karem A. S AKALLAH. GRASP&Mdash ;a New Search Algorithm for Satisfiability . Dans Proceedings of the 1996 IEEE/ACM International Conference on Computer-aided Design, ICCAD 96, pages 220227, Washington, DC, USA,
1996. IEEE Computer Society. 2.2.2
[VS09]
[ZB94]
Hantao Z HANG et Maria Paola B ONACINA. Cumulating Search in a Distributed Computing Environment : A Case Study in Parallel Satisfiability . pages 422431, 1994. 2.2.5
[ZBP+ 96]
Hantao Z HANG, Maria Paola B ONACINA, Maria PAOLA, B ONACINA, et Jieh H SIANG.
PSATO : a Distributed Propositional Prover and Its Application to Quasigroup Problems .
volume 21, pages 543560, 1996. 2.2.7
64
Rsum
Le but de ce stage consiste tout dabord tudier les mthodes de paralllisation du problme SAT
et les algorithmes de types essaims dabeilles ou colonies de fourmis. Une fois cette tude faite, nous
proposons une nouvelle approche de paralllisation du problme SAT bas (bien videmment) sur les
essaims dabeilles. Chaque abeille sera associe un dmonstrateur SAT (de type CDCL, recherche locale,
look ahead..) et chaque tape un certain nombre dinformations seront changes afin damliorer
les insectes pour ltape suivante. Nous proposons alors une mthodes reprsentant une abeille de type
SCOUT permettant de gnrer des cubes pour SAT . On peut noter que cette approche peut tre gnrique
et applique dautres paradigmes combinatoires comme les problmes CSP, les pseudo boolens ...
Mots-cls: SAT parallle, Algorithmes de Colonies dabeilles
65
66