- 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