Sunteți pe pagina 1din 74

Colonies dabeilles et SAT parall`

ele

MEMOIRE

presente le 3 juillet 2014

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

Professeur `a lUniversite dArtois


Chercheur Post-Doctorant au CRIL
Professeur `a lUniversite de Bordeaux
Matre de conference `a lUniversite dArtois

C ENTRE DE R ECHERCHE EN I NFORMATIQUE DE L ENS CNRS UMR 8188


Universit
e dArtois, rue Jean Souvraz, S.P. 18 F-62307, Lens Cedex France
Secr
etariat : T
el.: +33 (0)3 21 79 17 23 Fax : +33 (0)3 21 79 17 70
http://www.cril.univ-artois.fr

Mise en page avec memcril (B. Mazure, CRIL) et thloria (D. Roegel, LORIA).

Table des matires


Table des figures

iv

Liste des Algorithmes

vi

Remerciements

Introduction gnrale

tat de lart

Chapitre 1 Le probleme SAT


La logique propositionnelle
1.1

Syntaxe de la logique propositionnelle . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.1

Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.2

Formules bien formes . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Smantique de la logique propositionnelle . . . . . . . . . . . . . . . . . . . . . .

1.2.1

Smantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.2

Dfinitions et thormes . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4

Le problme SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Table des matires


Chapitre 2 SAT en parallle
2.1

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

Rsoudre SAT en parallle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.2.1

Le modle concurrentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.2.2

Les solveurs concurrentiels . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Le chemin de guidage : le rquilibrage des charges . . . . . . . . . . . . .

18

2.2.7

Les solveurs de type chemin de guidage . . . . . . . . . . . . . . . . . . .

21

Cube And Conquer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.3.1

Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.3.2

Lheuristique de coupure . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

2.3.3

Lheuristique de choix de variables . . . . . . . . . . . . . . . . . . . . . .

24

2.3.4

La rsolution des cubes . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

Chapitre 3 Les problmes de bandits


3.1

3.2

3.3

26

Le problme de bandits classique . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.1.1

Multi-armed bandit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.1.2

La stratgie dallocation et regret . . . . . . . . . . . . . . . . . . . . . . .

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

Chapitre 4 Une mta-heuristique des colonies dabeilles butineuses pour SAT


4.1

36

Une mta-heuristique massivement paralllisable . . . . . . . . . . . . . . . . . . .

37

4.1.1

Le choix du comportement adopter . . . . . . . . . . . . . . . . . . . . .

37

4.1.2

La communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

4.1.3

Hirarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

4.2

Droulement de lalgorithme mmtique . . . . . . . . . . . . . . . . . . . . . . .

39

4.3

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

Chapitre 5 Une adaptation dUCT pour SAT : lalgorithme SCOUT

41

5.1

Le choix dUCT pour gnrer des cubes . . . . . . . . . . . . . . . . . . . . . . . .

42

5.2

Description de lalgorithme SCOUT . . . . . . . . . . . . . . . . . . . . . . . . . .

42

5.2.1

La descente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

5.2.2

La descente : Les valeurs UCB . . . . . . . . . . . . . . . . . . . . . . . . .

45

5.2.3

La descente : la cration de nouveaux fils . . . . . . . . . . . . . . . . . . .

46

5.2.4

La descente : les conflits et littraux dj affects . . . . . . . . . . . . . . .

47

5.2.5

La slection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

5.2.6

La simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

5.2.7

La remonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

5.3

La rcupration des cubes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

5.4

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

Chapitre 6 Rsultats

53

6.1

Le programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

6.2

Exprience sur les variables des cubes . . . . . . . . . . . . . . . . . . . . . . . . .

54

6.3

Exprimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

6.4

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

Conclusion

60

Bibliographie

62

iii

Table des figures


1.1

Connecteurs logiques usuels de la logique propositionnelle. . . . . . . . . . . . . . . . .

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

Des bandits manchots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


tape de lalgorithme UCT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Structure des nuds dans notre algorithme SCOUT. . . . . . . . . . . . . . . . . . . . .


La descente dans notre algorithme SCOUT . . . . . . . . . . . . . . . . . . . . . . . . .
Calcul des valeurs UCB dans SCOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conflit ou littral dj affect une valeur oppose lors de la descente dans notre algorithme SCOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Littral dj affect lors de la descente dans notre algorithme SCOUT . . . . . . . . . .
La slection dans notre algorithme SCOUT . . . . . . . . . . . . . . . . . . . . . . . .
La remonte dans notre algorithme SCOUT . . . . . . . . . . . . . . . . . . . . . . . .
Affinage de larbre de SCOUT par un algorithme de colonie dabeilles . . . . . . . . . .

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

Rsultat : Informations sur tous les cubes. . . . . . . . . .


Information sur les cubes uniquement satisfiables. . . . . .
Informations sur le meilleur cube satisfiable uniquement. .
Numro des cubes satisfiables des instances en possdant. .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

57
58
58
59

Liste des Algorithmes


1

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

LISTE DES ALGORITHMES

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

E PROBLME DE SATISFAISABILIT BOOLENNE ,

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

Syntaxe de la logique propositionnelle . . . . . . . . . . . . . . . . . . . . . .

1.1.1

Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.2

Formules bien formes . . . . . . . . . . . . . . . . . . . . . . . . . . .

Smantique de la logique propositionnelle . . . . . . . . . . . . . . . . . . . .

1.2.1

Smantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.2

Dfinitions et thormes . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4

Le problme SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

a pour objectif de prsenter brivement le problme SAT pour boolean SATisfiability


problem dune formule propositionnelle. Nous rappelons tout dabord la syntaxe puis la smantique
de la logique propositionnelle. Aprs quelques dfinitions et proprits sur cette logique, nous exposerons
ce quest le problme SAT en laccompagnant dun exemple. Ce chapitre, reprsentant des notions de base
connues dans la littrature, est destin aux lecteurs ne connaissant pas le problme SAT.
E CHAPITRE

1.1 Syntaxe de la logique propositionnelle


1.1.1

Syntaxe

Dfinition (Vocabulaire de la logique propositionnelle). La base de la syntaxe du calcul des propositions


sont les variables propositionnelles ou propositions atomiques, notes p, q, x, ... qui constituent gnralement un ensemble infini dnombrable. Cette syntaxe contient aussi des symboles de ponctuation qui sont
souvent notes "(", ")", "[" et "]". De plus, les deux constantes propositionnelles et reprsentent respectivement le "faux" et le "vrai". Pour finir, elle est constitue de lensemble des connecteurs logiques
usuels, prsents dans la figure 1.1.

1.2. Smantique de la logique propositionnelle


Nom
Arit
Symbole

Ngation
Unaire

Conjonction
Binaire

Disjonction
Binaire

Implication
Binaire

Equivalence
Binaire

Ou exclusif
Binaire

F IGURE 1.1 Connecteurs logiques usuels de la logique propositionnelle.

1.1.2

Formules bien formes

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).

1.2 Smantique de la logique propositionnelle


1.2.1

Smantique

La smantique de la logique propositionnelle est compositionnelle : cest--dire que la signification


