Stratégie de recherche adaptative en programmation par contrainte

Dimension: px
Commencer à balayer dès la page:

Download "Stratégie de recherche adaptative en programmation par contrainte"

Transcription

1 Université Paul Sabatier École Nationale de l Aviation Civile Master 2 Recherche Informatique et Télécommunication parcours Intelligence Artificielle Simon Marchal Stratégie de recherche adaptative en programmation par contrainte Application à l optimisation de séquence de décollages d avions Septembre 2010 Directeur de recherche : Nicolas Barnier Résumé : nous abordons dans ce rapport une stratégie de recherche adaptative en programmation par contraintes. Cette stratégie est orientée vers les conflits. Suite aux résultats encourageants obtenus, nous avons testé plusieurs modifications : schéma de branchement, stratégie de redémarrage, heuristique Last Conflict et hybridation avec de la recherche locale. Puis, après avoir testé nos stratégies sur un problème classique de Jobshop Scheduling, nous les avons appliquées à un problème d optimisation de séquence de décollages d avions sur un grand aéroport. Mots clés : - programmation par contraintes - gestion du trafic aérien - heuristiques adaptatives - Weighted Degree

2 Table des matières Introduction 1 1 Stratégie de recherche adaptative Programmation par contraintes Problèmes de satisfaction de contraintes Algorithmes de résolution des CSP Présentation de FaCiLe Heuristiques de choix de variables Heuristique de choix de variable Weighted Degree Heuristique de choix de variable dirigée par les conflits Exemple illustratif des Queens and Knights Expérimentation complémentaire Discussion Quelques tentatives d améliorations Schéma de branchement Description Reprise de l exemple illustration des Queens and Knights Expérimentation complémentaire Discussion Stratégie de redémarrage Présentation Étude expérimentale des paramètres Discussion Heuristique Last Conflict Présentation de l heuristique Algorithme Reprise de l exemple illustration des Queens and Knights Expérimentation complémentaire Discussion Une hybridation avec de la recherche locale Introduction à la recherche locale Hybridation séquentielle i

3 2.4.3 Expérimentation Discussion Application à un problème de gestion du trafic aérien Présentation de la gestion du trafic aérien Problème de Job Shop Scheduling Présentation du problème Modélisation Stratégie de recherche Expérimentation Discussion Problème de séquencement d avion au décollage Présentation du problème Ressemblance avec le problème de Job Shop Scheduling Modélisation Stratégie de recherche Expérimentation Discussion Conclusion 55 ii

4 Table des figures 1.1 Arbres de recherche en fonction de l ordre des variables Exemple d une solution au problème des 8-reines Déplacement possible d un cavalier (à gauche) et cycle solution du problème des 6-cavaliers sur un échiquier de 64 cases (à droite) Comparaison de l heuristique max et min dom ddeg sur différentes instances aléatoires Comparaison de l heuristique min dom dom et min ddeg sur différentes instances aléatoires Exemple d un arbre de branchement non binaire Exemple d un arbre de branchement binaire Comparaison de l heuristique min dom avec des branchements non binaires (en abscisse) et binaires (en ordonnée) sur différentes instances aléatoires La première ligne concerne la stratégie WTDI et la seconde concerne la stratégie RNDI. Les graphiques de droite sont les résultats expérimentaux en utilisant en plus une stratégie géométrique : on étudie les paramètres raison (q) et nombre de backtracks initial (C 0 ) avec un nombre de runs fixé à Comparaison de l heuristique min dom ddeg (en abscisse) et cette même heuristique avec Last Conflict (en ordonnée) sur différentes instances aléatoires Comparaison de l heuristique min dom (en abscisse) et cette même heuristique avec Last Conflict (en ordonnée) sur différentes instances aléatoires Comparaison de l heuristique min dom avec une recherche locale Min- Conflict avec Liste Tabu Hybridation séquentielle des deux types de recherche Résultats obtenus en fixant l tabu à Résultats obtenus en fixant nbiterations max à Résultats obtenus en fixant l tabu à 1, Illustration d un problème de Job Shop où 3 jobs doivent utiliser 3 machines différentes dans un ordre défini Une solution optimale au problème de Job Shop de la figure Résultats expérimentaux iii

5 3.4 Une solution optimale d une instance énoncé par J.F. Muth et G.L. Thompson du problème de Job Shop Coût en fonction de l écart au temps CFMU Séparation en fonction des types de mouvement et des catégories avions Résultats expérimentaux à différentes heures de la journée Résultats obtenus en fixant l tabu à 50 (figure 2.9 page 42) Résultats obtenus en fixant nbiterations max à 2000 (figure 2.10 page 43) Résultats obtenus en fixant l tabu à 1,75 (figure 2.11 page 43) Résultats obtenus pour la piste 27 à 8h Résultats obtenus pour la piste 27 à 13h iv

6 Liste des tableaux 1.1 Résultats expérimentaux des problèmes queensknights-n-k Nombre totale de solutions au problème des n-queens en fonction du nombre de reines Nombre totale de backtracks pour prouver l inconsistance du problème des Knights en fonction de la taille de l échiquier pour 5 cavaliers Résultats sur différentes instances du problème Radio Link Frequency Assignment Résultats sur différentes instances modifiée du problème Radio Link Frequency Assignment Résultats sur différentes instances modifiée de l instance 11 du problème Radio Link Frequency Assignment Résultats expérimentaux des problèmes queensknights-n-k Résultats expérimentaux complémentaires des problèmes queensknightsn-k Résultats expérimentaux des problèmes queensknights-n-k Résultats expérimentaux en secondes et en nombre de backtracks total (btks) avec différents paramètres pour la stratégie WTDI sur l instance SCEN11-F Résultats expérimentaux en secondes et en nombre de backtracks total (btks) avec différents paramètres pour la stratégie RNDI sur l instance SCEN11-F Résultats expérimentaux des problèmes queensknights-n-k Résultats expérimentaux des instances du problème Radio Link Frequency Assignement Illustration de l initialisation gloutonne sur le problème des 4-Queens Exécution de l algorithme Min-Conflict sur le problème des 4-Queens Illustration du lissage d un minimum local par pondération des contraintes violées v

7 Introduction Dans notre vie quotidienne, la notion de contrainte est naturellement très présente : il s agit aussi bien de ranger des objets de formes différentes dans une boîte, d établir des emplois du temps ou même de planifier le trafic aérien pour limiter les retards. Pour résoudre ces problèmes variés, il faut envisager souvent un très grand nombre de combinaisons avant d en trouver une qui satisfasse toutes les contraintes. Intégrée à un langage de programmation, la programmation par contraintes est un nouveau paradigme de programmation pour formuler et résoudre ces problèmes combinatoires. Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming : the user states the problem, the computer solves it. 1 Eugene C. Freuder Dans un cas idéal, l utilisateur définit le problème à résoudre, le donne ensuite à l ordinateur, l ordinateur le résout et donne une solution. En raison de l aspect fortement combinatoire des problèmes à traiter, la puissance de calcul actuelle des ordinateurs ne suffit pas pour examiner toutes les combinaisons possibles en un temps acceptable. C est pourquoi, on essayera plutôt de définir le problème à résoudre pour qu il soit résolu efficacement, c est-à-dire avec un minimum d effort, puis on donnera à l ordinateur des pistes de résolution en introduisant des raisonnements et des heuristiques issues traditionnellement de l intelligence artificielle et qui permettent de réduire la combinatoire et de guider la recherche vers les bonnes combinaisons. Les domaines de l aéronautique et de la gestion du trafic aérien présentent de nombreux problèmes d optimisation combinatoire encore mal résolus, et utiliser la programmation par contraintes dans ce cadre présente de nombreux avantages : on bénéficie par exemple des avancés et des recherches issues d une communauté importante et de domaines d application variés. Contrairement à un algorithme spécifique, la programmation par contraintes permet également de disposer d un large éventail d algorithmes génériques de sorte qu une modification du problème initial (comme ajouter de nouvelles contraintes par exemple) ne nécessite pas forcément de modifier l algorithme de 1. La programmation par contraintes représente une des avancées qui se rapproche le plus du Saint Graal de la programmation que l informatique ait jamais réalisée : l utilisateur définit le problème, l ordinateur le résout. 1

8 résolution. C est pour ces raisons que le choix de la programmation par contraintes semble particulièrement intéressant. Bien évidemment, les problèmes de gestion du trafic aérien, comme beaucoup d autres problèmes, nécessitent que l on guide la recherche pour obtenir une solution en un temps acceptable. C est pourquoi, nous avons tenté dans notre premier chapitre une approche basée sur une stratégie de recherche adaptative introduite dans [3]. Dans un second chapitre, nous avons expérimenté diverses techniques permettant d améliorer la stratégie de recherche de solution décrite dans le premier chapitre. Enfin, dans un troisième chapitre, en se fondant sur des travaux réalisés sur les manières de formuler un problème de Jobshop Scheduling 2, nous appliquons les stratégies de recherche de solution présentées dans les deux premiers chapitres sur un problème de séquencement d avions au décollage d un aéroport. 2. Programmation des tâches à effectuer sur les machines d un atelier de production. 2

9 Chapitre 1 Stratégie de recherche adaptative 1.1 Programmation par contraintes Problèmes de satisfaction de contraintes De nombreux problèmes peuvent être formulés comme des problèmes de satisfaction de contraintes (Constraint Satisfaction Problem, CSP) : un formalisme générique permet de les modéliser. On trouve par exemple de nombreux problèmes d ordonnancement, d allocation de ressource, emploi du temps, etc. L exemple 1 est un problème simple introductif aux problèmes de satisfaction de contraintes. Exemple 1. Exemple du cryptogramme SEND+MORE=MONEY. Le but est d associer un chiffre différent à chaque lettre tel que la somme soit vérifiée. S E N D + M O R E M O N E Y Une contrainte est une relation entre des inconnues ou variables d un problème qui restreint les combinaisons de valeurs qu elles peuvent prendre simultanément. De nombreuses contraintes arithmétiques comme les équations, inéquations, diséquations linéaires ou non peuvent être définies. De plus, des contraintes plus sophistiquées, dites symboliques, peuvent permettre par exemple de spécifier qu un ensemble d inconnues doivent avoir des valeurs distinctes (Alldiff), de spécifier le nombre d occurrences d une valeur dans un ensemble de variables (Cardinalité généralisée), etc. Ces contraintes arithmétiques et symboliques sont dotées de sémantiques particulières et sont exprimées en intention. Il est également possible d exprimer des contraintes sur des variables discrètes en donnant la liste exhaustive des tuples de valeurs autorisées ou interdites. Ces contraintes sont dites en extension. On notera vars (c) l ensemble des variables associé à une contrainte c. On dira qu une contrainte c lie ou implique une variable v si et seulement si v appartient à 3

