- Accueil POM

Transcription

- Accueil POM
Master Sciences de la Modélisation, de l'Information et des
Systèmes
Spécialité Sûreté du Logiciel et Calcul Haute Performance
Établissement
Laboratoire
:
:
École Nationale de l'Aviation Civile
Laboratoire d'Optimisation Globale (ENAC/DTI-SDER)
Sujet du mémoire
:
Allocation de créneaux de décollage par décomposition
arborescente de modèles CSP
6 septembre 2007 à Toulouse
Auteur :
Maître de stage :
Directeur de recherche :
Résumé
Olivier Gourmel [email protected]
Nicolas Barnier
[email protected]
Jean-Marc Alliot [email protected]
:
Ce mémoire présente une méthode de résolution des conits aériens par modication des horaires de décollage. Cette méthode consiste à dénir puis à résoudre
un problème de satisfaction de contraintes dont les variables sont les retards assignés aux avions. Des méthodes de décomposition arborescente du graphe des
contraintes sont utilisées pour accélérer la résolution de ce problème.
Mots clés
:
Programmation par contraintes
Décomposition arborescente
Résolution de conits
Remerciements
Je tiens tout d'abord à remercier mon maître de stage, Nicolas BARNIER, pour sa
gentillesse, sa patience et ses nombreux conseils. C'est lui qui m'a fait découvrir le monde
merveilleux de la programmation par contraintes et je lui en suis reconnaissant.
Je souhaite également remercier Pascal BRISSET pour sa grande maîtrise de la distribution linux Debian qui m'a été utile bien plus d'une fois, malgré le fait qu'il vienne de
succomber au charme d'une distribution Ubuntu. Je remercie tout le personnel du LOG
et du LEEA pour leur sympathie et leur bonne humeur. J'ai été très heureux de travailler
dans l'ambiance chaleureuse qu'ils m'ont oerte. Merci à Jean-Baptiste GOTTELAND,
Charles-Edmond BICHOT, Pierre-Selim HUARD et Kévin GUITTET pour m'avoir fait
découvrir les joies du XBlast de 13h à 14h. Merci aussi à Jean-Marc ALLIOT et Nicolas
DURAND pour m'avoir accueilli au LOG et pour m'avoir trouvé un nancement.
Enn merci à Luis DELGADO et Benjamin TISSOIRES, mes deux camarades de mastère, pour leur générosité et leur sympathie.
i
ii
Table des matières
Introduction
1
1 Les Problèmes de Satisfaction de Contraintes
3
1.1 Présentation . . . . . . . . . . . . . . .
1.1.1 Dénitions . . . . . . . . . . . .
1.1.2 Quelques exemples . . . . . . .
1.2 Méthodes de résolution . . . . . . . . .
1.2.1 Algorithmes énumératifs . . . .
1.2.2 Méthodes de recherche locale .
1.3 Extension au problème d'optimisation .
1.3.1 Dénitions . . . . . . . . . . . .
1.3.2 Méthodes de résolution . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Décomposition Arborescente
2.1 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Construction d'une décomposition . . . . . . . . . . . . . .
2.2.1 Décomposition optimale d'un graphe triangulé . . .
2.2.2 Décomposition optimale d'un graphe non triangulé
2.2.3 Triangulation . . . . . . . . . . . . . . . . . . . . .
2.2.4 Arbre de jonction . . . . . . . . . . . . . . . . . . .
2.3 Exploitation de la décomposition arborescente . . . . . . .
2.3.1 Heuristique d'ordonnancement . . . . . . . . . . . .
2.3.2 Algorithme BTD . . . . . . . . . . . . . . . . . . .
3 Le problème d'aectation de fréquences radio
3.1
3.2
3.3
3.4
3.5
Présentation . . . . . . . . . . . .
Critères d'optimisation . . . . . .
Quelques mots sur FaCiLe . . . .
Résultats . . . . . . . . . . . . . .
Optimisation et nogood recording
.
.
.
.
.
.
.
.
.
.
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
6
6
10
10
11
11
13
13
15
15
16
17
19
19
20
21
25
25
26
26
27
30
iv
TABLE DES MATIÈRES
4 Le problème d'allocation de créneaux de décollage
4.1
4.2
4.3
4.4
4.5
4.6
Modélisation . . . . . . . . . . . . . . .
Stratégie de branchement . . . . . . . .
Heuristiques de sélection des variables .
Réduction, MAC et nogood recording .
Filtrage des données . . . . . . . . . .
Résultats . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
34
35
36
36
37
Conclusion
43
Bibliographie
47
Table des gures
1.1 Une solution au problème des 8 dames . . . . . . . . . . . . . . . . . . . .
1.2 La coloration d'un graphe avec les couleurs {1, 2, 3}. . . . . . . . . . . . . .
1.3 Principe du ltrage par arc-consistance. . . . . . . . . . . . . . . . . . . . .
2.1
2.2
2.3
2.4
2.5
Un exemple de décomposition en clusters. .
La triangulation d'un graphe. . . . . . . . .
Une décomposition arborescente irréalisable
L'exécution du processus d'élimination. . . .
Diérentes triangulations d'un même graphe.
.
.
.
.
.
14
15
16
17
18
3.1 Le graphe de contraintes d'une instance de CELAR : SCEN02. . . . . . . .
3.2 Des instances de CELAR : SCEN04 et SCEN05. . . . . . . . . . . . . . . .
3.3 Performance des algorithmes sur des instances de CELAR : minimisation de
la plus haute fréquence allouée . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Performance des algorithmes sur des instances de CELAR : minimisation
du nombre de fréquences diérentes . . . . . . . . . . . . . . . . . . . . . .
26
28
4.1 Une zone de conit entre deux avions i et j . . . . . . . . . . . . . . . . . .
4.2 Plusieurs zones de conits entre deux trajectoires. . . . . . . . . . . . . . .
4.3 Évolution du graphe de contraintes en fonction du niveau de vol seuil et de
l'horizon temporel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Temps de calcul (en log10 (s)) des algorithmes en fonction de l'horizon (en
min). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Détermination de l'algorithme le plus rapide en fonction du niveau de ltrage.
4.6 Valeur de la solution optimale au FL 300. . . . . . . . . . . . . . . . . . .
33
34
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
6
9
29
29
38
39
40
41
Liste des algorithmes
1
2
3
4
Algorithme
Algorithme
Algorithme
Algorithme
de backtrack : BT (N , I) . . . . . . . . . . . . . . . . . .
Forward Checking : F C(N , I) . . . . . . . . . . . . . . .
de backtrack selon l'arbre des clusters : BT CT (I, Ci , VCi )
BTD : BT D(I, Ci , VCi ) . . . . . . . . . . . . . . . . . . .
vii
.
.
.
.
.
.
.
.
.
.
.
.
7
9
20
23
Glossaire
ASM
ATC
Air Space Management, 31
Air Trac Control, 31
BTD
Backtrack on Tree Decomposition, 21, 22
CELAR Centre d'Électronique de l'ARmement, 2
CFMU Central Flow Management Unit, 31
CSP
Constraint Satisfaction Problem, 37, 10, 11, 13, 20,
26, 43
FL
Flight Level, 37
LOG
Laboratoire d'Optimisation Globale, 1, 26
MAC
Maintaining Arc-Consistency, 27
RLFAP RadioLink Frequency Assignement Problem, 2
ix
Introduction
An de faire face à la croissance future du trac aérien, la commission européenne
a créé le projet SESAR. Le but de ce projet est de rechercher de nouvelles techniques
de contrôle aérien, notamment dans le domaine de l'automatisation du contrôle dit en
route , c'est-à-dire en dehors des zones situées à proximité d'aérodromes.
C'est dans ce cadre qu'une méthode de résolution automatique d'une partie des conits
en route par modication des créneaux de décollage a été développée au Laboratoire d'Optimisation Globale (LOG). Cette méthode consiste à déterminer un retard à chaque avion
de façon à ce que les normes de séparation entre aéronefs soient respectées à tout instant.
Elle est diérente de la méthode pratiquée actuellement par le système CFMU (Central
Flow Management Unit) qui se limite à assigner un retard à chaque avion de façon à
équilibrer les charges (c'est-à-dire le nombre d'avions par heure) des secteurs aériens, sans
chercher à résoudre les conits. Notons par ailleurs qu'une telle méthode de résolution des
conits présuppose que les avions respectent scrupuleusement leur trajectoire de vol et
leurs horaires de décollage.
An d'évaluer si un tel système peut être accepté ou si les retards générés sont trop
importants, nous chercherons à obtenir des solutions optimales (ou des bornes inférieures)
sur le retard maximal nécessaire pour résoudre des sous-problèmes1 d'une journée de trac
dans l'espace aérien français. Pour résoudre ce type de problème d'optimisation combinatoire dicile2 , la Programmation Par Contraintes (PPC) [Hentenryck 92] ore un langage
de modélisation expressif ainsi que des algorithmes complets3 , et constitue donc un outil
particulièrement bien adapté.
Le problème d'allocation de créneaux de décollage sans conit consiste essentiellement
à respecter les contraintes disjonctives générées par chaque conit potentiel. Ce problème
peut donc facilement être modélisé avec les concepts de la PPC, ce qui permet d'utiliser
les algorithmes d'inférence existants. Plus concrètement, la résolution se décompose de la
manière suivante :
Évaluation de la trajectoire des avions par simulation (CATS/OPAS [Alliot 97]),
suivie de leur discrétisation.
1 Pour
réaliser de tels calculs, nous limitons le niveau de vol inférieur et l'horizon de résolution an
d'obtenir des instances de taille raisonnable.
2 Le problème général d'allocation de créneaux de décollage sans conit est NP-dicile (voir la section 4.1).
3 On peut obtenir des preuves d'optimalité ou d'absence de solution.
1
2
INTRODUCTION
Détection pour chaque trajectoire des points en conit avec une autre trajectoire.
Ces points permettent de dénir des contraintes de disjonction sur les horaires de
décollage des avions.
Création puis résolution d'un problème de satisfaction de contraintes utilisant les
contraintes dénies à l'étape précédente.
Cette méthode ainsi que le solveur de problèmes de satisfaction de contraintes utilisé
ici, FaCiLe [Barnier 01], sont le fruit du travail de Nicolas Barnier. Le principal obstacle
à une résolution naïve de ce problème est la grande taille des instances générées sur une
journée entière de trac français en nombre de variables et de contraintes4 . L'objectif de
ce travail a donc été d'étudier puis d'implanter à l'aide de FaCiLe des méthodes complexes de résolution basées sur des décompositions arborescentes de graphes représentant
la structure des problèmes et d'analyser le gain de performance obtenu par rapport aux
algorithmes classiques. Ces méthodes sont essentiellement basées sur les travaux de Cyril Terrioux [Terrioux 02] et de Thomas Schiex [Schiex 94]. Les algorithmes implantés ont
également été évalués sur des instances (CELAR [Koster 99]) du problème d'aectation de
fréquences radio (RLFAP), qui sont souvent utilisées comme benchmarks dans la communauté de la Programmation Par Contraintes.
Ce mémoire est organisé de la façon suivante. Le chapitre 1 donne les notions et le
formalisme de base de la programmation par contraintes nécessaires à la compréhension
des chapitres suivants. Le chapitre 2 présente les décompositions arborescentes et leur
méthode de calcul ainsi que les algorithmes de résolution de problèmes de satisfaction
de contraintes y faisant appel. Le chapitre 3 décrit l'évaluation de ces algorithmes sur le
problème RLFAP. Enn les résultats de cette méthode sur le problème d'allocation de
créneaux de décollage sans conit est exposé dans le chapitre 4.
4 Le
nombre de contraintes augmente quadratiquement avec le nombre de vols.
Chapitre 1
Les Problèmes de Satisfaction de
Contraintes
1.1 Présentation
Cette partie a pour but de présenter les problèmes de satisfaction de contraintes (CSP)
sur des domaines nis. Nous commencerons par dénir le formalisme classique d'un CSP,
puis nous introduirons les principales méthodes de résolution actuelles ainsi que quelques
exemples.
1.1.1 Dénitions
Un problème de satisfaction de contraintes se compose d'un ensemble de variables et
d'un ensemble de contraintes. Chaque variable est associée à un domaine, qui correspond
aux valeurs qu'elle peut prendre. Les contraintes dénissent les combinaisons de valeurs
que peuvent prendre des ensembles de variables. En général, l'objectif d'un problème de
satisfaction de contraintes est d'associer chaque variable à une valeur de son domaine de
telle sorte que toutes les contraintes soient respectées simultanément.
Plusieurs formalismes existent pour dénir précisément un CSP. Nous utiliserons celui
de Montanari [Montanari 74] :
Dénition 1 (Problème
)
Un Problème de Satisfaction de Contraintes (CSP) est déni par un quadruplet (X , D, C, R), où :
X = {X1 , . . . , Xn } est un ensemble de variables,
D = {DX1 , . . . , DXn } est un ensemble de domaines de cardinal ni : ∀i ∈ {1, . . . , n},
Di est l'ensemble des valeurs que peut prendre la variable i
C = {C1 , . . . , Cm } est un ensemble de contraintes. Chaque contrainte est dénie par
le sous-ensemble des variables sur lequel elle porte : ∀i ∈ {1, . . . , m}, Ci ⊆ X
R
Y= {RC1 , . . . , RCm } est un ensemble de relations tel que : ∀i ∈ {1, . . . , m}, Ri ⊆
Dx est l'ensemble des valeurs que peuvent prendre simultanément les variables
de Satisfaction de Contraintes
x∈Ci
3
4
CHAPITRE 1.
LES PROBLÈMES DE SATISFACTION DE CONTRAINTES
contraintes par Ci
On appele arité d'une contrainte le nombre de variables sur lesquelles elle porte. Lorsqu'elle ne porte que sur une variable, une contrainte est dite unaire et peut alors être
entièrement résolue par un ltrage du domaine de cette variable. Lorsqu'elle porte sur
deux variable, elle est dite binaire et, plus généralement, une contrainte d'arité n est dite
n-aire. Nous nous limitons ici au cas de CSP à contraintes binaires uniquement. La dureté
ku
où ku est nombre de
d'une contrainte Ci = {Xi1 , . . . , Xik } est le rapport |DX ×···×D
Xi |
i1
k
tuples qu'elle interdit. Ce formalisme peut être étendu à des CSP dénis sur des domaines
continus, mais nous ne nous y intéressons pas ici.
L'association d'une variable à une valeur de son domaine est appelée instanciation :
Dénition 2 (Instanciation )
Soit P = (X , D, C, R) un CSP et Y = {Y1 , . . . , Yk } un
sous-ensemble de X . Une instanciation de Y est un k-uplet de DY1 × · · · × DYk . Si Y = X ,
l'instanciation est dite complète. Sinon, on dit qu'elle est partielle.
Telle qu'elle est dénie, une instanciation peut être en contradiction avec les contraintes
du CSP. Ce concept est introduit par les notions de satisfaction et de consistance :
Dénition 3 (Satisfaction )
Soit A = (a1 , . . . , ak ) ∈ DY1 × · · · × DYk une instanciation
de Y et Ci une contrainte. Notons A[Ci ] la projection de A sur Ci . On dit que A satisfait
Ci si A[Ci ] ∈ RCi . Dans le cas contraire, on dit que A viole Ci .
Dénition 4 (Consistance )
Une instanciation A = (a1 , ..., ak ) d'un sous-ensemble Y =
{Y1 , . . . , Yk } de variables de X est dite consistante si ∀Ci ∈ C | Ci ∩ Y 6= ∅, A[Ci ] ∈ RCi ,
c'est-à-dire si elle ne viole aucune contrainte. Si Y est une instanciation complète, on dit
que A est une solution du CSP.
Une représentation graphique d'un CSP peut être obtenue à partir de son graphe de
contraintes :
Dénition 5 (Graphe
de Contraintes ) Soit un CSP P = (X , D, C, R). L'hypergraphe
G = (X , C) est appelé l' hypergraphe de contraintes de P . Si toutes les contraintes de C
sont binaires, G est simplement appelé graphe de contraintes de P .
Des utilisations du graphe des contraintes seront détaillées au chapitre concernant la
décomposition arborescente de graphe.
1.1.2 Quelques exemples
Le formalisme de la programmation par contraintes permet d'exprimer de nombreux
problèmes de façon naturelle. Les exemples suivants en sont une bonne illustration.
1.1.
5
PRÉSENTATION
Le problème des n dames
Le problème de n dames (appelé parfois à tort problème des n reines) consiste à placer
n dames sur un échiquier de taille n × n de sorte qu'aucune pièce ne soit sous la menace
d'une autre (i.e. il ne doit pas y avoir deux pièces sur la même ligne, colonne ou diagonale).
La gure 1.1 montre une solution de ce problème dans le cas où n = 8. Pour exprimer ce
problème avec un CSP, nous dénissons n variables X1 , . . . , Xn , chaque Xi étant associée
à la dame placée sur la ligne i (il ne peut y avoir en eet qu'une et une seule dame sur
chaque ligne de l'échiquier). La valeur d'une variable Xi correspond alors au numéro de la
colonne sur laquelle est placée la dame correspondante. Le domaine de tous les Xi est donc
{1, . . . , n} si les colonnes sont numérotées de 1 à n.
8
7
6
5
4
3
2
1
0Z0ZqZ0Z
Z0Z0Z0l0
qZ0Z0Z0Z
Z0l0Z0Z0
0Z0Z0Z0l
Z0Z0ZqZ0
0Z0l0Z0Z
ZqZ0Z0Z0
a
Fig.
b
c
d
e
f
g
h
1.1 Une solution au problème des 8 dames
Chaque paire de variable est liée par une contrainte, qui impose que les dames correspondantes ne soient ni sur la même ligne, ni sur la même diagonale. Le CSP formé est
ainsi :

X = {Xi , i ∈ {1, . . . , n}}




D = {DXi = {1, . . . , n}, i ∈ {1, . . . , n}}




 C = {Ci,j = {Xi , Xj }, 1 ≤ i < j ≤ n}
R = {RCi,j , Ci,j ∈ 
C}
P1







avec
R
=
(xi , xj ) ∈ {1, . . . , n}2 ,

Ci,j




xi 6= xj
lignes

xi − xj 6= i − j
diagonales 
xi − xj 6= j − i
6
CHAPITRE 1.
LES PROBLÈMES DE SATISFACTION DE CONTRAINTES
Coloration de graphe
Ce problème consiste à aecter une couleur à chaque sommet d'un graphe de sorte
que deux sommets reliés par une arête doivent être de couleurs diérentes. De nombreux
problèmes du monde réel peuvent se modéliser comme un problème de coloration de graphe.
On dispose d'un graphe non orienté G = (V, E) composé de n noeuds v1 , . . . , vn , et
d'un ensemble de p couleurs K = {k1 , . . . , kp }. Pour exprimer le problème de coloration de
graphe correspondant avec un CSP, on dénit n variables V1 , . . . , Vn , chaque Vi étant associé
au sommet vi ∈ V du graphe G . Le domaine de ces variables est DVi = {k1 , . . . , kp }, ∀i ∈
{1, . . . , n}, la valeur de chaque Vi correspondant à la couleur aectée au noeud vi .
3
1
2
3
1
2
3
Fig.
1.2 La coloration d'un graphe avec les couleurs {1, 2, 3}.
Pour chaque arête {vi , vj } ∈ E , on dénit une nouvelle contrainte Ci,j qui empêche les
variables Vi et Vj de prendre la même valeur. Le CSP obtenu est le suivant :

X



D
P2
C



R
=
=
=
=
{Vi , i ∈ {1, . . . , n}}
{DVi = {k1 , . . . , kp }, i ∈ {1, . . . , n}}
{Ci,j = {Vi , Vj }, {i, j} ∈ E}
{RCi,j = {(ci , cj ) ∈ {k1 , . . . , kp }2 , ci 6= cj }, Ci,j ∈ C}
1.2 Méthodes de résolution
Résoudre un CSP consiste soit à trouver une solution (si le CSP est consistant), soit
à prouver qu'il n'a pas de solution. Nous présentons dans cette section les diérentes
méthodes de résolution de CSP actuelles. Il existe principalement deux types d'algorithmes
de résolution : les algorithmes énumératifs et les algorithmes de recherche locale.
1.2.1 Algorithmes énumératifs
Les algorithmes énumératifs (ou systématiques) explorent de façon exhaustive toutes
les instanciations possibles des variables du CSP jusqu'à trouver une solution ou jusqu'à
épuisement complet des instanciations. L'ecacité de ces algorithme dépend surtout de
1.2.
7
MÉTHODES DE RÉSOLUTION
leur capacité à élaguer l'arbre de recherche, par exemple en détectant l'inconsistance d'une
aectation partielle.
Backtrack
L'algorithme Backtrack (BT) ou Retour
avoir été utilisé pour la résolution de CSP.
arrière est l'un des premiers algorithmes à
Algorithme 1 Algorithme de backtrack : BT (N , I)
N ensemble des variables non instanciées, I instanciation partielle.
une solution du CSP.
Entrées:
Sorties:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
si N = ∅ alors
renvoyer I {une solution}
sinon
choisir i ∈ N {choix d'une variable à instancier}
pour tout a ∈ Di faire
I 0 ← I ∪ {(i, a)} {choix d'une valeur}
si (I 0 est consistant) alors
BT (N \{i}, I 0 )
n si
n pour
n si
L'algorithme BT construit progressivement une solution en instanciant les variables
selon un ordre donné. À chaque échec, l'algorithme revient en arrière en remettant en
cause le dernier choix eectué. La complexité temporelle de cet algorithme dans le pire des
cas est O(mdn ), où m est le nombre de contraintes, n est le nombre de variables et d est
la taille du plus grand domaine du CSP.
La taille de l'arbre de recherche généré, et donc la durée d'exécution de l'algorithme,
dépend en général grandement de l'ordre d'aectation des variables. De nombreuses heuristiques d'ordonnancement ont été créées (DomDeg [Bessière 96], minSize [Haralick 80], ...),
qui permettent d'accélérer la recherche. Dans le cas de l'heuristique minSize par exemple,
c'est la variable non instanciée de plus petit domaine qui est choisie à chaque étape, ce
qui permet de réduire le nombre de branchements . Toutefois, l'algorithme BT est très peu
utilisé tel quel à cause de son manque d'ecacité face aux algorithmes plus récents.
Backjumping
Les algorithmes de type Backjumping (BJ [Gaschnig 79],GBJ [Dechter 90],CBJ
[Prosser 93],...) sont des variantes de l'algorithme BT qui visent à élaguer l'arbre de recherche en analysant quelles sont les variables en cause lors d'une inconsistance. L'algorithme BJ par exemple, lorsque toutes les extensions d'une aectation courante à une
variable x sont inconsistantes, revient en arrière sur la variable la plus profonde de l'arbre
8
CHAPITRE 1.
LES PROBLÈMES DE SATISFACTION DE CONTRAINTES
de recherche en conit avec une valeur au moins du domaine de x. À la diérence de BT qui
revient systématiquement sur la variable précédente, ce mécanisme permet des sauts plus importants dans l'arbre de recherche.
Algorithmes de ltrage
Dans le cas de l'algorithme BT, la consistance d'une aectation est testée à la n de
chaque instanciation, en vériant que chaque contrainte liée à la dernière variable instanciée
n'est pas violée. On parle alors de consistance en arrière (ou look-back scheme ). Une autre
manière de s'assurer de la consistance est de supprimer du domaine des variables non
instanciées les valeurs qui ne sont pas compatibles avec la dernière variable instanciée.
C'est le concept de consistance en avant (ou look-ahead scheme ) qui est à la base des
algorithmes de ltrage.
L'algorithme Forward Checking (FC) [Haralick 80] est une variante de BT qui applique directement ce concept : à chaque fois qu'une variable x est instanciée par une valeur
v , toutes les variables y qui sont voisines de x dans le graphe des contraintes (c'est-à-dire
telles que ∃c ∈ C | {x, y} ⊂ c ) voient leur domaine réduit de toute valeur non compatible
avec v .
La complexité en temps en pire cas est la même que celle de l'algorithme BT mais en
pratique FC est souvent plus rapide.
Les méthodes plus évoluées de ltrage font appel à la k-consistance [Mackworth 77] :
Dénition 6 (k-consistance )
Un CSP P est k-consistant si toute aectation consistante de k − 1 variables de P peut être étendue de façon consistante sur k variables de P .
Lorsque k = 2, on parle alors d' arc-consistance.
C'est par exemple le cas de l'algorithme Maintaining Arc-Consistency (MAC)
[Sabin 94] qui établit l'arc-consistance à chaque instanciation. L'arc-consistance est un
concept qui est plus facile à cerner lorsqu'on l'exprime avec la notion de support :
Dénition 7 (support ) Soit C ∈ C une contrainte et soit X ∈ C une des variables de
cette contrainte. Soit a ∈ DX . On appelle support de la valeur (X, a) tout tuple de RC
dont la projection sur X est a.
Le ltrage par arc-consistance consiste à retirer des domaines des variables toutes les
valeurs qui n'ont pas de support pour une contrainte donnée. La suppression d'une valeur
dans le domaine d'une variable peut alors entraîner la suppression d'autres valeurs dans
les domaines des autres variables, contrairement à l'algorithme FC qui ne propage pas les
suppressions. Ainsi dans la gure 1.3 , la suppression de la valeur 2 du domaine de B ( par
manque de support dans le domaine de A) engendre la suppression du support de la valeur
0 du domaine de C, qui est retirée à son tour.
Ce ltrage a pour eet de réduire notablement la taille de l'arbre de recherche. En
contrepartie, le temps de calcul de l'arc-consistance est non négligeable : l'un des algorithme
les plus récents , AC-2001 [Bessière 01] a une complexité en temps de O(md2 ).
1.2.
9
MÉTHODES DE RÉSOLUTION
Algorithme 2 Algorithme Forward Checking : F C(N , I)
Entrées:
Sorties:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
N ensemble des variables non instanciées, I instanciation partielle.
une solution du CSP.
si N = ∅ alors
renvoyer I {une solution}
sinon
choisir x ∈ N {choix d'une variable à instancier}
pour tout a ∈ Dx faire
I 0 ← I ∪ {(x, a)} {choix d'une valeur}
M ← ∅ {début du ltrage par Forward Checking}
pour tout ci ∈ C | x ∈ ci faire
pour tout y ∈ ci \{x} | y ∈/ I faire
pour tout b ∈ Dy faire
si {(x, a), (y, b)} pas compatible avec ci alors
Dy ← Dy \{b}
M ← M ∪ {(y, b)} {Enregistrer la modication}
n si
n pour
n pour
n pour{n du ltrage}
si (I 0 est consistant) {pas de contraintes violées et pas de domaine vide} alors
BT (N \{x}, I 0 )
n si
pour tout (y, b) ∈ M faire
Dy ← Dy ∪ {b} {défaire les modications eectuées par le ltrage}
n pour
n pour
n si
(a) CSP initial
Fig.
(b) Après ltrage par arc-consistance
1.3 Principe du ltrage par arc-consistance.
10
CHAPITRE 1.
LES PROBLÈMES DE SATISFACTION DE CONTRAINTES
Algorithmes avec mémorisation
Les algorithmes avec mémorisation visent à éliminer les redondances dans l'arbre de recherche en gardant en mémoire les congurations explorées qui mènent de manière certaine
à un échec. Plus précisément, chaque fois qu'une inconsistance est rencontrée, les causes de
l'échec, c'est-à-dire les contraintes violées, sont analysées an de déterminer quelles sont les
décisions qui ont conduit à l'inconsistance. Ces décisions sont en général des aectations
de variables, mais elles peuvent également avoir un caractère plus général, par exemple
la réduction du domaine d'une variable. Un ensemble de telles décisions conduisant à un
échec est appelé un nogood [Schiex 94]. Chaque nogood trouvé est gardé en mémoire.
Si une aectation partielle présente les caractéristiques d'un nogood déjà exploré, on sait
alors qu'elle ne peut pas être étendue en une aectation complète consistante.
Ceci permet de réduire l'arbre de recherche de façon conséquente. Néanmoins, le stockage des nogoods peut être coûteux en espace mémoire. C'est pourquoi les algorithmes
actuels ne mémorisent que les nogoods dont la taille est inférieure à un seuil. Par ailleurs,
les nogoods les plus utiles sont ceux de petite taille que l'on retrouve le plus souvent lors
de la recherche.
Méthodes basées sur la décomposition du graphe de contraintes
Ces méthodes utilisent la structure du CSP pour accélérer la recherche. Elles seront
vues en détail au chapitre suivant.
1.2.2 Méthodes de recherche locale
Les méthodes systématiques ont une complexité en temps exponentielle de la taille du
problème et deviennent rapidement inutilisable lorsque la taille du CSP à résoudre devient
trop importante. Pour résoudre ce type de problèmes, il est donc nécessaire d'avoir recours à
des méthodes de résolution approchées. Les algorithmes de recherche locale partent d'une
aectation aléatoire complète des variables du CSP et tentent de la modier an de la
rendre cohérente. Au contraire des algorithmes systématiques, ces algorithmes explorent
donc l'espace de recherche de façon incomplète, c'est-à-dire qu'ils ne garantissent pas de
trouver une solution ou de prouver qu'il n'y a pas de solution. Néanmoins, ils sont habituellement plus ecaces que les algorithmes énumératifs pour trouver une solution approchée , c'est-à-dire avec quelques contraintes violées.
1.3 Extension au problème d'optimisation
Il est rare qu'un CSP ne possède qu'une seule instanciation consistante. Dans le cas où
un CSP possède plusieurs solutions, on peut être amené à se demander laquelle est la plus
intéressante vis-à-vis d'un certain critère. Par exemple, dans le problème de coloration de
graphe, on cherche souvent à minimiser le nombre de couleurs utilisées.
1.3.
EXTENSION AU PROBLÈME D'OPTIMISATION
11
1.3.1 Dénitions
Dénition 8 (fonction
)
Soit P = (X , D, C, R) un CSP. On appelle fonction
de coût (ou critère d'optimisation) de P toute application f : DX1 × · · · × DXn → N . Pour
toute instanciation complète A = (a1 , ..., an ) ∈ DX1 × · · · × DXn , f (A) est appelé le coût
de A.
de coût
Une fonction de coût permet ainsi de dénir un critère pour discriminer les aectations
consistantes du CSP.
Dénition 9 (problème
)
Soit P = (X , D, C, R) un CSP et f une fonction de coût de P . Le problème d'optimisation associé à P consiste à trouver une solution
S ∈ DX1 × · · · × DXn de P telle que la valeur f (S) soit minimale.
d'optimisation
1.3.2 Méthodes de résolution
Pour résoudre un problème d'optimisation de CSP, il est nécessaire d'explorer tout
l'arbre de recherche (car il faut connaître toutes les solutions avant de pouvoir déterminer
la meilleure). Les méthodes de recherche locales, de par leur nature incomplète, sont donc
incapables de résoudre de tels problèmes, bien qu'elles puissent s'approcher de la solution
optimale. En revanche, les algorithmes de recherche systématiques s'y adaptent en général
aisément. La méthode la plus utilisée est la suivante :
Suivre la procédure classique d'instanciation de l'algorithme énumératif.
Dès qu'une solution S est trouvée, calculer son coût c = f (S) puis ajouter la
contrainte ∀A ∈ D, f (A) < c aux contraintes du problème.
Deux variantes sont ensuite possibles :
Recommencer la recherche depuis le début (Restart ). La nouvelle contrainte garantit que la prochaine solution trouvée sera d'un meilleur coût.
Continuer la recherche dans la branche courante (Continue ). En eet les contraintes
ajoutées au cours de la recherche assurent que les solutions explorées dans les
branches précédentes sont d'un coût supérieur au coût de la dernière solution trouvée. Il est donc inutile de les explorer de nouveau.
La dernière solution trouvée avant l'échec de l'algorithme est une solution optimale du
CSP.
Le choix entre les deux variantes dépend des problèmes et des fonctions que l'on cherche
à optimiser. Bien que Continue semble la plus intéressante, elle peut être moins performante
que Restart si les contraintes ajoutées au cours de la recherche élaguent des branches de
l'arbre proches de la racine.
Il est à noter que certains algorithmes systématiques ne sont pas adaptables à des
problèmes d'optimisation (voir section 3.5).
12
CHAPITRE 1.
LES PROBLÈMES DE SATISFACTION DE CONTRAINTES
Chapitre 2
Décomposition Arborescente
Dans ce chapitre, nous présentons des méthodes qui permettent d'exploiter la structure
d'un CSP an d'en accélérer la résolution. L' idée de ce type de méthodes est de rechercher
des groupes de variables fortement connexes dans le graphe des contraintes qui forment,
en quelque sorte, des sous problèmes diciles du CSP initial. Leur obtention se fait habituellement par le calcul d'une décomposition arborescente du graphe des contraintes
[Bouveret 04]. Dans une première partie, nous allons donner quelques dénitions préliminaires, puis nous verrons comment calculer une décomposition arborescente et enn, nous
présenterons des algorithmes de résolution de CSP qui en tirent parti.
2.1 Dénitions
Les notions de cluster et de clique permettent d'identier des sous-parties du graphe
de contraintes :
Dénition 10 (Cluster,
)
Soit G = (V, E) un graphe. Un sous-ensemble C ⊂ V
de l'ensemble des noeuds de G est appelé un cluster de G . On dit que le cluster C est une
clique si ∀(u, v) ∈ C 2 | u 6= v, (u, v) ∈ E . Si de plus ∀x ∈ V \C, C ∪ {x} n'est pas une clique
alors C est une clique maximale de G
Clique
Les cliques représentent les parties du graphe de contraintes qui sont les plus connexes,
mais il peut exister des parties fortement connexes qui ne sont pas des cliques. Le calcul
d'une décomposition en clusters permet d'identier les clusters du graphe qui présentent
cette caractéristique :
Dénition 11 (Décomposition
en clusters ) Une décomposition en clusters (ou décomposition arborescente) d'un graphe G = (V, E) est un couple (T , C) où T = (I, F ) est
un arbre et C = {Ci | i ∈ I} un ensemble de clusters de G tel que chaque noeud i ∈ I
correspond
[ à un cluster Ci et vérie :
Ci = V,
i∈I
13
14
CHAPITRE 2.
DÉCOMPOSITION ARBORESCENTE
∀(u, v) ∈ E, ∃i ∈ I | u ∈ Ci et v ∈ Ci ,
∀(m, n, p) ∈ I 3 , si Cp est sur un chemin de Cm à Cn alors Cm ∩ Cn ⊂ Cp .
HIK
A
EHJK
B
C
GEJ
D
F
JKL
E
H
G
I
J
DEG
ABC
DFG
K
L
(a) Graphe initial
Fig.
CE
(b) Une décomposition arborescente du graphe
2.1 Un exemple de décomposition en clusters.
Un exemple de décomposition arborescente est donné à la gure 2.1. Pour un graphe
donné, il y a en général un grand nombre de décompositions arborescentes possibles.
D'ailleurs tous les graphes admettent au moins la décomposition triviale composée d'un
seul cluster contenant tous les sommets du graphe. Bien sûr, seules les décompositions
arborescentes les plus représentatives de la structure du graphe vont nous intéresser. Nous
allons pour cela introduire le concept de largeur d'une décomposition arborescente :
Dénition 12 (largeur
)
Soit (T , C) une décomposition arborescente. Le paramètre max(|Ci |−1) est appelé largeur de la décomposition. La
d'une décomposition arborescente
Ci ∈C
largeur d'arbre (ou tree-width) d'un graphe est égale à la plus petite largeur sur l'ensemble
de ses décompositions arborescentes.
Une décomposition arborescente est de bonne qualité si sa largeur est proche de la
largeur d'arbre du graphe décomposé. La propriété suivante permet d'obtenir facilement
une borne inférieure de la largeur d'arbre d'un graphe :
Propriété 1
Pour toute décomposition (T , C) d'un graphe G et pour toute clique X de G ,
il existe un cluster Ci ∈ C tel que X ⊂ Ci .
2.2.
15
CONSTRUCTION D'UNE DÉCOMPOSITION
Preuve Par récurrence sur la taille de la clique.
De cette propriété découle que la largeur d'arbre d'un graphe est minorée par la taille
de sa plus grosse clique.
Nous allons voir à présent comment calculer une bonne décomposition en clusters.
2.2 Construction d'une décomposition
Calculer une décomposition de largeur minimale est un problème NP-dicile. Toutefois,
ce problème peut être résolu en temps polynomial si le graphe à décomposer est triangulé :
Dénition 13 (Graphe
)
On dit qu'un graphe est triangulé
(ou cordal) si tous ses cycles de longueur 4 ou plus ont au moins une corde, c'est-à-dire
une arête joignant deux sommets non consécutifs dans le cycle. L'opération qui consiste à
rendre triangulé un graphe qui ne l'est pas en lui ajoutant de nouvelles arêtes est appelée
triangulation.
triangulé, triangulation
La gure 2.2 est un exemple de triangulation d'un graphe.
0
3
0
3
5
5
2
1
2
6
1
6
4
4
7
7
(a) Graphe non triangulé
Fig.
(b) Triangulation du graphe précédent
2.2 La triangulation d'un graphe.
2.2.1 Décomposition optimale d'un graphe triangulé
Pour obtenir une décomposition optimale d'un graphe triangulé, il sut de calculer son
arbre de jonction :
Dénition 14 (Arbre
)
Soit G = (V, E) un graphe. Un arbre T = (I, F )
dont chaque i ∈ I est associé à un sous-ensemble de noeuds Vi ⊂ V est un arbre de jonction
de G si :
{Vi | i ∈ I} est l'ensemble des cliques maximales de G ,
de jonction
16
CHAPITRE 2.
DÉCOMPOSITION ARBORESCENTE
∀x ∈ V , {i | x ∈ Vi } est un sous-arbre connexe de T .
Théorème 1
Seuls les graphes triangulés ont un arbre de jonction
En eet, on constate aisément qu'un arbre de jonction d'un graphe G est une décomposition arborescente de G dont la largeur est égale à la taille de la plus grande clique de
G . Cette décomposition est de plus de largeur minimale car la largeur d'arbre d'un graphe
est minorée par la taille de sa plus grande clique.
Le calcul d'un arbre de jonction est un problème simple qui est détaillé à la section
2.2.4.
2.2.2 Décomposition optimale d'un graphe non triangulé
Trouver la décomposition optimale d'un graphe non triangulé est une tâche plus délicate que dans le cas d'un graphe triangulé. En eet, comme nous l'avons vu les graphes non
triangulés n'ont pas d'arbre de jonction. Toutefois, on peut remarquer que pour toute décomposition arborescente d'un graphe non triangulé G = (V, E), il existe une triangulation
de G qui admet la même décomposition.
Preuve Soit (T (I, F ), C) une décomposition en clusters de G . On construit G 0 = (V, E 0 )
où E 0 = E ∪ {(u, v) | ∃i ∈ I, u ∈ Ci et v ∈ Ci }. Alors (T , C) est aussi une décomposition en
clusters sur G 0 . De plus, G 0 est triangulé : si G 0 n'était pas triangulé, il existerait un cycle
de longueur au moins 4 qui ne serait dans aucun des Ci alors que chacune des arêtes qui
le composent est dans un cluster diérent. On serait donc dans une situation analogue à
la gure 2.3 qui contredit le point 3 de la dénition d'une décomposition arborescente. 2.3 Une décomposition arborescente irréalisable
Aucune décomposition arborescente ne peut être faite avec les clusters C1 , C2 , C3 et C4 .
Fig.
En particulier, il existe une triangulation de G qui admet la même décomposition optimale. Trouver la largeur d'arbre de G revient ainsi à trouver une triangulation de G dont
la largeur d'arbre est minimale [Koster 01].
Trouver cette triangulation est un problème NP-dur. Toutefois, en utilisant de bonnes
heuristiques, on peut trouver des triangulations qui en sont proches en temps polynomial.
2.2.
17
CONSTRUCTION D'UNE DÉCOMPOSITION
2.2.3 Triangulation
Le problème est donc de calculer une bonne triangulation du graphe initial. Un des
moyens de procéder est de calculer son graphe d'élimination :
Dénition 15 (Graphe d'élimination)
Soit G = (V, E) un graphe. Notons |V | = n.
Soit α : {1, 2, . . . , n} → V un ordre sur les noeuds de G . On appelle graphe d'élimination
de G selon α le graphe obtenu en prenant successivement chaque noeud v ∈ V dans l'ordre
α et en reliant entre eux tous les voisins de v situés après v selon α. Les arêtes ainsi
ajoutées sont appelées arêtes de ll-in. α est un ordre d'élimination parfait si aucune arête
n'est ajoutée durant la construction du graphe d'élimination.
6
5
6
4
3
5
2
1
4
3
0
6
5
2
1
5
2
1
Fig.
0
0
1
0
0
6
5
2
2
1
4
3
4
3
6
4
3
5
2
1
6
5
4
3
0
6
4
3
2
1
0
2.4 L'exécution du processus d'élimination.
Un exemple d'exécution du processus d'élimination peut être trouvé à la gure 2.4.
Théorème 2
[Fulkerson 65] Un graphe est triangulé si et seulement s'il a un ordre d'élimination parfait.
Ce théorème donne une caractéristique importante des graphes triangulés. On en déduit
aisément le corollaire ci-dessous :
Corollaire 1
Tout graphe d'élimination est triangulé.
Pour trianguler un graphe il sut donc de calculer son graphe d'élimination. La complexité en temps maximale de ce procédé est O(n.d2 ) où n est le nombre de noeuds du
graphe et d le degré du sommet de plus grand degré.
La qualité de la triangulation obtenue dépend uniquement de l'ordre d'élimination
α choisi. Trouver l'ordre d'élimination qui aboutira à la meilleure triangulation est un
problème d'optimisation que l'on peut résoudre avec les méthodes classiques, complètes ou
18
CHAPITRE 2.
DÉCOMPOSITION ARBORESCENTE
incomplètes (branch and bound, recuit simulé, algorithmes génétiques, ...). Ces méthodes
sont plus ou moins coûteuses en temps de calcul. Nous utilisons un algorithme de type
glouton qui consiste à choisir à chaque étape le noeud qui minimise la valeur d'une fonction
heuristique. Cet algorithme est rapide et produit de bonnes triangulations pour peu
que l'heuristique choisie soit ecace. Les plus utilisées sont les suivantes.
L'heuristique min-width
Cette heuristique consiste à choisir les noeuds de degré minimal en premier (les arêtes
de ll-in ne sont pas prises en compte dans le calcul du degré de chaque noeud). À chaque
étape, le noeud choisi est enlevé du graphe ainsi que les arêtes qui en sont issues. Le calcul
de l'ordre avec cette heuristique a pour complexité temporelle maximale O(nd).
L'heuristique min-ll
Avec cette heuristique, les noeuds qui ajoutent le moins d'arêtes de ll-in sont choisis en
premier. Les arêtes de ll-in sont cette fois prises en compte dans le calcul du voisinage des
noeuds. Le calcul de l'ordre nécessite une complexité de O(n2 d2 ). Cette heuristique donne
en général de bien meilleurs résultats que la précédente, au prix d'un temps de calcul plus
élevé.
D'autres heuristiques sont présentées dans [Bouveret 04], mais elles semblent moins
ecaces que les précédentes.
Amélioration de l'ordre obtenu
Quelle que soit l'heuristique utilisée, nous avons remarqué qu'il est possible d'améliorer
la triangulation obtenue si celle-ci n'est pas minimale (cf gure 2.5) :
Dénition 16 (Triangulation minimale)
On dit qu'une triangulation T d'un graphe
G = (V, E) est minimale s'il n'existe pas d'autre triangulation T 0 telle que T 0 ⊂ T .
2
2
1
2
1
5
3
0
1
5
3
0
4
3
0
4
(a) Graphe non triangulé
Fig.
5
(b) Triangulation non minimale
4
(c) Triangulation minimale
2.5 Diérentes triangulations d'un même graphe.
2.3.
EXPLOITATION DE LA DÉCOMPOSITION ARBORESCENTE
19
Pour cela, il sut de déterminer pour chaque arête de ll-in (u, v) s'il existe un cycle
de longueur au moins 4 dans le graphe dont elle est la seule corde. Si tel n'est pas le cas,
on peut retirer (u, v) du graphe. Il est en fait possible de se limiter aux cycles dont la
longueur est égale à 4. En eet, tous les cycles de longueurs supérieures sont composés
de plusieurs cycles de longueur 4 une fois le processus d'élimination terminé. Si une ou
plusieurs arêtes de ll-in ont ainsi pu être enlevées du graphe, il faut réexaminer les arêtes
de ll-in restantes car la suppression d'une arête peut engendrer la destruction d'un cycle.
Cet algorithme peut être implémenté avec une complexité en temps de O(f 2 d2 ) dans le
pire des cas, où f est le nombre d'arêtes de ll-in ajoutées au graphe pendant le processus
d'élimination.
2.2.4 Arbre de jonction
Une fois la triangulation eectuée, il reste à calculer un arbre de jonction pour obtenir
une décomposition arborescente du graphe initial. Il est nécessaire, pour cela, de calculer
le graphe de jonction du graphe :
Dénition 17 (Graphe de jonction)
Soit G un graphe et C l'ensemble des cliques maximales de G . Le graphe de jonction de G est le graphe J dont les noeuds sont les éléments
de C et dans lequel deux noeuds sont reliés entre eux si et seulement si les deux cliques
correspondantes ont au moins un noeud de G commun. Chaque arête (Ci , Cj ) de J est
pondérée par la taille de l'intersection entre Ci et Cj .
Le calcul des cliques maximales est très simple à faire si l'on utilise la constatation de
Dechter et Pearl dans [Dechter 89] qui indique que pour un graphe triangulé et son ordre
associé, tout sommet forme une clique avec tous ses voisins le suivant dans l'ordre.
L'obtention d'un arbre de jonction à partir du graphe de jonction se fait grâce au
théorème suivant :
Théorème 3
[Jensen 94] Un arbre couvrant de poids maximal sur le graphe de jonction
est un arbre de jonction.
Le calcul d'un arbre couvrant de poids maximal peut être eectué en O(E.log(N )), où
N est le nombre de noeuds et E le nombre d'arêtes du graphe de jonction, si l'on utilise
un des algorithmes classiques de Prim et Kruskal.
Il existe d'autres méthodes pour calculer une décomposition arborescente. Sylvain Bouveret présente notamment dans [Bouveret 04] une méthode proposée par Arie Koster dans
[Koster 99] fondée sur le calcul de coupes successives dans le graphe de contraintes. Cette
méthode semble toutefois peu compétitive face au calcul d'une triangulation.
2.3 Exploitation de la décomposition arborescente
Nous allons à présent voir comment utiliser la structure du graphe des contraintes
exhibée par sa décomposition en clusters pour améliorer la recherche de solutions.
20
CHAPITRE 2.
DÉCOMPOSITION ARBORESCENTE
2.3.1 Heuristique d'ordonnancement
Une première idée permettant d'exploiter la structure du graphe est d'utiliser la décomposition arborescente pour établir un ordre d'instanciation des variables du CSP. Plus
concrètement, notons G = (V, E) le graphe des contraintes du CSP. Soit ((I, F ), C) une
décomposition en clusters de G . On choisit un cluster racine C0 de (I, F ) (en général, on
prend le plus grand cluster) puis on explore l'arbre en profondeur d'abord. Chaque fois
qu'un noeud de l'arbre est rencontré, toutes les variables du cluster correspondant sont
instanciées avant de passer au noeud suivant.1
Dénition 18 (Descendance)
Soit Ci ⊂ C un cluster de G . On appelle descendance de
Ci (notée Desc(Ci )) les variables du sous-arbre T 0 ⊂ (I, F ) engendré par Ci .
Algorithme 3 Algorithme de backtrack selon l'arbre des clusters : BT CT (I, Ci , VC )
i
Entrées:
Sorties:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
si VC
i
I instanciation partielle, Ci cluster courant, VCi variables de Ci non instanciées.
une solution du CSP.
6= ∅
alors
choisir x ∈ VCi
pour tout v ∈ Dx faire
I 0 ← I ∪ {(x, v)}
si I 0 est consistant alors
consistance ← BT CT (I 0 , Ci , VCi \x)
si consistance alors
renvoyer Vrai
n si
n si
n pour
renvoyer Faux
sinon
si F ils(Ci ) 6= ∅ alors
pour tout Cj ∈ F ils(Ci ) faire
consistance ← BT CT (I, Cj , Cj \(Ci ∩ Cj ))
si ¬consistance alors
renvoyer Faux
n si
n pour
n si
renvoyer Vrai
n si
1 On
confondra parfois un cluster et l'ensemble des variables qui le composent. Ainsi, on dira qu'on
lorsqu'on instancie chacune de ses variables. De même, on parlera des variables d'un
sous-arbre T 0 ⊂ (I, F ) pour désigner les variables contenues dans les clusters qui composent T 0 .
instancie un cluster
2.3.
EXPLOITATION DE LA DÉCOMPOSITION ARBORESCENTE
21
L'algorithme ci-contre est une adaptation de l'algorithme backtrack avec utilisation
de l'heuristique d'exploration obtenue par la décomposition arborescente du graphe des
contraintes. On peut facilement l'adapter pour y inclure des formes de ltrage de type FC
ou MAC. Pour encore améliorer les performances de l'algorithme, on peut utiliser d'autres
heuristiques pour ordonancer les variables d'un même cluster. Voici les plus courantes :
minSize [Haralick 80] : cette heuristique choisit d'instancier les noeuds de plus petit
domaine en premier de façon à réduire le nombre de branchements dans l'arbre de
recherche.
Domdeg [Bessière 96] : cette heuristique choisit d'instancier en premier la variable x
dont le rapport |Dx |/Nx est minimal, où |Dx | est la taille du domaine de x et Nx le
nombre de contraintes dans lesquelles x apparaît.
Des heuristiques peuvent également être utilisées pour ordonancer les ls d'un même
noeud lors de l'exploration de l'arbre des clusters. En eet, il est en général avantageux de
commencer à résoudre les parties les plus diciles de l'arbre de façon à limiter le nombre
de backtracks. Les heuristiques suivantes essayent de caractériser cette notion de diculté :
maxNode : Cette heuristique choisit le cluster Ci qui maximize le nombre de variables
de Desc(Ci ).
maxEdge : Cette heuristique choisit le cluster Ci qui maximize le nombre de contraintes
associées aux variables de Desc(Ci ).
Le gain en temps de calcul obtenu par l'utilisation de ces heuristiques est en général
important. Des mesures précises sur des instances de problèmes réels sont disponibles au
chapitre suivant.
2.3.2 Algorithme BTD
L'algorithme BTD utilise la structure du graphe des contraintes pour faciliter la détection et la mémorisation de goods et de nogoods [Terrioux 02]. Plus précisément, cet
algorithme scinde le CSP en sous-problèmes en utilisant la présence de séparateurs dans
la décomposition arborescente :
Dénition 19 (Séparateur)
Soit un cluster Ci ⊂ C . Soit Cj ⊂ C un ls de Ci . L'ensemble des variables de Ci ∩ Cj est appellé séparateur de Ci et de Cj .
Le terme séparateur utilisé pour désigner l'intersection d'un cluster avec son ls provient
du théorème suivant :
Théorème 4
Étant donné un cluster Ci et l'un de ses ls Cj , il n'existe pas d'arête (u,v)
dans le graphe de contraintes G du CSP tel que u ∈ V \Desc(Cj ) et v ∈ Desc(Cj )\Ci ∩ Cj .
Preuve Par dénition de la décomposition arborescente.
Autrement dit, si on retire du CSP les variables du séparateur entre un cluster Ci et
son ls Cj , on déconnecte totalement le sous-problème formé par les variables de Desc(Cj )
22
CHAPITRE 2.
DÉCOMPOSITION ARBORESCENTE
du reste du problème. Ainsi, seule la valeur des variables de Ci ∩ Cj peut inuer sur la
résolution du problème global.
Plus formellement, ce constat permet de dénir les goods et les nogoods structurels :
Dénition 20 (Good structurel, nogood structurel)
Soit un clusters Ci et soit Cj
l'un de ses ls. Une instanciation I de Ci ∩ Cj est un good structurel (resp. nogood
structurel) de Ci par rapport à Cj si I peut être (resp. ne peut pas être) étendue de façon
consistante sur Desc(Cj ).
L'algorithme BTD instancie les variables en suivant l'arbre des clusters, comme l'algorithme précédent, mais il mémorise de plus les goods et les nogoods structurels rencontrés
lors de la recherche. Lorsqu'un séparateur entre deux clusters Ci et Cj est instancié, l'algorithme vérie s'il s'agit d'un good ou d'un nogood. Dans le premier cas, il est possible
d'étendre l'aectation courante en une aectation consistante sur Desc(Cj ). L'algorithme
poursuit donc la recherche dans la branche suivante. Dans le second cas, l'algorithme revient en arrière (backtrack) car il n'est pas possible d'étendre l'aectation courante en une
aectation consistante sur Desc(Cj ). S'il ne s'agit ni d'un good, ni d'un nogood, l'algorithme poursuit l'instanciation dans la branche courante de l'arbre des clusters.
Les heuristiques décrites pour l'algorithme précédent concernant l'ordonnancement des
variables d'un même cluster et celui des ls d'un même cluster peuvent aussi être utilisées
avec l'algorithme BTD.
2.3.
EXPLOITATION DE LA DÉCOMPOSITION ARBORESCENTE
Algorithme 4 Algorithme BTD : BT D(I, Ci , VC )
i
Entrées:
Sorties:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
si VC
23
I instanciation partielle, Ci cluster courant, VCi variables de Ci non instanciées.
une solution du CSP.
6= ∅ alors
i
choisir x ∈ VCi
pour tout v ∈ Dx faire
I 0 ← I ∪ {(x, v)}
si I 0 est consistant alors
consistance ← BT D(I 0 , Ci , VCi \x)
si consistance alors
renvoyer Vrai
n si
n si
n pour
renvoyer Faux
sinon
si F ils(Ci ) 6= ∅ alors
pour tout Cj ∈ F ils(Ci ) faire
si I[Ci ∩ Cj ] est un nogood de Ci /Cj alors
renvoyer Faux
sinon
si I[Ci ∩ Cj ] n'est pas un good de Ci /Cj alors
consistance ← BT D(I, Cj , Cj \(Ci ∩ Cj ))
si consistance alors
Enregistrer I[Ci ∩ Cj ] comme good de Ci /Cj
sinon
Enregistrer I[Ci ∩ Cj ] comme nogood de Ci /Cj
renvoyer Faux
n si
n si
n si
n pour
n si
renvoyer Vrai
n si
24
CHAPITRE 2.
DÉCOMPOSITION ARBORESCENTE
Chapitre 3
Le problème d'aectation de fréquences
radio
Ce problème est une variante du problème de coloration de graphe. Les instances les plus
populaires de ce problème sont celles proposées par le Centre d'Électronique de l'Armement
(CELAR). Elles ont été construites à partir de données réelles simpliées et sont souvent
utilisées comme benchmarks par la communauté CSP.
3.1 Présentation
Le problème consiste à généraliser des fréquences radio à un ensemble de connections
sans l. Ces connexions sont constituées par un site émetteur et un site récepteur. Les
fréquences attribuées à chaque paire de sites doivent être choisies de façon à éviter les
interférences. La plupart des connexions sont bidirectionnelles. En général, il faut donc
assigner deux fréquences par paire de sites, une pour chaque direction.
Chaque connexion i est représentée par une variable Fi dont le domaine correspond aux
fréquences disponibles pour la connexion. Ce domaine est un ensemble ni de valeurs qui
peut varier selon les connexions.
Les interférences entre connexions sont exprimées par des contraintes du type :
|Fi − Fj | > kij
où i et j sont deux connexions proches géographiquement. La constante kij dépend de la
position des sites et de l'environnement. Elle est largement surévaluée pour éviter tout
risque d'interférence.
Pour les deux sens d'une connexion bidirectionnelle, une contrainte technologique impose que la diérence entre les fréquences Fi et Fj utilisée dans chaque sens soit égale à
une certaine valeur :
|Fi − Fj | = K
25
26
CHAPITRE 3.
LE PROBLÈME D'AFFECTATION DE FRÉQUENCES RADIO
305
303
205
127
204
605 624
604579 625
517
516
236
237
235
620
560621 348
349
578 561
232 577
576
233
800
591
282
280
340343
281 341 342
283
721
143
720
145
723
144
713 142
722
276277
712
518
519
801
590
126
302
304
617
234
350351
328
329
879
588
594
595
878
Fig.
589
660
661
260
261
435
480
434
326 327
762263 262
324
325 763
53
667
666
616
799
798
632
15321
633
600
322 12 323
554
796
274
719
272
787
630
716
634 601
599
320
271
273
14
606
718 275
598797
717
628
270
631 767
564 635 565
629
555 268
766
583
596
788
665 556 13 745
269
582
557664
586
644
786
559
597
558
585744
789
593
607
290
592
584
266
289 791 784 792785 794
291
790 613
264
267
793
587
612
265
602 645
288
795
746 764
603
79
83
85 84 765
81
82
747
650 80
663 662
52
743742
78
651
128
615 129
614
481
475
474
3.1 Le graphe de contraintes d'une instance de CELAR : SCEN02.
3.2 Critères d'optimisation
Les solutions les plus intéressantes pour ce problème sont celles qui permettent d'ajouter
de nouveaux sites et de nouvelles connexions facilement, autrement dit celles qui occupent
le moins l'espace des fréquences. Deux critères d'optimisation permettent d'aller en ce sens :
Minimiser la plus haute fréquence utilisée. Ainsi, les fréquences supérieures sont disponibles pour d'éventuels ajouts.
Minimiser le nombre de fréquences diérentes utilisées de sorte à occuper le moins
possible l'espace des fréquences.
Le second critère donne de meilleurs résultats que le premier, mais il est nettement moins
facile à calculer.
3.3 Quelques mots sur FaCiLe
FaCiLe est une librairie Open Source de programmation par contraintes développée au
sein du LOG. Elle permet de manipuler facilement des variables et des domaines et ore
toute une panoplie de contraintes prédénies, surtout pour les variables à domaines nis.
Elle permet également de dénir ses propres contraintes.
Lorsque le domaine d'une variable est modié, FaCiLe modie automatiquement le domaine des autres variables du CSP en maintenant la consistance d'arc. Tous les algorithmes
de recherche que nous avons testés ici utilisent donc MAC.
3.4.
RÉSULTATS
27
3.4 Résultats
Nous avons testé sur plusieurs instances de CELAR quelques-uns des algorithmes présentés aux chapitres précédents, en essayant plusieurs heuristiques pour chacun d'entre
eux. Ces algorithmes sont :
BTCT : présenté au chapitre 2, cet algorithme a été testé avec les heuristiques de
choix des clusters MaxEdge et MaxNode, et avec les heuristiques d'instanciation
Domdeg et minSize.
BTD : il s'agit d'une variante de l'algorithme présenté au chapitre 2. Cette version
n'enregistre que les nogoods et non pas les goods. En eet, lorsqu'on cherche à optimiser, les goods présentent peu d'intérêt puisqu'il est alors nécessaire de parcourir
toutes les solutions consistantes. Nous avons testé cet algorithme avec les mêmes
heuristiques que BTCT.
BT (avec ltrage MAC) : présenté au chapitre 1, il a été testé avec les heuristiques
d'instanciation Domdeg et minSize.
Nous avons évalué les performances de ces algorithmes sur les deux critères d'optimisation, excepté BTD que nous avons testé uniquement sur le problème de minimisation de
la plus haute fréquence, ceci pour des raisons énoncées à la section suivante.
Les mesures eectuées sont : le nombre de backtracks jusqu'à la découverte d'une solution optimale, le temps mis pour découvrir cette solution et le nombre de backtracks ayant
eu lieu jusqu'à la n de l'algorithme (c'est-à-dire jusqu'à ce que l'algorithme ait prouvé
l'optimalité de la dernière solution trouvée).
Les résultats que nous avons obtenus sont visibles sur les gures 3.3 et 3.4. La première
chose que l'on remarque est qu'il est bien plus dicile de minimiser le nombre de fréquences
utilisées que la plus haute fréquence allouée. Aucun algorithme n'a d'ailleurs réussi à trouver
une solution optimale pour l'instance SCEN02 avec ce critère en un temps raisonnable. Ce
résultat n'est pas étonnant. En eet, comme nous l'avons vu, les contraintes de coût qui
sont créées lorsque l'on cherche à minimiser la plus haute fréquence allouée sont en fait des
contraintes unaires qui sont résolues immédiatement par ltrage du domaine des variables.
En revanche les contraintes de coût concernant le nombre de fréquences utilisées propagent
très peu.
La seconde chose que l'on peut noter est que les algorithmes qui utilisent une décomposition en clusters se montrent en général plus ecaces que ceux qui n'en utilisent pas. Ceci
est particulièrement vrai sur l'instance SCEN02 où BTCT et BTD trouvent une solution
optimale très rapidement alors que BT n'y parvient pas, quelle que soit l'heuristique utilisée. Le fait d'utiliser la structure du graphe de contraintes se montre donc particulièrement
payant sur ce type de problèmes.
En ce qui concerne les heuristiques utilisées, il semble dicile de pouvoir se prononcer
sur Domdeg et minSize, les deux se valant. Par contre, MaxEdge apparaît comme étant un
peu plus performant que MaxNode.
Enn nous n'avons pas remarqué de diérence de performance signicative liée à l'utilisation des nogoods, excepté pour SCEN02 où BTD se montre plus rapide que BTCT dans
le cas où l'heuristique d'ordonnancement des clusters est MaxNode.
28
CHAPITRE 3.
LE PROBLÈME D'AFFECTATION DE FRÉQUENCES RADIO
842 846 848
847
869 843
868 844 849
840
841
838 839
749 451
845
748
441 450
440
27
894
26
836
895
862
863
837
194
196
195
197
488
727
339
725
726
338
835
834
724
66 67
346
154
155
156
157
347
344
345
532
533
360 534
762
763
327
325
367
363 366214
215
362
355
364
354
365
262
324263
326
358359
475
474
297
543
542
398
548
514
296
899
898
9
884
886
887
885
897
896
51
50
459 461
458 460
53
457456
288
81
616
832
580
622
623
547
383 546
858
469
859
468
636
637
639
638
524
525
611
610
751
755
754
373
372 750
380
752
381
567
566
390
391
545
544
255
569
568
550
551
541
403
402
336
337
572
573
757
91
95
24
905
93
94
106
8687
485
677
484 676
678
679
680
703
702
681
683
684
682
705
687
413
689
811
810
812
813
229
808
809
219
218
442
570
571
473
472
70
71
913
258
259
334
774
775
335
278
279
318
316
710
417 416
914
915 711
418 419
317 319
760 761
414 415
408
410
529
409
411
528
(a) SCEN04
479
379
378
292
352
353
162 164
163 552
478 385165 553
384
774
775
254
293
752
753
751
913
372
373
750
914
912
915
711
380
381
755754
544
255 336 337
545
391
390
413
539
412
536
537538
403
402
393
392
710
258
259
739
540
568569
335
334
70
551
541 550 472
473
566567
738
71
571570
573
572
757
756
219
803
805
802
804
807
806
808
810
811
813
812
218
809
442
443
759
758
769
768
910
715
438827
178 295 294
449
119 562
714
439448
116 824400563
118
773
826
117 401
828829
815
151 825
127 574
404
741
216 911 150 152619
575 128
814
816
183182179 618
641 640
642
643
368
208
772
667
369 405
614
129
377
217 210 153
817
181 180
666205
212
376
371
209211 213 615126
740
370
476477
310
311312
653
313 300
204
375
298301
616
299
652
588
374
617
589
192
190
191306
307 670
193
671 308 302 303
305
309304
594595
286
284
285
471 287
237
517
516
236
235
600
601
605
604
625
329
559 624
560621
634
558
561
620
328 565
233576 591 350 351
577232
265
635578
267
645
234 800
590
584
564
801
632633
587
744
745 585 586
798 799
794
766
796
793
599598
15
785 764
797792 323 767 321 592
795
59313 784
790
631 12322
14 665 664 613746
84
630
791
83 663
556
320 557
788
596 612
747
662
787 628
597
629 789 289
742
85 82
263
743
765
763
142722
607
280
518
762
720144 555
342
326
519
341
554 268 786 290
282
281
270
325
81
288
291
327
343
606271
276
324
269
277
79
262
713 719
340283721 712
717
723
273
145
274 718275
78
143 272716
583582
80
52
879
650
480
782
639
580
602 470
623
264
660 261 638
266 603 622
581
644
661
579
349
348
435
434
260
474
475
481
783
878
53
651
(b) SCEN05
Fig.
228
692
806
807
738 739
912
185
693
690
536
537
412
187
691
686
804
805
393
392
539 538
254
186
688
685
704
443
540
821
818
819
803
802
306
307
193
191
864
865
820
609
608 626
627
204 301
299
300
298
311
212 126
312
310
313 652
615
190
129
614 205213
192
666 209
211
653
128
575 208
210 153
477
667 643
374
574
640641
375
152
180 740376476
619
179
127
377
182642
911
825 183 217 181
618828401150
405
151216
772
817
178826
368
118117
758
829 824 400
369
562 116
404741 816
371
759
119
448
715714
370
814
827
910
563
768 449439
295294
756
438
773
815
769
753
822
823
526
527
523
522
670671
9697
833
581
284
305
303
304309308
302
617
25
90
904
467
466
107
92
285
588589
478
465464
236
517
516
237
387
385
352 333384
728
730 353
331
163
165
332 162
330 164
552
553
7
8
6
78
79
594
595
399 388 735
515549
734
293
292
378395394 737 736
379 454
455
729
731 479
900
901
883
463 462
261
435 260
434
782
481
480
783
771
396
770
397
386
382
389
80
489
21
20
0
870 871
1
861
519
361
733
880
48
881
49
52
787 518
789
788
628629
289
795
791790
630
82
597 596 631 323
84 85
557
13 797
592
556 320321 15792
796
612
663
83
664
613 593 767 1214 793794
765
784 665322
470
747
746
743
766599 798 799
764
598
742 662
785
471
578
286
605
585 745
801
604
586
744
287
632
561
579
633
590 800233
235
584
564
560620
625
645
587
350 576
635
267
624
232
351
621234
661
328
591
577
565634
264
559
329
266 644 558
348
349
660
603 265
601 600
602
535
356
732
867
866
879
650
283
143
723
340 145
274 582
583
716
342
718
341
276
721 712
719
275
343
272273717
713
277
282
281
280
720
554606 607
555
786
722
144
270
142
269268
271
291290
357
876877
104
105
878
68
651
874
69 902
102
903494 875
103
495
890
888
889
891
493
892
492
893
491
490
23
22
170171
199
198
860
882
3.2 Des instances de CELAR : SCEN04 et SCEN05.
184
3.4.
29
RÉSULTATS
Instance
SCEN02
nb BT tps (s)
498
0.67
561
0.5
3390
2.84
3765
2.82
480
0.27
645
0.5
487
0.32
645
0.54
Domdeg
MaxEdge
minSize
BTCT
Domdeg
MaxNode
minSize
Domdeg
MaxEdge
minSize
BTD
Domdeg
MaxNode
minSize
BT DomDeg
> 107
BT MinSize
> 107
Opt.
3214
1633
6110
4832
3148
1717
3155
1717
> 23000 −
> 23000 −
(a) Instances SCEN02 et SCEN04
SCEN04
nb BT tps (s)
39
0.10
41
0.10
41
0.11
43
0.11
41
0.12
41
0.11
41
0.11
41
0.11
43
0.35
43
0.35
SCEN05
nb BT tps (s)
BTCT toutes heuristiques 9
0.04
BTD
toutes heuristiques 9
0.04
BT DomDeg
16
0.09
BT MinSize
16
0.09
Instance
(b) Instance SCEN05
Opt.
40
42
42
44
42
42
42
42
44
44
Opt.
10
10
17
17
3.3 Performance des algorithmes sur des instances de CELAR : minimisation de la
plus haute fréquence allouée
Fig.
SCEN04
nb BT tps (s)
Domdeg 205
1.74
MaxEdge
minSize 197
1.72
BTCT
Domdeg 205
1.74
MaxNode
minSize 197
1.73
BT DomDeg
205
3.26
BT MinSize
203
2.63
Instance
SCEN05
Opt. nb BT
tps (s)
206 1,476,000 3539
198 1,450,000 3421
206 > 51.106 > 120, 000
198 > 51.106 > 120, 000
206 −
−
204 −
−
Opt.
> 46.106
> 46.106
−
−
−
−
3.4 Performance des algorithmes sur des instances de CELAR : minimisation du
nombre de fréquences diérentes
Fig.
30
CHAPITRE 3.
LE PROBLÈME D'AFFECTATION DE FRÉQUENCES RADIO
3.5 Optimisation et nogood recording
Nous indiquions au chapitre 1 qu'il n'était pas toujours possible d'adapter un algorithme
de recherche systématique à un problème d'optimisation. Les algorithmes avec enregistrement des nogoods tels que BTD sont de tels exemples. En eet, nous avons vu que, dans
ce type d'algorithmes, les nogoods sont enregistrés lorsqu'un échec est rencontré au cours
de la recherche. Or dans un problème d'optimisation, l'échec peut venir des contraintes de
coût. Dans ce cas, le nogood enregistré n'est pas forcément valide car toutes les variables
du CSP interviennent dans la contrainte de coût.
Exemple 1
Considérons le CSP formé par les trois variables A, B et C de domaines
respectifs [1; 2], [1; 30] et [2; 15] avec les contraintes suivantes |A−B| > 2 , |B −C| > 20. Le
graphe des contraintes est A−B−C . Notons C1 → C2 l'arbre des clusters avec C1 = {A, B},
C2 = {B, C}. Ce CSP n'a que deux instanciations consistantes : {(A, 1); (B, 30); (C, 2)}
et {(A, 2); (B, 30); (C, 2)}. On suppose que la contrainte de coût donnée par l'algorithme
d'optimisation est que le nombre de valeurs diérentes prises par A, B et C doit être
strictement inférieur à 3.
Si à ce stade on laisse l'algorithme BTD s'exécuter, alors la première instanciation
{(A, 1); (B, 30); (C, 2)} échouera à cause de la contrainte de coût. Le nogood de C1 ∩ C2 :
(B, 30) est alors enregistré.
À cause de ce nogood, la seconde instanciation {(A, 2); (B, 30); (C, 2)} ne sera pas explorée,
alors qu'il s'agit de la solution optimale.
En fait la plupart des contraintes de coût modient le graphe des contraintes du CSP
puisqu'elles relient certaines variables entre elles, invalidant par là même toute la décomposition arborescente eectuée. Toutefois, certaines contraintes de coût, qui modient uniquement le domaine des variables et non pas la structure du graphe des contraintes (telles
que celles utilisées pour minimiser la plus haute fréquence utilisée dans CELAR 1 ) peuvent
être utilisées sans problème avec BTD.
1 En
eet, les contraintes générées par cette fonction de coût sont de la forme max Fi < c et peuvent
Fi ∈X
être vues comme un ensemble de contraintes unaires :∀Fi ∈ X , Fi < c.
Chapitre 4
Le problème d'allocation de créneaux de
décollage
Ce problème est une méthode de résolution automatique des conits aériens. Il y a
conit entre deux avions lorsque les normes de séparation horizontale (5 Nm) et verticale
(1000 ft) ne sont pas respectées par ceux-ci. Il existe plusieurs manières de résoudre un
conit avant que celui-ci n'ait lieu. Actuellement, trois systèmes préviennent les conits
aériens selon diérents horizons temporels :
Le système ASM (Air Space Management) ouvre et ferme des routes aériennes de
façon à anticiper les ux de trac futurs. Ces décisions sont prises plusieurs mois à
l'avance.
Le système CFMU (Central Flow Management Unit) assigne des retards aux avions
pour éviter la congestion des secteurs aériens [CFMU 00], et ainsi limiter les paires
possibles d'avions en conit. Ces choix sont eectués un à deux jours avant le décollage
des avions, puis réactualisés quelques heures avant le décollage avec les dernières
données.
Le système ATC (Air Trac Control) change les trajectoires et les vitesses des avions
quelques minutes avant le début du conit. Ces écarts aux plans de vol initiaux
sont donnés par les contrôleurs aériens.
L'une des méthodes envisagées par Eurocontrol pour assurer une gestion plus sûre et
ecace des ux de trac dans les années à venir consiste à limiter en amont le nombre
de conits en route en régulant le trac à l'aide de tubes 4D sans intersection entre
eux, les plus proches possibles de routes directes et optimaux pour les performances des
avions (limitation de la consommation de carburant et du temps de vol). Dans ce travail,
nous nous limiterons à la dimension temporelle en agissant uniquement sur les horaires de
décollage, mais nous comparerons les résultats obtenus sur deux types de routes : les routes
standards correspondant aux plans de vols suivis eectivement par les avions, et les routes
directes qui joignent en ligne droite dans le plan horizontal l'origine et la destination de
chaque vol.
Lorsque le retard est arbitrairement grand, il est toujours possible de résoudre ce problème. Une solution triviale consiste en eet à xer un ordre sur les avions (par exemple
31
32CHAPITRE 4.
LE PROBLÈME D'ALLOCATION DE CRÉNEAUX DE DÉCOLLAGE
suivant l'heure de décollage ou d'entrée dans l'espace aérien français), puis à assigner un
retard à chaque avion de sorte que chacun ne décolle qu'une fois le précédent atterri. Une
telle solution n'est bien sûr pas satisfaisante en terme de retards et nous avons choisi de minimiser le retard maximal aecté à un avion pour assurer un service de régulation ecace
et égalitaire.
Théoriquement, il est encore possible d'améliorer la qualité des solutions obtenues si l'on
cherche à minimiser la somme des retards en second critère, mais il devient alors dicile de
calculer la solution optimale en un temps raisonnable. Pour autant, les premiers résultats
obtenus présentent des retards maximaux si importants qu'il n'apparaît pas intéressant de
rechercher des solutions optimales pour le critère de la somme sans raner auparavant les
ambitions de notre modèle.
4.1 Modélisation
Nous allons présenter un certain formalisme avant d'exprimer les variables et les contraintes du problème. L'ensemble des avions est noté P . On suppose que la trajectoire en
4 dimensions de chaque avion est connue ainsi que son horaire de décollage prévu. Les
trajectoires sont discrétisées selon le même temps d'échantillonnage τ = 1 min. On note pik
le k -ième point de la trajectoire de l'avion i et tik le temps de passage initial (c'est-à-dire
sans retard) de l'avion i au point pik . Le retard en minutes aecté à l'avion i est exprimé
par la variable δi de domaine1 ni inclus dans N. Notons Tki le temps de passage réel (avec
retard) de l'avion i au point pik .
On a la relation suivante : ∀i ∈ P, ∀k ∈ T , Tki = tik + δi .
Les contraintes qui lient les variables δi entre elles sont issues des conits dans les
trajectoires des avions.
Dénition 21 (Points en conit)
Soient deux avions i et j . Soit pik un point de la trajectoire de i et un point de la trajectoire de j . On dit que pik et pjl sont des points en conit
si leur distance dans le plan horizontal est inférieure à la norme de séparation horizontale
et que leur diérence d'altitudes est inférieure à la norme de séparation verticale.
pjl
Lorsque deux trajectoires se croisent par exemple, plusieurs points sont en conit (cf
gure 4.1). Pour traduire cet aspect, nous dénissons la notion de zone de conits :
Dénition 22 (Zone de conit)
Soit Zi = {pik1 , . . . , pikm } un sous-ensemble de points
consécutifs de la trajectoire de i et Zj = {pjl1 , . . . , pjln } un sous-ensemble de points consécutifs de la trajectoire de j . Zi × Zj est une zone de conit entre i et j si :
∀x ∈ {1, . . . , m}, ∃y ∈ {1, . . . , n} | pikx et pjly sont en conit.
∀y ∈ {1, . . . , n}, ∃x ∈ {1, . . . , m} | pjly et pikx sont en conit.
1 Comme
les solutions du problème sont équivalentes si on décale chaque retard d'une même quantité
de temps, on peut se limiter à δi ≥ 0.
4.1.
33
MODÉLISATION
Fig.
4.1 Une zone de conit entre deux avions i et j .
Étant donnés deux points en conits pik et pjl , une condition nécessaire pour éviter le
conit entre les avions i et j est que ces avions ne doivent pas se situer en ces points
au même instant, autrement dit : Tki 6= Tlj . En utilisant la relation précédente, ceci se
transforme en l'inégalité suivante : δi − δj 6= tjl − tik .
Si l'on s'intéresse maintenant à une zone de conit Zi × Zj entre i et j , on obtient
naturellement :
[
δi − δj ∈
/
{tjl − tik | pik et pjl en conit }
(pik ,pjl )∈Zi ×Zj
Or, cet ensemble est un intervalle. Pour s'en convaincre, il sut de constater qu'une zone
de conit ne peut être résolue que si l'un des avions du conit traverse cette zone avant
l'autre. Notons cet intervalle [lbij , ubij ].
Les contraintes issues des conits peuvent ainsi s'exprimer de la manière suivante :
δi − δj < lbij ∨ δi − δj > ubij
Remarquons qu'il peut y avoir plusieurs zones de conit entre chaque paire d'avions (cf
gure 4.2).
Pour évaluer la complexité du problème ainsi formulé, on peut prendre le cas particulier
où les vitesses des avions en conit sont identiques deux à deux et où il y a au plus un seul
conit par paire d'avions. Les contraintes de ce problème se réduisent alors à :
δj − δi > bij ∨ δi − δj > bij
et donc de manière plus concise à :
|δi − δj | > bij
34CHAPITRE 4.
LE PROBLÈME D'ALLOCATION DE CRÉNEAUX DE DÉCOLLAGE
20000
10000
0
-10000
-20000
-30000
20000
Fig.
10000
0
-10000
-20000
-30000
-40000
4.2 Plusieurs zones de conits entre deux trajectoires.
Le problème d'allocation de créneaux de décollage peut alors être vu comme un problème
de bandwidth coloring, lui-même une extension du problème de coloriage de graphe (qui
correspond au cas où tous les bij sont égaux à 1). Ce dernier problème est NP-Complet et
nous pouvons en déduire que la généralisation de notre problème à des graphes quelconques
est NP-dicile.
4.2 Stratégie de branchement
Les stratégies de branchement dans l'arbre de recherche par instanciation présentées
aux chapitres précédents sont peu ecaces face à ce problème en raison de la nature
disjonctive des contraintes et de la grande taille des données. Nous utilisons des variantes
de ces stratégies qui prennent des décisions d'ordre plus général sur les variables avant de
les instancier.
Plus précisément, on pose les variables intermédiaires dij = δi − δj pour toute paire
(i,j ) d'avions en conit potentiel, c'est-à-dire qu'on associe une variable dij à chaque arête
du graphe de contraintes. Nous avons vu dans la section précédente que le problème d'allocation de créneaux de décollage induit des contraintes de disjonction multiples sur les
retards,[
et les domaines des variables dij sont par conséquent des réunions d'intervalles :
Ddij = [ap , . . . , bp ].
p
Nous avons constaté qu'il est plus intéressant de choisir dans quel intervalle [ap , . . . , bp ]
se trouve chaque dij et de réduire par ltrage le domaine des δi correspondants plutôt que
d'instancier directement les δi comme le font les stratégies classiques.
En eet, il est préférable d'inférer le plus possible de réductions de l'espace de recherche
au plus tôt dans l'arbre de recherche, or l'instanciation de l'une des variables δi ne permet
4.3.
HEURISTIQUES DE SÉLECTION DES VARIABLES
35
pas de ltrer ecacement les domaines des autres variables reliées avec δi par une contrainte
de diérence. De même, si aucune solution consistante n'a été trouvée pour la valeur x d'une
variable δi ou que l'on recherche une solution de meilleur coût que celle où δi = x, alors,
en raison de la longueur des conits, il y a peu de chances qu'une solution consistante
soit trouvée avec la stratégie classique qui consiste à choisir la valeur suivante du domaine
x + 1. En revanche, si on choisit un intervalle d'une variable dij (ce qui revient à déterminer
quel avion passe avant l'autre dans chaque zone de conit entre i et j ), les algorithmes
de ltrage et de propagation de contraintes permettent d'élaguer le plus tôt possible des
branches sans solution de l'espace de recherche. L'opération qui consiste à réduire ainsi le
domaine d'une variable dij sera appelée par la suite réduction.
Cette méthode est souvent utilisée pour la résolution des problèmes d'ordonnancement
de tâches sur des machines [Baptiste 01], or le problème d'allocation de créneaux de décollage peut être considéré comme un problème d'ordonnancement muni de contraintes
supplémentaires :
à chaque conit est associé une machine de capacité unitaire et deux tâches dont
la durée correspond au temps de passage de l'avion dans la zone de conit (plus ou
moins long suivant la vitesse de l'avion) ;
les débuts de toutes les tâches (conits) d'un même vol sont reliés entre eux par des
contraintes de décalage correspondant aux temps d'entrée initiaux dans chaque zone
de conit.
Ce problème d'ordonnancement serait pourtant peu orthodoxe du fait du nombre de
machines (i.e. le nombre de conits, qui augmente quadratiquement avec le nombre de
vols) et de la faible quantité de tâches à eectuer sur chacune, des contraintes de décalage
supplémentaires2 et de la grande taille des instances considérées. Ces caractéristiques particulières excluent le recours aux autres techniques classiques utilisées en ordonnancement.
4.3 Heuristiques de sélection des variables
Nous avons évalués diérentes heuristiques de sélection des variables dij sur ce problème :
Branch : la variable (non-instanciée) dont le domaine est le moins dense est réduite
en premier, c'est-à-dire celle qui a le plus petit ratio :
|Ddij |
|Idij |
où Ddij est le domaine de dij et Idij , le plus petit intervalle qui contient Ddij .
Cliques : lors d'une première étape, un ensemble de cliques (les plus grandes possibles) du graphe de contraintes est calculé par un algorithme glouton rapide mais
incomplet3 [Barnier 02], puis l'heuristique Branch est appliquée successivement sur
les variable dij au sein de chacune des cliques par taille décroissante.
2 Classiquement,
3 La
seules des contraintes temporelles de précédence sont utilisées en ordonnancement.
recherche de la plus grande clique d'un graphe est un problème NP-Complet.
36CHAPITRE 4.
LE PROBLÈME D'ALLOCATION DE CRÉNEAUX DE DÉCOLLAGE
Clusters : un ordre d'instanciation sur les variables est calculé par décomposition
arborescente de la même manière que BTCT, puis l'heuristique Branch est appliquée
successivement au sein de chaque cluster, comme avec les cliques de l'heuristique
précédente, mais en suivant la structure d'arbre exhibée et en choisissant comme
racine le cluster le moins dense (au sens présenté précédemment) en moyenne.
Dans le cas où le graphe de contraintes est non connexe, les diérentes composantes
connexes sont traitées séparément (il s'agit de sous-problèmes totalement indépendants).
Une fois les décisions de réduction prises sur les variables dij , les variables δi sont
instanciées en commençant de manière classique par la plus petite valeur, an d'obtenir
des solutions de coût faible.
4.4 Réduction, MAC et nogood recording
Bien que la contrainte de coût due au problème de minimisation du plus grand retard
soit compatible avec l'algorithme BTD, nous n'avons pas utilisé ce dernier pour résoudre le
problème d'allocation de créneaux de décollage. La raison provient des variables intermédiaires dij que nous utilisons. Conceptuellement, il semblerait très intéressant de mémoriser
des nogoods sur les réductions des dij car ces réductions ont un caractère beaucoup plus
large que des aectations (une instanciation correspond à une valeur alors qu'une réduction
correspond à un intervalle).
En pratique, nous n'avons pas pu implanter cette méthode avec FaCiLe en raison de la
présence du ltrage par arc-consistance. En eet, la réduction d'une variable peut entraîner,
par arc-consistance, l'épuisement du domaine d'une variable précédemment réduite hors
du cluster courant. Contrairement au cas où l'on instanciait directement les variables, le
domaine des variables réduites n'est pas gé, ce qui condamne l'utilisation des nogoods
structurels.
4.5 Filtrage des données
Nous travaillons sur les données d'une journée (le 9 juillet 2006). Ces données contiennent
l'ensemble des trajectoires 4D initialement prévues dont un point au moins est dans un
secteur aérien français. Les parties de trajectoires situées autour des aérodromes (10 Nm)
sont éliminées car les normes de séparation sont inférieures dans ces zones d'approches et
le trac y est géré à l'aide de procédures spéciques au contrôle d'approche ; prendre en
compte comme le reste du vol en route ces parties de trajectoire très contraintes mènerait à
des solutions de coûts articiellement élevés. Nous ne conservons évidemment que les vols
qui sont en conit avec au moins un autre vol.
Une fois ce premier ltrage réalisé, le problème entier compte 8 485 vols et 810 909
conits potentiels en routes standards, et 8 467 vols et 674 019 conits en routes directes, ce
qui représente des tailles de problème bien trop grandes pour espérer obtenir des solutions
optimales prouvées à l'aide d'algorithmes complets tels que ceux que nous utilisons. Nous
4.6.
RÉSULTATS
37
nous sommes donc limités à résoudre des sous-problèmes du problème complet en ltrant
encore les données :
Le ltrage du niveau de vol minimal (i.e. de l'altitude) : les zones de conit dont tous
les points sont en dessous d'un niveau de vol seuil sont ignorées. On réduit ainsi le
nombre de vols et de conits considérés en se limitant aux ux les plus importants
de l'aviation commerciale et à la phase de croisière de leurs trajectoires.
Le ltrage selon l'horizon temporel : seuls les conits ayant lieu au début du vol sont
pris en compte. On limite ainsi encore plus le nombre de conits tout en déconnectant
certaines parties du graphes de contraintes, ce qui le rend moins dense et homogène,
et donc plus facile à résoudre.
La gure 4.3 montre l'évolution du graphe de contraintes du CSP obtenu après ltrage
en fonction du niveau de vol (FL) seuil et de l'horizon temporel. On remarque que plus le
ltrage est faible (c'est-à-dire plus l'horizon temporel est élevé et plus le FL seuil est bas)
et plus il semble dicile de distinguer des sous-problèmes dans le graphe de contraintes.
L'ecacité des algorithmes utilisant la structure du graphe de contraintes devrait donc
naturellement augmenter avec le niveau de ltrage.
4.6 Résultats
Nous avons appliqué les trois heuristiques mentionnées dans la section 4.3 à la journée
du 9 juillet 2006 en routes standards et directes. En routes standards, les conits aériens
sont plus nombreux qu'en routes directes (cf. section 4.5) car tout le trac converge sur
diérents waypoints gés, organisés en adéquation avec la structure des secteurs de contrôle.
Ces routes sont donc adaptées à la résolution des conits par l'ATC et non à la minimisation
du nombre de conits potentiels. Il est donc plus facile de résoudre le problème lorsque les
avions suivent des routes directes, avec un nombre de conits moindre.
La gure 4.4 présente les résultats que nous avons obtenus avec la librairie FaCiLe sur
quelques niveaux de vol seuil. Il s'agit du temps de calcul de la solution optimale (avec
preuve) en fonction du niveau de ltrage sur l'horizon temporel.
L'heuristique Branch est peu ecace sur ce problème et ne parvient à le résoudre en
un temps raisonnable que lorsque le niveau de ltrage est grand. Les algorithmes qui tirent
parti de la structure du graphe de contraintes se montrent clairement plus ecaces. Il est
dicile de déterminer si l'heuristique Clusters est plus ecace que Cliques en routes
directes, mais Clusters se montre nettement plus performante en routes standards.
La gure 4.5 montre quel algorithme a été le plus ecace en fonction de l'horizon temporel et du niveau de vol seuil. Les deux algorithmes orent des performances similaires
lorsque la taille du problème est faible (de l'ordre de 200 à 300 variables et 1000 à 2000
contraintes). Au delà, Clusters est plus ecace que Cliques. L'utilisation de l'analyse
du graphe de contrainte faite par la décomposition arborescente, plus ne que celle eectuée par la détection des cliques, semble ainsi se montrer payante. Remarquons également
que notre algorithme n'est capable de résoudre optimalement que des instances de taille
relativement modeste par rapport à celle du problème entier.
38CHAPITRE 4.
LE PROBLÈME D'ALLOCATION DE CRÉNEAUX DE DÉCOLLAGE
29
55
160
28
141
32
3
4
141
53
141
3
144 104
27
3
133
15
2
27
33
65
85
6
52
9
15326 19 60
3
5
3
9
2
9
18
77
2
4
4
64
3
4
27
3
158
4
21
4
15
72
4
4
5
5
3
4
84
77
24
4
147
4
4
5
3
1
3
3
3
2
111
64
3
5
3
3
10
3
89
138
3
44
3
155
5
3
3
55
4
3
155
95
2
3
3
3
4
3
12
3
23
4
3
3
56
77
1
155
3
2
163
156
13
3
3
12
1
3
2
13
2
74
131
4
3
3
3
3
4
3
15
155
2
1
12
1
2
1 32
12
2
12
2
2
3
2
83
3
7
3
4
1
1
121
2
2
2
2
2
2
7
4
2
7
7
2
127
142
4
5
121
2
1
1
6
1
2
2
1
2
3
30
2
16
3
1
1
1
3
84
16
0
5
3
67
2
16
7
1
3
26
26
135
1
9
3
4
2
2
2
2
133
3
3
127
3
4
3
108
59
6
2
16
7
133
9
2
2 3
7
3
3
3
3
4
6
6
4
6
4
9
6
27
6
4
127
6
3
2
16
1
3
6
3
3
148
17
3
7
9
3
9
6
3
7
129
7
7
6
2
6
5
7
125
7
4
5
3
16
3
1
3
17
12
3
3
7
3
3
4
8
33
4
4
2
74
131
7
4
3
3
49
49
2
5
2
3
4
152
5
147
3
3
2
3
7
3
2
4
7
3
149
13
4
157
3
3
3
2
3
7
157
3
4
3
4
4
4
2
3
3
5 3
2
3
3
5
4
3
123
98
27
4
12
152
3
3
3
9
95
7
67
3
4
4
4
3
3
114
3
76 55
38
7
78
7
3
129
5
2
3
11
17
2
3
68
2
3
4
3
3
3
6
27
75
2
134
4
152
2
11
51
3
2
2
27
135
85
5
4
3
157
3
2
2
135
78
3
4
9
3
2
2
2
135
24
3
12
12
2
3
4
139
135
4
132
151
8
157 37 42
3
1
6
12
135
135
3
76
3
3
3
1
1
3
4
6
135
5
131
7
7
2
121
155
155
2
2
96
3
4
1
150
2235 45
2
43
4
3
3
5
7
2
3
12
13
40
71 6
3
1
4
3
135
58
155
155
155
5
3
131
1 3 11 2 9
7
38
3
3
13
155
134
87
41
3
3
4
14
41
3
3
155
3
41
38
129
4
129
131
3
141
2
3
4
155
225
38
1
130 85
140
69
86
139
48
28 54
82
119
105 62 53
81
80
110
79
103
94 120
23
61
114
68
66
100
4
133
133
5
3
3
3
50
20 34
2536
176
4
4
4
127
141
4
4
1
5
1
3
4
133
133
127
59
4
4
3
2
5
10749
122
3
5
2
4
4
3
5
3
9
2
2
3
3
93 113
115
136
2
4
82
3
3
3
4
3
6
3
3
113
3
3
3
3
155
155
10
4
46
2
155
4
4
3
4
3
116
3
5
112
3
3
8
3
3
3
3
3
2
3
3
3
2
3
2
3
3
2
4
2
14
3
5
70
5
7
16
3
7
2
3
2
27
3
4
3
2
3
3
3
3
4
3
4
5
109
3
7
5
3
106
57
11
2
20
155
3
31
9
3
9
3
30
3
3
87
4
79
1
3
75
97
124
91
8
8
155
2
2
9
90
29
55
77
3
3
128
30
4
3
3
3
77
3
3
3
11
2
4
3
6
143
10
2
113
5
4640
5
155
10
90
7
26
5
5
155
53
4
1
3
3
3
3
155
15
3
3
3
71
2
4
12
3
58
3
3
3
3
3
47
62
4
4
12
155
155
70
4
2
121
145
4
44
4
49
155
155
33
57
3
48
129
152
157
1
7
7
34
152
81 39
155
24
7
7
1
4
45
155
83
4347
1
63
131
129
39
63
3
4
5
5
32
16156
152
4
4
12
21
3
4
3
4
30
84
4
131
31
31
147
8
8
4
4
3
2
9
2
3
4
3
3
54
2
114
8
1
3
5
3
2
2
1
25
1
9
4
66
3
61
3
3
22
3
3
3
80
7
3
3
3
5
2
71
2
3
117
2
3
3
6
164
7
7
7
3
6
3
7
5
3
2
5
2
6
65
40
99
101
6
3
49
143
6
4
6
3
4
3
3
6
6
43
3
11
69
50
3
11
37
95
4
41
126
6
10
3
35
12
121
86
5
3
121
52
10
77
7
7
26
3
4
72
36
8
4
19
146
3
3
3
88
2
2
1
10
2
3
17
121
18
88
4
74
162
3
3
2
3
3
2
3
92
159
73
118
4
5
151
2
2
5
3
2
2
135
2
5
2
5
2
3
3
60
31
5
141
30
141
141
2
4
0
5
5
154
5
10
2
51
2
143
3
3
13
5
42
73
102
137
(a) FL360, horizon 180 min
118
70
(b) FL360, horizon 240 min
109
131
251
115
131
129
59
7
58
141
111
120
4
103
131
129
1
3
1
84
141
141
4
229
4
129
78
4
11
7
102
27
199
203 206
227 167
51
64 147
83
84
15
30
3
6
88
31
91
39
5
87
82
5
114
5
10
3
4
97
11
2
30
92
27
5
75
4
4
195
177
169
104
7
214
190
178
156
38
151
7457106 4
56
34 70
50
163
72 91
21
192
41 132
233
59
180
237
138 155
49
145
92
173
165
80 134166
159
43
260
244
83
71
174
248
193231
258
33
216 109
46 112 54
47 76 230
170
61
154
105
5
60 81 208
16
18
89
129
204
58
232 14
220
20 176
130 96 133
136117
235 12
73 198
179
137
131
215
189
123
90
259
65
200
23
150
217
239
205183
160
247
8797 202
228
27
182
0
118
36181
213
243
4075 246
210
141
184
30
1
201
28
212
13
17 127
2 152
196
78
139 32 8
110 24 77
255
68
108
93 6
191 82
187
88
25
209
11
29
242 225 63
128 26
153
101
19
240 15 111
186
66
35
175
42103 125 99
224
31
241
119
254
143
67
226263
94
79
256
95
8644
24969
250
146
207
149
122
171
121
62
100
140
168194 252
85 218
221
25710
188
53
148
9 223 26122
98
197
142
135
185
93
2
53
31
55
147
4
77
4
4
4
4
3
4812045 37114
116
236
102
107
42
39
135
3
3
5
77
27
3
135
135
4
3
3
143
69
98
3
72
77
4
155
121
86
106
3
3
155
3
3
3
155
2
3
105
35
4
4
52
115 234219
84
3
3
155
155
5
95
3
3
155
1
3
135
2
3
1
2
3
3
135
3
1
2
1
2
121
1
2
135
3
5
3
121
1 2 12
3
5
1
2
1
2
1
2
2
1
1
4
1
1
2
2
3
2 3
2
3
3
3
1
3
2
3
155
12
3
155
155
24
3
1
3
3
1
3
2
3
1
155
2
3
3
4
12
1
3
7
2
3
9
113
27
27
2 2
6
9
3
2
3
89
3
1
7
96
7
3
7
110
3
11
3
68
67
7
6
3
21
8
56
3
33
2
3
133
3
3
135
3
13
12
3
13
4
4
4
3
3
6
4
3
4
1
13
2
4
13
135
6
3
12
1
1
5
3
6
12
9
4
4
12
3
4
1
1
2
4
1
1
127
13
12
4
9
55
3
3
4 2
3
3
1
3
2
4
2
1
3
7
2
5
1
3
3
5
4
1
3
2
141
2
3
3
4
2
2
2
5
2
5
9
2
3
2
133
2
152
4
2
2
3
3
139
2
10
4
2
7
3
2
10
2
4
3
2
3
157
3
24
152
31
5
152
125
5
5
2
34
3
133
3
3
2
3
1
3
4
3
4
3
3
3
6
17
2
2
3
3
2
5
5 4
3
3
1
2
2
3
1
33
152
12
4
3
3
3
2
85
3
3
4
4
6
4
5
7
4
2
3
4
3
4
3
2
4 94
1
1
3
1
2
5
3
5
4
4
4
2
2
2
49
2
4
3
3
2
3
7
3
5
2
6
3
3
6
3
5
3
2
9
1
5
1
3
3
4
7 7
139
6
4
3
7
3
1
3
7
16
3
3
4
157
3
5
2
134
116
4
3
4
4
5
211
3
30
7
4
130
3
3
2
2
3
5
5
80
2
3
4
1
4
12
5
5
2
4
3
2
7
5
3
37
127
2
4
3
2
1
3
7
5 152
3
3
127
133
3
7
3
2
4
3
3
19
2
3
2
7
7
7 4
3
3
5
5
3
3
157
5
7
7
12
3
4
2
113
4
2
3
7
2
2
4
71
129
3
131
1
1
3
5
3
3
3
2
16
2
8
3
9
4
4
133
3
2
2
157
7
2
4
2
4
3
2
3
2
2
2
114
12 137
127
133
9
3
2
2
3
4
48
15
3
4
3
3
2
9
1
135
1
3
2
1
26
147
2
7
2
7
225
1
1
3
2
40
132
3
3
49
2
3
1
47
4
155
1 535 1 5 5
4
10
66
3
4
2
3
17
2
155
3
6
1 1
3
94
117
4
77
4
2
3
3
50
12
3
54
3
3
3
3
3
9
155
1
155
77
112
3
9
3
2
1
3
4
99
3
1
6
1
4
5
6
2
26
3
132
5
2
7
3
6
4
2
1
3
16
7
26
16
1
4
3
8
1
7
2
4
3
4
2
6
4
2
129
2
6
3
4
4
4
2
8
3
1
2
4
6
6
4
131
2
1
3
3
2
145
3
2
27
5
38
1 3153 1
1
2
6
3
3
1
3
129
129
6
3
4
9
3
3
135
1
2
1
15
3
3
16
13
76
5
1
1
2
3
12
5
7
41
38
3
147
155
13
2
2
1
3
3
42
12
126
73
4
1
1
43
1
1
5
3
1
1
1
1
1
3
3
3
1
1
4
176
1
1
1
4
9
3
5
2
3
1
1
3
2
7
3
3
3
3
2
17
2
2
2
2
3
2
2
3
3
3
4
2
4
4
2
2
4
2
2
3
11
3
3
2
3
1
7
2
3
1
161
3
3
7
3
7
3
1
3
2
3
2
2
3
2
4
4
3
4
5
4
2
28
3
28
3
1
7
3
1 12
2
3
3
2
2
7
3
5
3
3
2
2
3
4
2
2
3
2
5
7
7
3
3
2
2 5
3
2
21
97
12
3
2
2
2
3
3
3
2
1
7
3
3
2
145
5
3
2
3
3
4
7
3
5
11
2
151
2
3
152
3
3
14
4
2
6
3
6
3
4
4
3
3
4
4
14
3
3
141
3
3
2
6
5
2
3
3
2
3
2
3
5
3 3
3
3
5
3
3
152
2
74
95
5
2
3
4
3
16
5
5
2
2
3
6
3
2
3
8
5
14
2
5
6
7
5
3
26
3
11
141
3
2
3
3
2
3
5
4
3
2
81
3
12
3 2
14
3
3
3
3
3
2
141
5
5
5
3
3
10
3
5
3
35
5
1
2
3
9
2
4
89
4
5
3
1
5
1
22
3
90
3
5
143
3
100
124
2
3
28
139
3
3
1
76
2
1
7
7
5
3
4
117
3
57
18
5
269
3
2
3
3
4
3
4
25
27
5
4
5
3
3
4
4
3
7
3
2
2
7
4
145
5
10
3
1
3
2 3
2
4
3
7
4
8
29
13
141
48
12
5
2
3
3
7
3
3
3
1
5
1
3
7
7
3
3
5
1
4
3
3
5
5
5
4
1
3
2
4
1
2
53
3
3
2
3
7
7
4
3
4
3
2
3
2
3
3
2
2
2
2
64
3
2
1
5
2
7
1
3
7
136
1
4
2
2
4
3
3
145
7
2
36
3
2
2
135
4
2
5
145
3
1
16
5
5
5
2
3
3
2 3
8
3
8
7
7
131
2
141
2
6
2
2
8
7
3
1
2
3
3
2
3
14
145
5
7
139
2
3
3
3
117
3
6
141101
142
135127
7
4
3
65
1
3
6
5
2
1
3
2
3
1
1
2
10
10
140
3
4
3
1
40
3
3
3
3
1
2
3
155
41
1
1
2
2
3
3
2
48
1
3
135
107
4
5
5
89
151
5
135
4
3
3
10
3
4
3
5
3
2
3
4
3
2
51
1
5
2
1
1
3
10
2
3
2
2
3
3
3
3
2
1
2
5
3
1
61
1
2
5
12
5
62
3
3
1
6
1
3
63
74
5
3
4
3 3
3
3
2
3
2
2
45
155
155
147
3
114
3
3
2
121
2
6
46
155
155
151
8
5
2
1
5
7
2
9
9
3
2
3
2
2
104
1
128
121
155
135
51
155
44
4
4
5
5
41
7
2
2
3
2
2
121
155
155
155
3
3
134
52
3
3
3
5
3
1
79
90
147
2
4
43
113
1
5
3
2
32
3 3
3
3
2
3
5
133
8
8
1
1
3
12
3
55
2
5
5
14
3
4
4
2
2
4
5
3
7
9
5
3
2
2
123
7
3
3
6
3
3
2
3
2
22
23
81
4
3
2
3
2
5
3
28
28
3
30
5
2
2
38
0
95
3
8
2
4
2
8
1
3
2
157
124
3
61
2
3
2
1
20
5
61
138
3
108
5
2
3
49
132
9
1
3
1
1
238
2
1
1
161
164
2
60
144
1
2
253
6
85
1
245
6
138
172
3
3
3
222 55
6
3
3
6
6
3
10
6
6
6
10
3
10
2
81
119
143
122
(c) FL300, horizon 180 min
162 113
3
3
5
264 126
158
262
(d) FL300, horizon 240 min
4.3 Évolution du graphe de contraintes en fonction du niveau de vol seuil et de
l'horizon temporel
Fig.
4.6.
39
RÉSULTATS
Routes standards
3
clusters
cliques
branch
2.5
2
1.5
1
0.5
0
-0.5
-1
180
190
200
210
220
230
240
250
260
270
Routes standards
1.5
clusters
cliques
branch
1
0.5
0
-0.5
-1
-1.5
-2
180
200
220
240
260
280
300
Routes standards
4
clusters
cliques
branch
3
2
1
0
-1
-2
150
Fig.
200
250
300
350
400
450
4.4 Temps de calcul (en log10 (s)) des algorithmes en fonction de l'horizon (en min).
40CHAPITRE 4.
LE PROBLÈME D'ALLOCATION DE CRÉNEAUX DE DÉCOLLAGE
Routes standards
nb vols
clusters
cliques
identiques
2000
1500
1000
500
00
50
100
150
200
250
300
350
400
0
200
600
400
800
1000
1200
1400
(a) Routes standards
Routes directes
nb vols
clusters
cliques
identiques
2000
1500
1000
500
00
50
100
150
200
250
300
350
400
0
200
400
600
800
1000
1200
1400
(b) Routes directes
Fig.
4.5 Détermination de l'algorithme le plus rapide en fonction du niveau de ltrage.
4.6.
41
RÉSULTATS
Routes standards
2.8
direct
standard
2.75
2.7
2.65
2.6
2.55
2.5
2.45
2.4
2.35
2.3
240
Fig.
250
260
270
280
290
300
4.6 Valeur de la solution optimale au FL 300.
Les valeurs de la solution optimale sont visibles sur la gure 4.6. Comme on pouvait
s'y attendre, les solutions optimales du problème en routes directes ont un coût nettement
meilleur que les solutions en routes standards. En eet, il y a moins de conits et donc
moins de contraintes générées en routes directes qu'en routes standard. Toutefois, le coût
reste élevé en routes directes : le retard maximum est de plus de trois heures même lorsque
l'horizon est faible. Enn, même si la solution optimale reste encore hors de portée pour
l'instance FL≥250 avec un horizon temporel de 6h en routes standards, nous avons obtenu
une borne inférieure de plus de 10h pour le retard maximal. Ces retards seraient donc
rédhibitoires pour la mise en application d'une telle méthode et il serait donc illusoire de
prétendre résoudre tous les conits en route uniquement à l'aide de retards au décollage
sans organiser plus avant la géométrie des ux de trac.
42CHAPITRE 4.
LE PROBLÈME D'ALLOCATION DE CRÉNEAUX DE DÉCOLLAGE
Conclusion et Perspectives
Dans ce rapport, nous avons présenté comment des algorithmes de résolution de problèmes de satisfaction de contraintes peuvent tirer parti de la structure du graphe de
contraintes, notamment en utilisant des méthodes de décomposition arborescente.
Les résultats que nous avons obtenus sur les problèmes d'aectation de fréquence radio
et d'allocation automatique de créneaux de décollage montrent que ces algorithmes peuvent
être notablement plus rapides que les algorithmes classiques si le graphe de contraintes est
susamment structuré. Il serait alors intéressant d'élaborer des critères permettant d'évaluer la qualité de la structure du graphe de contraintes an de déterminer automatiquement
si ces algorithmes sont appropriés pour la résolution d'un CSP donné.
Au vu des résultats obtenus sur les instances du problème d'allocation de créneaux de
décollage, il ne semble pas raisonnable d'utiliser cette méthode pour résoudre la totalité
des conits en route. En eet, les solutions optimales sur les plus gros sous-problèmes que
nous sommes parvenus à résoudre requièrent des retards de 6h en routes directes, et de plus
de 10h en routes standards, ce qui est rédhibitoire. Il semblerait donc intéressant d'étudier
des ranements de ce modèle pour obtenir des algorithmes qui puissent être mis en ÷uvre
concrètement dans le cadre des projets d'Eurocontrol sur le futur système ATM européen.
Tout d'abord, sans modier notre modélisation, on peut s'intéresser à des instances de
plus grande taille en cherchant seulement à minimiser le nombre de contraintes violées,
c'est-à-dire le nombre de conits résiduels (et résolus par exemple par l'ATC ou de manière autonome par des systèmes embarqués). Les solveurs de contraintes tel que FaCiLe
ou des formalismes dédiés telles que les contraintes molles [Schiex 95] permettent d'exprimer ce type de problème, mais les preuves d'optimalité sont hors d'atteinte en temps
de calcul pour des problèmes si grands. Des méthodes approchées d'optimisation comme
les algorithmes de recherche locale permettent parfois d'obtenir de meilleurs résultats sur
ces grands problèmes, mais sans possibilité d'obtenir une preuve d'optimalité quelque soit
la diculté du problème.
Il serait également judicieux d'analyser plus nement les données pour obtenir des instances plus faciles à résoudre avec des coûts optimaux plus faibles. Des retards importants
peuvent être liés aux conits en rattrapage ou en face à face sur les mêmes ux, et on
peut tenter de rendre le problème plus simple en découpant ces ux en plusieurs routes
ou niveaux de vols. On peut également augmenter les degrés de liberté du problème en
autorisant des changements de vitesse ou de niveau de vol pendant la phase de croisière.
À l'extrême, le calcul de tubes 4D optimaux vis-à-vis des performances des aéronefs et
43
44CHAPITRE 4.
LE PROBLÈME D'ALLOCATION DE CRÉNEAUX DE DÉCOLLAGE
du temps de vol pour la totalité d'une journée de trac paraît tout à fait illusoire, mais
les méthodes qui exploitent un sous-ensemble de ces multiples degrés de liberté semblent
les plus encourageantes. Des solutions éventuellement sous-optimales peuvent alors être
proposées pour une partie du trac, le reste des conits étant gérés par d'autres méthodes
à horizon temporel plus faible telles que celles présentées dans [Alliot 98, Granger 01].
Bibliographie
[Alliot 97]
JM Alliot, JF Bosc, N Durand et L Maugis. CATS : A complete Air
Trac Simulator. 16th DASC, 1997. Cité p. 1
[Alliot 98]
Jean-Marc Alliot et Nicolas Durand. FACES : A Free ight Autonomous
and Coordinated Embarked Solver. Proceedings of the Second Air Trac
Management R & D Seminar ATM-2000, Orlando, USA, 1998. Eurocontrol & FAA. Cité p. 44
[Baptiste 01]
Phillipe Baptiste, Claude Le Pape et Wim Nuijten. Constraint-based
scheduling : Applying constraint programming to scheduling problems.
Kluwer Academic Publishers, 2001. Cité p. 35
[Barnier 01]
Nicolas Barnier et Pascal Brisset. FaCiLe : a Functional Constraint Library. Colloquium on Implementation of Constraint and LOgic Programming Systems CICLOPS'01 (Workshop of CP'01), Paphos, Cyprus, December 2001. Cité p. 2
[Barnier 02]
Nicolas Barnier. Application de la programmation par contraintes à des
problèmes de gestion du trac aérien. PhD thesis, Institut National Polytechnique de Toulouse, décembre 2002. Cité p. 35
[Bessière 96]
C. Bessière et J.-C. Régin. MAC and Combined Heuristics : Two Reasons
to Forsake FC (and CBJ ?) on Hard Problems. Proceedings of CP 96,
pages 6175, 1996. Cité p. 7, 21
[Bessière 01]
C. Bessière et J.-C. Régin. Rening the Basic Constraint Propagation
Algorithm. Proceedings of the 17th International Joint Conference on
Articial Intelligence, pages 309315, 2001.
Cité p.
8
[Bouveret 04]
Sylvain Bouveret. Résolution d'un problème de satisfaction de contraintes
valué par une méthode de décomposition arborescente. Mémoire de DEA,
École Nationale Supérieure de l'Aéronautique et de l'Espace, août 2004.
Cité p. 13, 18, 19
[CFMU 00]
Eurocontrol CFMU, Brussels. Basic CFMU Handbook - General &
CFMU Systems, 6.0 edition, February 2000. Cité p. 31
[Dechter 89]
R. Dechter et J. Pearl. Tree Clustering Schemes for Constraint Processing.
Articial Intelligence, vol. 38, pages 353366, juillet 1989. Cité p. 19
45
46
BIBLIOGRAPHIE
[Dechter 90]
R. Dechter. Enhancement Schemes for Constraint Processing : Backjumping, Learning, and Cutset Decomposition. Articial Intelligence, vol. 41,
pages 273312, 1990. Cité p. 7
[Fulkerson 65]
D. R. Fulkerson et O. A. Gross. Incidence Matrices and Interval Graphs.
Pacic J. Math., vol. 15, pages 835855, 1965. Cité p. 17
[Gaschnig 79]
J. Gaschnig. Performance Measurement and Analysis of Certain Search
Algorithms. Technical Report CMU-CS-79-124, 1979. Cité p. 7
[Granger 01]
[Haralick 80]
Geraud Granger, Nicolas Durand et Jean-Marc Alliot. Optimal resolution
Cité p. 44
of en route conicts. ATM 2001, 2001.
R. Haralick et G. Elliot. Increasing tree search eciency for constraint
satisfaction problems. Articial Intelligence, vol. 14, pages 263313, 1980.
Cité p. 7, 8, 21
[Hentenryck 92] Pascal Van Hentenryck, Helmut Simonis et Mehmet Dincbas. Constraint
Satisfaction Using Constraint Logic Programming. Articial Intelligence,
vol. 58, no. 1-3, pages 113159, 1992. Cité p. 1
[Jensen 94]
Finn V. Jensen et Franck Jensen. Optimal Junction Trees. Proceedings
of the 10th Conference on Uncertainty in Articial Intelligence, pages
360366, juillet 1994. Cité p. 19
[Koster 99]
Arie Koster. Frequency Assignment - Models and Algorithms. PhD thesis,
University of Maastricht, septembre 1999. Cité p. 2, 19
[Koster 01]
Arie M.C.A. Koster, Hans L. Bodlaender et Stan P.M. van Hoesel. Treewidth : Computational Experiments. décembre 2001. Cité p. 16
[Mackworth 77] A. Mackworth. Consistency in Networks of Relations. Articial Intelligence, vol. 8, pages 99118, 1977. Cité p. 8
[Montanari 74] U. Montanari. Networks of Constraints : Fundamental Properties and
Applications to Picture Processing. Articial Intelligence, vol. 7, 1974.
Cité p. 3
[Prosser 93]
P. Prosser. Hybrid Algorithms for the constraint satisfaction problem.
Computational Intelligence, vol. 9, pages 268299, 1993. Cité p. 7
[Sabin 94]
D. Sabin et E. Freuder. Contradicting Conventional Wisdom in Constraint
Satisfaction. Proceedings of eleventh ECAI, pages 125129, 1994. Cité p. 8
[Schiex 94]
Thomas Schiex et Gérard Verfaillie. Nogood Recording for Static and
Dynamic Constraint Satisfaction Problems. International Journal of Articial Intelligence Tools, vol. 3, pages 187207, 1994. Cité p. 2, 10
[Schiex 95]
Thomas Schiex, Hélène Fargier et Gérard Verfaillie. Valued Constraint
Satisfaction Problems : Hard and Easy Problems. Chris Mellish, éditeur,
IJCAI'95 : Proceedings of the International Joint Conference on Articial
Intelligence, Montreal, Canada, 1995. Cité p. 43
BIBLIOGRAPHIE
[Terrioux 02]
47
Cyril Terrioux. Approches structurelles et coopératives pour la résolution
des problèmes de satisfaction de contraintes. PhD thesis, Université de
Provence, décembre 2002. Cité p. 2, 21

Documents pareils