dune formule sera en fonction de celle de ses constituants. La valeur de vrit dune formule dpendra
uniquement de sa composition.
Dfinition (Smantique de la logique propositionnelle).
Chaque variable propositionnelle (x1 , x2 , ..., xn ) est interprte comme vraie ou fausse ;
si F est une formule, alors F est vraie si et seulement si F est fausse ;
si F et G sont des formules, alors :
(F G) est vraie si et seulement si F et G sont vraies ;
(F G) est vraie si et seulement si F ou G est vraie ;
(F G) est vraie si et seulement si F est fausse ou G est vraie ;
(F G) est vraie si et seulement si F et G sont soit toutes deux vraies, soit toutes deux fausses ;
(F G) est vraie si et seulement si seul F ou seul G est vraie (pas les deux en mme temps).

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.

Chapitre 1. Le probleme SAT

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)

1.3 Formes normales


Dfinition (Littral, Clause, Terme).
Un littral est une variable propositionnelle ou bien sa ngation : x et x sont des littraux ;
Une clause est une disjonction de littraux : une formule de la forme (x1 x2 ... xn ) o chaque
xn reprsente un littral ;
Un terme (ou cube) est une conjonction de littraux : une formule de la forme (x1 x2 ... xn )
o chaque xn reprsente un littral.
Dfinition (NNF, DNF, CNF). Nous distinguons trois formes normales particulires :
Une formule propositionnelle est dite sous forme normale ngative (NNF pour Negative Normal
Form) si elle est exclusivement constitue de conjonctions, de disjonctions et de littraux ;
Une formule propositionnelle est dite sous forme normale disjonctive (DNF pour Disjonctive Normal Form) si cest une disjonction de termes ;
Une formule propositionnelle est dite sous forme normale conjonctive (CNF pour Conjonctive Normal Form) si cest une conjonction de clauses.

1.4. Le problme SAT


Pour toute formule de la logique propositionnelle, il existe une formule quivalente sous forme normale.

1.4 Le problme SAT


Dfinition (Le problme SAT). Le problme SAT est le problme de dcision qui consiste savoir si une
formule sous forme normale conjonctive possde ou pas un modle (si elle est satisfiable).
Le problme SAT occupe un rle trs important en thorie de la complexit puisquil reprsente le
problme NP-Complet de rfrence [Coo71]. Cest donc un problme thoriquement difficile pour un ordinateur, mais il possde des mthodes de rsolution trs efficaces en pratique. On peut citer les solveurs
SAT modernes de type CDCL qui sont une grande avance dans lhistoire de ces solveurs. De nombreux
problmes sy rapportent naturellement ou le contiennent. Grce la performance des solveurs SAT moderne, certains problmes prfrent tre traduits en SAT (CNF) afin de bnficier dune efficacit plus
accrue compare leurs propres mthodes de rsolutions. Le problme SAT contient de nombreuses applications en planification classique (ordonnancement de tches, robot sur mars, ...), vrification (model
checking, ...), diagnostic (derreurs dans les circuits lectroniques, ...), bio-informatique, CSP, etc. prsent, nous allons exposer un petit exemple de traduction dun problme CSP en SAT.
Exemple. Soit un petit problme ne contenant que deux variables x et y, avec une seule contrainte :
x + y = 3. Ces deux variables ont respectivement les domaines suivants : {1, 2, 3} et {0, 1, 4}. Le problme consiste savoir comment attribuer les variables sur leurs domaines respectifs tout en respectant
la contrainte. Sachant quil existe des mthodes de rsolutions propres CSP, nous choisissons de lencoder en CNF afin de comprendre le mcanisme de SAT. Il existe plusieurs encodages possibles, nous
choisissons lencodage direct. Tout dabord, nous encodons les variables et leurs domaines en clauses,
pour cela, nous aurons de nouvelles variables propositionnelles : xi et yi correspond respectivement
x = i et y = i.
x1 x2 x3 reprsente le domaine de x ;
x1 x2 la variable x ne peut pas prendre pour valeur en mme temps 1 et 2 ;
x1 x3 la variable x ne peut pas prendre pour valeur en mme temps 1 et 3 ;
x2 x3 la variable x ne peut pas prendre pour valeur en mme temps 2 et 3 ;
y0 y1 y4 reprsente le domaine de y ;
y0 y1 la variable y ne peut pas prendre pour valeur en mme temps 0 et 1 ;
y0 y4 la variable y ne peut pas prendre pour valeur en mme temps 0 et 4 ;
y1 y4 la variable y ne peut pas prendre pour valeur en mme temps 1 et 4.
Puis nous codons les couples de valeurs x et y impossibles cause de la contrainte : x1 y0 , x1 y1 ,
x1 y4 , x2 y0 , x2 y4 , x3 y1 , x3 y4 . Toutes ces clauses forment une CNF. Un solveur
SAT peut donc trouver un modle comme : x2 = , y1 = et le reste des variables propositionnelles
faux. La solution associe en CSP est x = 2 et y = 1.

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

2.1. Modles parallles


Au pralable, afin de comprendre cette accommodation, nous allons prsenter les triviales notions
de la paralllisation ainsi que ses propres modles dexcution et de programmation. Cela nous servira
apprhender les deux aspects distincts de la paralllisation du problme SAT : savoir les mthodes
de types diviser pour rgner dites collaboratives et, loppos des mthodes concurrentielles. Aprs
avoir relat un historique partiel des solveurs reprsentant ces deux approches, nous prsenterons en
dtail deux techniques se basant sur lapproche collaborative : le chemin de guidage (Guiding path) ainsi
que la mthode originale Cube And Conquer. En conclusion, nous discuterons du sujet de ce manuscrit
ainsi que la voie choisie pour laborer notre tche, savoir, mettre en uvre un modle permettant la
rsolution du problme SAT laide des algorithmes de colonies dabeilles dans un but massivement
parallle.

2.1 Modles parallles


PROCESSEUR MONO-CUR
Cur de calcul

PROCESSEUR MULTI-CUR
Cur 1

Cur 2

Cur 3

Cur 4

Mmoire cache L1

L1 ddie L1 ddie L1 ddie L1 ddie

Mmoire cache L2

L2 partage

F IGURE 2.1 Schmas de processeurs


Depuis linvention du premier microprocesseur (intel 4004) en 1971, Gordon Moore observe en 1975
que le nombre de transistors des microprocesseurs sur une puce de silicium se rplique tous les deux ans.
Cette observation appele loi de Moore nest pas une loi physique mais une extrapolation empirique qui
sest rvle tonnamment fidle pour le moment, elle sest traduite par une augmentation des frquences
de fonctionnement des microprocesseurs. Mais depuis environ 2005, cause de lchauffement important des microprocesseurs des frquences avoisinant les 4 GHz, il na plus t envisageable pour les
entreprises de les accrotre. En contrepartie, il est aujourdhui possible dajouter plusieurs curs de calcul au sein du mme microprocesseur (figure 2.1). De cette manire, les industriels annoncent toujours
doubler la puissance de leur microprocesseur pour ainsi honorer la loi de Moore. Nanmoins, les dveloppeurs ne voient pas ce gain directement, et doivent sapprivoiser un modle de programmation dit
alors parallle. Une contrainte embarrassante car tous les algorithmes voulant bnficier du multi-cur
doivent tre repenss. La loi de Moore ne sera probablement plus exacte dans le futur, et commence
dj ne plus ltre, certaines entreprises disent ne pas la respecter pour des raisons nergtiques et
cologiques (informatique verte, netbook, ...). De plus, lindustrie approche de plus en plus des limites
physiques de la micro-lectronique o les transistors ne seront plus constitus que de quelques atomes et
lisolant entre eux dun seul. Afin de mieux comprendre les rouages de cette programmation parallle,
nous allons prsenter quelques notions lmentaires.

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)