10 vars(c). L arité d une contrainte c est le nombre de variables liées par celle-ci, c est-àdire vars(c). Dans la littérature, il est souvent fait référence à des contraintes binaires, c est-à-dire des contraintes qui lient deux variables. Les inconnues ou variables prennent leur valeurs dans un domaine défini initialement. Ces domaines peuvent représenter les booléens, les entiers, les rationnels, les intervalles de nombres flottants, les ensembles, les listes finies, etc. On remarquera que la complexité de la résolution d un problème dépend de son domaine : par exemple polynomiale pour les équations linéaires sur les réels et exponentielle lorsqu il s agit d entiers. On notera dom (v) le domaine de la variable v. Le degré d une variable v noté deg (v) est le nombre de contraintes liant celle-ci. Definition 1. Un réseau de contraintes (Constraint Network) est un couple ( V, C) où : V est un ensemble fini de n variables telles qu à chaque variable v est associé un domaine dom(v), indiquant l ensemble de valeurs autorisées pour v ; C est un ensemble fini de e contraintes telles qu à chaque contrainte c est associée une relation rel(c) indiquant l ensemble des tuples de valeurs autorisées pour les variables vars(c) H impliquées par la contrainte c. La définition 1 explicite la notion de réseau de contraintes qui permet de définir un problème de satisfaction de contraintes. On notera qu un tuple T sera dit autorisé par une contrainte c lorsque T rel (c). On peut illustrer la définition 1 sur l exemple 1 précédent. L ensemble des variables sera alors V = {S, E, N, D, M, O, R, Y }. Le domaine de chacune de ces variables sera : dom(x) = { [0; 9] si X {S, E, N, D, O, R, Y } [1; 9] si X = M Enfin, l ensemble des contraintes sera simplement le suivante : C = { 10 3 S E + 10 N + D M O + 10 R + E = 10 4 M O N + 10 E + Y S E, S N, S D, S M, S O, S R, S Y, E...} Dans l exemple précédent, le but est de trouver simplement une solution qui satisfait les contraintes. Certains problèmes peuvent demander d autres types de résultats : trouver toutes les solutions qui satisfont les contraintes, trouver toutes les solutions qui satisfont les contraintes et qui minimisent ou maximisent un critère, prouver que le problème n a pas de solution, trouver la solution qui minimise le nombre de contraintes non satisfaites, etc. 4

11 Enfin, il sera utile dans la suite d utiliser des contraintes dites réifiée. La réification d une contrainte c introduit une nouvelle variable booléenne contrainte à être égale à 1 si c est satisfaite et à 0 si elle est violée. On peut alors ensuite utiliser ces nouvelles variables pour poser d autres contraintes Algorithmes de résolution des CSP Cette section présente essentiellement les algorithmes exacts de recherche arborescente de résolution des CSP. Les algorithmes approchés de recherche locale seront présentés dans la section Les algorithmes de recherche constructive manipulent souvent des instanciations partielles en cherchant à les étendre pour obtenir une instanciation totale. Ces instanciations doivent satisfaire chaque contrainte du problème pour qu une solution puisse être obtenue (instanciation consistante). Une contrainte c est satisfaite si et seulement si l instanciation est autorisée par la contrainte c. Une solution d un CSP se caractérise donc simplement par une instanciation totale et consistante. On dira qu un CSP est consistant s il a au moins une solution et inconsistant s il n a aucune solution. On remarque que déterminer si un problème est consistant ou non est, en théorie de la complexité, un problème NP-Complet. Definition 2. Instanciation partielle Soit un réseau de contrainte ( V, C). Une instanciation partielle I est définie par un couple I = (V I, T ) tel que : V I = {v I1,..., v Ik } V est le sous-ensemble des variables sur lequel porte l instanciation ; T = (t I1,..., t Ik ) dom (v I1 ) dom (v Ik ) est un tuple de valeurs prises dans les domaines des variables à instancier. Definition 3. Instanciation totale Soit un réseau de contrainte ( V, C). Une instanciation totale I = (V I, T ) est une instanciation partielle pour laquelle V I = V. La méthode la plus simple pour chercher une solution d un CSP est d énumérer toutes les instanciations totales possibles et vérifier à chaque fois si elles sont consistantes ou non. Cette méthode naïve est appelée générer et tester. On remarque qu il faut éventuellement parcourir tout l espace de recherche avant de trouver une solution ou si l on souhaite obtenir un optimum ou l ensemble des solutions. La compléxité d un tel algorithme est alors exponentielle avec le nombre de variables. Afin de parcourir l espace de recherche systématiquement, on structure la recherche sous la forme d un arbre : chaque nœud correspond à une instanciation partielle ; chaque fils correspond à l extension de l instanciation partielle du nœud parent avec une nouvelle variable et une valeur différente des autres fils. On parcours cet arbre en profondeur 5

12 d abord. Ce type de recherche constitue la fondation des algorithmes systématiques. L algorithme générer et tester a pour défaut de ne vérifier la satisfaction des contraintes qu une fois l instanciation totale obtenue. Au lieu d attendre que toutes les variables soient instanciées pour tester la satisfaction des contraintes, on peut plutôt tester la satisfaction d une contraintes c dès que toutes ses variables sont instanciées. En détectant qu une instanciation partielle est inconsistante si elle viole une contrainte, on pourra élaguer le sous-arbre de recherche correspondant à ses extensions et réduire ainsi l espace de recherche. Il suffit alors d effectuer un retour arrière appelé aussi backtrack dans l arbre de recherche jusqu au nœud parent qui offre encore une branche non exploré : on revient alors à nouveau à une instantiation partielle consistante. Cependant, la complexité de ce type d algorithme reste exponentielle en pire cas. Cependant, cette stratégie de retour arrière présente des inconvénients et n exploite pas la structure des CSP. En effet, la technique de backtrack présenté remet en cause la dernière variable instanciée alors qu elle n est pas forcément la cause de l échec. Il existe des algorithmes de backtracks intelligents comme les techniques de backjumping proposé dans [6] par exemple qui essaye d effectuer un retour arrière directement vers une variable responsable de l échec. Ce genre de méthode fait partie des techniques rétrospectives (look-back). De plus, au lieu d attendre que toutes les variables liées à une contrainte soient instanciées pour la vérifier, on peut inférer des échecs bien avant grâce à des techniques prospectives (look-ahead) : on peut définir des propriétés de consistance locale (la consistance globale reviendrait à résoudre un CSP) qui permettent de simplifier le CSP en éliminant des valeurs de leur domaine pour éviter des échecs a priori grâce à des algorithmes de complexité polynomiale. Ces techniques de consistance ont fait l objet de très nombreuses recherches, notamment sur les algorithmes d arc-consistance. Il existe également une autre forme de consistance, la consistance aux bornes, où on élimine les valeurs uniquement aux bornes du domaines : ce type d algorithme est plus rapide puisqu on ne considère que les bornes du domaine. Cette phase d inférence a lieu notamment à chaque nœud de l arbre de recherche : après avoir instancié une variable, on essaye de déduire un certain nombre de connaissances. Cette phase est appelé propagation de contraintes. Ainsi, le principe générale de résolution de CSP peut alors se résumer en 2 phases : propagation de contraintes et élagage, puis exploration. On notera que ces algorithmes de recherche ont une caractéristique importante : la complétude 1. Reste encore un point important : l ordre d instanciation des variables. En effet, cet ordre est primordial et deux ordres d instanciation différents peuvent avoir des efficacités très différentes. C est le sujet abordé dans les sections suivantes : après une courte introduction à FaCiLe, la librairie de programmation par contraintes utilisée pour nos implémentation, on parlera des heuristiques de choix de variables et notamment de celles dirigées vers les conflits. 1. Un algorithme est complet s il garantit de trouver la solution du problème en un temps fini. 6

13 1.1.3 Présentation de FaCiLe Le concept de programmation par contraintes est à l origine issu d une volonté d extension des systèmes Prolog. Intégré à un langage de programmation, la programmation par contrainte offre un langage de modélisation d un CSP et un langage de paramétrage de la recherche. Elle permet également de séparer le modèle des procédures de recherche de solution : ainsi, une modification du modèle n entraine pas forcement une modification des algorithmes de recherche de solution. FaCiLe, pour Functional Constraints Library est une librairie de programmation par contraintes développée par N.Barnier et P. Brisset. Cette librairie est simple, concise et Open Source 2. Elle est complètement écrite en Objective Caml 3. La librairie assure de nombreuses fonctionnalités. Par exemple, des modules permettent de représenter les domaines et les variables avec gestion d une traînée (trailing) utile pour les backtracks. Des modules permettent également de représenter des contraintes arithmétiques, globales (Alldiff, Cardinalité généralisée, Tri, etc.) ainsi que des contraintes utilisateurs. La librairie est également dotée d un mécanisme d événements qui permet d attacher un objets réactif à un événement, c est-à-dire une contrainte. Elle possède également un langage des buts expressif : FaCiLe contrôle la recherche de solution avec des buts explorés traditionnellement en profondeur d abord. Enfin, d autres mécanismes génériques sont proposés par la librairie comme les références backtrackables qui permettent de faire vivre des structures de données avec le backtrack ou les invariants qui permettent de maintenir des structures de données liées fonctionnellement entre elles. Plus de détails sur FaCiLe sont donnés dans [2]. 2. on peut la télécharger sur 3. Le site officiel : caml.inria.fr, un langage de programmation fonctionnel, également Open Source et developpée à l INRIA. 7

14 1.2 Heuristiques de choix de variables De nombreux efforts ont été effectués sur l ordre dans lequel on assigne les variables au cours de la recherche. En effet, selon les choix que l on effectue, on peut obtenir des performances très différentes. Cette section présente les heuristiques de choix de variable. On distingue généralement trois catégories permettant de classer les heuristiques de choix de variables : 1. Les heuristiques statiques : l ordre de choix de variables est établi à partir de la structure initiale du problème. Le même ordre est conservé tout au long de la recherche. Les heuristiques les plus répandues sont généralement : lexico : l ordre des variables est l ordre lexicographique, c est-à-dire la variable V i sera choisie avant la variable V j si i < j ; max deg : les variables sont choisies suivant l ordre décroissant de leur degré (c est-à-dire le nombre de contraintes auxquelles elles sont liées) initial ; max ddeg : les variables sont choisies suivant l ordre décroissant de leur degré courant. Cette heuristique est appelé degré dynamique mais un tel ordre peut être calculé initialement, c est pourquoi il s agit d une heuristique statique. 2. Les heuristiques dynamiques : l ordre de choix de variables exploite l état courant du problème. C est par exemple le cas de l heuristique min dom qui consiste à ordonner les variables suivant l ordre croissant de la taille de leur domaine. Il existe également des heuristiques combinant taille du domaine et degré initial noté min dom deg dom et sa variante utilisant le degré courant noté min ddeg. Ces heuristiques sont intéressantes car elles peuvent améliorer les performances de recherche : elles sont notamment beaucoup plus efficace que les heuristiques statiques car elles exploitent les informations obtenues durant la résolution du problème. 3. Les heuristiques adaptatives : l ordre de choix de variables exploite l état courant du problème mais aussi des informations sur les états passés collectées pendant la recherche. Les heuristiques que l on présentera par la suite font partie de cette catégorie (les heuristiques de choix de variables dirigée vers les conflits et l heuristique Last Conflict). Il est très important de bien choisir l ordre dans lequel un algorithme de recherche va choisir les variables à assigner. Pour une même instance, des heuristiques de choix de variables différentes peuvent avoir des efficacités très variées. Afin de justifier l utilisation de l heuristique min dom par exemple, on trouve dans [12] une justification basée sur le principe fail-first suivant : To succeed, try first where you are most likely to fail. 4 Pour réduire l espace de recherche, il est plus avantageux de couper l arbre de recherche le plus proche possible de la racine plutôt que proche des feuilles car on réduit davantage l espace de recherche lorsqu on est près de la racine. Ce principe sera également 4. Pour réussir, essayons d abord là où l on est le plus susceptible d échouer 8

15 à la base de la justification des heuristiques présentés dans les sections suivantes. Pour bien comprendre l importance de l ordre d instanciation des variables, considérons l exemple suivant sur trois variables A, B et C. Le domaine de A contient 3 éléments et ceux de B et C en contiennent chacun 2. On suppose qu il faut l intégralité de l espace de recherche (pour prouver une inconsistance par exemple) et que les propagations ne réduisent pas les domaines des variables. La figure 1.1 montre les arbres de recherche que l on obtiendrait en supposant que l on considère l ordre d instanciation des variables lexico (A, B puis C) ou min dom (B, C puis A). On s aperçoit alors que l ordre lexico explorera plus de noeuds que min dom pour prouver la même inconsistance. Réduire le nombre de noeuds implique également réduire le nombre de propagation de contraintes, phase qui nécessite beaucoup de temps de calcul. C est pourquoi l heuristique de choix de variable est si importante. lexico min dom (22 noeuds) (19 noeuds) Figure 1.1 Arbres de recherche en fonction de l ordre des variables On notera pour finir qu il est également possible qu une heuristique ne permette pas de départager un sous-ensemble de variables appelé aussi Tie (par exemple si elles ont la même taille de domaine pour l heuristique min dom) : dans ce cas, on choisira implicitement ensuite l ordre lexicographique. 9

16 1.3 Heuristique de choix de variable Weighted Degree Afin d introduire l heuristique Weighted Degree, nous avons suivi la démarche présenté dans [3]. On commencera par présenter l heuristique que l on testera sur un premier exemple illustratif afin de comprendre comment agit cette heuristique. Puis, nous testerons également sur d autres problèmes que l on expliquera dans cette partie Heuristique de choix de variable dirigée par les conflits Les heuristiques de choix de variable classiques n exploitent au mieux que l état courant de la recherche (heuristiques dynamiques). Aucune information sur les états passés n est exploitée. Dans [3], on propose alors de pondérer les contraintes en introduisant un compteur noté weight associé à chaque contrainte qui comptabilisera le nombre de fois que la propagation de la contrainte a mené à un échec (conflit). L intérêt principal des heuristiques dirigées par les conflits est d exploiter des informations sur les états passés afin d isoler les parties difficiles ou inconsistantes d un problème. Pour toute contrainte C i, on notera weight (C i ) le compteur précédemment introduit. De plus, on notera également futv ars (C i ) l ensemble des variables non assignées (appelée aussi variables futures) liées à C i. On définit alors une nouvelle heuristique de choix de variables notée max appelée Weighted Degree (degré pondéré). Sa fonction d évaluation des variables α pour la variable V i est donnée par : α (V i ) = weight (C j ) V i vars(c j ) futv ars(c j ) >1 Le degré pondéré d une variable V i est alors la somme des poids de toutes les contraintes impliquant V i et au moins une autre variable non affectée. En remarquant que la propagation des contraintes des parties les plus difficiles voire inconsistante va échouer plus souvent, le compteur weight de ces contraintes va augmenter au cours de la recherche et le degré pondéré des variables liées à ces contraintes va également augmenter. Ce qui implique qu en choisissant en premier les variables de degré pondéré le plus élevé, la recherche de solution sera orientée vers ces parties difficiles ou inconsistantes. On remonte alors vers la racine de l arbre de recherche les variables qui risquent d engendrer un échec rapidement. On suit alors le principe fail-first expliqué précédemment. De plus, on fixera initialement les compteurs weight à 1. Ainsi, la fonction d évaluation d une variable donnée ne prendra en compte initialement que les contraintes impliquant cette variable et au moins une autre variable encore non assignée. max est alors équivalent à max ddeg lorsque tous les compteurs weight sont fixés à 1. On bénéficie alors du degré des variables au début de la recherche de solution. Enfin, on notera min dom l heuristique qui sélectionne en premier les variables de plus petit rapport entre la taille courante du domaine de la variable et son degré pondéré courant. Initialement, lorsque tous les poids sont fixés à 1, on a alors une heuristique 10

17 équivalente à min dom ddeg. Il peut arriver que l ordre généré par ces heuristiques fasse apparaître des variables équivalentes, c est-à-dire dont la fonction d évaluation est égale. Dans ce cas, si rien est mentionné, on choisira alors implicitement lexico pour départager ces variables. On appellera heuristiques de choix de variables dirigées par les conflits les deux heuristiques max ddeg et min dom présentées précédemment Exemple illustratif des Queens and Knights Le but de cet exemple est d illustrer le phénomène de thrashing et de montrer l intérêt des heuristiques de choix de variable dirigées par les conflits. Le thrashing est le fait d explorer plusieurs fois la même inconsistance. Description du problème Ce problème des Queens and Knights est né de la fusion de deux problèmes. Il possède un sous-problème inconsistant qui permettra d illustrer l intérêt des heuristiques de choix de variables dirigées par les conflits. Le premier problème est le problème classique des n-queens. On dispose d un échiquier de taille n n sur lequel on cherche à placer n reines de telle sorte qu aucune reine ne soit attaquée par une autre. Les reines attaquent soit en ligne droite (verticale et horizontale), soit en diagonale. Un exemple de solution est donné figure 1.2. Figure 1.2 Exemple d une solution au problème des 8-reines. Le second problème est celui des Knights illustré par la figure 1.3. On dispose d un échiquier de taille n n sur le quel on souhaite placer k cavaliers de telle sorte que les cavaliers forment un cycle. Un cycle est constitué des k cavaliers et chacun d entre eux est lié au suivant (modulo k) par un saut, c est-à-dire un déplacement d une case dans un sens puis de deux cases dans l autre ou d un déplacement de deux cases dans un 11

18 sens puis d une dans l autre sens. Pour obtenir un cycle, on peut noter par exemple les variables représentants les cavaliers X i, i [1; k]. Chaque variable X i a pour domaine [ 0; n 2 [, chaque valeur représentant une case différente de l échiquier. Puis, pour tout i [1; k] et j = i + 1 mod k, on peut poser les contraintes : ( ) ( ) v i v j n = 1 v i v j mod n = 2 v i v j n = 2 v i v j mod n = 1 La figure 1.3 rappelle les déplacements d un cavalier et présente une solution à un problème des cavaliers pour k = 6. On remarque enfin que ce problème est inconsistant pour les valeurs de k impaires. Figure 1.3 Déplacement possible d un cavalier (à gauche) et cycle solution du problème des 6-cavaliers sur un échiquier de 64 cases (à droite). En fusionnant de manière indépendante ces deux problèmes, celui des n-queens et celui des Knights, et en choisissant un nombre impair de cavaliers, on obtient un problème contenant un sous problème inconsistant (celui des cavaliers). Afin de pouvoir vérifier et comparer nos résultats, nous avons utilisé la modélisation (représentée au format XCSP décrite en annexe) disponible sur le site de C. Lecoutre 5. Le problème des n-queens est représenté de manière classique : chaque reine est placée sur une ligne et on lui associe une variable dont le domaine comprend n valeurs qui représentent sa colonne. Des contraintes binaires garantissent que chaque reine n est pas attaquée par une autre. Le problème des cavaliers est représenté par k variables dont le domaine comprend n 2 valeurs qui représentent la position de chaque cavalier dans l échiquier. Des contraintes binaires représentent le fait que chaque cavalier occupe une case différente et qu ils forment un cycle

19 Expérimentation et Comparaison Nous avons implémenté les heuristiques dirigées par les conflits dans FaCiLe puis nous les avons testées sur le problème des Queens and Knights décrit précédemment. On les a également testées sur une variante de ce problème qui consiste à interdire en plus qu une reine et un cavalier occupe la même case de l échiquier. Nous avons repris la démarche de [3] afin de pouvoir vérifier les résultats obtenus. instance heuristique classique variante backtracks temps (s) backtracks temps (s) queensknights-8-5 min dom min dom ddeg max min dom queensknights-10-5 min dom min dom ddeg max min dom queensknights-12-5 min dom > 300 > 300 min dom ddeg > 300 > 300 max min dom Table 1.1 Résultats expérimentaux des problèmes queensknights-n-k. Analyse La force de l approche des heuristiques dirigées par les conflits est d identifier les parties les plus difficiles à satisfaire. Sur l exemple, on constate que les heuristiques max et min dom vont prouver l insatisfiabilité des problèmes rapidement. Les heuristiques classiques min dom et min dom ddeg ont un comportement différent : en effet, en comparant les résultats obtenues avec ceux des tableaux 1.2 et 1.3 qui présentent le nombre de solutions au problème des n-queens et le nombre de branchements nécessaires à prouver l inconsistance du problème des Knights, on s aperçoit que ces heuristiques sont fortement soumis au thrashing. Si on multiplie simplement le nombre de solution du problème des n-queens par le nombre de backtracks nécessaire pour prouver l inconsistance du problème des Knights, on obtient sensiblement le même résultat que ceux du tableau 1.1. L algorithme de recherche de solution redécouvre plusieurs fois la même inconsistance. Par exemple, en effectuant , on obtient ce qui est proche de (la différence s explique par le nombre de backtracks nécessaire pour trouver toutes les solutions des n-queens). Ainsi, les heuristiques dirigées par les conflits ont 13

20 l avantage d éviter le thrashing en pondérant les contraintes les plus difficiles à satisfaire, c est-à-dire celles liées aux cavaliers. n (nombre de reines) nombre de solution Table 1.2 Nombre totale de solutions au problème des n-queens en fonction du nombre de reines. n (taille de l échiquier) nombre de backtracks Table 1.3 Nombre totale de backtracks pour prouver l inconsistance du problème des Knights en fonction de la taille de l échiquier pour 5 cavaliers Expérimentation complémentaire On a également testé les heuristiques présentées précédemment sur d autres problèmes : le problème d allocation de fréquences de liaison radio et sur des instances de problèmes aléatoires. Chaque instance sera testée au minimum 5 fois ; les résultats expérimentaux présentent les valeurs moyennes obtenues. Problème d allocation de fréquences de liaison radio(radio Link Frequency Assignment Problems) Le problème Radio Link Frequency Assignment présenté dans [4] a été proposé par le Centre d Électronique de l Armement. Il est issu d un problème réel avec des données simplifiées. On dispose de plusieurs sites qui doivent garder le contact radio. Le problème consiste en l allocation de fréquence à chaque lien radio entre deux sites en évitant les interférences. Chaque lien radio est représenté par une variable dont le domaine est l ensemble des fréquences disponibles pour ce lien. Puis, pour deux lien radio F i et F j proches (c est-à-dire susceptibles d interférer), on dispose d une constante k i,j qui représente l écart minimum entre les deux fréquences pour qu il n y ait pas d interférence (cette constante a été calculée à partir de modèle sur les ondes électromagnétiques et souvent surestimée pour garantir l absence d interférence). On obtient alors la contrainte : F i F j > k i,j De plus, pour chaque paire de site A et B, deux fréquences doivent être assignées : une pour la communication de A vers B et l autre pour celle de B vers A. Une contrainte liée à la technologie employée est ajoutée : l écart entre la fréquences du lien entre A à B et celle du lien entre B et A doit être exactement de 238. On a alors une deuxième contrainte du type : 14

21 F A B F B A = 238 On s intéressera simplement à satisfaire les instances (il est également possible de minimiser le nombre de fréquences utilisées, minimiser le maximum des fréquences, etc.). On testera sur les instances classiques satisfiables 1, 2, 3, 4, 5 et 11 (les instances 6, 7, 8, 9 et 10 sont sur-contraintes). Les instances 1, 2 et 3 sont des sous-problèmes du problème original. Les instances 4 et 5 sont plus contraintes. L instance 11 est la plus grande composante connexe 6 du graphe du problème original. Cette instance implique 680 variables et 4103 contraintes. On utilisera également là encore la modélisation au format XCSP disponible sur le site de C. Lecoutre. Le tableau 1.4 présente les résultats obtenus. On observe que s il ne se passe rien de vraiment significatif sur les premières instances, l instance 11 montre des différences : l heuristique min dom ddeg semble avoir un peu plus de difficulté à élaborer une solution. Comme on l espérait, l heuristique max semble découvrir peu à peu les parties les plus difficiles du problème. Enfin, min dom montre l intérêt d orienter initialement la recherche avec la taille du domaine. On peut noter qu initialement les heuristiques dirigées par les conflits ne sont pas ou peu informées. instance min dom ddeg max min dom temps (s) backtracks temps (s) backtracks temps (s) backtracks SCEN SCEN SCEN SCEN SCEN SCEN Table 1.4 Résultats sur différentes instances du problème Radio Link Frequency Assignment. Afin de tester la robustesse de ces heuristiques, nous les avons également testé sur des instances (toujours disponibles au format XCSP sur le site de C. Lecoutre) du problème Radio Link Frequency Assignment modifiées introduite par C. Bessière, A. Chmeiss et L. Saïs 7. Ces instances sont produites en supprimant des contraintes (noté W ) ou certaines fréquences (noté F ). Par exemple, l instance RLFAP-SCEN9-W1- F3 correspond à l instance RLFAP-SCEN9 à laquelle on a retiré les contraintes de poids supérieur à 1 et les 3 plus hautes fréquences. On testera également sur les instances 6, 7, 8, 9 et 10 modifié dont on cherche à prouver l inconsistance. Le tableau 1.5 présente 6. Un graphe connexe est un graphe dans lequel chaque paire de sommets est reliée par une chaîne. Dans un graphe, une composante connexe est un sous-graphe maximal connexe 7. Ces instances modifiées ont servi à prouver la robustesse de leur approche dans l article Neighborhood-based variable ordering heuristics for the constraint satisfaction problem 15

22 les résultats obtenus. Ces résultats confirment l utilité de l approche des heuristiques dirigée par les conflits par rapport à une heuristique classique tel que min dom ddeg. instance min dom ddeg max min dom temps (s) backtracks temps (s) backtracks temps (s) backtracks SCEN1-F8 > SCEN1-F9 > SCEN2-F SCEN2-F25 > SCEN3-F10 > SCEN3-F11 > SCEN6-W1-F2 > SCEN6-W SCEN6-W SCEN7-W1-F SCEN7-W1-F5 > SCEN9-W1-F3 > SCEN10-W1-F3 > Table 1.5 Résultats sur différentes instances modifiée du problème Radio Link Frequency Assignment. On a également effectué des tests complémentaires sur des instances modifiées de l instance 11, l instance la plus intéressante du tableau 1.4. De même que dans le paragraphe précédent, ces instances ont été produites en retirant uniquement des fréquences (noté F ). Par exemple RLFAP-SCEN11-F10 correpond à l instance 11 à laquelle on a retiré les 10 plus hautes fréquences. Le tableau 1.6 présente les résultats obtenus. On remarque que l heuristique min dom ddeg n arrive toujours pas à trouver de solution (en moins de 300 secondes) alors que les heuristiques max et min dom L heuristique min dom trouvent une solution. semble plus stable (le temps de calcul et le nombre de backtracks varient moins) sur ces 3 dernières instances, conséquence de la prise en compte de la taille du domaine (donc du nombre de fréquences disponibles) pour chaque variable, guidant ainsi l heuristique lorsqu elle manque d information. instance min dom ddeg max min dom temps (s) backtracks temps (s) backtracks temps (s) backtracks SCEN11-F1 à F9 > > > SCEN11-F10 > SCEN11-F11 > SCEN11-F12 > Table 1.6 Résultats sur différentes instances modifiée de l instance 11 du problème Radio Link Frequency Assignment. 16

23 Instance de problèmes aléatoires Le modèle d instance de problèmes aléatoires utilisée ici est celui décrit dans [20]. L avantage de la technique de génération de [20] est quelle permet de générer des instances aléatoires difficiles simplement. En faisant varié différent paramètre comme le nombre de variables, la taille des domaines, le nombre de contraintes ou la proportion de tuples interdit pour chaque contraintes, il est possible de générer une multitude d instance différente. L avantage est que l on peut créer des problèmes aussi difficiles que l on veut en fonction de ce qu on souhaite expérimenter. Il arrive parfois que certaines instances soient insatisfiable : on peut alors les forcer à être satisfiable. Pour nos expérience, nous avons utilisés plusieurs instances difficile disponible au format XCSP sur le site de C. Lecoutre. Les figures 1.4 et 1.5 présentent les résultats obtenues. Chaque point représente une instance aléatoire particulière. En abscisse, on trouve les temps de calcul (puis les nombres de backtracks) pour l heuristique min dom ddeg et en ordonnée, ceux pour l heuristique max sur la figure 1.4 et ceux pour l heuristique min dom sur la figure 1.5. On remarque que l heuristique max a plus de difficulté à trouver une solution que min dom dom ddeg alors que min en revanche a une efficacité presque similaire à celle de min dom ddeg. Cette exemple montre l intérêt d orienter la recherche initialement avec la taille courante du domaine. sur différentes ins- Figure 1.4 Comparaison de l heuristique max et min dom ddeg tances aléatoires. 17

24 Figure 1.5 Comparaison de l heuristique min dom aléatoires dom et min ddeg sur différentes instances Discussion Les résultats obtenus sur le problème des Queens and Knights montrent bien l intérêt de l approche des heuristiques dirigées par les conflits. Elles permettent de découvrir par elles-mêmes les parties inconsistantes d un problème. Ce point fort a également été exploité sur le problème de Radio Link Frequency Assignment où elles identifient les parties les plus difficiles comme le montre les résultats obtenus. Cependant, sur des instances de problèmes aléatoires, on remarque que ces heuristiques adaptative manque d information initialement : l heuristique max se montre peu efficace. L idée d orienter la recherche en combinant le degré pondéré des contraintes avec la taille du domaine donne de meilleur résultats : la taille du domaine est utile pour guider l heuristique au début la recherche jusqu à ce que le degré pondéré deviennent prépondérant. Cette dernière remarque montre qu il est possible d apporter des améliorations pour guider davantage la recherche. Les résultats obtenues sur les instances du problèmes de Radio Link Frequency Assignment montrent que cette heuristique présente un intérêt sur des problèmes réels. On peut alors supposer que lorsqu on ne dispose pas d une expertise suffisante pour développer une heuristique spécifique pour un problème réel donné, utiliser une heuristique de ce type semble donner des résultats acceptables. 18

25 Chapitre 2 Quelques tentatives d améliorations L heuristique adaptative Weighted Degree collecte des informations à partir des échecs apparaissant lorsqu une solution partielle ne peut être étendue. Le principe failfirst présenté section 1.2 souligne l importance de bien choisir les premières variables à instancier. Cependant, on remarque que l heuristique Weighted Degree effectue les choix les plus importants (le choix des premières variables) avec très peu d informations alors que des choix moins important (le choix des variables en bas de l arbre de recherche) bénéficient de plus d informations. Les sections qui suivent proposent plusieurs améliorations afin que les premiers choix ne pénalisent pas la recherche de solution. 2.1 Schéma de branchement Une première idée pour tenter d améliorer l efficacité de l heuristique Weighted Degree est d utilisé un schéma de branchement binaire Description Un schéma de branchement peut être vu comme la manière dont on va faire progresser la solution partielle obtenue : son rôle est de séparer le problème à traiter en sous-problèmes complémentaires plus simples en assignant ou interdisant par exemple une valeur à une variable encore non instanciée. On peut considérer deux types principaux de branchement : branchement binaire (appelé aussi 2-way) ou non binaire (appelé aussi d-way, où d représente le nombre d éléments du domaine de la variable). Ces deux types de schéma ne sont pas équivalents. Il a été démontré dans [13] que le branchement binaire était plus puissant que le branchement non binaire. 19

26 X i = u 0 X i = u 1 X i = u i X i = u n Figure 2.1 Exemple d un arbre de branchement non binaire La figure 2.1 présente un branchement non binaire (c est le type de branchement utilisé dans la partie précédente). À chaque point de choix, on choisi une variable X encore non assignée. En notant d la taille de son domaine, on va brancher d fois sur chacune des valeurs de X. X i = u X i u X i+1 = v. X i+1 v. Figure 2.2 Exemple d un arbre de branchement binaire Pour le schéma de branchement binaire, à chaque point de choix, on choisit un couple (X, v) où X est une variable encore non assignée et v une valeur appartenant au domaine courant de X. Dans un premier cas, on considère l assignation X = v (décision positive). Dans un second cas, en conséquence de l exploration effectuée avec la première décision, on considère alors sa réfutation, c est-à-dire : X v (décision négative). La figure 2.2 illustre un tel branchement. Les définitions 4 et 5 formalisent la notion de décision. Definition 4. Soient P = (H, C) un réseau de contraint et un couple (X, v) tel que X H et v dom(x). L assignation X = v est appelée décision positive tandis que la réfutation X v est appelée décision négative. Definition 5. Soient P un réseau de contrainte et un ensemble de décisions. P est le réseau de contrainte obtenu à partir de P tel que pour toute décision positive (X = v), dom (X) est restreint à la valeur {v} et pour toute décision négative (X v), v est supprimé de dom (X). 20

27 2.1.2 Reprise de l exemple illustration des Queens and Knights On s intéresse essentiellement ici à mettre en évidence l impact du type de branchement sur les heuristiques dirigées par les conflits. On reprend l exemple de la section et sa variante. Le tableau 2.3 présentent les résultats obtenus en fonction du type de branchement. On constate des résultats clairement meilleurs en terme de nombre de backtracks et de temps de calcul lorsqu on utilise un arbre de branchement binaire. instance heuristique classique variante backtracks temps (s) backtracks temps (s) qk-8-5 max d-way way min dom d-way way qk-10-5 max d-way way min dom d-way way qk-12-5 max d-way way min dom d-way way Table 2.1 Résultats expérimentaux des problèmes queensknights-n-k Expérimentation complémentaire Le tableau 2.2 présentent des résultats complémentaires au problème des Queens and Knights obtenus grâce à un branchement binaire. instance heuristique classique variante backtracks temps (s) backtracks temps (s) queensknights-15-5 max min dom queensknights-20-5 max min dom queensknights-25-5 max min dom Table 2.2 Résultats expérimentaux complémentaires des problèmes queensknightsn-k. 21

28 La tableau 2.3 présente les résultats obtenus sur le problème Radio Link Frequency Assignment pour les deux types de branchements binaires (2-way) et non binaires (dway). instance branchement max min dom backtracks temps (s) backtracks temps (s) SCEN1 d-way way SCEN2 d-way way SCEN3 d-way way SCEN4 d-way way SCEN5 d-way way SCEN11 d-way way Table 2.3 Résultats expérimentaux des problèmes queensknights-n-k. La figure 2.3 présente les résultats obtenues sur des instances de problèmes aléatoires. Chaque point représente une instance aléatoire particulière. En abscisse, on trouve les temps de calculs (puis les nombre de backtracks) pour l heuristique min dom et en ordonnée, ceux pour cette même heuristique avec branchement binaire Discussion Les résultats obtenus sur le problème des Queens and Knights s explique par le fait que le branchement binaire va permettre de remettre en cause les variables choisies plus souvent. Bien que sélectionner une variable nécessite un petit peu de temps de calcul (calcul du critère, du minimum, etc.), le schéma de branchement binaire peut être profitable. Dans cet exemple, comme on ne bénéficie pas de beaucoup d information initialement, les heuristiques dirigées par les conflits choisiront au départ les reines ; c est seulement au fil de la recherche que ces heuristiques disposeront de suffisamment d informations pour sélectionner les cavaliers. En utilisant des branchements binaires, on remet en cause plus tôt les choix initiaux réalisés lorsqu on ne disposait pas d information. Ainsi, progressivement, en fonction des informations collectées, on remonte en haut de l arbre de recherche les variables impliquées dans le plus grand nombre de conflits. Les résultats obtenues pour le problème Radio Link Frequency Assignment montre qu il est presque toujours profitable de choisir un schéma de branchement binaire sur ce 22

29 Figure 2.3 Comparaison de l heuristique min dom avec des branchements non binaires (en abscisse) et binaires (en ordonnée) sur différentes instances aléatoires type de problème. Cependant, comme le montre les résultats expérimentaux présentés figure 2.3, le choix d un schéma de branchement binaire peut parfois être désavantageux. En effet, on constate ici qu un simple branchement binaire ne permet pas d améliorer l efficacité de la recherche de solution sur certaines instances de ce type de problème et au contraire, dégrade les performances. Ainsi, il y a certain problème où il est moins avantageux de choisir un schéma de branchement binaire. Il semblerait que les informations collectées au cours de la recherche grâce aux compteurs weight ne suffisent pas à guider la recherche efficacement. 23

30 2.2 Stratégie de redémarrage Une autre idée pour pallier au manque d informations au début de la recherche est de mettre en place une stratégie de redémarrage. Cette section présente différentes stratégies de redémarrage : cette partie s appuient essentiellement sur les travaux de [11] et [10] Présentation Les stratégies de redémarrage permettent d effectuer les choix des premières variables avec davantage d informations au fur et à mesure des redémarrages. On propose de suivre deux méthodes principales pour combiner l heuristique min dom et les redémarrages. Dans les deux méthodes, dans un premier temps, les redémarrages apparaissent après un nombre fixé d échecs (on peut également considérer plutôt le nombre de nœud comme dans [10]). La raison pour laquelle on se base sur le nombre d échecs est qu il reflète la quantité d information collectée. On notera C (pour Cutoff ) le nombre maximal d échecs avant coupure. De plus, on garde l information collectée lors de chaque exécution, c està-dire on ne réinitialise pas les poids des contraintes (les compteurs weight) à chaque redémarrage. On appellera dans la suite run une exécution de recherche de solution et on notera R le nombre de runs ce qui correspond à R 1 redémarrage. Si une solution est trouvée ou si on a réussi à prouver qu il n y a pas de solution avant le dernier run, l algorithme s arrête. Dans le cas contraintes, lorsqu on arrive au run final, on laisse la recherche se poursuivre jusqu au bout, c est-à-dire on fixe C = pour la dernière exécution, ce qui rend la méthode complète. Stratégie de collecte d information Même s il est possible de trouver une solution avant l exécution du dernier run, les R 1 premiers runs correspondent plutôt à une phase de collecte d information (apprentissage des poids des contraintes). Cette section présente deux approches différentes pour cette première phase. La première méthode, appelé aussi WTDI (pour Weighted Information Gathering) utilise uniquement l heuristique min dom pour guider la rechercher à chaque exécution. Comme les poids évoluent, l heuristique sera susceptible de visiter des parties différentes de l espace de recherche à chaque redémarrage puisque l ordre d assignation des variables pourra être différent. La seconde méthode, appelé aussi RNDI (pour Random Information Gathering) utilise l heuristique min dom uniquement pour guider la rechercher du run final. Pour les R 1 premiers runs, les variables sont sélectionnées aléatoirement à chaque point de choix (on parle aussi de Random Probes ou preuves aléatoires). Les poids des contraintes sont quant à eux incrémentés de la manière habituelle, c est-à-dire lorsque la propaga- 24

31 tion d une contrainte provoque un échec. L intérêt de l utilisation d un ordre aléatoire est de pouvoir collecter des informations de parties diversifiées de l espace de recherche. Ainsi, en explorant des parties variées, on obtient alors un meilleur échantillon d information pour identifier les différentes parties difficiles d un problème. On peut noter également que contrairement à la méthode WTDI, on ne s attend pas résoudre le problème avant le run final avec la méthode RNDI. Les R 1 premiers runs ont plus pour vocation de collecter des informations variées. Stratégie de coupure Jusqu à maintenant, la stratégie de coupure employée était constante : on fixait initialement C qui restait le même pour les R 1 premiers runs. Les travaux présentés dans [8] présentent notamment une nouvelle stratégie : C n est plus le même pour chaque redémarrage et suit une progression géométrique. En notant C i le nombre d échecs maximal autorisés au run i avant redémarrage et q la raison de la progression géométrique, on a alors la relation de récurrence : C i+1 = q C i. De plus, on fixera C 0. En pratique, il a été montré que les valeurs de q telle que q ]1; 2[ sont les plus efficaces. On peut justifier une telle stratégie pour la méthode WTDI en supposant qu initialement, on ne dispose pas de beaucoup d information, donc les premiers choix seront probablement mauvais et donc redémarrer rapidement permet de recommencer une recherche avec des premiers choix un peu meilleurs. Au fur et à mesure qu on dispose d information, les choix initiaux effectués seront de meilleure qualité et donc la recherche aura de meilleures chances d aboutir. Pour la méthode RNDI, une stratégie avec C constant semble plus adaptée puisqu on explore l espace de recherche sans tenir compte des informations collectés lors des n 1 premiers runs. De plus, collecter la même quantité de données pour chaque partie de l espace de recherche exploré semble plus cohérent (pour ne pas favoriser de région particulière de l espace de recherche) Étude expérimentale des paramètres Trouver les bons paramètres est une chose délicate. Cette section propose une brève étude expérimentale des paramètres : le nombre de runs maximum R et le nombre maximal de backtracks avant coupure C. Le but est ici d observer l influence de ces paramètres sur différents problèmes. On notera que les résultats présentés ici sont les résultats moyens obtenus pour 5 exécutions. Les tableaux 2.4 et 2.5 présentent les résultats obtenus sur une instance modifiée de l instance 11 du problème Radio Link Frequency Assignment présenté précédemment. On rappelle les résultats avec simplement l heuristique min dom obtenus précédement : 8597 backtracks en secondes. On remarque sur le tableau 2.4 qu une coupure trop 25

32 tard ou qu un nombre de redémarrage trop grand ne sont pas bénéfiques pour la stratégie WTDI. De plus, les paramètres tels que C [10; 40] et R [25; 100] donnent de bon résultats. Sur le tableau 2.5, on remarque que la stratégie RNDI semble beaucoup plus sensible au paramétrage. Les paramètres C et R semblent offrir une recherche plus efficace lorsque : (C; R) {(50; 80), (100; 20), (200; 10), (200; 20), (200; 40)} Nombre de backtracks Nombre de runs s s s s s 2202 btks 665 btks 1191 btks 2233 btks 4301 btks s s s s s 660 btks 1157 btks 2196 btks 4217 btks 8302 btks s s s s s 1158 btks 2156 btks 4179 btks 8236 btks btks s s s s s 2167 btks 4177 btks 8192 btks btks btks Table 2.4 Résultats expérimentaux en secondes et en nombre de backtracks total (btks) avec différents paramètres pour la stratégie WTDI sur l instance SCEN11-F10. Nombre de backtracks Nombre de runs s s s s s btks btks btks 7136 btks 6686 btks s s s s s 7682 btks btks 8352 btks 4774 btks btks s s s s s btks 3657 btks 7379 btks 8309 btks btks s s s s s 3636 btks 4261 btks 8320 btks btks btks Table 2.5 Résultats expérimentaux en secondes et en nombre de backtracks total (btks) avec différents paramètres pour la stratégie RNDI sur l instance SCEN11-F10. La figure 2.4 présente les résultats obtenus sur une instance de problème aléatoire. On remarque tout de suite qu il semble difficile de trouver un bon paramétrage. Les paramètres sur ce type de problème ne semble pas avoir beaucoup d influence sur la performance de la recherche. 26

33 27 Figure 2.4 La première ligne concerne la stratégie WTDI et la seconde concerne la stratégie RNDI. Les graphiques de droite sont les résultats expérimentaux en utilisant en plus une stratégie géométrique : on étudie les paramètres raison (q) et nombre de backtracks initial (C0) avec un nombre de runs fixé à 50.

34 2.2.3 Discussion Les résultats expérimentaux obtenus sur le problème de Radio Link Frequency Assignment présentent des caractéristiques propres à chaque stratégie de redémarrage. En ce qui concerne WTDI, elle semble moins sensible au paramétrage. En effet, en faisant l hypothèse qu on choisisse un nombre de backtracks avant coupure grand, il est davantage possible que l un des R 1 premiers runs trouve une solution ce qui réduit l importance du nombre maximal de runs. En fait, si le nombre de backtracks avant coupure est trop grand ( C ), on retrouve l heuristique min dom décrite dans les sections précédentes. C est alors qu ajouter une stratégie géométrique pour le nombre de backtracks avant coupure semble intéressant. En effet, en augmentant progressivement le nombre maximum de backtracks à chaque nouveau run, on augmente nos chances de trouver une solution tout de suite, d autant plus qu on bénéficie au fur et à mesure des informations collectées précédemment, ce qui rend la recherche chaque fois plus efficace. Les premiers runs, peu informés, servent alors principalement à collecter des informations rapidement. Puis, plus on dispose d information, plus l heuristique min dom fera des choix qui sembleront efficaces et plus elle aura de chances de trouver une solution sous condition qu on lui permette suffisamment de backtracks. C est pourquoi cette stratégie WTDI géométrique nous semble intéressante. Pour la stratégie RNDI, puisque la recherche de solution des R 1 premiers runs n utilise que des heuristiques aléatoires, le but est alors de trouver les paramètres permettant d explorer le plus possible et de manière variée l espace de recherche. Dans ce cas, les paramètres semblent plus délicats encore à régler. Il s agit de trouver un bon compromis entre les deux paramètres : un nombre de backtracks avant coupure suffisamment grand pour permettre de collecter suffisamment d informations intéressantes et un nombre de runs suffisamment grand pour collecter des informations variées dans l espace de recherche sans que ces deux paramètres soient trop grands pour ne pas perdre trop de temps lors des R 1 premiers runs qui forment une phase essentiellement d apprentissage et n ont pour but que de collecter des données. C est seulement le dernier run qui a véritablement pour vocation de trouver une solution plus ou moins efficacement en fonction de la quantité et de la qualité des données collectées. En ce qui concerne les instances de problèmes aléatoires, on s aperçoit que trouver un paramétrage qui donne de meilleurs résultats est une chose délicate. De plus, la stratégie RNDI géométrique est difficile à justifier puisque la phase d apprentissage utilise des heuristiques aléatoires, sans tenir compte des informations collectées précédemment. On s aperçoit ici des difficultés de paramétrage. Néanmoins, la stratégie WTDI géométrique nous semble plus robuste et facile à paramétrer, c est pourquoi nous la choisiront préférentiellement dans nos applications à des problèmes de trafic aérien. Enfin, on pourrait améliorer encore les performances par exemple en stockant des nogoods, c est-à-dire des solutions partielles menant à un échec comme proposé dans [16]. Chaque redémarrage bénéficierait alors des nogoods collectés précédemment. 28

35 2.3 Heuristique Last Conflict Cette section présente une heuristique adaptative intéressante. Elle reprend les travaux présentés dans [15] Présentation de l heuristique L heuristique présentée dans [15] propose une nouvelle approche pour guider la recherche vers la source des conflits : l heuristique Last Conflict. Cette heuristique a l avantage de pouvoir être couplée à n importe quelle autre heuristique de choix de variable. Cette heuristique s intéresse aux raisons qui ont conduit à un conflit. Un échec, une impasse dans l arbre de recherche, correspond à un conflit entre un sous-ensemble de décisions : on entend par décision une assignation de variables (définition 4). Ainsi, il est intéressant d identifier la décision la plus récente qui participe au conflit. Il est alors possible d effectuer indirectement un retour-arrière sur la variable qui a mené à la dernière impasse rencontrée : cette variable devient la prochaine variable à sélectionner en priorité. Cette approche à donc pour but de guider la recherche de manière à détecter dynamiquement la raison du dernier conflit rencontré Algorithme Les deux définitions suivantes sont essentielles pour la description de l algorithme. Definition 6. Soient P un réseau de contrainte et un ensemble de décision. est un nogood de P si et seulement si P est instatisfiable. Definition 7. Soient P un réseau de contrainte et = δ 1,..., δ i une séquence de décisions telle que {δ 1,..., δ i } est un nogood de P. Une décision δ j est dite coupable si et seulement si, il existe v dom (X i ) où X i représente la variable impliquée dans δ i, tel que la propagation des contraintes du réseau P δ1,...,δ j 1, δ j,x i =v n échoue pas. L heuristique Last Conflict est un raisonnement à partir du dernier conflit. L algorithme repose essentiellement sur une simple modification de l heuristique de choix de variable afin d identifier et d exploiter les nogoods. On peut décrire l algorithme en deux étapes essentielles et suffisantes : enregistrement de la variable dont l assignation a mené directement à une inconsistance ; sélection de cette variable en priorité dans les décisions suivantes plutôt que celle proposée par l heuristique de choix de variables. On remarque également qu on n a pas besoin de structure de donnée supplémentaire. 29

36 2.3.3 Reprise de l exemple illustration des Queens and Knights On expérimente d abord sur l exemple illustratif des Queens and Knights. Le tableau 2.6 présente les résultats obtenus en combinant l heuristique Last Conflict avec différentes heuristiques. Afin de pouvoir comparer, on rappellera également les résultats obtenues lors des premières expériences de la section On s aperçoit de l intérêt de l heuristique Last Conflict en particulier sur les heuristiques classiques min dom et min dom dom ddeg. L heuristique Last Conflict combinée avec max et min améliore également les performances dans une moindre mesure sur ce type de problème. Ces résultats s expliquent par le fait que, petit à petit, les variables qui font partie du problème des cavaliers vont remonter dans l arbre de recherche grâce à l heuristique Last Conflict (on suit le principe fail-first). Afin d aider à comprendre les résultats obtenus, on remarque enfin que les heuristiques dirigées vers les conflits remontent également naturellement les variables des cavaliers : l heuristique Last Conflict ne fait donc qu accélerer cette remontée. instance min dom min dom ddeg max min dom LC LC LC LC LC LC LC LC qk s s s s s s s s qk-8-5 v s s s s s s s s qk s s s s s s s s qk-10-5 v s s s s s s s s qk > 300 s s > 300 s s s s s s qk-12-5 v > 300 s s > 300 s s s s s s Table 2.6 Résultats expérimentaux des problèmes queensknights-n-k Expérimentation complémentaire Les résultats obtenus sur le problème des cavaliers montrent qu il peut être également intéressant d expérimenter l heuristique Last Conflict sur les heuristiques dirigées vers les conflits mais également sur des heuristiques classiques. C est pourquoi, le cas échéant, on comparera également les résultats avec l heuristique min dom ddeg. Les figure 2.5 et 2.6 présentent les résultats obtenues sur des instances de problèmes aléatoires. Chaque point représente une instance aléatoire particulière. Sur la figure 2.5 (respectivement figure 2.6), on trouve en abscisse les temps de calculs (puis les nombres 30

37 de backtracks) pour l heuristique min dom dom ddeg (respectivement min ) et en ordonnée, ceux pour cette même heuristique avec l heuristique Last Conflict. Figure 2.5 Comparaison de l heuristique min dom ddeg (en abscisse) et cette même heuristique avec Last Conflict (en ordonnée) sur différentes instances aléatoires. Le tableau 2.7 présente les résultats obtenus sur des instances du problème Radio Link Frequency Assignement avec différentes heuristiques. Afin de pouvoir comparer, on rappelle également les résultats obtenus dans la section sans Last Conflict (noté LC ) Discussion L exemple des Queens and Knights montre un aspect intéressant de l heuristique Last Conflict : une fois une inconsistance découverte, l heuristique va tenter d instancier la variable qui a causé le conflit au plus tôt. Cette heuristique est peu onéreuse en temps de calcul et en utilisation mémoire. On peut remarquer également qu elle imite en quelque sorte des mécanismes de retour-arrière intelligent plus complexes tels que les techniques de Back-Jumping qu on trouve dans la littérature par exemple. L article?? montre en effet que lorsqu on utilise des heuristiques dirigées vers les conflits, les techniques de retour-arrière intelligent n ont plus beaucoup d intérêt lorsqu elles sont appliquées aux CSP statiques. Les résultats obtenus sur le problème Radio Link Frequency Assignement montre l intérêt de l heuristique Last Conflict notamment sur l instance 11. On notera également que l heuristique classique min dom ddeg couplée avec l heuristique Last Conflict obtient des résultats similaires aux autres heuristiques. 31

38 Figure 2.6 Comparaison de l heuristique min dom (en abscisse) et cette même heuristique avec Last Conflict (en ordonnée) sur différentes instances aléatoires. En ce qui concerne les instances de problème aléatoire, on remarque que peu importe l heuristique de choix de variable initiale, l heuristique Last Conflict détériore nettement les performances. Cette heuristique présente l avantage de pouvoir être couplée à n importe quelle autre heuristique de choix de variables. Les résultats expérimentaux montrent nettement l intérêt de cette approche, notamment lorsqu on utilise une heuristique de choix de variables classique comme min dom ou min dom ddeg dirigée par les conflitcs comme max ou min dom. Lorsqu on l utilise avec une heuristique, les résultats sont plus mitigés. À noter également que sur certains types de problèmes, l heuristique Last Conflict peut améliorer les résultats comme les détériorer. 32

39 instance min dom ddeg max min dom LC LC LC LC LC LC SCEN s s s s s s SCEN s s s s s s SCEN s s s s s s SCEN s s s s s s SCEN s s s s s s SCEN s s s s s s Table 2.7 Résultats expérimentaux des instances du problème Radio Link Frequency Assignement 2.4 Une hybridation avec de la recherche locale Les algorithmes de résolution se divise en deux grandes familles : les algorithmes systématiques et les algorithmes non-systématiques. Bien que les algorithmes non-systématiques soient généralement incomplets, ils sont adaptés aux problèmes satisfiables de très grande taille, impossible à résoudre en un temps raisonnable par des méthodes systématiques. Ces algorithmes non-systématiques regroupe la recherche locale, les algortihmes évolutionnaires, les colonies de fourmis, les algorithmes gloutons, etc. Cette partie présente une idée développée dans [19] qui a pour but d hybrider les deux types d algorithmes : recherche locale et recherche systématique. Cette partie décrit une tentative d hybridation simplifiée qu on a implémentée et testée uniquement sur des contraintes binaires en extension. Compte tenu du temps imparti pour ce stage, le but sera alors d explorer et de comprendre la méthode pour se rendre compte de son potentiel et les ouvertures possibles liées à l heuristique Weighted Degree Introduction à la recherche locale Cette section présente de manière simple une approche pour résoudre les problèmes de satisfaction de contraintes de taille importante. Cette section s inspire également des travaux de [17]. 33

40 Recherche locale Min-Conflicts Les algorithmes systématique se base sur une approche constructive qui étend incrémentalement une instanciation partielle des variables et utilise, le cas échéant, une stratégie de retour-arrière (backtrack). En revanche, la recherche locale crée une affectation complète mais inconsistante des variables puis répare les violations de contrainte jusqu à l obtention d une affectation consistante. Une réparation consiste en général à modifier la valeur assignée à une variable. L instanciation initiale des variables peut être générée aléatoirement. Il est également possible d initialiser les variables avec un algorithme glouton qui cherchera à minimiser les conflits dès l instanciation. Par exemple, un réseau de contrainte possédant au moins deux variables v i et v j liée par une contrainte de la forme v i + v j = 5, si on suppose que l on ait déjà initialisé v i à 2, l algorithme glouton pourra choisir alors d instancier v j à 3 pour minimiser les conflits alors qu une initialisation aléatoire aurait choisi n importe quelle valeur. Afin de guider la recherche, on utilisera une heuristique de choix de variable simple : l heuristique Min-Conflicts. Cette heuristique identifie d abord une variable en conflit, c est-à-dire qui est liée à une contrainte violée, puis choisit une valeur qui minimise le nombre de violations de contrainte. Une procédure la caractérisant est proposée dans [14] : Heuristique Min-Conflicts : Donnée : un ensemble de variables, un ensemble de contraintes binaires et une instanciation spécifiant une valeur pour chaque variable. Deux variables sont en conflit si leurs valeurs violent une contrainte. Procédure : Sélectionner une variable qui est en conflit et lui assigner une valeur qui minimise le nombre de conflits. On remarque également que cette méthode ne garantie pas de trouver une solution (méthode incomplète) et ne permet pas non plus de prouver qu un problème est insatisfiable. Minimums locaux Il est possible qu aucune réparation simple, c est-à-dire assigner une autre valeur à une variable, ne puisse diminuer le nombre de violations de contrainte. On a alors atteint un minimum local. Cette partie présente principalement deux techniques pour échapper aux minimums locaux utilisées dans [19]. La première idée simple, proposée dans [17], consiste à effectuer des mouvements aléatoires. Une réparation est effectuée aléatoirement avec une probabilité p au lieu d être choisie parmi les meilleures réparations. On appelera cette méthode pour échapper aux minimums locaux Random Walk (marche aléatoire). Cette méthode est illustrée par l algorithme 1. 34

41 Algorithm 1 Min-Conflict avec Random Walk 1: tant que nombre de violations de contrainte > 0 faire 2: sélectionner aléatoirement X tel que X est en conflit 3: si random[0; 1] < p alors 4: sélectionner une valeur v de X aléatoirement 5: sinon 6: sélectionner une valeur v de X qui minimise le nombre de conflits 7: fin si 8: affecter v à X 9: mise à jour des violations de contrainte 10: fin tant que Une seconde idée consiste à éviter de revenir à une affectation déjà visitée en enregistrant les réparations précédentes. Cette technique utilise une structure de donnée appelée liste Tabu proposé dans [7]. Cette liste garde en mémoire les réparations effectuées mais la taille de cette liste est limitée de sorte qu un nombre limité de réparations est gardé en mémoire et que les plus anciennes sont oubliées. Ainsi, un grand nombre de réparation reste disponible. On peut également définir un critère, appelé critère d aspiration, tel qu on puisse choisir une réparation présente dans la liste Tabu si celle-ci permet d obtenir une meilleure affectation que toutes celles rencontrées jusqu à présent. Cette méthode Tabu est illustrée par l algorithme 1. Algorithm 2 Min-Conflict avec Liste Tabu, avec L tabu la liste Tabu 1: tant que nombre de violations de contrainte > 0 faire 2: sélectionner un couple (X, v) tel que X est en conflit et v est une valeur de X qui minimise le nombre de conflits, et tel que (X, v) L tabu ou valide le critère d aspiration 3: insérer le couple (X, v) dans L tabu et supprimer le plus ancien élément 4: affecter v à X 5: mise à jour des violations de contrainte 6: fin tant que Exemple illustratif Afin de bien comprendre comment marche une recherche locale, on détaillera un exemple de déroulement de l algorithme Min-Conflicts sur le problème des 4-Queens. On considère qu on affecte une colonne à chaque reine et on lui associe une variable indiquant son numéro de ligne. On suppose qu on a posé toutes les contraintes nécessaires. Le tableau 2.8 présente l initialisation gloutonne décrite précédemment : une première valeur est affectée aléatoirement à la première variable (ici 0) ; puis, on compte le nombre de conflit pour chaque valeur que peut prendre la variable (que l on a noté sur l échiquier) ; on sélectionne aléatoirement une valeur minimisant le nombre de conflit ; on compte à 35

42 nouveau le nombre de conflit, etc Table 2.8 Illustration de l initialisation gloutonne sur le problème des 4-Queens. Le tableau 2.9 présente le déroulement de l algorithme. On démarre de l affectation précédente. Dans la première colonne du tableau 2.9, on note le nombre d itérations ; dans la deuxième colonne, on note en dessous de l échiquier, le nombre de conflits pour chaque variable ; dans la troisième colonne, on note sur l échiquier le nombre de conflits si on effectuait la réparation et à droite de l échiquier la variation du nombre de conflits par rapport à l état courant si on effectuait la réparation ; dans la dernière colonne, on présente le résultat obtenu une fois la réparation effectuée. À la fin, on obtient bien une solution consistante. Comme on l a dit précédemment, les algorithmes de recherche locale semblent plus efficaces sur des problèmes de grande taille. La figure 2.9 présentent les résultats obtenus (en temps de calcul) sur l exécution du problème des n-queens avec un algorithme de recherche locale avec méthode Tabu et un algorithme de recherche systématique (parcours d arbre en profondeur d abord et retour-arrière) avec une heuristique de choix de variable min dom. On remarque que la recherche locale est plus robuste face à l augmentation du nombre de reines. On notera que cet exemple à pour simple but d illustration. La modélisation n est faite que de contraintes binaires. Une modélisation avec des contraintes globales tel que Alldiff 1 donnerait de meilleurs résultats, notamment pour la recherche systématique Hybridation séquentielle Cette section se base sur les travaux de [19]. Elle présente une manière d hybrider séquentiellement une recherche locale et une recherche systématique en partageant des 1. All-Different : cette contrainte globale impliquent que les variables sur lesquelles elle est définie prennent des valeurs deux à deux différentes. 36

43 itérations sélection d une variable sélection d une valeur réparation Table 2.9 Exécution de l algorithme Min-Conflict sur le problème des 4-Queens. informations. Recherche locale Weighted Min-Conflict L hybridation présentée se base sur un partage d information entre recherche systématique et recherche locale. L information que l on va partager sont les compteurs weight présentés précédemment et exploités par l heuristique Weighted Degree. Cette section présente comment sont exploités ces poids par la recherche locale. Une méthode consiste à pondérer les contraintes. Cette idée a été développée dans [18]. En considérant une version idéalisée de cette méthode, on suppose que chaque état possède un coût enregistré en mémoire. L algorithme 2.10 illustre cette méthode. Augmenter le coût des états qui ont mené à un minimum local permet de lisser les 37

44 Figure 2.7 Comparaison de l heuristique min dom avec une recherche locale Min- Conflict avec Liste Tabu. Algorithm 3 Breakout Method 1: tant que l état courant n est pas une solution faire 2: si l état courant n est pas un minimum local alors 3: faire une modification local qui réduisse le coût 4: sinon 5: augmenter le coût enregistré de l état courant 6: fin si 7: fin tant que minimums locaux et de les éliminer efficacement. La figure 2.10 présente un exemple de cette méthode. Il est irréaliste d enregistrer en mémoire pour chaque état un coût. Néanmoins, on peut reproduire ce mécanisme en pondérant les contraintes. Si un minimum local est détecté, on augmente alors le poids (c est-à-dire le compteur weight) de toutes les contraintes en conflit (ce qui reproduit une augmentation du coût enregistré de l état courant). En pondérant ainsi les contraintes, les contraintes les plus difficiles à satisfaire, celle qui sont le plus souvent violées, auront peu à peu un poids plus important. L algorithme de recherche locale cherchera donc à les satisfaire en priorité puisque les satisfaire engendre une réduction plus importante du coût. L algorithme 4 illustre cet algorithme de recherche locale que l on appellera Weighted Min-Conflict. 38

45 Table 2.10 Illustration du lissage d un minimum local par pondération des contraintes violées Algorithm 4 Weighted Min-Conflict 1: tant que nombre pondéré de violations de contrainte > 0 faire 2: sélectionner aléatoirement X tel que X est en conflit et une valeur v de X qui minimise le nombre pondéré de conflits 3: si la réparation où on affecte v à X n améliore pas le coût de l état courant alors 4: augmenter le poids des contraintes violées 5: sinon 6: affecter v à X 7: mise à jour des violations de contrainte 8: fin si 9: fin tant que On remarque enfin qu il arrive que de très mauvais choix initiaux orientent la recherche vers de larges zones de l espace de recherche sans solution ou qu il faille un nombre important de réparations pour passer d un minimum local à un autre. Pour éviter ces problèmes, le meilleur moyen reste parfois de réparer toutes les variables simultanément en reprenant simplement la recherche du début. C est pourquoi on fixera un nombre maximum d itérations à l algorithme Weighted Min-Conflict avant de redémarrer la recherche de solution. Hybridation des deux types de recherche L hybridation qu on a réalisée reprend seulement l idée principale de [19]. On n enregistre pas par exemple les nogoods découverts lors de la recherche systématique. En théorie, cette méthode d hybridation permet de résoudre des problèmes au-delà de la portée de chacune des deux méthodes hybridées en exploitant les performances des deux 39

46 approches. La recherche systématique (RS) se base sur celle développée dans les sections précédentes. On rappelle qu il s agit donc d un parcours d arbre en profondeur d abord avec retour-arrière et maintien de la consistance d arc. On utilise également l heuristique de choix de variable min dom. Le paramètre nbbacktracks max permet d interrompre la recherche en limitant le nombre maximum de backtracks. La recherche locale utilisée est Weighted Min-Conflict (WMC ) que l on aide d une liste Tabu pour sortir plus facilement des minimums locaux. On interrompt également la recherche grâce à un paramètre nbiterations max qui limite le nombre maximum d itérations. Le partage d information entre les deux recherches se fera de manière naturelle sur les poids (compteur weight) des contraintes incrémentés lorsqu une propagation conduit à un échec pour la recherche systématique d une part et lorsqu on se trouve dans un minimum local pour la recherche locale d autre part. Enfin, si jamais l une des recherches trouve une solution, l algorithme s arrête et retourne cette solution. La figure 2.8 illustre l hybridation séquentielle des deux types de recherche. Figure 2.8 Hybridation séquentielle des deux types de recherche. De plus, à chaque cycle (c est-à-dire une alternance recherche locale et recherche systématique), on augmentera les paramètres nbiterations max et nbbacktracks max suivant une lois géométriques de raison α. Afin de partager les ressources entre les deux types de recherche, on chronomètre chacune des deux recherches pour rééquilibrer dynamiquement le temps alloué à chacune d entre elles. L algortihme 5 illustre de manière simplifiée l hybridation mise en oeuvre. 40

47 Algorithm 5 Hybrid 1: tant que on n a pas trouvé de solution faire 2: t debut maintenant() 3: redémarrer nbredemarrages max une recherche locale Weighted Min-Conflict limitée à nbiterations max itérations. 4: t W MC maintenant() t debut 5: effectuer une recherche systématique limitée à nbbacktracks max. 6: t RS maintenant() t RNS 7: nbredemarrages max α nbredemarrages max 8: nbbacktracks max α nbbacktracks max t W MC t RS 9: fin tant que Expérimentation On a essentiellement trois paramètres à régler : le coefficient α, la longueur de la liste Tabu que l on notera l tabu et le nombre maximum d itérations nbiterations max. Trouver les bons paramètres semble délicat et fortement lié au problème à résoudre. De plus, notre première implémentation n est pas suffisamment mature pour présenter une étude détaillée des paramètres. C est pourquoi, on se contentera simplement d un aperçu de l importance de chacun de ces paramètres. On a testé notre implémentation uniquement sur des instances de problème aléatoire testées 5 fois avec le même paramétrage. Afin de pouvoir visualiser graphiquement nos résultats grâce à un graphique en 3 dimensions, on fixera dans un premier temps l tabu = 50. Dans un second temps, compte tenu de la difficulté de lecture des courbes en 3 dimensions 2, on fixe également nbiterations max = La figure 2.9 présente les résultats obtenus. On s aperçoit alors que dans ce cas, une valeur de α entre 1,5 et 2 donne de meilleurs résultats. Comme le montre la figure 2.10, on peut également faire de même en fixant d abord arbitrairement nbiterations max = 2000 puis fixer α entre 1,5 et 2 puisque cela correspond aux meilleurs résultats obtenus précédemment. On constate qu une taille de liste Tabu d environs 50 est plutôt un bon choix. Enfin, les résultats de la figure 2.11 ont été élaborés en fixant d abord α = 1, 75 puis l tabu = 50 pour permettre une meilleur visualisation des résultats puisque cela correspond aux valeurs sélectionnées précédemment. On s aperçoit alors que fixer initialement nbiterations max à 2000 est une valeur moyenne acceptable. 2. Les courbes en 3 dimensions présentées ici sont reproduit en format plus grand en annexe. 41

48 Figure 2.9 Résultats obtenus en fixant l tabu à 50. nbiterations max = 2000 Il est possible de raffiner encore le réglage des paramètres mais il faut garder à l esprit qu il semble que les paramètres soient dépendants du problème : un bon paramétrage pour un problème n est pas forcément bon pour un autre. Enfin, en moyenne, en considérant ce paramétrage, il faut en moyenne à la méthode hybride 8,4 s contre 9,2 s à la méthode systématique avec l heuristique de choix de variable min dom pour obtenir une solution à des instances de problèmes aléatoires Discussion Le but de cette partie était avant tout de présenter l idée principale de l hybridation développée dans [19]. C est pourquoi on ne détaillera pas davantage et on ne testera pas sur d autres problèmes. Notre approche appliquée permet de se rendre compte des difficultés de paramétrage mais aussi du potentielle d une telle méthode. Néanmoins, notre implémentation n est pas assez mature et robuste. C est pourquoi, on ne testera pas cette hybridation sur des problèmes de trafic aérien. On retiendra essentiellement la séduisante manière naturelle d hybrider les deux méthodes qui ouvre d autres perspectives liées à l heuristique Weighted Degree. 42

49 α = 1.75 Figure 2.10 Résultats obtenus en fixant nbiterations max à Figure 2.11 Résultats obtenus en fixant l tabu à 1,75. l tabu = 50 43

50 Chapitre 3 Application à un problème de gestion du trafic aérien 3.1 Présentation de la gestion du trafic aérien La gestion du trafic aérien est nécessaire pour plusieurs raison : pour garantir des niveaux de sécurité, pour garantir un écoulement du trafic, pour optimiser l écoulement du trafic, etc. Cette gestion se fait à travers notamment le contrôle découpé en trois catégories principales : le contrôle en route qui est responsable des vols en croisière ; le contrôle d approche qui gère les avions aux alentours d un aéroport pendant leur phase de descente ou de montée ; le contrôle d aéroport qui est responsable de toute la phase aéroportuaire des vols, depuis la descente finale de l avion jusqu à son déollage suivant. Cette dernière phase comprend également le séquencement des avions sur la piste. Les dernières prévisions d Eurocontrol, organisme Européen de gestion du trafic aérien, prévoit une croissance du trafic aérien pour 2010 de 0.8% malgré le contexte de crise économique 1. L augmentation du trafic aérien implique notamment une amélioration de la capacité des aéroports : un dysfonctionnements peut aboutir à la congestion d un aéroport ce qui lourd de conséquences en terme économique, de retard et de sécurité. C est pourquoi, nous nous intéressons dans cette partie à résoudre un problème d optimisation du séquencement d avions au décollage et à l atterrissage d un grand aéroport en limitant les retards. Les problèmes de Job Shop Scheduling présentent des points communs avec les problèmes de séquencement d avion. C est pourquoi nous avons commencé par suivre la démarche de [9] dans la section 3.2 pour ensuite l adapter à notre problème aéroportuaire dans la section 3.3. La section 3.2 permet également de montrer l interêt de l utilisation de technique générique. 1. EUROCONTROL Short-Term Forecast, May

51 3.2 Problème de Job Shop Scheduling Cette partie s inspire des démarches de [11] et [9] Présentation du problème Un problème de Job Shop de taille n m implique n jobs et m machines. Chaque job est constitué de m tâches à exécuter dans un ordre fixe, chacune sur une machine différente. Chaque tâche est ininterruptible et on associe une durée à chacune d entre elles. Chaque machine correspond à exactement une seule tâche par job et ne peut effectuer qu une seule tâche à la fois. Le but est alors de minimiser la durée totale pour effectuer toutes les tâches (makespan). La figure 3.1 présente un petit exemple de problème de Job Shop. On dispose ici de 3 jobs qui se partage 3 machines. Chaque machine est représenté par une couleur. L ordre dans le quel chaque tâche doit être effectué est symbolisé par un chemin de flèche pour chaque job. La figure 3.2 présente une solution optimale possible : pour chaque job, on donne l ordonnancement des différentes tâches. Il existe une autre variante de ce problème connu sous le nom de Open Shop : le problème est identique sauf que les tâches d un job ne sont plus ordonnée initialement Modélisation La modélisation présenté dans [9] semble intéressante : elle est à la fois simple et générique. Elle utilise des contraintes de disjonction simple et l heuristique Weigthed Degree. Pour chaque job, on modélise l heure de début de chacune des tâches par une variable t i. Puis, on fixe l ordre des tâches de chaque job par la contrainte t i + d i t j avec d i la durée de la tâche t i si la tâche i doit précéder la tâche j. Puis, pour chaque paire de tâches i et j non-ordonnées partageant la même machine, on introduit une variable booléenne b ij représentant l ordre entre les deux tâches, c est-à-dire si b ij vaut 0 alors la tâche i précède la tâche j et sinon, si b ij vaut 1, on considère l ordre opposé. Les variables b ij, t i et t j sont liées par la contrainte sur laquelle on maintien la consistance aux bornes : b ij = 0 t i + d i t j et b ij = 1 t j + d j t i On obtient alors mn(n 1) 2 contraintes de disjonction et autant de variables booléenne b ij. 45

52 Figure 3.1 Illustration d un problème de Job Shop où 3 jobs doivent utiliser 3 machines différentes dans un ordre défini Stratégie de recherche Afin de pouvoir expliquer d avantage notre modélisation et la stratégie de recherche utilisée, il faut rappeler une observation (mentionnée dans [9]) : l existance d un ordre partiel des tâches tel que les heures de début de tâche et les durées soient compatibles et tel que l ordre des tâches sur chaque machine soit un ordre total, est équivalent à l existence de solution. Autrement dit, la propagation est complète si toutes les disjonctions sont résolues. Ainsi, si on choisit les variables booléennes b ij comme variables de décision et si on arrive à assigner toutes ces variables, l existence de solution est garantie. C est pourquoi, au lieu de rechercher les solutions en assignant une valeur unique à l heure de début de la tâche sur la branche de gauche et d interdire cette valeur sur la branche de droite de l arbre de recherche, on va plutôt séparer le problème en relation de précédence. La modélisation proposée utilise cette stratégie et réduit ainsi significativement l espace de recherche. 46

53 Figure 3.2 Une solution optimale au problème de Job Shop de la figure 3.1. On utilise ensuite l heuristique Weighted Degree décrite section On notera que le comportement de l heuristique est dépendant de la modélisation : deux ensembles de contraintes différents, bien qu équivalent, peuvent distribuer les poids de manière différente. Dans notre modélisation, chaque contraintes implique une seule variable de décision. Au début de la recherche de solution, l heuristique n est pas informée (toutes les variables booléennes ont le même poids de 1). On utilise alors la taille du domaine des deux tâches t i et t j associée à une variable booléenne b i,j pour informer la méthode de sélection jusqu à ce que les poids deviennent prédominants. On choisira alors la variable qui minimise la somme de la taille des domaines des deux tâches divisée par le poids de la contrainte de disjonction impliquant la variable de décision b ij (c est-à-dire le nombre de fois que la recherche échoue lors de la propagation de la contrainte). En notant w ij le poids de cette contrainte : D(t i ) + D(t j ) w ij L heuristique étant peut informée initialement, on effectue plusieurs redémarrage. Les poids des contraintes sont plus représentatifs des parties difficiles du problème à résoudre au fur à mesure des redémarrage ce qui permet d effectuer de meilleurs choix de variables initiales. La stratégie de redémarrage utilisé est similaire à celle évoqué dans la section On coupe la recherche au bout d un nombre fixé de backtracks qui croît suivant une loi géométrique : à chaque redémarrage, on dispose de plus d information pour choisir les variables initiales alors on peut supposer que les choix de variables auront 47

54 plus de chance d aboutir vers une solution. Passé un nombre fixé de redémarrages, on enlève la stratégie de coupure pour le dernier redémarrage et on laisse la rechercher parvenir à son terme Expérimentation Nous avons expérimenté cette modélisation sur une instance énoncé par J.F. Muth et G.L. Thompson dans le livre Industrial scheduling (1963). Cette instance difficile a été résolu la première fois par J. Carlier et E. Pinson, An algorithm for solving the job-shop problem (1989). Le tableau 3.3 présente les résultats expérimentaux moyens obtenus pour chaque heuristique testée 5 fois. Il présente pour chaque technique le nombre total de backtracks pour prouver l optimalité de la solution, le temps de calcul pour trouver la meilleure solution et le temps de calcul pour trouver la meilleure solution et prouver son optimalité. Le paramétrage de la stratégie de redémarrage a été choisi après plusieurs expérimentations : le nombre de redémarrage est fixé à 100 et pour la progression géométrique de coupure, l élément initiale est fixé à 1 et la raison a 1.1. On testera également notre modèle avec une amélioration proposée précédemment, l heuristique Last Conflict présentée section 2.3. backtracks meilleure sol. (s) temps total (s) Edge Finding ,52 105,93 Weighted Degree ,4 1459,16 Last Conflict et Weighted Degree ,81 209,36 Figure 3.3 Résultats expérimentaux La figure 3.4 donne un aperçu du séquencement obtenue. Sur cette figure, chaque ligne correspond à un job et chaque couleur représente une même machine Discussion Les résultats obtenues montrent l intérêt de l étude des heuristiques de choix de variable et montre la diversité des performances. Avant de comparer les différentes techniques, il ne faut pas perdre de vue que les heuristiques Weighted Degree et Last Conflict sont des heuristiques génériques. La méthode de Edge-Finding (implémentée ici par P-S. Huard et détaillée par exemple dans [1], l ouvrage couvre également une analyse complète des différentes techniques de séquencement) est une technique spécifique de propagation de contrainte de ressource unitaire. Cette technique utilise des raisonnements globaux sur l ensemble des tâches affectées à une machine (il existe également des versions de cette algorithme pour 48

55 Figure 3.4 Une solution optimale d une instance énoncé par J.F. Muth et G.L. Thompson du problème de Job Shop. des ressource non unitaire). Il n est donc pas surprenant que cette technique soit la plus efficace. Ce qui est intéressant de voir ici, c est qu une approche utilisant un modèle plus simple et une heuristique générique peut approcher les résultats obtenus par une technique spécifique. Il est parfois difficile, long ou coûteux d obtenir l expertise nécessaire aux développement de techniques spécifiques à un problème. Le choix de modèle simple et d heuristique générique, bien qu un peu moins efficace, offre un bon compromis. C est pourquoi dans la suite, on testera une approche similaire sur un problème de trafic aérien. 49

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce Heuristique et métaheuristique IFT1575 Modèles de recherche opérationnelle (RO) 8. Optimisation combinatoire et métaheuristiques Un algorithme heuristique permet d identifier au moins une solution réalisable

Plus en détail

Programmation par contraintes. Laurent Beaudou

Programmation par contraintes. Laurent Beaudou Programmation par contraintes Laurent Beaudou On se trouve où? Un problème, une solution : la solution est-elle une solution du problème? simulation, vérification 2 On se trouve où? Un problème, une solution

Plus en détail

Programmation Par Contraintes

Programmation Par Contraintes Programmation Par Contraintes Cours 2 - Arc-Consistance et autres amusettes David Savourey CNRS, École Polytechnique Séance 2 inspiré des cours de Philippe Baptiste, Ruslan Sadykov et de la thèse d Hadrien

Plus en détail

Introduction à la programmation en variables entières Cours 3

Introduction à la programmation en variables entières Cours 3 Introduction à la programmation en variables entières Cours 3 F. Clautiaux francois.clautiaux@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 272 Sommaire Notion d heuristique Les algorithmes gloutons

Plus en détail

Fondements de l informatique: Examen Durée: 3h

Fondements de l informatique: Examen Durée: 3h École polytechnique X2013 INF412 Fondements de l informatique Fondements de l informatique: Examen Durée: 3h Sujet proposé par Olivier Bournez Version 3 (corrigé) L énoncé comporte 4 parties (sections),

Plus en détail

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre Recherche opérationnelle Programmation linéaire et recherche opérationnelle Ioan Todinca Ioan.Todinca@univ-orleans.fr tél. 0 38 41 7 93 bureau : en bas à gauche Tentative de définition Ensemble de méthodes

Plus en détail

Un corrigé de l épreuve de mathématiques du baccalauréat blanc

Un corrigé de l épreuve de mathématiques du baccalauréat blanc Terminale ES Un corrigé de l épreuve de mathématiques du baccalauréat blanc EXERCICE ( points). Commun à tous les candidats On considère une fonction f : définie, continue et doublement dérivable sur l

Plus en détail

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé Baccalauréat S/L Métropole La Réunion 13 septembre 2013 Corrigé A. P. M.. P. XRCIC 1 Commun à tous les candidats Partie A 1. L arbre de probabilité correspondant aux données du problème est : 0,3 0,6 H

Plus en détail

Programme de Première

Programme de Première BAC TECHNO STAV 66 I. Algèbre Programme de Première Objectif 1 - Effectuer de manière autonome des calculs numériques ou algébriques, résoudre des équations ou inéquations en vue de résoudre des problèmes

Plus en détail

Quelques problèmes NP-complets

Quelques problèmes NP-complets Chapitre 12 Quelques problèmes NP-complets Maintenant que nous connaissons la NP-complétude d au moins un problème (SAT), nous allons montrer qu un très grand nombre de problèmes sont NP-complets. Le livre

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES MOTIVATIONS

LA PROGRAMMATION LOGIQUE PAR CONTRAINTES MOTIVATIONS LA PROGRAMMATION LOGIQUE PAR CONTRAINTES MOTIVATIONS De la PL vers la PLC 1) Introduction de la PLC : motivations, exemples 2) Principes de la programmation par contraintes (définition, résolution) 3)

