• Aucun résultat trouvé

Approches complètes pour la résolution des problèmes DisCSPs et DCOPs

N/A
N/A
Protected

Academic year: 2021

Partager "Approches complètes pour la résolution des problèmes DisCSPs et DCOPs"

Copied!
210
0
0

Texte intégral

(1)

Universit´e Mohammed V - Agdal

Facult´

e des Sciences de Rabat

N d’ordre : 2485

TH`

ESE DE DOCTORAT

pre´sent´ee par

Imade BENELALLAM

Discipline : Sciences de l’ing´enieur Sp´ecialit´e : Informatique

Approches compl`

etes pour la r´

esolution des

probl`

emes DisCSPs et DCOPs

soutenue le 05 avril 2010 devant le jury

Pr´esident :

M. El Houssine BOUYAKHF . . . Professeur (PES), Universit´e Mohammed V Agdal Examinateurs :

M. Mustapha BELAISSAOUI . . . Professeur (PH), ENCG (Settat)

M. Christian BESSIERE . . . Directeur de recherche CNRS-LIRMM (France) M. Driss MIZANE . . . Professeur (PES), Facult´e des Sciences (Rabat) M. Sylvain PEICHOWIAK . . . Professeur (PES), Universit´e de Valenciennes (France) M. Ismail KASSOU . . . Professeur (PES), ENSIAS (Rabat)

M. Mostafa BELLAFKIH . . . Professeur (PES), INPT (Rabat) M. Mohammed RAMDANI . . . Professeur (PES), FST (Mohammedia)

Facult´e des Sciences, 4 Avenue Ibn Battouta B.P. 1014 RP, Rabat, Maroc Tel : +212 (0) 37 77 18 34/35/38, Fax : +212 (0) 37 77 42 61, http ://www.fsr.ac.ma

(2)
(3)

i

”TOUTES CHOSES SONT DIFFICILES AVANT QUE D’ˆETRES FACILE.”

(4)
(5)

Table des mati`eres

Avant propos xi

R´esum´e xiii

Introduction g´en´erale 1

I Raisonnement par contraintes distribu´ees : satisfaction 7 1 Probl`emes de Satisfaction de Contraintes 9

1.1 Introduction. . . 9

1.2 Probl`eme de Satisfaction de Contrainte . . . 10

1.2.1 Notations et d´efinitions . . . 10

1.2.2 Exemples de formalisation . . . 12

1.3 M´ethodes de r´esolution des CSPs . . . 15

1.3.1 Le Bachtracking chronologique . . . 15

1.3.2 Le Forward Checking . . . 16

1.3.3 Le Backjumping . . . 17

1.3.4 Le Backtracking dynamique . . . 18

1.3.5 Param`etres de mesure des CSP centralis´es . . . 20

1.3.6 Exp´erimentation . . . 21

1.4 M´ethodes de renforcement de la consistance . . . 22

1.4.1 L’arc-consistance : AC-x . . . 24

1.4.2 L’arc-consistance : AC-2000 . . . 28

1.5 M´ethodes hybrides . . . 29

1.6 M´ethodes de recherche heuristiques . . . 30

1.6.1 Ordonnancement des variables . . . 31

1.6.2 Ordonnancement des valeurs . . . 32

1.6.3 Ordonnancement d’inf´erences . . . 33

1.7 Complexit´e th´eorique d’un probl`eme . . . 33

1.8 Probl`emes de d´ecision . . . 33

1.8.1 D´ecidabilit´e, ad´equation et compl´etude . . . 34

1.9 Conclusion . . . 35

(6)

iv Table des mati`eres

2 Probl`emes de Satisfaction de Contraintes Distribu´es 37

2.1 Introduction. . . 37

2.2 Probl`eme de Satisfaction de Contrainte Distribu´e . . . 38

2.2.1 D´efinitions . . . 39

2.2.2 Exemples d’applications . . . 40

2.3 Algorithmes complets pour la r´esolution des DisCSPs . . . 44

2.3.1 Synchronous Backtracking : SBT . . . 45

2.3.2 Asynchronous Backtracking : ABT family . . . 47

2.4 Algorithmes de propagation de contraintes distribu´es . . . 55

2.4.1 Propagation inconditionnelle : ABT-uac . . . 56

2.4.2 Propagation directionnelle : ABT-dac . . . 58

2.4.3 Asynchronous Forward Checking : AFC . . . 62

2.5 M´etriques d’´evaluation des performances . . . 66

2.5.1 Horloge logique pour les syst`emes distribu´es . . . 67

2.5.2 Horloge logique pour les multiprocesseurs . . . 68

2.5.3 Evaluation des algorithmes visant l’Internet´ . . . 68

2.5.4 Evaluations non li´ees `´ a l’horloge logique . . . 70

2.6 Conclusion . . . 70

3 Based-Nogood Asynchronous Forward-Checking 73 3.1 Introduction. . . 73

3.2 Based-nogood AFC . . . 74

3.2.1 Algorithm description . . . 75

3.3 La compl´etude de l’algorithme AFC-ng. . . 78

3.4 R´esultats exp´erimentaux . . . 79

3.5 Conclusion . . . 81

4 Asynchronous Inter Level Forward-Checking 83 4.1 Introduction. . . 83

4.2 Travaux en relation . . . 84

4.3 Nogood-based AFC r´evis´e . . . 84

4.4 Asynchronous Inter Level Forward-Checking . . . 87

4.4.1 Description de l’algorithme . . . 88 4.5 Preuve de correction . . . 89 4.6 Evaluation experimentale . . . 90 4.6.1 Communication rapide . . . 90 4.6.2 Communication lente . . . 91 4.7 Conclusion . . . 92

5 Asynchronous Maintenance of Arc-Consistency 93 5.1 Introduction. . . 93

5.2 Travaux effectu´es dans le domaine . . . 94

5.3 Asynchronous Maintenance of Arc-Consistency . . . 96

5.3.1 Description de l’algorithme . . . 97

5.4 Preuve de correction . . . 99

5.5 R´esultats exp´erimentaux . . . 100

(7)

Table des mati`eres v

II Raisonnement par contraintes distribu´ees : optimisation 103 6 R´eseaux de contraintes et optimisation 105

6.1 Introduction. . . 105

6.2 R´eseaux de contraintes valu´es . . . 106

6.3 Exemple d’un probl`eme d’optimisation . . . 107

6.3.1 Ordonnancement de systemes satellitaires . . . 107

6.3.2 Commutateurs des r´eseaux mobiles . . . 108

6.4 M´ethodes de r´esolution VCSPs . . . 110

6.4.1 Branch and Bound . . . 110

6.4.2 Pr´evision d’´echecs : FC-valu´e . . . 111

6.4.3 Extended Forward Checking Valu´e . . . 111

6.4.4 Directed Arc Concistancy Valu´e . . . 112

6.4.5 Hybridation EFC et DAC Valu´e . . . 112

6.4.6 Principe de m´emorisation des ´eches. . . 113

6.4.7 Quelques r´esultats emp´eriques . . . 119

6.5 Conclusion . . . 119

7 Probl`emes d’optimisation de contraintes distribu´es 121 7.1 Introduction. . . 121

7.2 D´efinitions. . . 122

7.3 Exemples d’optimisation distribu´ee . . . 122

7.4 M´ethodes de r´esolution compl´etes. . . 125

7.4.1 Asynchronous Forward-Bounding . . . 127

7.4.2 Asynchronous Forward-Bounding with backjumping . . . 129

7.4.3 L’algorithme ADOPT . . . 132

7.5 Conclusion . . . 136

8 Asynchrounous Beardth First Search DCOP algorithm 137 8.1 Introduction. . . 137

8.2 Le concept d’arbre BFS . . . 138

8.3 Le pr´etraitement . . . 140

8.3.1 Premi`ere phase : calcule des pseudo-voisins d’un agent . . . 140

8.3.2 De l’AFB-BJ `a l’ABFS . . . 141

8.3.3 Deuxi`eme phase : initialisation de borne . . . 144

8.4 Description de l’algorithme ABFS . . . 145

8.5 Exp´erimentations . . . 148

8.6 Conclusion . . . 151

9 Distributed Dynamic Branch & Bound algorithms 153 9.1 Introduction. . . 153

9.2 Distributed Dynamic Branch and Bound . . . 154

9.2.1 Description de l’algorithme . . . 156

9.2.2 Ad´equation et optimalit´e . . . 157

9.2.3 Exp´erimentations . . . 158

9.3 Dynamic Backtracking for Optimization : DyBop . . . 160

9.3.1 Description de l’algorithme . . . 160

9.3.2 Ad´equation et optimalit´e . . . 161

9.3.3 Exp´erimentations . . . 161

(8)

vi Table des mati`eres

Conclusions et Perspectives 169

10 Conclusion g´en´erale 169

Annexes 175

(9)

Table des figures

1.1 Exemple d’un probl`eme de coloriage de carte. . . 13

1.2 Les deux solution pour le probl`eme de 4 reines . . . 14

1.3 Solution d’une r`egle de Golomb `a 4 marques. . . 14

1.4 Exemple de recherche arborescente sur un probl`eme de 4-reines. . . 16