Dfinition (Efficacit). Lefficacit reprsente la qualit de la paralllisation en fonction du nombre de


processeurs :
Acc(n)
n
Dfinition (Extensibilit). Lextensibilit dun algorithme parallle est sa capacit maintenir son efficacit quelque soit le nombre de processeurs utiliss.
Ef f(n)=

Exemple. Les solveurs


Complet.

SAT

ont souvent une extensibilit rduite due la difficult du problme NP-

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

2.1. Modles parallles


Neumann : modle dexcution des machines squentielles.
Dfinition (SISD, SIMD, MISD, MIMD). La taxinomie de Flynn dveloppe quatre modles distincts :
Single Instruction Single Data (SISD) : machine squentielle dun seul processeur pouvant traiter un
seul flot dinstructions accompagn dun seul flot de donnes ;
Single Instruction Multiple Data (SIMD) : machine constitue de plusieurs processeurs pouvant traiter
un seul flot dinstructions accompagn de plusieurs flots de donnes ;
Multiple Instruction Single Data (MISD) : machine constitue de plusieurs processeurs pouvant traiter
plusieurs flots dinstructions accompagns dun seul flot de donnes ;
Multiple Instruction Multiple Data (MIMD) : machine constitue de plusieurs processeurs pouvant
traiter plusieurs flots dinstructions accompagns de plusieurs flots de donnes.
Le modle connu du monde squentiel SISD nexploite aucun paralllisme, tant au niveau des instructions qu celui de la mmoire (architecture de von Neumann). SIMD est une machine qui utilise le
paralllisme au niveau de la mmoire, comme le processeur vectoriel ou le processeur graphique (Graphics processing unit (GPU)). MISD est un modle spcifique certain traitement qui est gnralement
utilis pour sa tolrance envers les pannes, ce modle sexcute plus particulirement sur des tableaux
systoliques de processeur. Pour finir, MIMD est le plus rpandu, le plus souple utiliser, et appliquer
par dfaut dans le domaine SAT. Dans ce modle, plusieurs processeurs traitent des donnes diffrentes,
car chacun deux possde une mmoire distincte. Les ordinateurs multi-curs sont bass sur ce modle
tandis que les supercalculateurs sont en gnral bass sur un MIMD hybride. Le modle MIMD peut tre
excut sur diffrentes architectures selon la faon daccder la mmoire, cette classification a t introduite par [Joh88].
Dfinition (CC - UMA,
sexcuter :

CC - NUMA , N o RMA ).

Le modle

MIMD

a trois architectures cibles sur lesquelles

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 Rsoudre SAT en parallle


Nous prsenterons dans cette section les deux modles permettant de faire travailler les processus en
parallle pour le problme SAT ainsi que quelques solveurs respectifs. Dune part, nous avons le modle
collaboratif (coopratif) bas sur le paradigme diviser pour rgner puis, dun autre ct, le modle
concurrentiel, qui excute en parallle plusieurs solveurs squentiels en concurrence sur le mme problme. Nous acheminerons ainsi la notion de chemin de guidage, centrale dans le modle collaboratif, qui
nous permettra de circonscrire une mthode originale nomme Cube And Conquer [HKWB12] tudie
dans la prochaine section.

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

2.2. Rsoudre SAT en parallle

Solveur 1

Solveur 2

Solveur 3

Solveur 4

Solution

F IGURE 2.2 Paralllisme concurrentiel

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

Les solveurs concurrentiels

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

2.2. Rsoudre SAT en parallle

ilis
e

( )

e
iv
act
n
No

F IGURE 2.3 Diagramme des clauses apprises dans PENELOPE

F IGURE 2.4 Paralllisme diviser pour rgner

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 , ))

F IGURE 2.5 Chemin de guidage

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 chemin de guidage : le rquilibrage des charges

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

2.2. Rsoudre SAT en parallle

F IGURE 2.6 rquilibrage des charges : tat initial, F et G travaillent.

F IGURE 2.7 rquilibrage des charges : F a termin son sous-arbre, G travaille.

F IGURE 2.8 rquilibrage des charges : F informe le matre, G travaille.

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

F IGURE 2.11 rquilibrage des charges : G envoie son chemin de guidage

20

2.3. Cube And Conquer

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

Les solveurs de type chemin de guidage

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.

2.3 Cube And Conquer


CREATION D'UN CUBE
F

CONFLIT

F IGURE 2.13 Cube And Conquer

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. Cube And Conquer


complment du cube reprsentant les dcisions de la racine aux feuilles) dans lensemble C, puis lalgorithme va donc terminer la rcurrence (ligne 4). Par la suite, via une heuristique nomme de coupure,
lalgorithme choisit si il peut envoyer le cube un solveur CDCL (ligne 5). Dans ce cas, il retient le cube
dans lensemble A et ici aussi, la rcurrence se termine (ligne 6). Pour finir, cet algorithme fait les appels
rcursifs courants dun solveur DPLL (ligne 8 et 9) en dcidant un littral via une heuristique de choix
de variables look-ahead (ligne 7). A la fin de la procdure, lensemble des clauses C et lensemble des
cubes A sont optimiss. Les solveurs CDCL reoivent F (a A) C, soit la formule accompagne
dun cube a avec optionnellement quelques clauses apprises. Comme nous le montre lexemple suivant,
les clauses de C forceront dans certains cas quelques variables, que nous pouvons donc enlever de divers
cubes.
Exemple. Toujours sur notre figure 2.13, les deux premiers conflits reprsents par une croix sont les
complmentaires des dcisions de la racine leur feuille, on a donc les clauses apprises x2 x3 x4
et x2 x3 x4 . A la fin de lalgorithme, une optimisation effectue une rsolution sur ces deux clauses
pour en faire une seule : x2 x3 . Ainsi quand x2 sera affecte, la clause propagera x3 . On peut donc
enlever la variable x3 des cubes qui contiennent la variable x2 sans oublier dajouter cette clause apprise
aux solveurs CDCL. Cela donne :
F1 = F (x2 x1 ) C
F2 = F (x2 x1 ) C
F3 = F (x2 x1 ) C
F4 = F (x2 x1 x3 ) C
Remarque. Bien que ces clauses apprises soient utiles cette optimisation, les auteurs signalent que
lenvoi de ces clauses apprises un solveur CDCL est optionnel. En effet, le sous-problme gnr tant
diffrent du problme initial, il y a peu de chance que les clauses apprises prs de la mme branche
(celle formant le cube) servent rellement au sous-problme. Nanmoins, une clause apprise dune autre
branche (Une branche diffrente du cube) pourrait servir au sous-problme, surtout si sa taille est petite.
Deux heuristiques sont utilises dans CC : lheuristique de coupure et lheuristique de dcision. La
premire est utilise pour savoir sil faut couper larbre de recherche (arrter de dvelopper une branche)
pour envoyer un cube un solveur CDCL ou alors, ne rien couper et continuer la recherche. Tandis que
la deuxime, sert choisir la prochaine variable dvelopper au prochain nud.

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