Plus en détail

INTRODUCTION A L OPTIMISATION

INTRODUCTION A L OPTIMISATION INTRODUCTION A L OPTIMISATION Les domaines d application L optimisation est essentiellement un outil d aide à la décision au sein de l entreprise, mais aussi pour des individus. Le terme optimal est souvent

Plus en détail

4. Programmation en nombres entiers

4. Programmation en nombres entiers IFT575 Modèles de recherche opérationnelle (RO). Programmation en nombres entiers b. Séparation et évaluation progressive c. Plans de coupes Résolution de modèles entiers Programmation en nombres entiers

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 1 - Introduction Qu est-ce qu un

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 11 : Arbre couvrant Prétraitement Benjamin Wack 2015-2016 1 / 32 La dernière fois Rappels sur les graphes Problèmes classiques Algorithmes d optimisation

Plus en détail

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP)

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Loris Marchal, Guillaume Melquion, Frédéric Tronel 21 juin 2011 Remarques générales à propos de l épreuve Organisation

Plus en détail

Factorisation des matrices creuses

Factorisation des matrices creuses Chapitre 5 Factorisation des matrices creuses 5.1 Matrices creuses La plupart des codes de simulation numérique en mécanique des fluides ou des structures et en électromagnétisme utilisent des discrétisations

