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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# 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

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique Contenu Introduction Modélisation Problèmes de satisfaction des contraintes Exemples des modèles PPC simples

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

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

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

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

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

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

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

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

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

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université

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

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

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

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,

Plus en détail

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop Narendra Jussien et Christelle Guéret École des Mines de Nantes 4 rue Alfred Kastler BP 20722 F-44300 Nantes

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail

Les principaux domaines de l informatique

Les principaux domaines de l informatique Les principaux domaines de l informatique... abordés dans le cadre de ce cours: La Programmation Les Systèmes d Exploitation Les Systèmes d Information La Conception d Interfaces Le Calcul Scientifique

Plus en détail

Qu est-ce qu une probabilité?

Qu est-ce qu une probabilité? Chapitre 1 Qu est-ce qu une probabilité? 1 Modéliser une expérience dont on ne peut prédire le résultat 1.1 Ensemble fondamental d une expérience aléatoire Une expérience aléatoire est une expérience dont

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

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

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

Introduction à l Algorithmique

Introduction à l Algorithmique Introduction à l Algorithmique N. Jacon 1 Définition et exemples Un algorithme est une procédure de calcul qui prend en entier une valeur ou un ensemble de valeurs et qui donne en sortie une valeur ou

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

Un propagateur basé sur les positions pour le problème d Open-Shop.

Un propagateur basé sur les positions pour le problème d Open-Shop. Actes JFPC 2007 Un propagateur basé sur les positions pour le problème d Open-Shop. Jean-Noël Monette Yves Deville Pierre Dupont Département d Ingénierie Informatique Université catholique de Louvain {jmonette,yde,pdupont}@info.ucl.ac.be

Plus en détail

Résolution de problèmes combinatoires par des approches fondées sur la notion d explication

Résolution de problèmes combinatoires par des approches fondées sur la notion d explication UNIVERSITÉ DE NANTES FACULTÉ DES SCIENCES ET DES TECHNIQUES ÉCOLE DOCTORALE SCIENCE ET TECHNOLOGIES DE L INFORMATION ET DES MATÉRIAUX N attribué par la bibliothèque Année 2006 Résolution de problèmes combinatoires

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014 Plan de

Plus en détail

L apprentissage automatique

L apprentissage automatique L apprentissage automatique L apprentissage automatique L'apprentissage automatique fait référence au développement, à l analyse et à l implémentation de méthodes qui permettent à une machine d évoluer

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr)

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr) Partie 3 Gilles Lebrun (gilles.lebrun@unicaen.fr) Les arbres binaires Définition : C est une structure arborescente ou hiérarchique ou récursive Chaque élément (nœud) constituant la structure de l arbre

Plus en détail

Projet CLANU en 3GE: Compléments d algèbre linéaire numérique

Projet CLANU en 3GE: Compléments d algèbre linéaire numérique Projet CLANU en 3GE: Compléments d algèbre linéaire numérique Année 2008/2009 1 Décomposition QR On rappelle que la multiplication avec une matrice unitaire Q C n n (c est-à-dire Q 1 = Q = Q T ) ne change

Plus en détail

Correction du baccalauréat ES/L Métropole 20 juin 2014

Correction du baccalauréat ES/L Métropole 20 juin 2014 Correction du baccalauréat ES/L Métropole 0 juin 014 Exercice 1 1. c.. c. 3. c. 4. d. 5. a. P A (B)=1 P A (B)=1 0,3=0,7 D après la formule des probabilités totales : P(B)=P(A B)+P(A B)=0,6 0,3+(1 0,6)

Plus en détail

Les compromis temps-mémoire et leur utilisation pour casser les mots de passe Windows

Les compromis temps-mémoire et leur utilisation pour casser les mots de passe Windows Les compromis temps-mémoire et leur utilisation pour casser les mots de passe Windows Philippe Oechslin Laboratoire de Securité et de Cryptographie (LASEC) École Polytechnique Fédérale de Lausanne Faculté

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 6 Arbres binaires de recherche 6.1 Introduction On a étudié le problème de la recherche dans une collection d éléments ordonnés entre eux : on a montré que Pour une liste contiguë, la recherche

Plus en détail

Raisonnement probabiliste