Lheuristique de choix de variables

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

La rsolution des cubes

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

Les problmes de bandits


Sommaire
3.1

3.2

3.3

Le problme de bandits classique . . .


3.1.1 Multi-armed bandit . . . . . . .
3.1.2 La stratgie dallocation et regret
La stratgie UCB . . . . . . . . . . . .
3.2.1 Dfinition et exemple . . . . . .
3.2.2 Exemple dapplication . . . . .
Lalgorithme UCT . . . . . . . . . . . .
3.3.1 Squelette de lalgorithme . . . .
3.3.2 Explication . . . . . . . . . . .
3.3.3 Conclusion . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

26
26
27
28
28
29
30
30
31
33

a pour but dinitier le lecteur au dilemme exploration / exploitation rencontr lors de


nos travaux dans le chapitre 5, ainsi quune mthode prenant en compte ce dilemme. Pour cela,
nous allons tout dabord prsenter le problme de bandits (manchots) classique K bras. Puis, aprs
avoir dfini la notion de stratgie et de regret, prsenter la stratgie UCB qui respecte intuitivement notre
dilemme. Nous finirons par expliquer lalgorithme UCT qui applique cette stratgie. Le lecteur intress
pourra se rfrer lintroduction de [ACBF02], et [ACBFS03].
E CHAPITRE

3.1 Le problme de bandits classique


Dans de nombreux problmes, il peut se cacher un dilemme exploration / exploitation (EvsE) : un
agent peut tre confront au compromis fondamental entre accumuler de lexprience afin dobtenir
des informations sur les rcompenses quil peut avoir grce des choix (exploration), ou au contraire,
exploiter ces informations pour faire le choix le plus prometteur (exploitation). Les problmes de bandits
illustrent ce dilemme.

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

3.1. Le problme de bandits classique


chacune un bras (options, actions, choix) comme nous montre la figure 3.1 :
Dfinition (Multi-armed bandit problem). Un agent choisit chaque instant une action parmi les K dcisions possibles et reoit une rcompense alatoire tire selon une distribution dtermine par laction
choisie. Le but du joueur est de maximiser son gain : la somme des rcompenses quil reoit au cours
dune squence des tirages des bras. Dans ce cas, chaque bras est suppos donner des gains qui sont tirs
de faon indpendante partir dune rpartition fixe et inconnue. Comme les distributions de rcompenses diffrent de bras bras, lobjectif est de trouver le bras avec le meilleur gain le plus tt possible,
et de ne se focaliser que sur ce dernier.

F IGURE 3.1 Des bandits manchots

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

La stratgie dallocation et regret

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

Chapitre 3. Les problmes de bandits


rcompense moyenne (esprance) = 0.8 qui est maximale. Ce qui nous donne donc un regret cumul
cet instant de R3 = 3 0.8 (0.3 + 0.4 + 0.6) = 1.1.
Remarque. Avec de la chance, nous pouvons avoir un regret cumul ngatif si nous jouons le meilleur
bras.
Dfinition (Le regret cumul espr). Le regret cumul espr linstant n est alors dfinie par :

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 La stratgie UCB


La stratgie Upper Confidence Bounds (UCB), a t introduite partir des annes 2000, les auteurs
lont formalise dans [ACBF02].

3.2.1

Dfinition et exemple

La stratgie UCB rsout le compromis exploration/exploitation en choisissant chaque tour, parmi


tous les bras possibles, celle qui maximise la somme dun terme dexploitation, et dun terme exploration. Cette stratgie associe une valeur appele indice de confiance suprieure (UCB) chaque bras.
Dfinition (Stratgie UCB). Pour initialiser lalgorithme, nous jouons une fois chaque bras, notons tout
dabord :
Ti (n) : le nombre de tirages du bras i jusqu linstant n ;
Si (n) : la somme des rcompenses obtenues du bras i jusqu linstant n ;
i (n) = Si (n) est donc la moyenne linstant n des rcompenses obtenues du bras i.
M
Ti (n)
Lorsque Ti (n) > 0, lindice UCB associ au bras i est :
s
i (n) + 2 ln n
UCB i (n) = M
Ti (n)
La stratgie UCB pour un instant n choisit le bras tel que :
UCB (n)

= max

1iK

UCB i (n)

Remarque.
i (n) : moyenne des gains obtenue en choisissant cette action ;
Le terme dexploitation M
28

(3.1)

3.2. La stratgie UCB


Le terme dexploration
lev.

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)

0.35 + 1, 177 1, 527

UCB 2 (4)

0.4 + 1, 177 1, 577

UCB 3 (4)

0.4 + 1, 665 2, 065

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

Chapitre 3. Les problmes de bandits

3.3 Lalgorithme UCT


Lalgorithme UCB ne peut cependant pas tre utilis tel quel dans les jeux o les gains peuvent subvenir bien aprs laction, comme certains jeux de stratgie (chec, go) : cest dans loptique de rsoudre
cette limite que lalgorithme Upper Confidence bounds in Trees (UCT) a t mis au point par [KS06].

3.3.1

Squelette de lalgorithme

Rpter N fois

REMONTE

DESCENTE

SIMULATION

SLECTION

F IGURE 3.2 tape de lalgorithme UCT.

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

3.3. Lalgorithme UCT

La descente dans larbre de recherche ;


La slection dune feuille ;
La simulation dun nud de larbre (un tat du jeu) ;
La remonte dans larbre de recherche.

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

Chapitre 3. Les problmes de bandits


(exploitation), et il explore des branches encore mal connues (exploration). Dans lalgorithme 3 de la
fonction descenteSelectionUCT()(ligne 3 dans lalgorithme 2), nous faisons la distinction pour
les fils dun nud entre ceux qui sont explors et ceux qui ne le sont pas (filsNonExplorer()(ligne
2)), lintersection de ces deux ensembles est donc vide, la fonction devientExplorer()(ligne 7)
rend un nud explor. filMaxUCT()(ligne 3) prend le fils ayant le plus grand indice UCT. La fonction
JouerCoup()(ligne 4 et 8) simule le coup dun joueur dun nud un autre dans la partie. La fonction
FilsNonExplorerHasard()(ligne 6) fait ltape de la slection qui renvoie, dans notre cas, un fils
au hasard. Remarquons que nous pouvons faire la simulation sur chacun des fils puis slectionner celui
ayant le meilleur gain, nanmoins, dans certains jeux (go, ...) et problmes (SAT, CSP, ...), il peut y avoir
beaucoup trop de fils chaque nud pour pouvoir appliquer cette mthode.
La simulation dpend du problme, il peut y avoir des jeux, o le nud slectionn est une feuille
de larbre, dans ce cas, il ny pas de simulation, et il suffit de regarder ltat de la partie pour savoir si la
partie est gagnante ou pas. Mais dans la plupart des jeux, les arbres sont tellement immenses quil faut
utiliser une simulation car nous atteignons trs rarement les feuilles de larbre. Cela consiste trouver
une fonction dvaluation qui permet dvaluer ltat de la partie. Ainsi, il est trs apprciable de trouver
une fonction dvaluation permettant dvaluer correctement ltat de la partie. En gnral, pour de nombreuses applications, la fonction utilis consiste appliquer une mthode de type sampling (par exemple
Monte-Carlo). Cependant, dans le cadre de SAT, une telle approche ne peut pas tre utilise et cest donc
des heuristiques usuelles qui sont utilises.
Dfinition (Algorithme de Monte Carlo). un algorithme de Monte-Carlo est un algorithme probabiliste
dune complexit dterministe, parfois dit aussi randomis dont le droulement fait appel des donnes tires au hasard. Le rsultat peut tre incorrect avec une certaine probabilit (gnralement faible).
Exemple. Nous imaginons une course entre 8 athltes dont les chronos sont modliss par autant de
variables alatoires. Nous avons besoin de savoir quel temps en moyenne met le plus lent des coureurs :
Nous simulons les chronos des 8 coureurs et nous dterminons leur maximum : nous le faisons N
fois en tout ;
Nous faisons la somme des N chronos maximum ;
Nous divisons cette somme par N .
Remarque. La mthode de Monte-Carlo offre un intervalle de confiance calcul grce au nombre dexpriences.
La remonte consiste re-parcourir les nuds dans le sens inverse, pour remonter le gain de la
simulation effectue. Il existe plusieurs manires de remonter les gains suivant le problme : pour ce
chapitre, nous les remontons suivant le joueur en question dans le nud comme nous montre lalgorithme
4.