Plus en détail

Soutien illimité 7j/7 en maths: Coach, profs, exercices & annales, cours. Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban

Soutien illimité 7j/7 en maths: Coach, profs, exercices & annales, cours. Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban Sujet de Bac 2013 Maths S Obligatoire & Spécialité - Liban EXERCICE 1 : 4 Points Cet exercice est un questionnaire à choix multiples. Aucune justification n est demandée. Pour chacune des questions, une

Plus en détail

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème.

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème. Mathématiques - classe de 1ère des séries STI2D et STL. 1. Analyse On dote les élèves d outils mathématiques permettant de traiter des problèmes relevant de la modélisation de phénomènes continus ou discrets.

Plus en détail

Une extension pour RDF/RDFS utilisant des relations procédurales

Une extension pour RDF/RDFS utilisant des relations procédurales Une extension pour RDF/RDFS utilisant des relations procédurales Jean-François Baget * * INRIA Sophia-Antipolis & LIRMM(CNRS - UM2) LIRMM, 161 rue Ada, 34392 Montpellier Cedex 5 baget@lirmm.fr RÉSUMÉ.

Plus en détail

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire 2008-2009. Gérard Verfaillie ONERA/DCSD/CD, Toulouse Gerard.Verfaillie@onera.

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire 2008-2009. Gérard Verfaillie ONERA/DCSD/CD, Toulouse Gerard.Verfaillie@onera. Cours Optimisation Partie Optimisation Combinatoire 3ième année ISAE Année scolaire 2008-2009 Gérard Verfaillie ONERA/DCSD/CD, Toulouse Gerard.Verfaillie@onera.fr Septembre 2008 Résumé Ce document couvre