Raisonnement probabiliste Plan Raisonnement probabiliste IFT-17587 Concepts avancés pour systèmes intelligents Luc Lamontagne Réseaux bayésiens Inférence dans les réseaux bayésiens Inférence exacte Inférence approximative 1 2 Contexte

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

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas 1. Arbres ordonnés 1.1. Arbres ordonnés (Arbres O) On considère des arbres dont les nœuds sont étiquetés sur un ensemble muni d'un

Plus en détail

Correction de l épreuve intermédiaire de mai 2009.

Correction de l épreuve intermédiaire de mai 2009. Licence de Gestion. 3ème Année Année universitaire 8-9 Optimisation Appliquée C. Léonard Correction de l épreuve intermédiaire de mai 9. Exercice 1 Avec les notations du cours démontrer que la solution

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

PARCOURS DU CAVALIER SUR L ÉCHIQUIER

PARCOURS DU CAVALIER SUR L ÉCHIQUIER I05 ÉPREUVE COMMUNE DE TIPE 2011 - Partie D TITRE : PARCOURS DU CAVALIER SUR L ÉCHIQUIER Temps de préparation :.. 2 h 15 minutes Temps de présentation devant les examinateurs :.10 minutes Dialogue avec

Plus en détail

Fiche de TD-TP no. 4

Fiche de TD-TP no. 4 Master 1 Informatique Programmation Fonctionnelle, p. 1 Fiche de TD-TP no. 4 Exercice 1. Voici trois façons différentes de définir le type Image : type Image = [[ Int ]] data Image = Image [[ Int ]] newtype

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci http://liris.cnrs.fr/hamamache.kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

Plus en détail

Antoine Cornuéjols AgroParisTech

Antoine Cornuéjols AgroParisTech Antoine Cornuéjols AgroParisTech antoine.cornuejols@agroparistech.fr http://www.lri.fr/~antoine Cours IA 1. Introduction 2. Cas des jeux entièrement explorables 3. L algorithme du MinMax 4. Amélioration

Plus en détail

UV Théorie de l Information. Codes à longueur variable

UV Théorie de l Information. Codes à longueur variable Cours n 5 : UV Théorie de l Information Compression de l information : Codage de source sans distorsion Ex 1 : Code de Shannon Fano Ex 2 : Code de Huffman Ex 3 : Codage par plage Ex 4 : Codage de Lempel

Plus en détail

L article qui suit tente de mettre en lumière les erreurs les plus courantes en ce qui concerne la fidélité client et sa gestion.

L article qui suit tente de mettre en lumière les erreurs les plus courantes en ce qui concerne la fidélité client et sa gestion. www.julienrio.com Introduction: L article qui suit tente de mettre en lumière les erreurs les plus courantes en ce qui concerne la fidélité client et sa gestion. Cet article s est inspiré de l ouvrage

Plus en détail

Utilisation des réseaux bayésiens et de l approche de Fenton pour l estimation de probabilité d occurrence d événements

Utilisation des réseaux bayésiens et de l approche de Fenton pour l estimation de probabilité d occurrence d événements Utilisation des réseaux bayésiens et de l approche de Fenton pour l estimation de probabilité d occurrence d événements Rapport LAAS-CNRS Numéro N o 13077 Quynh Anh DO HOANG, Jérémie GUIOCHET, Mohamed

Plus en détail

Cours d Algorithmique et Complexité

Cours d Algorithmique et Complexité Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.

Plus en détail

Optimisation de code

Optimisation de code Optimisation de code Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Optimisation de code 1 / 77 But L optimisation cherche à améliorer

Plus en détail

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

Plus en détail

Recherche d information textuelle

Recherche d information textuelle Recherche d information textuelle Pré-traitements & indexation B. Piwowarski CNRS / LIP6 Université Paris 6 benjamin@bpiwowar.net http://www.bpiwowar.net Master IP - 2014-15 Cours et travaux pratiques

Plus en détail

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Arbres binaires et codage de Huffman

Arbres binaires et codage de Huffman MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par

Plus en détail

2B La résolution de modèles linéaires par Excel 2010

2B La résolution de modèles linéaires par Excel 2010 2B La résolution de modèles linéaires par Excel 2010 Nous reprenons ici, de façon plus détaillée, la section où est indiqué comment utiliser le solveur d'excel 2010 pour résoudre un modèle linéaire (voir

Plus en détail

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln. MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.fr Plan Introduction Généralités sur les systèmes de détection d intrusion