32

3.3. Lalgorithme UCT


Algorithme 4 : remonteUCT(P,R)
Donnes : P le nud slectionn et R le rsultat de la simulation
Rsultat : La remonte des poids dans larbre
1 Dbut
2
tant que non(estRacine(P)) faire
3
N nombre de passages dans le nud P;
4
M valeur cumule du nud P;
5
N N +1;
6
si Joueur = PremierJoueur alors
7
P P+R;
8
sinon
9
P PR;
P pre(P)

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

Chapitre 3. Les problmes de bandits

34

Contribution

35

Chapitre 4

Une mta-heuristique des colonies


dabeilles butineuses pour SAT
Sommaire
4.1

Une mta-heuristique massivement paralllisable . . . . . . . . . . . . . . . . 37


4.1.1

Le choix du comportement adopter . . . . . . . . . . . . . . . . . . . . 37

4.1.2

La communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.1.3

Hirarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.2

Droulement de lalgorithme mmtique . . . . . . . . . . . . . . . . . . . . . 39

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. Une mta-heuristique massivement paralllisable

4.1 Une mta-heuristique massivement paralllisable


4.1.1

Le choix du comportement adopter

Plusieurs comportements ont t tudis et associs lalgorithmique dans la littrature, mimant


chacun un aspect des colonies dabeilles, trois principales catgories sont apparues :
le comportement des abeilles au niveau du butinage des fleurs (Foraging Behaviours) ;
le comportement au niveau de leur reproduction (Mariage Behaviours)
le concept de la reine des abeilles (Queen bee concept).
Nous nous focalisons sur le premier aspect, les abeilles butineuses, qui compar au problme SAT,
comporte plusieurs similitudes. Dun ct, une fleur butiner peut tre vue comme une interprtation
partielle, tant une conjonction de littraux, une telle interprtation est nomme un cube. Puis, dun autre
ct, le travail effectu sur un cube par un solveur est attribu au rle dune abeille butineuse : elle uvre
sur la fleur tout comme un solveur travaille sur un cube. A prsent, nous allons tudier la communication
dans notre mta-heuristique.

4.1.2

La communication

Dans le but de construire un algorithme massivement parallle avec un modle de programmation


DRAM , sur une architecture N o RMA . Nous comparons ici, la communication des abeilles de miel avec
celle de lordinateur : lchange de messages. Dans les tudes du monde vivant, une abeille communique
dautres abeilles des informations importantes sur les sources de nectar (les fleurs) via une chorgraphie
appele la danse frtillante des abeilles (Waggle Dance). Cette danse apporte trois grandes informations
aux observateurs :
Le temps de la danse correspond la distance de la fleur ;
Lintensit du frtillement correspond la quantit de nectar prsent dans la fleur ;
La direction de la danse par rapport au soleil correspond la direction de la fleur.
Dune mme manire, nos solveurs peuvent changer des informations, grce de simples changes
de messages sur lavance dune rsolution en cours. Un solveur peut donc mimer le comportement dune
abeille en incluant ses communications. Cela a lavantage dtre paralllisable sur une grande chelle
par nature, de plus, notre contrainte due larchitecture NoRMA dchanger des petits messages est
respecte. Ainsi, aprs une telle danse, dautres abeilles vont aider rcuprer le nectar. Cette assistance
peut tre vue comme lajout dun nouveau solveur sur le cube en question, dune manire concurrentielle
et/ou collaborative. Dans la prochaine section, nous allons voir que les mta-heuristiques des colonies
dabeilles butineuses sont affines suivant leurs fonctionnalits.

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

Chapitre 4. Une mta-heuristique des colonies dabeilles butineuses pour SAT


Dfinition (Solveur avec mmoire, Solveur sans mmoire). Les solveurs avec mmoire possdent un
historique des tches effectues ainsi que dautres informations, cette mmoire est donc partage, et
chaque solveur la possdant peut accder aux informations de la mmoire des autres. Cette mmoire,
ayant un cot, mme chez les abeilles, sassocie donc une population faible. Nous qualifierons ces solveurs dexpriments. A loppose, les solveurs sans mmoire nont aucun souvenir de leur fait et geste.
Avec Mmoire
Solveur Scout (S)
Solveur Recrut (R)
Solveur Butineur (B)

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

4.2. Droulement de lalgorithme mmtique


Dun autre ct, nous avons les solveurs avec mmoire dits expriments, ils ont trois rles possibles.
Nous les nommons solveurs inspecteurs expriments (IE ), scouts expriments (SE ) et butineurs expriments (BE ).
Dfinition (Solveur Inspecteur Expriment (IE ), Solveur Scout Expriment (SE ), Solveur Butineur
Expriment (BE )). Ces solveurs ont donc une mmoire partage permettant de schanger des informations et de connatre lhistorique de chacun.
Les solveurs inspecteurs expriments (IE ) contrlent les cubes en cours de rsolution, les communications (les danses frtillantes), puis met jour la mmoire partage.
Les solveurs scouts expriments (SE ) trouvent de nouveaux cubes grce la mmoire partage en
vrifiant leur bonne qualit.
Les solveurs butineurs expriments (BE )) rsolvent les cubes quils valuent tre les meilleurs grce
la mmoire partage.
La population de ces solveurs est rduite afin de ne pas encombrer le canal de communication. En effet,
il ne sagit pas l du modle de programmation DRAM mais dun modle PRAM, nous lintgrerons dans
notre mthode tout en minimisant la population des solveurs mmoires.
Chaque type de solveur devra tre associ une heuristique spcifique leur tche. Une mtaheuristique globale grera les populations de chaque solveur comme nous pouvons en retrouver dans
certains algorithmes sur les colonies dabeilles. La prochaine section prsentera le droulement de cette
algorithme mmtique.

4.2 Droulement de lalgorithme mmtique