Plus en détail

Programmation avancée

Programmation avancée Programmation avancée Chapitre 1 : Complexité et les ABR (arbres binaires de recherche) 1 1 IFSIC Université de Rennes-1 M2Crypto, octobre 2011 Plan du cours 1 2 3 4 5 6 7 8 9 10 Algorithmes Définition

Plus en détail

Résolution d un problème de Job-Shop intégrant des contraintes de Ressources Humaines

Résolution d un problème de Job-Shop intégrant des contraintes de Ressources Humaines Résolution d un problème de Job-Shop intégrant des contraintes de Ressources Humaines ROADEF 09, 10-12 février 2009, Nancy (France) O. Guyon 1.2, P. Lemaire 2, É. Pinson 1 et D. Rivreau 1 1 LISA - Institut

Plus en détail

Mathématique - Cours Filière STAV 2014-2015 Centre de Formation aux Métier de la Montagne Marine Estorge

Mathématique - Cours Filière STAV 2014-2015 Centre de Formation aux Métier de la Montagne Marine Estorge Mathématique - Cours Filière STAV 2014-2015 Centre de Formation aux Métier de la Montagne Marine Estorge Le programme se compose ainsi : Rappels collège/seconde Partie STAV 1/3 Partie STAV 2/3 Partie STAV