Plus en détail

Fouille de données orientée motifs, méthodes et usages.

Fouille de données orientée motifs, méthodes et usages. Fouille de données orientée motifs, méthodes et usages. François RIOULT GREYC - Équipe Données-Documents-Langues CNRS UMR 6072 Université de Caen Basse-Normandie France Résumé La fouille de données orientée

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal La demande Du consommateur Contrainte budgétaire Préférences Choix optimal Plan du cours Préambule : Rationalité du consommateur I II III IV V La contrainte budgétaire Les préférences Le choix optimal

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

Calculs approchés d un point fixe

Calculs approchés d un point fixe M11 ÉPREUVE COMMUNE DE TIPE 2013 - Partie D TITRE : Calculs approchés d un point fixe Temps de préparation :.. 2 h 15 minutes Temps de présentation devant les examinateurs :.10 minutes Dialogue avec les

Plus en détail

Travaux dirigés n o 6

Travaux dirigés n o 6 Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TP 2 Réseaux. Adresses IP, routage et sous-réseaux TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP

Plus en détail

THÉORIE DE L'INFORMATION : RAPPELS

THÉORIE DE L'INFORMATION : RAPPELS THÉORIE DE L'INFORMATION : RAPPELS 1920 : premières tentatives de définition de mesure de l'information à partir de 1948 : travaux de Shannon Théorie de l'information discipline fondamentale qui s'applique

Plus en détail

CHAPITRE VIII : Les circuits avec résistances ohmiques

CHAPITRE VIII : Les circuits avec résistances ohmiques CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On

Plus en détail

Ecole Nationale des Ponts et Chaussées Option Adjusted Spread

Ecole Nationale des Ponts et Chaussées Option Adjusted Spread Ecole Nationale des Ponts et Chaussées Option Adjusted Spread Dimitri Kassatkine, Sofiane Maayoufi IMI Finance Mars 2006 1 INTRODUCTION 1.1 Présentation des produits obligataires Une obligation est un

Plus en détail

TSTI 2D CH X : Exemples de lois à densité 1

TSTI 2D CH X : Exemples de lois à densité 1 TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun

Plus en détail

Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21

Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21 Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21 Anne Brygoo, Maryse Pelletier, Christian Queinnec, Michèle Soria Université Paris 6 Pierre et Marie Curie septembre 2005

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1 Génie logiciel Concepts fondamentaux Bruno MERMET, Université du Havre 1 Nécessité du Génie Logiciel Bruno MERMET, Université du Havre 2 Développement d un logiciel Caractéristiques souhaitées : Adéquation

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

À propos des matrices échelonnées

À propos des matrices échelonnées À propos des matrices échelonnées Antoine Ducros appendice au cours de Géométrie affine et euclidienne dispensé à l Université Paris 6 Année universitaire 2011-2012 Introduction Soit k un corps, soit E

Plus en détail

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures) CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE Cinquième épreuve d admissibilité STATISTIQUE (durée : cinq heures) Une composition portant sur la statistique. SUJET Cette épreuve est composée d un

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

Concours de recrutement interne PLP 2009

Concours de recrutement interne PLP 2009 Concours de recrutement interne PLP 2009 Le sujet est constitué de quatre exercices indépendants. Le premier exercice, de nature pédagogique au niveau du baccalauréat professionnel, porte sur le flocon

Plus en détail

Une calculatrice qui manipule les régions cubiques

Une calculatrice qui manipule les régions cubiques Une calculatrice qui manipule les régions cubiques Emmanuel Haucourt 1 Introduction Alors qu une calculatrice usuelle effectue des opérations numériques (addition, multiplication, soustraction, division,

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Organiser les informations ( approche technique )

Organiser les informations ( approche technique ) Organiser les informations ( approche technique ) Introduction : Le stockage des informations est une fonctionnalité essentielle de l outil informatique, qui permet de garantir la pérennité des informations,

Plus en détail

Mercredi 24 Juin 2015

Mercredi 24 Juin 2015 BACCALAURÉAT GÉNÉRAL Session 2015 MATHÉMATIQUES Série ES ENSEIGNEMENT OBLIGATOIRE Durée de l épreuve : 3 heures coefficient : 5 MATHÉMATIQUES Série L ENSEIGNEMENT DE SPÉCIALITÉ Durée de l épreuve : 3 heures

Plus en détail