La figure 4.2 reprsente une vue globale des tches se produisant pendant la recherche, le but est
alors dexploiter les meilleurs cubes afin de rsoudre une instance SAT. Au dbut, seul les solveurs scouts
travaillent en cherchant les meilleurs cubes (S sur la figure). Une fois quelques cubes trouvs, ce solveur
va alors communiquer ( danse pour rose sur la figure) un cube des solveurs recrus (R sur la figure),
ils vont devenir des solveurs butineurs (B sur la figure) afin de rsoudre le cube en question. Le solveur
inspecteur expriment (IE sur la figure) met jour la mmoire partage tandis que le solveur scout
expriment (SE sur la figure) essaye de trouver de meilleurs cubes. Par la suite, un solveur butineur
expriment (BE sur la figure) travaille sur le meilleur cube (la tulipe sur la figure). Plus la recherche
avance, plus les populations changent suivant des heuristiques, si la recherche est fructueuse, la prsence
de solveurs scouts sera diminue. A linverse, quand ltat de la recherche se dgrade, une augmentation
des solveurs scouts essayera de dbloquer la situation. Cette tche sera accorde au solveur inspecteur.
Nos travaux se concentrent essentiellement sur la cration dun tel solveur scout : ce qui nous amne la
conclusion de ce chapitre.

39

Chapitre 4. Une mta-heuristique des colonies dabeilles butineuses pour SAT

F IGURE 4.2 Droulement de lalgorithme mmtique

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

Une adaptation dUCT pour SAT :


lalgorithme SCOUT
Sommaire
5.1
5.2

5.3
5.4

Le choix dUCT pour gnrer des cubes . . . . . . . .


Description de lalgorithme SCOUT . . . . . . . . . . .
5.2.1 La descente . . . . . . . . . . . . . . . . . . . .
5.2.2 La descente : Les valeurs UCB . . . . . . . . . .
5.2.3 La descente : la cration de nouveaux fils . . . .
5.2.4 La descente : les conflits et littraux dj affects
5.2.5 La slection . . . . . . . . . . . . . . . . . . . .
5.2.6 La simulation . . . . . . . . . . . . . . . . . . .
5.2.7 La remonte . . . . . . . . . . . . . . . . . . . .
La rcupration des cubes . . . . . . . . . . . . . . . .
Conclusion . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

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

Chapitre 5. Une adaptation dUCT pour SAT : lalgorithme SCOUT


Nous allons tout dabord expliquer le choix dUCT afin de gnrer des cubes. Aprs une description
sur la structure des nuds utilise dans SCOUT, nous expliquerons, tape par tape, lalgorithme qui en
dcoule avec ses subtilits. Par la suite, nous parlerons des heuristiques utilisables dans notre algorithme
et celles implmentes. Pour finir, nous conclurons et tudierons les amliorations possibles.

5.1 Le choix dUCT pour gnrer des cubes


Dans loptique de choisir les meilleurs cubes dans un arbre de recherche, nous avons t confront au
dilemme exploitation/exploration : faut-il 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. Ce dilemme est trs connu en intelligence artificielle,
il a t abord ainsi que lalgorithme UCT dans le chapitre 3. Cet algorithme a prouv son efficacit en
permettant pour la premire fois une intelligence artificielle de battre un joueur humain professionnel
dans le jeu de Go. Nanmoins, UCT a le besoin de faire une simulation difficilement adaptable SAT.
Cependant, deux raisons essentielles nous ont pousses choisir UCT afin de ladapter notre recherche
de cubes par un solveur scout. La premire est quil est capable de traiter dune manire efficace le
dilemme exploration/exploitation que nous retrouvons au niveau de la cration des cubes. La deuxime
raison vient du fait que lalgorithme UCT est utilis dans des problmes possdant un immense arbre de
recherche, comme cest le cas pour le problme SAT.

5.2 Description de lalgorithme SCOUT


Tout dabord, distinguons un fait primordial la comprhension de notre mthode SCOUT : nous
avons deux arbres de recherche diffrents en coopration. Le premier, est celui associ un solveur SAT
pouvant revenir la racine de son arbre binaire, via un redmarrage. Le second est notre arbre n-aire de
recherche reprsentant un UCT modifi pour SAT : il reprsente la fouille de cubes dans notre algorithme
SCOUT . Ces deux arbres sont troitement lis via les cubes : celui reprsentant UCT les garde en mmoire tandis que le solveur SAT les simule. Dans la suite de ce manuscrit, quand aucune prcision nest
apporte sur la nature de larbre, nous considrons que nous parlons de larbre n-aire reprsentant UCT.
Comme pour la mthode UCT, notre algorithme se divise en quatre tapes, vues au chapitre 3 : la
descente, la slection, la simulation et la remonte (figure 3.2). Ces tapes sont ritres dans cet ordre
plusieurs reprises suivant le nombre ditrations UCT que nous dsirons appliquer. Chacune de ces
tapes a t adapte avec un solveur SAT afin de gnrer les cubes demands. Aprs quelques informations globales sur la structure de donnes lintrieur de SCOUT, nous allons adapter lalgorithme UCT
au problme SAT pour ces quatre tapes.
Les nuds de notre arbre, except la racine, contiennent distinctement trois informations essentielles : la premire est un littral de la formule propositionnelle tandis que les deux autres proviennent
de lalgorithme UCT : la moyenne pondre du nud par rapport ses fils (average) et le nombre de passages dans ce nud par UCT (passing). Lattribut average est une valeur compris entre 0 et 1 exprimant
la qualit dun cube. En plus de ces attributs, chaque nud possde deux mthodes utilises dans ltape
de descente : calculUCB() et calculUCBspciale(). Ces deux mthodes sont expliques dans
les prochaines sous-sections. Par contre, le nud racine possde uniquement les attributs average et passing, ainsi quune seule mthode : calculUCB(). En effet, la racine nest associ aucun littral. De
ce fait, certaines fonctionnalits et informations ne sont pas utiles. La figure 5.1 reprsente un aperu de
42

5.2. Description de lalgorithme SCOUT


notre arbre ainsi que la structure des nuds aprs plusieurs itrations UCT.

F IGURE 5.1 Structure des nuds dans notre algorithme SCOUT.

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

Chapitre 5. Une adaptation dUCT pour SAT : lalgorithme SCOUT


plus grande (ligne 6). Nous avons deux cas darrts dont un dans cette boucle. Ce premier, nous dit que
si la valeur UCB spciale est plus grande que les valeurs UCB des fils (ligne3), alors nous retournons le
nud en cours. Tandis que le second arrive une fois que nous sommes arrivs sur une feuille de larbre.
A chaque fois que nous descendons dans un nud, un solveur SAT associ notre algorithme SCOUT
affecte comme variable de dcision le littral en question (ligne 5) et effectue aussi les propagations
unitaires possibles. prsent, nous allons voir sur un exemple concret ces deux cas darrts via la figure
5.2.

(a) Arrt normal

(b) Arrt via la valeur UCB spcial

F IGURE 5.2 La descente dans notre algorithme SCOUT