Plus en détail

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Baccalauréat ES/L Amérique du Sud 21 novembre 2013 Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée

Plus en détail

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

L enseignement de l algorithmique au Lycée

L enseignement de l algorithmique au Lycée L enseignement de l algorithmique au Lycée Sisteron 12 novembre 2009 Fernand Didier didier@irem.univ-mrs.fr Approche naïve C est une méthode, une façon systématique de procéder, pour faire quelque chose

Plus en détail

Option Informatique Arbres binaires équilibrés

Option Informatique Arbres binaires équilibrés Option Informatique Arbres binaires équilibrés Sujet novembre 2 Partie II : Algorithmique et programmation en CaML Cette partie doit être traitée par les étudiants qui ont utilisé le langage CaML dans

Plus en détail

Démonstrations. Chapitre 4. 4.1 Introduction

Démonstrations. Chapitre 4. 4.1 Introduction Chapitre 4 Démonstrations L objectif de ce chapitre est de commencer à aborder la question fondamentale suivante : qu est-ce qu une démonstration? Pour cela, plus précisément, on va se focaliser dans ce

Plus en détail

Les graphes d intervalles

Les graphes d intervalles Les graphes d intervalles Complément au chapitre 3 «Vol aux archives cantonales» Considérons un ensemble de tâches ayant chacune une heure de début et une heure de fin bien précises. Supposons qu on demande