1.5 (La moyenne du nombre de nœuds visit´es pour resp. 0.4 (a) et 0.7 (b) . . . 21

1.6 (La moyenne du nombre de contraintes test´es pour resp. 0.4 (a) et 0.7 (b) . 22 2.1 Mod`ele d’un CSP distribu´e . . . 39

2.2 Distances inter-villes . . . 42

2.3 la repr´esentation DisCSP du probl`eme MSP . . . 43

2.4 Une Instance du probl`eme de capteurs mobiles distribu´es . . . 43

2.5 Exemple d’ex´ecution de l’algorithme ABT. . . 52

3.1 Nogood-based AFC algorithm (Partie 1) . . . 76

3.2 Nogood-based AFC algorithm (Partie 2) . . . 77

3.3 Non concurrent constraints checks et communication cost ex´ecut´e par AFC et AFC-NG sur des probl`emes DisCSPs al´eatoires (P1 = 0,5) . . . 80

3.4 Non concurrent constraints checks et communication cost ex´ecut´e par AFC et AFC-NG sur des probl`emes DisCSPs al´eatoires (P1 = 0,8) . . . 80

4.1 Nogood-based AFC algorithm running by agent self (partie 1) . . . 85

4.2 Nogood-based AFC algorithm running by agent self (Part 2) . . . 86

4.3 An example of the AILFC execution . . . 87

4.4 New lines/procedures of AILFC with respect to AFC-ng. . . 89

4.5 Total number of messages sent and NCCCs on fast communication (p1 = 0,25) . . . 90

4.6 Total number of messages sent and NCCCs on fast communication (p1 = 0,75) . . . 91

4.7 Total number of messages sent and ENCCCs on slow communication (p1 = 0,25) . . . 91

4.8 Total number of messages sent and ENCCCs on slow communication (p1 = 0,75) . . . 92

5.1 L’algorithme AMAC (Partie 1) . . . 97

5.2 L’algorithme AMAC (Partie 2) . . . 99

(10)

viii Table des figures

5.3 Non concurrent constraints checks et le coˆut de la communication ex´ecut´ee par les algorithmes AMAC, ABT-dac et ABT-uac dans les probl`emes

ran-dom DisCSPs (p1 = 0,5) . . . 100

5.4 Non concurrent constraints checks et le coˆut de la communication ex´ecuter par les algorithmes AMAC, ABT-dac et ABT-uac dans les probl`emes ran-dom DisCSPs (P1 = 0,8) . . . 101

5.5 Non concurrent constraints checks et le coˆut de la communication ex´ecut´ee par les algorithmes AMAC, ABT-dac et ABT-uac dans les probl`emes ran-dom DisCSPs (p2=0.30, d=10, 10≤ n≤ 50) . . . 101

6.1 Probl`eme d’ordonnancement des satellites . . . 107

6.2 Probl`eme d’affectation des cellules `a des commutateurs . . . 109

6.3 Exemple d’un graphe de contraintes valu´ees . . . 114

6.4 La moyenne du nombre de noeds visit´e resp. 0.25 (a) et 0.75 (b) . . . 119

7.1 Un graphe DCOP du probl`eme DMS avec l’approche PEAV . . . 125

7.2 Example d’un r´eseau de contraintes DCOP . . . 128

7.3 Les messages ´echang´es dans ADOPT . . . 134

7.4 Exemple d’ex´ecution de l’algorithme ADOPT . . . 135

8.1 Transformation d’un graphe de contraintes en un arbre DFS . . . 139

8.2 M´ecanisme d’envoi des messages FB ESTIMATE dans l’ABFS . . . 144

8.3 Le nombre moyen des messages envoy´es par ABFS and ABF-BJ en r´esolvant des instances Max-DisCSP de p1 = 0.4 . . . 148

8.4 Le nombre de NCCCs effectu´e par ABFS and ABF-BJ en r´esolvant des instances Max-DisCSP `a p1 = 0.4 . . . 148

8.5 Le nombre moyen des messages envoy´es par ABFS and ABF-BJ en r´esolvant des probl`emes de coloriage de graphe `a 3 colours. . . 149

8.6 Le nombre de NCCCs effectu´e par ABFS and ABF-BJ en r´esolvant des probl`emes de coloriage de graphe `a 3 colours. . . 149

8.7 La charge de communication de ABFS et ABF-BJ sur des probl`emes DMS 150 8.8 Le nombre de NCCCs effectu´e par ABFS and ABF-BJ pour la r´esolution des probl`emes DMS . . . 150

9.1 Exemple d’un graphe de contraintes DCOP . . . 155

9.2 Nombre moyen de messages envoy´es par DisDB&B et SynB&B . . . 159

9.3 Nombre moyen de messages envoy´es par DisDB&B et SynB&B . . . 159

9.4 Comparaison des algorithmes DyBop, ABFS, et AFB-BJ. . . 163

9.5 Comparaison des algorithmes DyBop, ABFS, et AFB-BJ. . . 164

9.6 Comparaison des algorithmes DyBop, ABFS, et AFB-BJ. . . 164

(11)

Liste des Algorithmes

1.1 Le Backtracking chronologique . . . 16

1.2 La fonction d’anticipation de l’algorithme FC. . . 17

1.3 Conflict-directed backjumping . . . 18

1.4 Dynamic Backtracking . . . 20

1.5 Proc´edure de filtrage AC-3 . . . 24

1.6 Proc´edure de filtrage AC-4 . . . 26

1.7 Proc´edure de filtrage AC-6 . . . 27

2.1 L’algorithme SBT . . . 46

2.2 L’algorithme ABTkernel: Le noyau de la recherche asynchrone avec le retour en arri`ere (1/2). . . 49

2.3 L’algorithme ABTkernel: Le noyau de la recherche asynchrone avec le retour en arri`ere (2/2). . . 50

2.4 L’algorithme ABT : Ajout de liens permanents. Seules les nouvelles parties ou celles modifi´ees sont pr´esent´ees en respectant l’ABTkernel qui figure dans l’algorithme 2.2 . . . 53

2.5 L’algorithme ABTnot : sans ajout de liens. Seules les nouvelles parties ou celles modifi´ees sont pr´esent´ees en respectant l’ABTkernel qui figure dans l’algorithme 2.2 . . . 54

2.6 L’algorithme AC pour la phase de pr´etraitement des DisCSPs . . . 57

2.7 L’algorithme ABT-uac : Seules les nouvelles parties ou celles modifi´ees sont pr´esent´ees en respectant l’ABTlien . . . 59

2.8 L’algorithme ABT-dac : Seules les nouvelles parties ou celles modifi´ees sont pr´esent´ees en respectant l’ABT-c . . . 61

2.9 L’algorithme Asynchronous Forward Checking : AFC (1/2) . . . 63

2.10 L’algorithme Asynchronous Forward Checking : AFC (2/2) . . . 64

2.11 Horloge logique de Lamport entretenait par un agent Ai. . . 67

6.1 La proc´edure B&B . . . 110

6.2 La fonction d’anticipation du Forward Checking valu´e ´etendue . . . 111

6.3 Pseudo code de l’EFC Value . . . 112

6.4 Pseudo code du DAC Value . . . 112

6.5 Pseudo code de l’EFC+DAC Value . . . 113

6.6 Valued Dynamic Backtracking . . . 116

6.7 Valued Dynamic Backtracking . . . 118

7.1 L’algorithme AFB-BJ . . . 131

8.1 La premi`ere phase de pr´etraitement dans ABFS effectu´e par l’agent Ai pour calculer ses pseudo-voisins. . . 140

(12)

8.2 La deuxi`eme phase de pr´etraitement dans ABFS effectu´ee par l’agent Ai . . 145

8.3 L’algorithme ABFS ex´ecut´e par un agent Ai . . . 147

9.1 L’algorithme DisDB&B . . . 158

9.2 L’algorithme DyBop . . . 162

10.1 L’algorithme DisAC9 . . . 177

10.2 L’algorithme ADOPT . . . 178

10.3 Proc´edures de reception de messages dans l’AFB (Partie 1) . . . 179

(13)

Avant propos

Ce m´emoire de th`ese a ´et´e r´ealis´e au sein du laboratoire LIMIARF (Laboratoire Infor-matique, Math´ematique appliqu´ees, Intelligence Artificielle et Reconnaissance de Forme) de la facult´e des sciences de Rabat.

Ce travail a ´et´e effectu´e sous la direction du Professeur El Houssine Bouyakhf de la facult´e des sciences de Rabat en Codirection avec le Professeur Mustapha BELAISSAOUI de l’ENCG de Settat, leur disponibilit´e et leur soutien m’ont permis d’achever ce travail. Je tiens `a leur exprimer ma reconnaissance et ma profonde gratitude.

Je remercie ´egalement les Professeurs Driss Mizane, Mr.Christian Bessiere et Sylvain PEICHOWIAK tous les trois rapporteurs de cette th`ese, pour avoir accepter d’´evaluer mon travail, de lire de mani`ere approfondie mon manuscrit pour apporter leurs pr´ecieux conseils.

Je tiens aussi `a remercier plus particuli`erement Mr. Christian Bessiere pour son en-cadrement, ces conseils et les diff´erents ´echanges que nous avons pu avoir et qui m’ont permis de faire ´evoluer mes id´ees et de me donner une autre vision de la recherche. Je remercie ´egalement mes examinateurs Mr. Ismail KASSOU, Mr. Mostafa BELLAFKIH et Mr. Mohammed RAMDANI pour l’int´erˆet qu’ils ont port´e `a mon travail.

Merci `a tout les membres de ma grande et ma petite famille, pour leur soutien durant toutes ces ann´ees d’´etudes, je ne saurais ˆetre qu’infiniment reconnaissant quant aux sa-crifices qu’ils ont consentis. Merci `a tous les coll`egues du laboratoire LIMIARF pour leur amiti´e et bonne humeur qui ont ´egay´e ma vie au laboratoire.

Enfin merci `a ceux et celles que je n’ai pas pu citer, mes sinc`eres amiti´es et remercie-ments.

(14)
(15)

R´esum´e

Notre travail de recherche s’articule autour de l’´etude de la technologie contraintes `a laquelle nous avons apport´e plusieurs contributions. Dans un premier temps, nous avons ´etudi´e le formalisme des Probl`emes de Satisfaction de Contraintes Distribu´es (DisCSP) par la suite nous avons d´evelopp´e plusieurs algorithmes `a aspect diff´erent. Dans un deuxi`eme temps, nous nous sommes int´eress´es aux Probl`emes d’Optimisation de Contraintes Dis-tribu´es (DCOP) dans le but de proposer des techniques originales.

Les travaux que nous avons apport´e dans cette th`ese peuvent se r´esumer comme suit. D’une part nous avons propos´e trois contributions dans le cadre des DisCSPs.❶ AFC-ng (based-nogood Asynchronous Forward-Checking) : C’est un algorithme qui consiste `a int´egrer le concept de nogood dans le protocole AFC d’origine. Ce m´ecanisme nous a permis de r´eduire consid´erablement l’arbre de recherche `a travers un apprentissage dy-namique des agents.❷AILFC (Asynchronous Inter Level Forward-Checking) : Dans cette m´ethode nous exploitons les caract´eristiques intrins`eques du graphe de contraintes, ce der-nier est transformer en une structure pseudo-arborescente. Cette approche nous a permis d’am´eliorer les performances, `a travers une recherche asynchrone et parall`element concur-rente. ❸ AMAC(Asynchronous Maintenance of Arc-Consistency AMAC) : Cette contribu-tion consiste `a la propagation des effets d’arc-inconsistance `a travers les agents voisins. Cet algorithme contribue `a la r´eduction de l’espace de recherche de mani`ere `a ce que les inconsistances caus´ees par les suppressions potentielles des valeurs soient propag´ees. D’autre part nous avons r´ealis´e trois approches de r´esolution des probl`emes DCOPs. ❶ ABFS (Asynchronous Breadth-First Search DCOP) : Cet algorithme consiste `a transfor-mer le graphe de contraintes du probl`eme `a r´esoudre en un arbre Breadth-First Search (BFS), le parcours des agents en largeur-d’abord a permis la r´eduction de l’espace de recherche et l’am´elioration de la solution. ❷ DisDB&B (Distributed Dynamic Branch and Bound) : Une nouvelle m´ethode pour l’ordonnancement dynamique des agents et c’est aussi une approche de base pour l’apprentissage distribu´e des nogoods valu´es. ❸ DyBop (Dynamic Backtracking for DCOP) : Une version Asynchrone de l’algorithme DisDB&B. Cette technique est bas´ee sur l’int´egration du m´ecanisme “forward checking”, permettant l’am´elioration des bornes inf´erieures.

Tous ces algorithmes ont ´et´e impl´ement´es dans la plate-forme DisChoco, ce qui a permis de r´ealiser plusieurs ´evaluations exp´erimentales. Celles-ci ont montr´e que ces algorithmes permettent d’obtenir un niveau de performances beaucoup plus ´elev´e que les m´ethodes d´ej`a existantes.

(16)

xiv R´esum´e

Abstract

This thesis articulates mainly around the study of two distributed resolution forma-lisms. So, several contributions have been proposed. At first, we have studied Distributed Constraints Satisfaction Problems ( DisCSP) and developed several algorithms with dif-ferent aspect. Then, we have been interested in Distributed Constraints Optimization Problems (DCOP) and we have proposed original techniques.

The work we have made in this thesis can be summarized as follows. First we have proposed three contributions in DisCSP.❶AFC-ng(based-nogood Asynchronous Forward-Checking) : This algorithm is conceived by the intergration of nogood concept in the original protocol (AFC). This mechanism allowed us to reduce considerably the size of the search tree by a dynamic learning of the agents. ❷ AILFC (Asynchronous Inter Le-vel Forward-Checking) : This method exploits the intrinsic properties of the constraints network by transforming the constraints graph into a pseudo-tree structure. This trans-formation allowed us to improve the performances through a parallel concurente search strategy.❸AMAC(Asynchronous Maintenance of Arc-Consistency AMAC) : This contribu-tion consists of the propagacontribu-tion of arc-consistency. the AMAC algorithm contribute in the reduction of the search space in a way that the inconsistencies caused by the potential de-letions are propagated. On the other hand we have made three DCOP solving approach.❶ ABFS(Asynchronous Breadth-First Search DCOP) : This algorithm is based on processing the constraints graph into a Breadth-First Search tree. ❷ DisDB&B (Distributed Dyna-mic Branch and Bound) : It’s a new approach of dynaDyna-mic agents re-ordering for DCOPs resolution. It can be considered as a preliminary algorithm for valued nogoods learning. ❸ DyBop (Dynamic Backtracking for DCOP) : It’s an extended asynchronous version of DisDB&B algorithm. It consists in the integration of the Forword-Checking mecanism to improve the lower bound estimations.

All these algorithms have been implemented in DisChoco plateform, which has allowed certain experiments evaluation. These have shown that these algorithms can obtain a level of performance higher than other existing methods.

(17)

Introduction g´en´erale

Contexte du travail

Paradigme de programmation

La programmation par contraintes est l’un des paradigmes les plus int´eressants qui a occup´e r´ecemment une place importante dans la recherche scientifique. En effet, elle a apport´ee un nouveau souffle `a la r´esolution des probl`emes fr´equemment rencontr´es (des probl`emes de taille, `a domaine discret et souvent avec des contraintes non lin´eaires), l`a o`u les autres techniques ne pouvaient plus les prendre en consid´eration. Cette techno-logie contrainte est consid´er´ee comme ´etant un cadre de r´esolution des probl`emes pu-rement combinatoires. L’int´erˆet d’une telle approche est ´evident, la sp´ecification et la conception du probl`eme peuvent ˆetre confi´ees `a un sp´ecialiste dans son domaine (planifi-cation, gestion de stocks, conception de circuits,...) mais non sp´ecialiste dans la r´esolution des probl`emes combinatoires. L’id´ee sous-jacente est que la partie difficile du travail sera r´esolue d´efinitivement lors de l’´ecriture du solveur de contraintes. Comme a dit Eugene C. Freuder : ”La programmation par contraintes repr´esente une des avanc´ees que l’informa-tique ait jamais r´ealis´ee qui se rapproche le plus du Saint Graal de la programmation : l’utilisateur d´efinit le probl`eme, l’ordinateur le r´esout”.

Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming : the user states the problem, the computer solves it. Eugene C. Freuder, CONSTRAINTS, April 1997 Cependant, Un nombre important d’entreprises et de projets de recherches se sont lanc´es dans le d´eveloppement de solveurs de contraintes : CHIP (COSYTEC), Ilog Solver (Ilog), CHOCO, Minion, etc. Malgr´e ces efforts, cette discipline a connu un manque impor-tant des solveurs distribu´es. Le solveur DisChoco de notre laboratoire est l’un des projets aboutis dans ce domaine. Cette plate forme va servir comme une base d’impl´ementation et d’´evaluation des techniques propos´ees dans cette th`ese.

Formalismes de r´esolution distribu´es

Le formalisme des probl`emes de satisfaction de contraintes [Tsa93] (Constraint Sa-tisfaction Problems CSP) a permis de couvrir depuis une d´ecennie un grand nombre de

(18)

2 Introduction g´en´erale

probl`emes pratiques (planification, ordonnancement, emploi du temps ...) dont de nom-breux exemples ont ´et´e recens´es et catalogu´es. D’un point de vue calculatoire, les probl`emes consid´er´es induisent bien souvent des complexit´es algorithmiques ´elev´ees appartenant `a la classe des probl`emes NP-complets. Ces probl`emes partagent une structure de descrip-tion commune, bas´ee sur un formalisme tr`es simple, qui autorise une mod´elisadescrip-tion claire et intuitive, permettant de r´esoudre le probl`eme d’une mani`ere `a satisfaire toutes les contraintes impos´ees. Souvent certains probl`emes combinatoires n’admettent aucune so-lution. Cette classe de probl`emes dite surcontrainte est r´esolue par un formalisme plus vaste des probl`emes d’optimisation de contraintes COPs. Les contraintes sont souvent pond´er´ees, et le but revient `a minimiser ou maximiser une fonction objectif.

De nombreux probl`emes combinatoires `a caract`ere distribu´e sont expos´es devants la communaut´e d’intelligence artificielle : les probl`emes de gestion distribu´ee de ressources, les probl`emes de gestion du trafic a´erien distribu´es, le probl`eme de gestion d’une constellation de satellites d’observation de la Terre, les r´eseaux de capteurs distribu´es (Distributed Sen-sor Network ), ainsi que des probl`emes plus quotidiens, telle que la planification distribu´ee des r´eunions (distributed meeting scheduling) etc. En g´en´eral, pour ce type de probl`emes, il est impossible ou peu souhaitable de rassembler toutes les donn´ees du probl`eme sur un seul site, pour le r´esoudre par un solveur centralis´e. Les raisons les plus imm´ediates sont : Le surcoˆut de traduction de tous les sous-probl`emes dans un format commun et la confi-dentialit´e des donn´ees. Ces questions ont motiv´e une partie de la communaut´e scientifique `

a s’int´eresser au raisonnement par contraintes distribu´ees, dont les travaux ont port´e sur le d´eveloppement des techniques de mod´elisation et de r´esolution de probl`emes combinatoires distribu´es avec ou sans crit`ere d’optimisation.

Le raisonnement par contraintes distribu´e apporte lui aussi sur deux principales for-malismes assez riches par leurs simplicit´es et par leurs puissances d’expression. Ces forma-lismes sont dits Probl`emes de Satisfaction de Contraintes Distribu´es (DisCSP) et Probl`emes d’Optimisation de Contraintes Distribu´es (DCOP). Ils permettent de d´efinir un probl`eme d’une fa¸con simple et naturelle `a l’aide de la notion de contraintes.

Le probl`eme de satisfaction de contraintes distribu´e (DisCSP) est une discipline encore jeune. Les premiers papiers sont apparus au d´ebut des ann´ees 90 [Gue93]. Apr`es les travaux pilotes de Yokoo et de ses collaborateurs [YDIK92], [YH96], [Yok95], beaucoup de papiers sont apparues et finalement le formalisme DisCSP est devenu un cadre de recherche trop riche. R´ecemment (en 2003), ce formalisme a ´et´e ´etendu par J.P. Modi pour traiter les probl`emes combinatoires distribu´es avec crit`ere d’optimisation. Le nouveau formalisme est dit Probl`emes d’Optimisation de Contraintes Distribu´es (DCOP).

Au cours des dix derni`eres ann´ees, de nombreux algorithmes et syst`emes ont ´et´e d´evelopp´es pour r´esoudre les probl`emes DisCSP/DCOPs. Classiquement, on identifie deux grandes familles au sein de ces techniques de r´esolution. D’une part, les m´ethodes compl`etes (ou exactes), dont l’objectif est de r´epondre `a un probl`eme de d´ecision. D’autre part, les m´ethodes incompl`etes (ou approch´ees) qui ne peuvent pas aboutir `a l’insatisfiabilit`e d’un probl`eme. Dans cette th`ese nous nous int´eressant plus particuli`erement aux m´ethodes compl`etes.

L’objectif de notre travail est de contribuer `a la r´esolution des probl`emes combina-toires `a aspect distribu´e. Pour ce faire, nous nous sommes int´eress´es au d´eveloppement des algorithmes de r´esolution efficaces pour les probl`emes DisCSP et DCOP.

(19)

Introduction g´en´erale 3

Motivations

L’ensemble des formalismes que nous venons d’exposer est trop vaste, leurs principes fondamentaux sont tr`es vari´es et leurs propri´et´es sont diverses. En outre, les approches qui nous interesse pr´esentent une v´eritable caract´eristique de compl`etude. Cependant, l’uti-lisateur se trouve souvent confront´e `a un dilemme. En effet, si les m´ethodes compl`etes pr´esentent l’avantage de garantir le r´esultat de recherche (preuve d’insatisfiabilit´e, obten-tion possible de l’ensemble des soluobten-tions, obtenobten-tion de la soluobten-tion optimale), elles trouvent toutefois des limites avec l’augmentation de la taille et de la complexit´e des probl`emes consid´er´es. En particulier dans le cas de probl`emes NP-complets, l’explosion combinatoire de l’espace de recherche induit un coˆut de calcul prohibitif.

Notre principale motivation est de proposer des nouvelles approches de r´esolution des probl`emes DisCSPs/DCOPs, qui sont plus performants par rapport `a ce qui existe actuel-lement sur le march´e des solveurs. Dans notre travail nous nous sommes int´eress´es `a deux principales pr´eoccupations :

R´esolution des probl`emes de satisfaction de contraintes distribu´es :

Dans le cadre des probl`emes de satifaction de contraintes distribu´es (DisCSPs) plu-sieurs algorithmes ont vu le jour. Parmi ces m´ethodes nous nous int´eressons aux plus r´ecentes, entre autres, l’algorithme Asynchronous Forward-Checking (AFC)

[MZ03,AGM08] qui a prouv´e sa performance par rapport `a l’algorithme ABT

(l’algo-rithme le plus ´etudi´e dans la lit´erature). Bien que AFC a montr´e ses performances vis `

a vis les algorithmes existants, nous avons constat´e que ce dernier pr´esente toujours un certain nombre de d´efaillances (Un ´echange inutile des messages, r´e-explorations redondantes de l’arbre de recherche, ...). Pour rem´edier `a ces probl`emes nous allons propos´e trois approches possibles de r´esolution. la premi`ere consiste `a une int´egration coh´erente du concept des nogoods dans l’algorithme AFC. La deuxi`eme est bas´ee es-sentiellement sur le principe de calcule parall`ele et la strat´egie de recherche DFS (Depth First Search). la troisi`eme approche est fond´ee sur le principe de la propa-gation de l’arc-consistance.

R´esolution des probl`emes d’optimisation de contraintes distribu´es :

Dans le cadre des probl`emes d’optimisation de contraintes distribu´es (DCOP), l’al-gorithme Asynchronous forward-bounding (AFB) a ´et´e r´ecemment propos´e comme nouvelle m´ethode de r´esolution des DCOPs [MZ05]. Cet algorithme a ´et´e ´etendu par Gershman et al. [GMZ07] en ajoutant un m´ecanisme de backjumping. L’algorithme r´esultant est appel´e AFB with backjumping (AFB-BJ) [GMZ07]. Dans [GMZ07] les r´esultats montrent que l’AFB-BJ obtient de meilleures performances par rap-port `a ADOPT l’algorithme le plus connu pour r´esoudre les DCOPs [MSTY05]. Cependant, nous avons observ´e que cet algorithme ex´ecute plusieurs op´erations re-dondantes lors du calcul des coˆuts et d’envoi de messages. Dans un premier lieu, nous nous int´eressons `a l’´elimination de ces op´erations redondantes en utilisant une strat´egie de recherche bas´ee sur la transformation du graphe des agents en un arbre BFS. En second lieu, nous nous pr´eoccupons de l’efficacit´e en utilisant un ordre dy-namique des agents. Plusieurs algorithmes DCOP utilisent un ordre statique sur les agents, ce qui limite leurs efficacit´es. L’utilisation d’un ordre dynamique est toujours pr´ef´erable. Mais, pour assurer la compl`etude, un m´ecanisme de m´emorisation des parties explor´ees est n´ecessaire. Finalement, le concept des nogoods valu´es [DV96] a d´ej`a prouv´e son efficacit´e dans le cadre centralis´e. Nous nous int´eressons `a adapter ce concept pour d´evelopper des algorithmes dynamiques pour r´esoudre les probl`emes d’optimisation de contraintes distribu´es (DCOP).

(20)

4 Introduction g´en´erale

Contributions

Journaux internationaux :

1. “Asynchronous Maintenance of Arc Consistency”. I. Benelallam, S. Hammoujan, R. Ezzahir, H. Bouyakhf. In Journal of Applied Mathematical Sciences, Vol. 4, 2010, no. 25, 1197 - 1212 .

2. “Asynchronous Breadth First Search DCOP algorithm”. R. Ezzahir, C. Bessi´ere, I. Benelallam, H. Bouyakhf, M. Belaissaoui. In Journal of Applied Mathematical Sciences, Vol. 2, 2008, no. 37, 1837 - 1854.

Conf´erences internationales :

1. “Distributed Dynamic Branch-and-Bound for DisCOPs”. I. Benelallam, M. Belais-saoui, R. Ezzahir, E.H. Bouyakhf. In proceeding of CARI’09, Rabat, Morocco. 2. “Asynchronous Iter-level Forward-Checking for DisCSPR”. R. Ezzahir, C. Bessiere,

M. Wahbi, I. Benelallam, E. H. Bouyakhf. In Proceeding of CP’09, Portugal. 3. “Dynamic Branch and Bound distribu´e”. I. Benelallam, M. Belaissaoui, R.

Ezza-hir, E.H. Bouyakhf. In proceeding of JFPC’08, Nantes, France.

4. ”Dynamic Backtracking search for Distributed Constraint Optimization Problems“. R. Ezzahir, C. Bessi´ere, I. Benelallam, E.H. Bouyakhf, M. Belaissaoui. In Euro-pean Conference in Artificial Intelligence ECAI’08.

5. ”Asynchronous Breadth First Search DCOP algorithm“. R. Ezzahir, C. Bessi´ere, I. Benelallam, H. Bouyakhf, M. Belaissaoui. In fifth European Workshop on Multi-Agent Systems. EUMAS’07, Hammamat, Tunisia.

6. ”Probl`emes de satisfaction des contraintes valu´es : Technique de r´esolution des em-plois du temps universitaires“, I. Benelallam, E. Bouyakhf, M. Belaissaoui, S. Pie-chowiak, MCSEAI’06, Agadir, Maroc.

Conf´erences nationales avec comit´e de sell´ection :

1. ”AMAC : Asynchronous Maintenance of Arc Consistency“. S. Hammoujan, I. Be-nelallam, H. Bouyakhf. In proceeding of JOSTIC’08, Rabat, Maroc.

2. ”Distributed Constraints Optimization Problems based valued nogoods recording“. I. Benelallam. R. Ezzahir, H. Bouyakhf, M. Belaissaoui, In proceeding of SI-TA’08, Rabat, Maroc.

(21)

Introduction g´en´erale 5

Organisation de la th`

ese

Le rapport de cette th`ese se divise en deux parties qui d´ebutent par un rappel de l’´etat de l’art des deux formalismes DisCSP et DCOP. La premi`ere partie est compos´ee de cinq chapitres. Le premier chapitre pr´esente le cadre des m´ethodes de r´esolution CSP, avec un rappel des notations et des principales caract´eristiques d’une mod´elisation CSP en citant des exemples pratiques. Ensuite, nous d´ecrivons la r´esolution des probl`emes par des m´ethodes compl`etes, introduisant les notions de consistances, de filtrage, de propagation et les algorithmes en faisant usage. Dans le deuxi`eme chapitre nous pr´esentons l’extension du formalisme DisCSP par un rappel des principales m´ethodes de r´esolution. Dans les trois derniers chapitres nous pr´esentons les trois principales contributions, `a savoir les algorithmes AFC-ng, AILFC et AMAC.

La seconde partie est compos´ee de quatre chapitres, elle est consacr´ee au formalisme des Probl`emes d’Optimisation de Contraintes Distribu´es (DCOPs). Nous introduisons tout d’abord dans le premier chapitre le concept des CSPs valu´es, permettant de for-maliser les probl`emes d’optimisation par la technologie contrainte. Ensuite, un ensembles des m´ethodes d’optimisation compl`etes est pr´esent´e. Introduisant ainsi le concept des no-goods valu´es, d’ordonnancement dynamique et les algorithmes faisant usage. Le chapitre suivant sera consacr´e `a l’´etude distribu´ee des probl`emes d’optimisation. Les deux derniers chapitres serrons consacr´es `a la pr´esentation des trois nouvelles approches d’optimisation de contraintes distribu´es `a savoir les algorithmes DisB&B , DyBop et ABFS.

Finalement, dans le dixi`eme chapitre, nous pr´esentons une conclusion g´en´erale qui r´esumera nos contributions et ouvrira sur des diff´erentes perceptives de recherches.

(22)
(23)

Premi`

ere partie

Raisonnement par contraintes

distribu´

ees : satisfaction

(24)
(25)

Chapitre

1

Probl`emes de Satisfaction de Contraintes

Préambule

Dans ce apitre, nous présentons les principales notions liées aux problèmes de satisfaction de contraintes

centralisée (CSP Constraint Satisfaction Problem), qui se situe au cœur de nos travaux de reere. Nous

présentons ici à travers des exemples un formalisme générique et aisé, pour introduire dans notre état de

l’art les teniques de base de la programmation par contrainte d’une part, et d’autre part, se servir de ces

définitions pour présenter nos contributions dans les apitres qui suivent.

1.1

Introduction

L

a majorit´e des probl`emes issus du domaine Intelligence Artificielle ainsi que d’autres disciplines de l’informatique peuvent ˆetre mod´elis´es comme des probl`emes de satisfaction de contraintes (CSP) [Nad90]. Nous trouvons des exemples en conception de sc`enes en 3D [DR81], en maintien de la coh´erence [Dec87, DD88], en ordonnancement [DR90], en raisonnement temporel [All83], en th´eorie des graphes [McG79], en architecture [Eas72], en planification d’exp´erimentations g´en´etiques [Ste81], en conception de circuit [dKS80], en conception et fabrication de machines [FM87], ou encore en raisonnement diagnostique [GP87].

Le concept CSP vise `a repr´esenter sous forme de contraintes les propri´et´es et les re-lations qui existent entre les objets manipul´es. Ces contraintes peuvent ˆetre d´ecrites de multiples fa¸cons (par une ´equation, une in-´equation, un pr´edicat, une fonction bool´eenne, une ´enum´eration des combinaisons de valeurs autoris´ees, etc). Elles traduisent l’autorisa-tion ou l’interdicl’autorisa-tion d’une combinaison de valeurs. Toutefois, trouver une solul’autorisa-tion `a de tels probl`emes exige tr`es souvent un temps de calcul exponentiel.

Dans ce qui suit, nous rappellerons les notations, les d´efinitions li´ees `a ce formalisme, par la suit nous d´ecrivons la complexit´e th´eorique d’un probl`eme combinatoire ainsi que des exemples de son utilisation. Des m´ethodes de r´esolution, de filtrage et de consistance d’arc seront discut´ees `a la fin.

(26)

10 Chapitre 1. Probl`emes de Satisfaction de Contraintes

1.2

Probl`

eme de Satisfaction de Contrainte

1.2.1 Notations et d´efinitions

Un CSP est g´en´eralement pr´esent´e sous la forme d’un ensemble de variables, auxquelles sont associ´es des domaines, ainsi qu’un ensemble de contraintes. Chaque contrainte est d´efinie sur un sous-ensemble de l’ensemble des variables et limite les combinaisons de valeurs que peuvent prendre ces variables. La r´esolution d’un CSP consiste `a trouver une affectation de valeur pour chaque variable de telle sorte que l’ensemble des contraintes soit satisfait. Pour certains probl`emes, le but est de trouver toutes ces affectations. Toutefois, trouver une solution `a de tels probl`emes exige tr`es souvent un temps de calcul exponentiel. ce qui est NP-complet. Nous allons par la suite pr´esenter non pas le cadre g´en´eral, mais nous restreindre `a des domaines finis de valeurs discr`etes. Cette limitation se traduit dans les exemples pr´esent´es et, nous verrons par la suite, se justifie par des exp´erimentations pour des probl`emes `a domaines finis.

D´efinition 1.1. (Un probl`eme de satisfaction de contraintes [Mon74, Tsa93]) : Un probl`eme de satisfaction de contraintes (CSP) est d´efini par un triplet hX, D, Ci o`u :

≻ l’ensemble X = {x1, ..., xn} est un ensemble de n variables.

≻ `a chaque variable xi ∈ X est associ´ee un domaine de valeurs Di ∈ D. Elle peut

donc recevoir toute valeur a ∈ Di (D = {D1, D2, ..., Dn}).

≻ l’ensemble C est un ensemble de contraintes. Chaque contrainte c ∈ C est d´efinie sur un ensemble de variables Xc ⊂ X (scope(c)=Xc) par une relation, ´egalement

not´ee c, qui est un sous-ensemble du produit cart´esien Q

i∈XcDi qui sp´ecifie les

combinaisons de valeurs (ou tuples) autoris´ees pour les variables de Xc.

Les contraintes peuvent ˆetre exprim´ees sous diff´erentes formes : en extension, en pr´esentant l’ensemble des tuples autoris´es (ou interdits), ou en intention, en donnant les formules math´ematiques, etc. Ce sont des relations entre des variables qui d´efinissent la structure du probl`eme `a r´esoudre.

D´efinition 1.2. (Contrainte) :

Soit un CSP hX, D, Ci, une contrainte c ∈ C sur les variables xi1, ..., xik pour i1, ..., ik ∈

{1, ..., n} est une relation dans Dxi1 × ... × Dxik , domaines des variables xi1, ..., xik . On

a donc :

c ⊆Qik

j=i1Dxj

On note var(c), l’ensemble des variables intervenant dans la contrainte c. D´efinition 1.3. (Arit´e) :

L’arit´e d’une contrainte c ∈ C est le nombre de variables sur lesquelles elle porte (i.e. le cardinal de var(c)). On dira que la contrainte est :

≻ unaire si son arit´e est ´egale `a 1 ≻ binaire si son arit´e est ´egale `a 2 ≻ n-aire si son arit´e est ´egale `a n ´

Etant donn´e un CSP hX, D, Ci, sa r´esolution consiste `a affecter des valeurs aux va-riables, de telle sorte que toutes les contraintes soient satisfaites. On introduit pour cela les notations et d´efinitions suivantes.

(27)

1.2. Probl`eme de Satisfaction de Contrainte 11

D´efinition 1.4. (Affectation partielle) :

Soit un CSP hX, D, Ci, une affectation partielle A d’un ensemble de variables XA =

{x1, ..., xk} ⊂ X affecte `a chaque variable de XA une valeur de son domaine. En d’autres

termes, une affectation de XA correspond `a un k-uplet de D1× ... × Dk. On notera A(xi)

la valeur que A affecte `a xi. Une affectation est une fonction :

s : X →Qk

i=1Dxi

telle que s(xi) ∈ Dxi pour i ∈ [1..k].

Une affectation est dite totale si elle instancie toutes les variables du probl`eme ; elle est dite partielle si elle n’en instancie qu’une partie.

D´efinition 1.5. (Affectation partielle localement consistante) :

Une affectation partielle d’un ensemble de variables XA⊂ X est localement consistante si

et seulement si elle satisfait toutes les contraintes portant uniquement sur des variables de XA.

Lemme 1.1. Une affectation partielle localement inconsistante est globalement incoh´erente. D’autres d´efinitions sont n´ecessaires pour ´enoncer les principales caract´eristiques des CSP ; nous devons d´efinir les notions de solution et d’espace de recherche. Nous terminerons par une repr´esentation graphique d’un probl`eme.

D´efinition 1.6. (Espace de recherche) :

L’espace de recherche d’un CSP P = hX, D, Ci est l’ensemble des affectations possibles que l’on notera S.

S = Dx1 × Dx2 × ... × Dxn

Avec D = {Dx1, ..., Dxn}. L’espace de recherche est ´egal au produit cart´esien de l’ensemble

des domaines des variables et une affectation s sera assimil´ee `a un ´el´ement de cet ensemble S (i.e. s = (d1, ..., dn)).

On dit qu’une affectation partielle est globalement consistante (ou compl`etable) si et seulement si elle peut ˆetre ´etendue `a une solution.

Une affectation s ∈ S satisfait une contrainte ck∈ C si toutes les variables de var(ck)

sont instanci´ees par s et si la relation d´efinie par ckest v´erifi´ee pour les valeurs des variables

de var(ck) donn´ees par s. Pour simplifier, on notera : s ∈ ck .

D´efinition 1.7. (Solution) :

Une solution d’un CSP P = hX, D, Ci est une affectation s ∈ S qui satisfait toutes les contraintes. On note Sol(P ) l’ensemble des solutions.

Sol(P ) = {s ∈ S | ∀c ∈ C, s ∈ c}

L’ensemble des solutions correspond `a tout ´el´ement de l’espace de recherche (affectations) appartenant aussi aux valeurs permises pour chaque contrainte.

D´efinition 1.8. (Graphe et hyper-graphe de contraintes) :

A chaque CSP P = hX, D, Ci peut ˆetre associ´e, pour les contraintes binaires, un graphe des contraintes (ou graphe associ´e) obtenu en repr´esentant chaque variable du r´eseau par un sommet et chaque contrainte binaire qui porte sur les variables xi et xj , not´ee cij ∈ C

par une arˆete entre les sommets xi et xj. Dans le cas des CSP avec des contraintes

n-aires, on peut utiliser la repr´esentation par hyper-graphe, en rempla¸cant les arˆetes par des hyper-arˆetes.

(28)

12 Chapitre 1. Probl`emes de Satisfaction de Contraintes

Un syst`eme de contraintes est commun´ement repr´esent´e par un graphe non orient´e. Il permet d’avoir un rendu graphique du probl`eme ; il se trouve ainsi ˆetre parfois l’in-term´ediaire entre le probl`eme r´eel et sa transcription dans le formalisme CSP. C’est le cas par exemple pour le probl`eme de coloriage de graphe qui sera pr´esent´e dans la section suivante.

1.2.2 Exemples de formalisation

Comme sugg´er´e en d´ebut de chapitre, une multitude de probl`emes se mod´elisent sous forme de CSP. Dans ce qui suit nous rappellerons des probl`emes simples, i.e., acad´emiques. 1.2.2.1 Le probl`eme du Z`ebre

Le probl`eme du Z`ebre est un puzzle logique qui figure parmi les classiques du genre, il se pose comme suit : Cinq maisons de couleurs diff´erentes sont habit´ees par cinq personnes de nationalit´es distinctes, ces personnes ont leurs boissons pr´ef´er´ees, leurs animaux domes-tiques et leurs sports pratiqu´es eux aussi diff´erents. Les informations dont nous disposons sont les suivantes :

≻ l’anglais habite la maison rouge ; ≻ l’espagnol a un chien ;

≻ la personne dans la maison verte boit du caf´e ; ≻ l’irlandais boit du th´e ;

≻ la maison verte est `a droite de la maison ivoire ; ≻ le joueur de Go poss`ede un escargot ;

≻ la personne dans la maison jaune joue au cricket ; ≻ la personne dans la maison du milieu boit du lait ; ≻ le nig´erien habite la premi`ere maison ;

≻ le judoka habite `a cˆot´e de la personne qui a un renard ; ≻ le joueur de cricket est `a cˆot´e de celui qui a un cheval ; ≻ le joueur de poker boit du jus d’orange ;

≻ le japonais joue au polo ;

≻ le nig´erien habite `a cˆot´e de la maison bleue ;

La question est alors la suivante : «Qui poss`ede le z`ebre et qui boit de la Guinness ?» Le probl`eme est mod´elis´e en num´erotant les maisons de gauche `a droite, de 1 `a 5. Chaque couleur, personne, chose, animal, sport, boisson constitue une variable dont le domaine contient initialement les nombres de 1 `a 5. Ainsi, si la couleur bleue est instanci`ee par la valeur 3, cela signifie que la maison 3 est bleue. Soit la liste des variables de taille 5 suivante, rang´ees par cat´egorie :

≻ Anglais, Espagnol, Irlandais, Nig´erien, Japonais, ≻ Rouge, Verte, Bleue, Ivoire, Jaune,

≻ Chien, Escargot, Renard, Z`ebre, Cheval, ≻ Judo, Go, Cricket, Poker, Polo

≻ Lait, Guinness, Caf´e, Th´e, Jus, La liste des contraintes :

≻ Anglais = Rouge, ≻ Espagnol = chien, ≻ Verte = Caf´e

(29)

1.2. Probl`eme de Satisfaction de Contrainte 13 ≻ Irlandais = Th´e, ≻ Verte = Ivoire + 1 ≻ Go = Escargot, ≻ Cricket = Jaune, ≻ Lait = 3, ≻ Nig´erien = 1, ≻ |Judo - Renard| = 1, ≻ |Cricket - Cheval| = 1, ≻ Poker = Jus, ≻ Polo = Japonais ≻ |Nig´erien - Bleue | = 1,

1.2.2.2 Probl`eme de coloriage de graphes ´

Etant donn´e un graphe et un nombre de couleurs. Le probl`eme consiste `a affecter une couleur pour chaque nœud du graphe en respectant la contrainte que les nœuds adjacents ne doivent pas avoir la mˆeme couleur. Une instance du probl`eme de coloriage de graphe est le coloriage de carte : Il s’agit de colorier toutes les r´egions d’une carte, de telle sorte que deux r´egions ayant une fronti`ere en commun soient colori´ees avec deux couleurs diff´erentes. Pour cela on dispose d’un ensemble de couleurs et on peut ´etablir aussi que chaque r´egion puisse choisir sa couleur `a partir d’un sous-ensemble de cet ensemble. La figure1.1montre un exemple de coloriage de carte : `a gauche la carte `a colorer avec trois couleurs (r : rouge, v : vert et b : bleu) et `a droite la pr´esentation du probl`eme en probl`eme de coloriage de graphe o`u chaque noeud repr´esente une zone de la carte et des arcs repr´esentent les contraintes. Ce probl`eme est un CSP (X, D, C) o`u :

X = {w, x, y, z} est l’ensemble de variables.

D = {Dw, Dx, Dy, Dz/Dw = Dx= Dy = Dz = {r, v, b}} est l’ensemble des domaines.

C = {Cw,x, Cw,y, Cx,y, Cx,z, Cy,z} l’ensemble de contraintes o`u Cx,y : x 6= y

≻ L’affectation partielle A1 = (x = r, z = v) est localement consistante.

≻ L’affectation A2 = (x = r, z = v, w = b) est localement consistante mais elle est

globalement incoh´erente. Car on ne peut affecter aucune valeur `a la variable y. ≻ Une solution pour ce probl`eme est : (x = r, y = v, z = b, w = b)

Fig.1.1 – Exemple d’un probl`eme de coloriage de carte.

1.2.2.3 Probl`eme de N-reines

Parmi les probl`emes de CSP les plus connus figurent le probl`eme de n-reines et le probl`eme de coloration de graphe. Le probl`eme de n-reines consiste `a placer n reines sur un ´echiquier comportant n lignes et n colonnes, de mani`ere `a ce qu’aucune reine ne soit en

(30)

14 Chapitre 1. Probl`emes de Satisfaction de Contraintes

prise. On rappelle que 2 reines sont en prise si elles se trouvent sur une mˆeme diagonale, une mˆeme ligne ou une mˆeme colonne de l’´echiquier. On peut prendre par exemple n=4 ou n=5.

Une mod´elisation simple du probl`eme de n-reines : • Variables : X = { xi / 1 ≤ i ≤ n}.

• Domaines : ∀xi ∈ X , D(xi) = { j /1 ≤ j ≤ n }

• Contraintes :

⋆ Les reines doivent ˆetre sur des lignes diff´erentes : Clig = {xi 6= xj / i 6= j, 1 ≤ i ≤ n et 1 ≤ j ≤ n}

⋆ Les reines doivent ˆetre sur des diagonales montantes diff´erentes : Cdm = {xi+i 6= xj+j / i 6= j , 1 ≤ i ≤ n et 1 ≤ j ≤ n}

⋆ Les reines doivent ˆetre sur des diagonales descendantes diff´erentes : Cdd = {xi-i 6= xj-j / i 6= j , 1 ≤ i ≤ n et 1 ≤ j ≤ n}

L’ensemble des contraintes est d´efini par l’union de ces 3 ensembles : C = Clig∪ Cdm∪ Cdd.

Les deux solutions possibles pour le cas de 4-reines sont pr´esent´ees dans la figure1.2.

(a) solution 1 (b) solution 2

Fig.1.2 – Les deux solution pour le probl`eme de 4 reines

1.2.2.4 La r`egle de Golomb

Le probl`eme de Golomb consiste `a placer N marques sur une r`egle pour que toutes les distances entre les marques soient diff´erentes, la figure 1.3illustre le placement de quatre marques.

Fig. 1.3 – Solution d’une r`egle de Golomb `a 4 marques.

Les r`egles du professeur de math´ematiques Solomon W. Golomb suscitent un int´erˆet particulier et l’aspect combinatoire de ce probl`eme est encore aujourd’hui ´etudi´e, comme le montre les travaux de Meyer et al. [MJ06].

(31)

1.3. M´ethodes de r´esolution des CSPs 15

1.3

ethodes de r´

esolution des CSPs

Le concept CSP permet de repr´esenter un grand nombre de probl`emes, comme rappel´ee dans la section pr´ec´edente, et il n’existe pas de m´ethode universelle pour une r´esolution efficace. Diverses techniques ont ´et´e mises au point, notamment en utilisant les notions de parcours d’arbre et de consistance, que nous allons d´evelopper dans ce chapitre, ainsi que des combinaisons de ces m´ethodes pour former des algorithmes de r´esolution.

´

Etant donn´e un CSP, un solveur a pour objectif de fournir les solutions satisfaisant les contraintes dans la mesure o`u cela est possible. Les propri´et´es des solveurs peuvent s’´enoncer ainsi :

≻ Un solveur est complet s’il est toujours capable de r´epondre par vrai ou faux concer-nant l’existence d’une solution.

≻ Un solveur est correct s’il ne calcule que des solutions.

≻ Un solveur est fiable s’il calcule toutes les solutions pour un probl`eme donn´e. Dans un cas id´eal, l’ex´ecution d’un solveur doit se terminer en un temps fini, four-nir toutes les solutions, satisfaisant bien sˆur toutes les contraintes. Pour ´eviter de tester toutes les combinaisons variable-valeur inh´erentes `a la formulation d’un CSP, la plupart des approches utilisent le filtrage par consistance. Ce filtrage consiste `a supprimer les va-leurs des domaines ne pouvant satisfaire certaines contraintes et ainsi `a r´eduire l’espace de recherche.

Dans cette section, nous pr´esenterons diff´erentes m´ethodes pour la r´esolution des CSP par des algorithmes complets, de l’´enum´eration de toutes les combinaisons possibles vers des m´ethodes plus ´elabor´ees : utilisation des consistances et d’algorithmes de filtrage d´edi´es `

a chaque type de contraintes. Nous pr´esenterons les propri´et´es de consistance et nous verrons dans quelle mesure elles sont transcrites en terme d’algorithmes.

1.3.1 Le Bachtracking chronologique

Le backtracking est sans aucun doute la m´ethode la plus r´epandue pour une recherche syst´ematique. Il est consid´er´e comme ´etant l’algorithme de base de r´esolution des probl`emes CSPs est le simple retour-arri`ere «Backtracking» [BR75]. Le Backtracking est une strat´egie de recherche qui a ´et´e largement utilis´ee dans les solveurs de contraintes (Choco, Minion, etc). Dans le cadre CSP, le fonctionnement de base est de choisir une seule variable `a la fois, et d’envisager pour elle une valeur de son domaine, en s’assurant que la nouvelle valeur choisie est compatible avec l’affectation partielle courante. Si l’affectation actuellement choisie viole certaines contraintes une autre valeur qui est disponible est prise. Si toutes les variables sont affect´ees, alors le probl`eme est r´esolu. Si, `a n’importe quelle ´etape, aucune valeur ne peut ˆetre affect´ee `a une variable sans violer une contrainte, l’affectation de la derni`ere variable (juste avant l’´echec) est r´evis´ee, et une autre valeur, lorsqu’elle est disponible, est assign´ee `a cette variable. Cela proc`ede de suite jusqu’`a ce qu’une solution soit trouv´ee ou que tous les tests des combinaisons de valeurs aient ´echou´e. La figure 1.4 pr´esente un exemple de la recherche arborescente utilis´ee dans le Backtracking sur une instance de CSP `a trois variables A, B, et C. Les arcs repr´esentent les paires de valeurs autoris´ees.

L’algorithme 1.1 montre la m´ethode de recherche Backtracking, sous forme d’une proc´edure r´ecursive. Appel´ee avec l’affectation vide, cette fonction d´etecte et termine lors qu’une solution est trouv´ee ou si le probl`eme n’a pas de solution. Il est important de no-ter que la no-terminaison de cette m´ethode provient du parcours arborescent : grˆace `a cette proc´edure, une branche ou affectation partielle n’est explor´ee qu’aux plus une fois (et leur nombre est fini). Cet algorithme peut ˆetre am´elior´e, notamment en supprimant dans les

(32)

16 Chapitre 1. Probl`emes de Satisfaction de Contraintes

Fig.1.4 – Exemple de recherche arborescente sur un probl`eme de 4-reines.

domaines des variables non affect´ees les valeurs qui sont incompatibles avec l’affectation partielle courante : utilisation de techniques d’anticipation (look-ahead) par v´erification en avant (forward checking) par exemple.

Algorithme 1.1 : Le Backtracking chronologique procedure BacktrackingSearch(A)

1

if all variables are assigned in A then

2

return the solution A

3

else

4

let x be an unassigned variable

5

for each possible value v of x do

6 x := v 7 8 if isConsistent(A ∪ {x := v}) then 8 BacktrackingSearch(A ∪ {x := v}) 9 10 unassign x 10 1.3.2 Le Forward Checking

Une technique de filtrage d’un r´eseau de contraintes, aussi appel´ee propagation de contraintes, a pour fonction de mettre en ´evidence le fait que certaines combinaisons de valeurs localement coh´erentes ne peuvent mener `a une solution. Le forward checking

[HE80b] est consid´er´e comme ´etant la technique de pr´evision d’´echec la plus simple `a

utiliser pendant la recherche d’une solution pour un probl`eme CSP. Elle consiste `a explorer toutes les variables non instanci´ees et s’appuie sur le lemme suivant pour d´etecter une

(33)

1.3. M´ethodes de r´esolution des CSPs 17

´eventuelle incoh´erence globale.

Lemme 1.2. S’il existe une extension coh´erente avec toutes les variables, il en existe avec chacune d’entre elles.

R´eciproquement, une affectation est globalement inconsistante s’il existe une variable avec laquelle elle ne peut pas ˆetre ´etendue.

Algorithme 1.2 :La fonction d’anticipation de l’algorithme FC.

#y /∈ A 1 Function F C isConsistent(A, y) 2 foreach value v of y do 3

if not isConsistent(A ∪ {y := v}) then

4

remove v from domain

5

if the domain of y is empy then

6

return false

7

return true

8

L’algorithme du Forward Checking (FC) s’obtient en rempla¸cant la fonction isCon-sistent (Algorithme1.1, ligne 9) par la fonction F C isConsistent(A, y) appliqu´ee `a toute variable y /∈ A non encore instanci´ee. Cette fonction supprime toute valeur dans le do-maine de y incoh´erente avec l’instanciation courante. Si le dodo-maine de y est compl`etement vid´e la fonction retourne ´echec, et par cons´equence l’affectation courante ne peut pas ˆetre ´etendue, ainsi la variable en question est d´esinstanci´ee (Algorithme 1.1, ligne 11). En pra-tique, les domaines des variables futures (sur lesquels les op´erations de suppression ou du filtrage sont effectu´ees) seront restaur´es `a l’´etat pr´ec´edent chaque fois qu’une affectation a ´echou´ee.

1.3.3 Le Backjumping

Pendant que la proc´edure Backtracking revient sur l’instanciation de la variable pr´ec´e-dant imm´ediatement la variable courante en cas de retour arri`ere, les m´ethodes r´etrospectives tentent d’identifier les causes de l’´echec. Elles tirent parti de cette information pour s´electionner un meilleur point de retour [J.G79]. Lorsque l’affectation d’un variable est ´echou´ee, le Backtracking n’effectue qu’un simple retour en arri`ere en mettant en cause la variable instanci´ee. Une analyse bien men´ee permettra un saut vers un niveau plus ´elev´e (Backjump) s’il s’av`ere que la cause d’´echec est en amont dans l’arbre de recherche. Lorsque l’extension d’une Affectation A avec une variable x = v ´echoue, cela est dˆu `a la violation d’une contrainte c. Cette extension restera impossible tant que les valeurs de A mises en cause dans cette contrainte sont pr´esentes dans l’affectation courante. Lorsque toutes les extensions avec les valeurs d’une variable x ont ´echou´e, on dispose d’un ensemble de variables affect´ees responsables chacune du rejet d’une valeur qu’on notera par la suite l’ensemble de conflit. Tant que le retour en arri`ere n’atteint pas l’une des variables de ces ensembles, une extension compl`ete est impossible car aucune valeur ne peut ˆetre affect´ee `

a la variable x. L’algorithme fera donc un saut (Backjump) vers la valeur de la derni`ere variable affect´ee dans l’union de ces ensembles de conflit. Cette union est la cause du Ba-ckjumping : elle constituera l’ensemble des conflits responsables du rejet de la valeur sur laquelle se porte le backtrack.

(34)

18 Chapitre 1. Probl`emes de Satisfaction de Contraintes

Algorithme 1.3 : Conflict-directed backjumping procedure CBJ(A)

1

if all variables are assigned in A then

2

return the solution A

3

else

4

let x be an unassigned variable and S := ∅

5

for each possible value v of x do

6 x := v 7 cs ← CBJ Evaluate(A ∪ {x := v}) 8 if cs is empty then 9 cs ← CBJ(A ∪ {x := v}) 10 if x /∈ cs then 11 unassigne x ; /* backjumping */ 12 return cs 13 S ← S ∪ cs 14

return S − {x} ; /* all values of x are failed */

15 function CBJ Evaluate(A) 16 if A is consistent then 17 return ∅ 18 else 19

let c a constraint violated by A

20

return scope(c)

21

L’algorithme du «Graph-based backtracking» [Dec93] se borne `a consid´erer que les va-leurs responsables sont celles de variables li´ees `a x par des contraintes. Plus pr´ecis´ement le «Conflict-directed backjumping» [P.80] ainsi que les m´ethodes s’appuyant sur la m´emorisation des ´echecs consid`erent les variables mises en jeu dans les contraintes effectivement viol´ees. Algorithme 1.3 pr´esente la m´ethode Conflict-directed backjumping. La proc´edure CBJ tente l’extension d’une affectation A initialement vide, et renvoie un ensemble de va-riables responsables de l’´echec de l’extension. L’´evaluation de la consistance locale des affectations CBJ Evaluate(A), retourne un ensemble de variables provoquant l’´eventuelle incoh´erence. Cet ensemble souvent appel´e conflict-set (cs) est cr´e´e lors d’une instanciation et stocke l’ensemble des variables de l’affectation courante en conflits avec une variable x (lignes 16-21). Ainsi, lorsque toutes les valeurs d’une variable ont ´echou´e, l’algorithme revient `a la variable la plus r´ecente dans l’union de ces ensembles retourn´es, en effectuant un saut vers la plus proche variable en conflit y (lignes 11-13). Si y ne peut s’instancier, le retour se fait vers la plus proche parmi S − {y} (ligne 14). Lors d’une phase de retour de x vers y, le backjump se fait toujours vers une variable en conflit (lignes 11-13), les variables entre x et y voient leur domaines restaur´es, leurs ensembles CS r´einitialis´es.

1.3.4 Le Backtracking dynamique

La derni`ere grande famille des algorithmes complets des CSPs cherche `a m´emoriser les causes des ´echecs afin d’´eviter de les reproduire dans la suite l’exploration des conditions de ces ´echecs. Plus pr´ecis´ement, la consistance d’une affectation partielle responsable d’une incoh´erence globale peut ˆetre r´eutilis´ee pour d´eduire l’incoh´erence globale de toutes ses

(35)

1.3. M´ethodes de r´esolution des CSPs 19

extensions. Les principes de m´emorisation ont pour but de conserver les causes des ´echecs tant qu’ils ont la possibilit´e d’exhiber pendant l’exploration. Ces causes m´emoris´ees vont ˆetre utilis´es dans la suite de la recherche. La notion centrale de ces algorithmes est celle du nogood [Bry86,SV94,Dec93].

D´efinition 1.9. Nogood :

Un nogood est une paire (A, C) o`u A est une affectation partielle appel´e affectation du nogood, et C un ensemble de contraintes appel´e justification du nogood.

Un nogood (A, C) induit par inf´erence logique d’un CSP est valide si toute extension compl`ete de A viole au moins une contrainte de C. En d’autres termes, A est une affecta-tion globalement inconsistante du CSP r´eduit aux contraintes de C.

R´esolution des nogoods

Lorsque l’affectation d’une variable xk par une valeur c a ´echou´e, cette valeur sera

supprim´ee du domaine de xk en la justifiant par une m´emorisation d’un nogood de la

forme : (xi = a ∧ xj = b ∧ ... ⇒ xk 6= c). On d´efinit la partie gauche et la partie droite de

cette expression `a partir de la position du ⇒. Quand toutes les valeurs d’une variable xk

sont ´elimin´ees de son domaine, l’ensemble de ces nogoods est r´esolu par rapport `a l’une des variables incrimin´ees xj, et un nouveau nogood est produit, avec en partie gauche

la conjonction des partie gauches (left-hand side - lhs) de tous les nogoods de xk, en

omettant xj. La partie droite (right-hand side - rhs) est xj = b si b ´etait la valeur de xj

dans l’ensemble des nogoods de xk. Dans ce qui suit, on note par Nxbj le nogood r´esultant.

Propri´et´e 1.1. Union des nogoods :

Soit x une variable, et pour chaque valeur v de x un nogood (Ai ∪ {x = v}, Ci) tel que

x /∈ Ai. Si les affectations Ai sont compatibles alors (∪i(Ai), ∪i(Ci)) est un nogood.

Le Dynamic Backtracking [GM94] (DBT) est l’algorithme qui exploite d’une fa¸con ef-ficace la m´emorisation des nogoods. A chaque valeur v de chaque variable x est associ´e `a un nogood Nv

x , initialiser au vide, interdisant ´eventuellement l’extension d’une affectation

A avec la valeur x = v. Ce nogood est souvent appel´e explication ou justification de rejet de la valeur v. Il y a g´en´eralement plusieurs explications possibles pour le retrait d’une valeur. On pourrait vouloir m´emoriser l’ensemble de toutes ces justifications, mais cela conduirait `a une complexit´e spatiale exponentielle. Algorithme 1.4 pr´esente la m´ethode Dynamic Backtracking. Dans cet algorithme, le domaine courant d’une variable corres-pond `a l’ensemble des valeurs qui ont une justification de retrait vide.

(36)

20 Chapitre 1. Probl`emes de Satisfaction de Contraintes

Algorithme 1.4 : Dynamic Backtracking Procedure DBT(A)

1

if all variables are assigned in A then

2

return the solution A

3

else

4

let x be an unassigned variable

5

for each possible value v of x do

6

x := v

7

nogood ← DBT Evaluate(A ∪ {x := v})

8

if nogood is empty then

9 nogood ← DBT(A ∪ {x := v}) 10 if (x = v) != rhs(nogood) then 11 foreach value u ∈ Dx do 12 if rhs(nogood) ∈ Nu

x ; /* Nxu the nogood associated to v */ 13

then

14

Nxu ← ∅ ; /* updating domain */

15

return nogood ; /* Dynamic Backtrack */

16

else

17

store nogood as justification of v removal

18 return ∪v∈Dx(Nxv) 19 Function DBT Evaluate(A) 20 if A is consistent then 21 return ∅ 22 else 23

let c a constraint violated by A

24

return A ↓c 25

La fonction DBT r´ealise la boucle (r´ecursive) principale qui essaye l’extension d’une affectation A initialement vide en affectant des valeurs aux variables futures tant qu’une solution n’a pas ´et´e trouv´ee. la fonction DBT Evaluate() d´etermine si la nouvelle affec-tation est consistante ; si elle ne l’est pas, cette fonction retourne un nogood expliquant l’´echec. Afin de restaurer un ´etat coh´erent la fonction DBT saute r´ecursivement vers une affectation partielle consistance. Les domaines et les nogoods sont mis `a jour grˆace `a une m´ethode «update domain» qui utilise la partie droite du nogood retourn´e.

1.3.5 Param`etres de mesure des CSP centralis´es

Avant de montrer les r´esultats du programme, deux grandeurs caract´erisant un r´eseau de contraintes doivent ˆetre d´efinies. Ce sont la densit´e des contraintes p1 et la duret´e des

contraintes p2.

D´efinition 1.10. Densit´e d’un r´eseau de contraintes :

Pour un r´eseau de contraintes, on appelle densit´e des contraintes le nombre de contraintes par rapport au nombre maximal de contraintes possibles. Pour un r´eseau de n variables avec c contraintes d’arit´e k, on aura alors la densit´e p1 est ´egale :

(37)

1.3. M´ethodes de r´esolution des CSPs 21

p1=

c Ck

n

D´efinition 1.11. Duret´e d’une contrainte :

On appelle duret´e d’une contrainte la proportion de tuples interdits par cette contrainte. Pour une contrainte d’arit´e k portant sur des variables dont les domaines sont de taille d, d´ecrite par ti tuples interdits, on aura la duret´e p2 est ´egale :

p2 =

ti

dk

Pour comparer les trois algorithmes trait´es dans la section pr´ecedente, nous allons utiliser deux m´etriques de mesure. Ce sont le nombre de nœuds visit´es NNV et le nombre des contraintes test´ees NCT. Ces deux m´etriques permettent de valoriser l’effort produit par chaque algorithme pour r´esoudre un probl`eme donn´e.

D´efinition 1.12. Nombre de nœuds visit´es :

C’est le nombre de nœuds, dans l’arbre de recherche, visit´es lors du processus de recherche. D´efinition 1.13. Nombre des contraintes test´ees :

C’est le nombre de contraintes que les algorithmes v´erifient qu’elles sont viol´ees ou satis-faites par une affectation donn´ee.

1.3.6 Exp´erimentation

Nous avons g´en´er´e 100 probl`emes al´eatoires. Un probl`eme al´eatoire est d´efinit par hn, d, p1, p2i, o`u n est le nombre de ses variables, d est le nombre de valeurs par

va-riable, p1 est la densit´e du r´eseau de contraintes (voir d´efinition 1.10), et p2 est la duret´e

des contraintes (voir d´efinition 1.11). Ces probl`emes sont de classe h10, 10, 0.4, p2i avec

diff´erentes duret´es (p2) variant de 0.1 `a 0.9 avec un pas de 0.1. Puis nous avons g´en´er´e

100 autres probl`emes de classes h10, 10, 0.7, p2i. Pour chaque classe nous avons calcul´e la

moyenne du nombre de nœuds visit´es NNV et du nombre des contraintes test´ees NCT. La figure1.5montre les r´esultats obtenus pour NNV, et la figure 1.6montre les r´esultats obtenus pour NCT.

p2

0.0 0.2 0.4 0.6 0.8

Nombre des noeudes visites

0.00e+00 2.00e+04 4.00e+04 6.00e+04 8.00e+04 1.00e+05 1.20e+05 BT CBJ FC < n = 10, d = 10, p1 = 0,4 > (a) P2 0.0 0.2 0.4 0.6 0.8

Nombres des noeudes visites

0 5000 10000 15000 20000 25000 BT CBJ FC < n = 10, d = 10, p1 = 0.7 > (b)

(38)

22 Chapitre 1. Probl`emes de Satisfaction de Contraintes

Lorsque p2 prend des valeurs petites (entre 0.1 et 0.3), les trois algorithmes convergent

vers une solution avec tr`es peu d’effort car les probl`emes sont moins contraints (nombre de couples interdits est petit). Quand p2 prend des valeurs moyennes (entre 0.4 et 0.7),

les algorithmes effectuent plus d’effort pour r´esoudre les probl`emes de ce genre car ils sont plus contraints par rapport aux valeurs petites de p2. Lorsque p2 prend des valeurs

plus grandes (entre 0.8 et 0.9), les probl`emes deviennent plus contraints, l’´echec peut ˆetre donc d´etect´e par les trois algorithmes avec peu d’effort par rapport `a des probl`emes moyennement contraints.

P2

0.0 0.2 0.4 0.6 0.8

Nombres de contraintes testØes

0.00e+00 5.00e+05 1.00e+06 1.50e+06 BT CBJ FC (a) P2 0.0 0.2 0.4 0.6 0.8

Nombres de contraintes testØes

0.00e+00 1.00e+05 2.00e+05 3.00e+05 4.00e+05 BT CBJ FC (b)

Fig. 1.6 – (La moyenne du nombre de contraintes test´es pour resp. 0.4 (a) et 0.7 (b) Nous remarquons que le nombre des nœuds visit´es (figure1.5) lors de l’ex´ecution du BT est plus grand que celui lors de CBJ et FC, notamment lorsque p2 s’approche de la

valeur 0.4. Ceci est normal si nous analysons la mani`ere avec laquelle les trois algorithmes parcourent l’arbre de recherche. Le BT parcourt chaque nœud chaque fois qu’il trouve une affectation consistante. Le FC ´evite de visiter les nœuds si son affectation actuelle ne peut etre ´etendue en une autre affectation consistante (si toutes les valeurs du domaine d’une variable sont filtr´ees). Le CBJ visite les nœuds de l’arbre de recherche si l’affectation actuelle est consistante, mais il fait des sauts lors des retour-arri`eres ce qui permet d’´eviter de revoir des sous-arbres d´ej`a test´es sils ne participent `a aucune solution. Ceci explique aussi que le nombre de nœuds visit´es dans le CBJ est plus grand que le nombre des nœuds visit´es lors du FC dans les probl`emes o`u p2 prennent des valeurs entre 0.4 et 0.6.

Pour le nombre de contraintes test´ees la mˆeme explication peut ˆetre conclue, sauf dans le cas du FC o`u le nombre de contraintes test´ees est plus important que dans CBJ. Ceci est dˆu au filtrage qui n´ecessite la v´erification des contraintes pour enlever une valeur du domaine d’une variable ou non. Dans le FC le nombre de contraintes test´ees lorsque p2

prend des valeurs petites le nombre de contraintes test´ees est grand car le nombre de valeurs filtr´ees est petit car les probl`emes sont moins contraints, donc l’op´eration se r´ep`ete plusieurs fois pour rendre le nombre de contraintes test´ees plus grand.

1.4

ethodes de renforcement de la consistance

Comme notre objectif est de trouver une affectation pour chaque variable satisfaisant toutes les contraintes, l’id´ee est alors de r´eduire l’espace de recherche (l’espace des pos-sibilit´es). Pour ce faire, ces algorithmes vont essayer de supprimer certaines valeurs dans

Figure

Fig. 1.2 – Les deux solution pour le probl`eme de 4 reines
Fig. 1.4 – Exemple de recherche arborescente sur un probl`eme de 4-reines.
Fig. 1.6 – (La moyenne du nombre de contraintes test´es pour resp. 0.4 (a) et 0.7 (b) Nous remarquons que le nombre des nœuds visit´es (figure 1.5 ) lors de l’ex´ecution du BT est plus grand que celui lors de CBJ et FC, notamment lorsque p 2 s’approche de la
Fig. 2.2 – Distances inter-villes
+7

Références

Documents relatifs

La diff´erence avec la m´ethode de l’´etat adjoint est que le calcul ci-dessus proc`ede dans le mˆeme sens que le probl`eme direct d’´evolution.. Le stockage des

Si T est inf´ erieur ` a la distance de K ` a la fronti` ere de Ω, la solution explicite donn´ ee par l’exercice pr´ ec´ edent est aussi solution de l’´ equation des ondes dans

c) Si la capacit´ e maximale de production de l’entreprise est de 1000 unit´ es par jour. Combien d’unit´ es doit-elle pro- duire pour maximiser son profit ?. d) Quel est le

Figure 3.27 – Comparaison des résultats en contraintes aux points d’intégration sur un coupe du modèle, en bleu la méthode des éléments finis étendus, en noir la méthode de

Deux nombres sont aimables lorsque la somme des diviseurs propres de chacun est ´ egale ` a la valeur de chaque nombre..

Beniamin Bogosel Optimisation de formes et probl` emes spectraux 1/52... min Ω∈A J

En effet, la matrice A ´ etant sym´ etrique, d´ efinie positive, elle admet une base de vecteurs propres... On reprend les notations de la

Chaque utilisateur a une probabilit´e 0.2 de recevoir l’offre (donc 0.8 de ne pas la recevoir).. Corrig´ e 46 a) Pour que la porte ouvre au ki`eme essai, il faut que les k −