Exemple. Cette figure se dcompose en deux sous-figures : gauche (sous-figure 5.2a), nous retrouvons
le retour normal (ligne 15 de lalgorithme 5) tandis que sur notre droite (sous-figure 5.2b), nous avons le
retour lintrieur de la boucle (ligne 4).
La premire sous-figure (sous-figure 5.2a) nous montre une situation o la valeur UCB spciale nest
jamais plus grande que les valeurs UCB des fils. Sur la sous-figure de gauche, nous comparons la valeur
UCB spciale (0.106) avec les valeurs UCB des fils (0.113,0.112,0.115,0.126,0.090,0.106) de la racine. La
plus grande valeur tant celle du nud possdant le littral x2 (0.126), nous ritrons la descente sur ce
nud qui nest pas une feuille. Itrativement, nous continuons de descendre dans les nuds reprsents
par les littraux x6 , x3 et x5 . Ce dernier tant une feuille, la descente renvoie ce nud. Pendant cette
descente, le solveur SAT associ effectue donc les dcisions suivantes x2 , x6 , x3 et x5 .
44

5.2. Description de lalgorithme SCOUT

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

La descente : Les valeurs UCB

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.

F IGURE 5.3 Calcul des valeurs UCB dans SCOUT

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

Chapitre 5. Une adaptation dUCT pour SAT : lalgorithme SCOUT


Littral
x2
x2
x4
x4
x1
x1

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

La descente : la cration de nouveaux fils

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

5.2. Description de lalgorithme SCOUT


Algorithme 6 : descenteScoutV2(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);
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

La descente : les conflits et littraux dj affects

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

Chapitre 5. Une adaptation dUCT pour SAT : lalgorithme SCOUT


En effet, ce nud amenant un conflit gnre un cube inutile car inconsistant. De plus, nous remontons
alors les poids de larbre UCB comme dans ltape de la remonte (sous-section 5.2.7). Par la suite, nous
passons simplement une nouvelle itration UCT. Si un littral est dj affect, nous avons deux situations possibles : soit ce littral est affect une valeur gale celle prsente dans notre arbre, soit son
oppos.

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

5.2. Description de lalgorithme SCOUT

(a) Arrt normal

(b) Arrt via la valeur UCB spcial

F IGURE 5.6 La slection dans notre algorithme SCOUT

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

Chapitre 5. Une adaptation dUCT pour SAT : lalgorithme SCOUT

F IGURE 5.7 La remonte dans notre algorithme SCOUT

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).

5.3 La rcupration des cubes


Une fois un bon nombre total ditrations UCT effectues, nous trions les cubes via leur moyenne dans
larbre (average). Il existe de nombreuses mthodes dans la littrature pour rcuprer les chemins de la
racine aux feuilles dans un arbre n-aires. Plusieurs mthodes sur des arbres binaires sont reprsentes
dans larticle [MdWH14]. Lalgorithme 7 illustre notre mthode, elle se contente de prendre le cube
contenant la meilleure moyenne (ligne 4 6) puis deffacer la feuille en question. Quand nous effaons
cette feuille, nous effaons aussi rcursivement ses ascendants quand ils deviennent des feuilles (ligne 8
11). Nous ritrons ce procd afin de rcuprer les cubes par rapport leur moyenne. Nous obtenons
donc notre ordre sur les interprtations partielles.

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).

F IGURE 5.8 Affinage de larbre de SCOUT par un algorithme de colonie dabeilles

51

Chapitre 5. Une adaptation dUCT pour SAT : lalgorithme SCOUT


Beaucoup damliorations sont possibles dans notre algorithme, notamment au niveau des heuristiques choisies. En effet, il est prfrable de tester plusieurs heuristiques pour ainsi slectionner la
meilleure : cela est un but pour dautres projets. Une amlioration possible est de transformer notre
mthode en utilisant la puissance de la paralllisation, afin daffiner les simulations faites dans SCOUT.
Par ailleurs, il se trouve que les mta-heuristiques des colonies dabeilles nutilisent pas tous les curs
au dbut de la recherche, ces curs pourraient donc servir notre mthode SCOUT. La partie UCB de
notre algorithme peut tre grandement amliore, en effet, nous verrons dans le chapitre suivant quil
est difficile de rgler ces valeurs UCB, et quun rglage statique ne suffit pas. La cration des fils spciaux hrite aussi ce problme car elle est base sur une valeur de type UCB. Dans le chapitre suivant,
nous allons voir les rsultats des tests effectus sur notre mthode ainsi que quelques dtails concernant
limplmentation.

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.

6.2 Exprience sur les variables des cubes


Les figures 6.2, 6.3 et 6.4 nous montrent pour nos sept instances combien de fois chaque variable est
apparue dans les cubes. Afin de mieux diversifier ces variables, nous avons augment la graine alatoire
de lheuristique VSIDS. Les rsultats associs nous montrent alors une diversification convenable. En
effet, la plupart des variables apparaissent que trs peu de fois, et seul un petit pourcentage dentre
elles apparraissent dans la majorit des cubes. Ceci est un peu moins vrai pour les instances 003 et
aes641keyfind1. Le dfaut de ces deux instances est d au nombre de variables totales (respectivement
4128 et 596 variables) qui est petit par rapport aux autres instances. En effet, elles possdent un petit
nombre de variables mises en jeu dans les cubes (respectivement 23 et 69 variables).

54

6.2. Exprience sur les variables des cubes

Apparitions
4918

Apparitions
4830

69
V ariables

23
V ariables
(a) 003 : 72259 clauses et 4128 variables

(b) aes641keyfind1 : 2632 clauses et 596 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

F IGURE 6.2 Nombre de variables dans les cubes (partie 1)

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

F IGURE 6.3 Nombre de variables dans les cubes (partie 2)

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

F IGURE 6.5 Information sur la cration des cubes.


est le pourcentage du nombre de cubes tant sous-cubes parmi les cubes (un sous-cube est un cube inclus
dans un autre). Un programme indpendant soccupe de vrifier ce pourcentage pour une instance donne. Ce pourcentage est correct sauf pour linstance 003. En effet, les rsultats de la section prcdente
ont montr que cette instance possde dans ces cubes, un trop petit nombre de variables mises en jeu.
Les rsultats de la colonne % de sous-cubes confirme les rsultats de la section prcdente.
Par la suite, la colonne UCB nous dit si larbre de cube gnr par notre programme a t construit
sur des valeurs UCB bien rgles. Cest dire, quel point ltape de la descente prfre exploiter un cube
de qualit ou explorer un autre cube moins bon. Pour avoir cette information, nous regardons lattribut
passing de chaque nud de larbre. En effet, pour une profondeur donne de larbre, plus les attributs
passing des nuds sont gaux, plus nous explorons dautres cubes. Par contre, toujours pour une profondeur donne, si lalgorithme de ltape de la descente est toujours passe (passing) dans le mme nud,
cest quil na fait quexploiter ce nud. Quand nous marquons bien dans une case de cette colonne,
cest que les valeurs UCB sont bien rgles. Dans ce cas, lalgorithme nexplore ou nexploite jamais tous
le temps un nud, mais trouve un compromis. Nous pouvons donc conclure que deux instances ont un
UCB mal rgl (003 et bob12m06).
La colonne Conflits est le nombre total de conflits rencontrs, on peut remarquer quil est assez
faible. Cela est d lexploration qui empche lheuristique VSIDS dappliquer correctement sa tche
(orienter la recherche vers les conflits). Le nombre de fois que nous ajoutons de nouveaux fils sur un nud
qui en possde dj est le nombre de fils spciaux de la dernire colonne : ce nombre est proportionnel
lexploration de la recherche. En effet, plus il est lev, plus larbre de recherche a t explor plutt
quexploit. prsent, la figure 6.6 nous montre les rsultats des 200 cubes tests sur chaque instance.
Instance
003
aes641keyfind1
bob12m06
pb30001lb00
pb30002lb06
pb20003lb03
UTI205p1

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