Plus en détail

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/)

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/) IREM Clermont-Ferrand Algorithmique au lycée Malika More malika.more@u-clermont1.fr 28 janvier 2011 Proposition d activité utilisant l application Tripatouille (http://www.malgouyres.fr/tripatouille/)

Plus en détail

Description du module GENERATEUR rev.2 1. Rôle du module

Description du module GENERATEUR rev.2 1. Rôle du module Description du module GENERATEUR rev.2 1. Rôle du module Ce module doit implémenter un générateur de «points aléatoires» selon une répartition de densité donnée. Tout d abord, le générateur doit être initialisé

Plus en détail

MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE

MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE Annexe MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE L enseignement des mathématiques au collège et au lycée a pour but de donner à chaque

Plus en détail

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

Plus en détail

Analyse abstraite de missions sous PILOT

Analyse abstraite de missions sous PILOT Analyse abstraite de missions sous PILOT Damien Massé EA 3883, Université de Bretagne Occidentale, Brest damien.masse@univ-brest.fr Résumé Nous étudions la possibilité de réaliser un analyseur par interprétation

Plus en détail

Multiplication par une constante entière

Multiplication par une constante entière Multiplication par une constante entière Vincent Lefèvre Juin 2001 Introduction But : générer du code optimal à l aide d opérations élémentaires (décalages vers la gauche, additions, soustractions). Utile

Plus en détail

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction

Plus en détail

LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION

LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION Dans les leçons précédentes, nous avons modélisé des problèmes en utilisant des graphes. Nous abordons dans cette leçon un autre type de modélisation.

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list =

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Algorithmique et Programmation Projets 2012/2013

Algorithmique et Programmation Projets 2012/2013 3 Dames 3. Objectif Il s agit d écrire un programme jouant aux Dames selon les règles. Le programme doit être le meilleur possible. Vous utiliserez pour cela l algorithme α β de recherche du meilleur coup

Plus en détail

! S. Russell & P. Norvig : Artificial Intelligence: A modern approach (2nd ed.).

! S. Russell & P. Norvig : Artificial Intelligence: A modern approach (2nd ed.). Introduction à l intelligence artificielle (recherche dans les graphes) Ouvrages conseillés! S. Russell & P. Norvig : rtificial Intelligence: modern approach (nd ed.). Prentice Hall, 003 (Trad. française

Plus en détail

Fonctions homographiques

Fonctions homographiques Fonctions homographiques On donne ci-dessous deux définitions des fonctions homographiques, et on montre que ces deux définitions sont équivalentes. On décrit la courbe représentative d une fonction homographique.

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages Automates Claude Moulin Université de Technologie de Compiègne Printemps 2013 Sommaire 1 Automate fini 2 Automate et langages réguliers 3 Automate à pile Automate fini déterministe

Plus en détail

Épreuve d informatique 2011

Épreuve d informatique 2011 A 2011 INFO. MP ÉCOLE NATIONALE DES PONTS ET CHAUSSÉES, ÉCOLES NATIONALES SUPÉRIEURES DE L AÉRONAUTIQUE ET DE L ESPACE, DE TECHNIQUES AVANCÉES, DES TÉLÉCOMMUNICATIONS, DES MINES DE PARIS, DES MINES DE

Plus en détail

CI-4 PRÉVOIR ET SUPPRIMER LES

CI-4 PRÉVOIR ET SUPPRIMER LES CI-4 LES CONTRAINTES DE MONTAGE D UN SYSTÈME. Objectifs ANALYSER - OPTIMISER A la fin de la séquence de révision, l élève doit être capable de B2 Proposer un modèle de connaissance et de comportement Déterminer

Plus en détail

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e

Plus en détail

Génération aléatoire de structures ordonnées

Génération aléatoire de structures ordonnées Génération aléatoire de structures ordonnées Olivier Roussel Équipe APR Laboratoire d Informatique de Paris 6 Université Pierre et Marie Curie ALÉA 2011 7 mars 2011 Olivier Roussel (LIP6) Génération de

Plus en détail

Planification et ordonnancement sous incertitudes Application à la gestion de projet

Planification et ordonnancement sous incertitudes Application à la gestion de projet Toulouse, 14 mai 2003 Planification et ordonnancement sous incertitudes Application à la gestion de projet Julien Bidot Plan Séminaire au LAAS Planification de tâches et ordonnancement Domaine d application

Plus en détail

RECHERCHE OPERATIONNELLE

RECHERCHE OPERATIONNELLE RECHERCHE OPERATIONNELLE PROBLEME DE L ARBRE RECOUVRANT MINIMAL I - INTRODUCTION (1) Définitions (2) Propriétés, Conditions d existence II ALGORITHMES (1) Algorithme de KRUSKAL (2) Algorithme de PRIM I

Plus en détail

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population.

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population. Première STMG1 2014-2015 progression. - 1 Table des matières Fil rouge. 3 Axes du programme. 3 Séquence : Proportion d une sous population dans une population. 3 Information chiffrée : connaître et exploiter

Plus en détail

OÙ EN EST-ON? ABANDONNER L IDÉE D AVOIR UN ALGORITHME

OÙ EN EST-ON? ABANDONNER L IDÉE D AVOIR UN ALGORITHME OÙ EN EST-ON? Que faire face à un problème dur? AAC S.Tison Université Lille1 Master1 Informatique Quelques schémas d algorithmes Un peu de complexité de problèmes Un peu d algorithmique avancée ou Que

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Ordonnancement Temps Réel. Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr

Ordonnancement Temps Réel. Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr Ordonnancement Temps Réel Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr 2 Plan de la présentation 1. Introduction aux systèmes temps réel 1.1 Différents modèles de tâches 1.2

Plus en détail

Intelligence Artificielle Planification

Intelligence Artificielle Planification Intelligence Artificielle Planification Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes

Plus en détail

Comparaison entre approche directe et compilée pour un problème de configuration

Comparaison entre approche directe et compilée pour un problème de configuration Comparaison entre approche directe et compilée pour un problème de configuration Nicolas Morbieu Mémoire de stage de M2R soutenu le 23 juin 2006 Directrice de recherche : Hélène Fargier Recherche effectuée

Plus en détail

ASSEMBLAGE ET ÉDITION DES LIENS

ASSEMBLAGE ET ÉDITION DES LIENS ASSEMBLAGE ET ÉDITION DES LIENS Mewtow 11 novembre 2015 Table des matières 1 Introduction 5 2 La chaine d assemblage 7 2.1 Résolution des symboles.............................. 7 2.2 Relocation.....................................

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

CALCUL SCIENTIFIQUE. 1 Erreur absolue et erreur relative 2. 2 Représentation des nombres sur ordinateur 3

CALCUL SCIENTIFIQUE. 1 Erreur absolue et erreur relative 2. 2 Représentation des nombres sur ordinateur 3 MTH1504 2011-2012 CALCUL SCIENTIFIQUE Table des matières 1 Erreur absolue et erreur relative 2 2 Représentation des nombres sur ordinateur 3 3 Arithmétique flottante 4 3.1 Absorption........................................

Plus en détail

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN CHAPITRE 6 Arbres binaires Lycée Kléber MPSI, Option Info 2014/2015 1 Définitions 2 Parcours en largeur Parcours en profondeur Parcours préfixe, infixe, postfixe Reconstitution 3 Recherche Complexité Insertion

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

2 Probabilités conditionnelles. Événements indépendants

2 Probabilités conditionnelles. Événements indépendants 2 Probabilités conditionnelles. Événements indépendants 2.1 Probabilité conditionnelle Soient A et B deux événements tels que P(B) > 0. Soit alors P(A B), la probabilité que A se réalise, B étant réalisé.

Plus en détail

Cours de spécialité mathématiques en Terminale ES

Cours de spécialité mathématiques en Terminale ES Cours de spécialité mathématiques en Terminale ES O. Lader 2014/2015 Lycée Jean Vilar Spé math terminale ES 2014/2015 1 / 51 Systèmes linéaires Deux exemples de systèmes linéaires à deux équations et deux

Plus en détail

Généralités sur les graphes

Généralités sur les graphes Généralités sur les graphes Christophe ROSSIGNOL Année scolaire 2008/2009 Table des matières 1 Notion de graphe 3 1.1 Un peu de vocabulaire.......................................... 3 1.2 Ordre d un graphe,

Plus en détail

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée.

Concours 2015 Épreuve d Informatique Filière : MP Durée de l épreuve : 3 heures. L utilisation d une calculatrice est autorisée. A 2015 INFO. MP École des Ponts ParisTech, SUPAERO (ISAE), ENSTA ParisTech, Télécom ParisTech, Mines ParisTech, Mines de Saint-étienne, Mines Nancy, Télécom Bretagne, ENSAE ParisTech (filière MP), École

Plus en détail

INTRODUCTION AUX PROBLEMES COMBINATOIRES "DIFFICILES" : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE

INTRODUCTION AUX PROBLEMES COMBINATOIRES DIFFICILES : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE Leçon 10 INTRODUCTION AUX PROBLEMES COMBINATOIRES "DIFFICILES" : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE Dans cette leçon, nous présentons deux problèmes très célèbres,

Plus en détail

Baccalauréat ES Nouvelle-Calédonie 2 mars 2015

Baccalauréat ES Nouvelle-Calédonie 2 mars 2015 Baccalauréat ES Nouvelle-Calédonie mars 015 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats Soit f la fonction définie sur l intervalle [1,5 ; 6] par : f (x)=(5x )e x On note C la courbe représentative

Plus en détail

Partiel - 12 mars 2014

Partiel - 12 mars 2014 Licence STS, semestre 4 013 14 Mathématiques pour l Informatique (Info 9) 1 mars 014 http://www.lri.fr/~paulin/mathinfo Partiel - 1 mars 014 L examen dure heures. L énoncé est composé de 5 pages. Toutes

Plus en détail

Intelligence Artificielle Jeux

Intelligence Artificielle Jeux Intelligence Artificielle Jeux Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes Programmation

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

StatEnAction 2009/10/30 11:26 page 111 #127 CHAPITRE 10. Machines à sous

StatEnAction 2009/10/30 11:26 page 111 #127 CHAPITRE 10. Machines à sous StatEnAction 2009/0/30 :26 page #27 CHAPITRE 0 Machines à sous Résumé. On étudie un problème lié aux jeux de hasard. Il concerne les machines à sous et est appelé problème de prédiction de bandits à deux

Plus en détail

Programmation logique par contraintes. Partie II

Programmation logique par contraintes. Partie II Programmation logique par contraintes Partie II Plan du cours Programmation logique et Prolog (PL) SWI-Prolog, Sicstus Programmation logique par contraintes (PLC) Sicstus Problèmes de satisfaction de contraintes

Plus en détail

UNIVERSITE SAAD DAHLAB DE BLIDA

UNIVERSITE SAAD DAHLAB DE BLIDA Chapitre 5 :. Introduction aux méthodes par séparation et évaluation Les méthodes arborescentes ( Branch and Bound Methods ) sont des méthodes exactes d'optimisation qui pratiquent une énumération intelligente

Plus en détail

Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources

Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources Jonathan Lejeune LIP6-UPMC/CNRS, Inria 19 septembre 2014 Directeur : Pierre Sens Encadrants : Luciana Arantes et

Plus en détail

Optimisation en nombres entiers

Optimisation en nombres entiers Optimisation en nombres entiers p. 1/83 Optimisation en nombres entiers Michel Bierlaire michel.bierlaire@epfl.ch EPFL - Laboratoire Transport et Mobilité - ENAC Optimisation en nombres entiers p. 2/83

Plus en détail

Représentation et approximation de fonctions booléennes : Application à la génération de requêtes

Représentation et approximation de fonctions booléennes : Application à la génération de requêtes INSTITUT DE RECHERCHE EN INFORMATIQUE DE NANTES Représentation et approximation de fonctions booléennes : Application à la génération de requêtes LEBLET Jimmy encadré par QUAFAFOU Mohamed Institut de Recherche

Plus en détail

Exercices théoriques

Exercices théoriques École normale supérieure 2008-2009 Département d informatique Algorithmique et Programmation TD n 9 : Programmation Linéaire Avec Solutions Exercices théoriques Rappel : Dual d un programme linéaire cf.

Plus en détail

Suite géométrique et résolution graphique d une inéquation

Suite géométrique et résolution graphique d une inéquation - - 1 - - - - 1 - -24/12/2010J - - 1 - - Suite géométrique et résolution graphique d une inéquation ENONCE : Une entreprise achète un véhicule neuf au prix de V 0 = 20 000. Elle considère que le véhicule

Plus en détail

Droit d auteur Max2G 2012 : Reproduction permise avec obligation d indiquer la source www.max2g.com

Droit d auteur Max2G 2012 : Reproduction permise avec obligation d indiquer la source www.max2g.com Max2G Démarche d analyse de risques avec l Assistant Méhari L analyse de risques est une approche de gestion permettant d identifier les risques négatifs pouvant affecter une organisation et de déterminer

Plus en détail

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) PLANIFICATION DE TÂCHES DANS MS PROJECT IFT702 Planification en intelligence artificielle Présenté à M. Froduald KABANZA

Plus en détail

Feuille 1 Modèle Relationnel et Requêtes Conjonctives

Feuille 1 Modèle Relationnel et Requêtes Conjonctives Université de Bordeaux M2 d Informatique, 2015-2016 Cours de Bases de Données Avancées Feuille 1 Modèle Relationnel et Requêtes Conjonctives Le but de cette feuille est d introduire le modèle de bases

Plus en détail

Discrétisation et génération de hiérarchies de concepts

Discrétisation et génération de hiérarchies de concepts Prétraitement des données 1 Pourquoi prétraiter les données? Nettoyage des données Intégration et transformation Réduction des données Discrétisation et génération de hiérarchies de g concepts Pourquoi

Plus en détail

Résolution générique à la volée de systèmes d équations booléennes et applications

Résolution générique à la volée de systèmes d équations booléennes et applications Résolution générique à la volée de systèmes d équations booléennes et applications Radu Mateescu INRIA Rhône-Alpes / VASY Plan Introduction Systèmes d équations booléennes d alternance 1 Algorithmes de

Plus en détail

Applications #2 Problème du voyageur de commerce (TSP)

Applications #2 Problème du voyageur de commerce (TSP) Applications #2 Problème du voyageur de commerce (TSP) MTH6311 S. Le Digabel, École Polytechnique de Montréal H2014 (v2) MTH6311: Heuristiques pour le TSP 1/34 Plan 1. Introduction 2. Formulations MIP

Plus en détail

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI Chapitre 6 Modélisation en P.L.I. 6.1 Lien entre PL et PLI (P) problème de PL. On restreint les variables à être entières : on a un problème de PLI (ILP en anglais). On restreint certaines variables à

Plus en détail

CONCOURS D ADMISSION. Option économique MATHEMATIQUES III. Année 2006

CONCOURS D ADMISSION. Option économique MATHEMATIQUES III. Année 2006 ESSEC M B A CONCOURS D ADMISSION Option économique MATHEMATIQUES III Année 2006 La présentation, la lisibilité, l orthographe, la qualité de la rédaction, la clarté et la précision des raisonnements entreront

Plus en détail

Baccalauréat ES Centres étrangers 12 juin 2014 - Corrigé

Baccalauréat ES Centres étrangers 12 juin 2014 - Corrigé Baccalauréat ES Centres étrangers 1 juin 14 - Corrigé A. P. M. E. P. Exercice 1 5 points Commun à tous les candidats 1. On prend un candidat au hasard et on note : l évènement «le candidat a un dossier

Plus en détail

Programmation par Contraintes et Programmation Linéaire pour le Problème d Ordonnancement de Projet à Contraintes de Ressources.

Programmation par Contraintes et Programmation Linéaire pour le Problème d Ordonnancement de Projet à Contraintes de Ressources. ACADÉMIE D AIX-MARSEILLE UNIVERSITÉ D AVIGNON ET DES PAYS DE VAUCLUSE THÈSE Méthodes Hybrides de Programmation par Contraintes et Programmation Linéaire pour le Problème d Ordonnancement de Projet à Contraintes

Plus en détail

Contributions à l'apprentissage automatique de réseau de contraintes et à la constitution automatique de comportements sensorimoteurs en robotique.

Contributions à l'apprentissage automatique de réseau de contraintes et à la constitution automatique de comportements sensorimoteurs en robotique. Contributions à l'apprentissage automatique de réseau de contraintes et à la constitution automatique de comportements sensorimoteurs en robotique. Mathias PAULIN LIRMM (CNRS, Univ. Montpellier II) 161

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

«Défaire» un nombre entier pour en faire une liste dont les éléments sont les chiffres de ce nombre. Deux applications.

«Défaire» un nombre entier pour en faire une liste dont les éléments sont les chiffres de ce nombre. Deux applications. «Défaire» un nombre entier pour en faire une liste dont les éléments sont les chiffres de ce nombre. Deux applications. En fait, ce sont les applications en question qui posent le problème du titre : Première

Plus en détail

TD 1 de Langage C module Outils pour l'informatique Industrielle - Corrigés des Tds : http://www-lagis.univ-lille1.fr/~macaire/td.

TD 1 de Langage C module Outils pour l'informatique Industrielle - Corrigés des Tds : http://www-lagis.univ-lille1.fr/~macaire/td. Exercice 1 TD 1 de Langage C module Outils pour l'informatique Industrielle - Corrigés des Tds : http://www-lagis.univ-lille1.fr/~macaire/td.htm Exercices de base de Programmation Arbre Programmatique

Plus en détail

Algorithmes probabilistes. Références: Fundamentals of Algortihms de Gilles Brassard et Paul Bratley Note de cours de Pierre McKenzie

Algorithmes probabilistes. Références: Fundamentals of Algortihms de Gilles Brassard et Paul Bratley Note de cours de Pierre McKenzie Algorithmes probabilistes Références: Fundamentals of Algortihms de Gilles Brassard et Paul Bratley Note de cours de Pierre McKenzie Mise en contexte: Indices: Vous êtes à la recherche d un trésor légendaire

Plus en détail

Les supports de cours suivants font référence au cours de Mr SOL et à son livre : "Accès à l'université" chez DUNOD

Les supports de cours suivants font référence au cours de Mr SOL et à son livre : Accès à l'université chez DUNOD Les supports de cours suivants font référence au cours de Mr SOL et à son livre : "Accès à l'université" chez DUNOD Les supports de cours ne sont pas complets, ils ne contiennent ni les démonstrations,

Plus en détail