F IGURE 6.6 Rsultat : Informations sur tous les cubes.


Notons que le timeout est de deux heures et rappelons que ces sept instances proviennent de la com57

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 Temps CPU


2950.52s
313.02s
45.75s
66.98
-

Moyenne % Assign
0%
9%
0%
2%
-

Moyenne Taille
8.15
14.57
6
5.27
-

F IGURE 6.7 Information sur les cubes uniquement satisfiables.

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
-

F IGURE 6.8 Informations sur le meilleur cube satisfiable uniquement.


La figure 6.8 nous donne dautres informations. Si une instance ne possde aucun cube satisfiable sur
les 200 tests, nous le signalons par un tiret. Le Temps MINISAT est prsent titre de comparaison,
cest le temps de MINISAT sur linstance initiale. La colonne Temps Cration est le temps de cration des cubes sur linstance par notre programme SCOUT. La colonne Temps Rsolution reprsente
le temps de rsolution du premier cube satisfiable. La colonne Assignement montre le nombre de
variables assignes par le cube. En gnral, le meilleur cube ne rivalise pas avec MINISAT, sauf pour
les instances pb20003lb03 et 003. Ces expriences sont un moyen de comparer les heuristiques de notre
programme SCOUT dans le futur.
La figure 6.9 sintresse lordre des cubes. Nous esprons voir si les cubes satisfiables sont en
majeure partie dans les 100 premiers cubes ou, au contraire, dans les 100 pris alatoirement. Or, ces
rsultats nous montrent quils sont un peu partout. Une solution serait de faire des tests sur une plus
grande quantit de cubes.
58

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]

M. A IGNER, A. B IERE, et C.M. K IRSCH. Analysis of Portfolio-Style Parallel SAT


Solving on Current Multi-Core Architectures . Dans Submitted, 2013. (document)

[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]

Gilles AUDEMARD, Benot H OESSEN, Sad JABBOUR, Jean-Marie L AGNIEZ, et Cdric


P IETTE. PeneLoPe, a Parallel Clause-Freezer Solver . Dans Proceedings of SAT
Challenge 2012 : Solver and Benchmarks Descriptions, pages 4344, Lens, may 2012.
https ://helda.helsinki.fi/handle/10138/34218. 2.2.2, 2.2.3

[ALMS11]

Gilles AUDEMARD, Jean-Marie L AGNIEZ, Bertrand M AZURE, et Lakhdar S AIS. On


Freezing and Reactivating Learnt Clauses. . Dans Karem A. S AKALLAH et Laurent
S IMON, diteurs, SAT, volume 6695 de Lecture Notes in Computer Science, pages 188
200. Springer, 2011. 2.2.3

[ALS13]

Gilles AUDEMARD, Jean-Marie L AGNIEZ, et Laurent S IMON. Improving Glucose for


Incremental SAT Solving ith Assumptions : Application to MUS Extraction . 2013. 6.1

[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]

Armin B IERE. PicoSAT Essentials . Journal on Satisfiability, Boolean Modeling and


Computation (JSAT), 4(2-4) :7597, 2008. 2.2.2

[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]

Pierre-Arnaud C OQUELIN et Rmi M UNOS. Bandit Algorithms for Tree Search .


CoRR, abs/cs/0703062, 2007. 3.3.3

[CM10]

Antoine C ORNUEJOLS et Laurent M ICLET. Apprentissage artificiel : Concepts et algorithmes. Eyrolles, juin 2010. 8, 3.3.3

[Coo71]

Stephen A. C OOK. The Complexity of Theorem-proving Procedures . Dans Proceedings


of the Third Annual ACM Symposium on Theory of Computing, STOC 71, pages 151158,
New York, NY, USA, 1971. ACM. (document), 1.4
62

[CSH08]

Geoffrey C HU, Peter J. S TUCKEY, et Aaron H ARWOOD. PMiniSAT : A Parallelization


of MiniSAT 2.0 . Rapport technique, 2008. 2.2.7

[CTL06]

CMAP, TAO, et LRI. Programme MoGo : http ://senseis.xmp.net/ ?MoGo , 2006.


3.3.3

[DG97]

Marco D ORIGO et Luca Maria G AMBARDELLA. Ant Colony System : A cooperative


learning approach to the traveling salesman problem . IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, 1997. (document)

[Fly72]

Michael J. F LYNN. Some Computer Organizations and Their Effectiveness . IEEE


Trans. Comput., 21(9) :948960, septembre 1972. 2.1.2

[GW06]

Sylvain G ELLY et Yizao WANG. Exploration exploitation in Go : UCT for Monte-Carlo


Go . Dans NIPS : Neural Information Processing Systems Conference On-line trading of
Exploration and Exploitation Workshop, Canada, dcembre 2006. 3.3.3

[Her03]

Marc H ERBSTRITT. zChaff : Modifications and Extensions , 2003. 2.2.2

[HKWB12] M. H EULE, O. K ULLMANN, S. W IERINGA, et A. B IERE. Cube and Conquer : Guiding


CDCL SAT Solvers by Lookaheads . 7261 :5065, 2012. Best paper award, reported
2011 too, now formally published. (document), 2.2, 2.3
[HS09]

Youssef H AMADI et Lakhdar S AIS. ManySAT : a parallel SAT solver . JOURNAL ON


SATISFIABILITY, BOOLEAN MODELING AND COMPUTATION (JSAT), 6, 2009. 2.2.2

[JLHS12]

Sad JABBOUR, Nadjib L AZAAR, Youssef H AMADI, et Michelle S EBAG. Cooperation


control in Parallel SAT Solving : a Multi-armed Bandit Approach . dec 2012. dans le
cadre de NIPS12. 3.2.2

[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]

Dervis K ARABOGA et Bahriye A KAY. A survey : algorithms simulating bee swarm


intelligence. . Artif. Intell. Rev., 31(1-4) :6185, 2009. 4

[KS06]

Levente KOCSIS et Csaba S ZEPESVRI. Bandit Based Monte-carlo Planning . pages


282293, 2006. 3.3, 8

[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]

Knot P IPATSRISAWAT et Adnan DARWICHE. A Lightweight Component Caching


Scheme for Satisfiability Solvers . Dans Proceedings of the 10th International Conference on Theory and Applications of Satisfiability Testing, SAT07, pages 294299, Berlin,
Heidelberg, 2007. Springer-Verlag. 2.2.3

[Pey12]

Rmi P EYRE. Mthodes probabilistes pour la simulation . 2012.

[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]

Olivier ROUSSEL. ppfolio . http ://www.cril.univ-artois.fr/roussel/ppfolio/, Accessed


May 2012. (document), 2.2.2

[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]

Pascal VANDER -S WALMEN. Aspects parallles des problmes de satisfaisabilit , 2009.


2.2.6

[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

S-ar putea să vă placă și