UNIVERSITE PARIS VII - DENIS DIDEROT U.F.R. D'INFORMATIQUE THESE
|
|
- Jean-Philippe St-Denis
- il y a 8 ans
- Total affichages :
Transcription
1 UNIVERSITE PARIS VII - DENIS DIDEROT U.F.R. D'INFORMATIQUE Année 1998 N attribué par la bibliothèque _ THESE pour obtenir le grade de DOCTEUR DE L'UNIVERSITE PARIS VII Discipline : Informatique présentée et soutenue publiquement par François Laburthe le Titre : Contraintes et Algorithmes en Optimisation Combinatoire Directeur de thèse : Yves Caseau M. Nivat : président JURY
2 J.-L. Lambert : rapporteur C. Roucairol : rapporteur Y. Caseau : directeur de thèse F. Fages : examinateur E. Jacquet Lagrèze : examinateur P. Van Hentenryck : examinateur 2
3 3
4 Table des matières 0. Introduction Sujet...Erreur! Signet non défini. 0.2 Motivations...Erreur! Signet non défini. 0.3 Méthode...Erreur! Signet non défini. 0.4 Historique...Erreur! Signet non défini. 0.5 Plan de l étude...erreur! Signet non défini. 1. Chapitre 1. Formalismes pour l optimisation combinatoire...erreur! Signet non défini. 1.1 Programmation linéaire...erreur! Signet non défini. 1.2 Programmation par contraintes...erreur! Signet non défini. 1.3 Recherche arborescente globale...erreur! Signet non défini. 1.4 Algorithmes approchés, recherche locale...erreur! Signet non défini. 1.5 Un exemple : la couverture d ensembles...erreur! Signet non défini. 2. Chapitre 2. Couplages et allocation...erreur! Signet non défini. 2.1 Les problèmes de couplages bipartis...erreur! Signet non défini. 2.2 Couplages bipartis et flots...erreur! Signet non défini. 2.3 Modélisation linéaire, méthode Hongroise...Erreur! Signet non défini. 2.4 Programmation par contraintes...erreur! Signet non défini. 2.5 Variations...Erreur! Signet non défini. 2.6 Bilan...Erreur! Signet non défini. 3. Chapitre 3. Ordonnancement disjonctif...erreur! Signet non défini. 3.1 Ordonnancement...Erreur! Signet non défini. 3.2 Contraintes...Erreur! Signet non défini. 3.3 Techniques de Recherche Opérationnelle...Erreur! Signet non défini. 3.4 Solution heuristique et optimisation locale...erreur! Signet non défini. 3.5 Bilan...Erreur! Signet non défini. 4. Chapitre 4. Le voyageur de commerce (TSP)...Erreur! Signet non défini. 4.1 Circuits Hamiltoniens...Erreur! Signet non défini. 4.2 Algorithmes de résolution exacte...erreur! Signet non défini. 4
5 4.3 Contraintes...Erreur! Signet non défini. 4.4 Solutions heuristiques...erreur! Signet non défini. 4.5 Optimisation locale...erreur! Signet non défini. 4.6 Bilan...Erreur! Signet non défini. 5. Chapitre 5. Problèmes de grilles d emplois du temps...erreur! Signet non défini. 5.1 Introduction, typologie...erreur! Signet non défini. 5.2 Un problème académique : l'allocation matricielle...erreur! Signet non défini. 5.3 Contraintes redondantes...erreur! Signet non défini. 5.4 Application à des problèmes réels d'emplois du temps....erreur! Signet non défini. 5.5 Conclusion...Erreur! Signet non défini. 6. Chapitre 6. Ordonnancement cumulatif...erreur! Signet non défini. 6.1 Ordonnancement et ressources...erreur! Signet non défini. 6.2 Techniques de propagation de contraintes...erreur! Signet non défini. 6.3 Stratégies d énumération...erreur! Signet non défini. 6.4 Expériences et résultats...erreur! Signet non défini. 6.5 Autres techniques...erreur! Signet non défini. 6.6 Bilan...Erreur! Signet non défini. 7. Chapitre 7. Problèmes de tournées...erreur! Signet non défini. 7.1 Tournées de véhicules...erreur! Signet non défini. 7.2 Algorithmes de résolution...erreur! Signet non défini. 7.3 Insertion et optimisation locale incrémentale...erreur! Signet non défini. 7.4 Cas du VRPTW...Erreur! Signet non défini. 7.5 Application à des applications réelles de tournées...erreur! Signet non défini. 7.6 Bilan...Erreur! Signet non défini. 8. Chapitre 8. Bilan...Erreur! Signet non défini. 8.1 Cartographie de la résolution de problèmes combinatoires...erreur! Signet non défini. 8.2 P.P.C. et Optimisation Combinatoire...Erreur! Signet non défini. 8.3 Algorithmes hybrides...erreur! Signet non défini. 8.4 Perspectives...Erreur! Signet non défini. 9. Chapitre 9. Un langage pour les algorithmes hybrides : programme de recherches....erreur! Signet non défini. 5
6 9.1 Un langage de modélisation et de simulation...erreur! Signet non défini. 9.2 Structures de données algorithmiques additionnelles...erreur! Signet non défini. 9.3 Description déclarative de comportements...erreur! Signet non défini. 9.4 contrôle...erreur! Signet non défini. 9.5 Environnement...Erreur! Signet non défini. 9.6 Conclusion...Erreur! Signet non défini. 10. Chapitre 10. Définition du langage SaLSA...Erreur! Signet non défini Pourquoi et comment décrire le flot de contrôle...erreur! Signet non défini Décisions locales...erreur! Signet non défini Composition des choix...erreur! Signet non défini Grammaire du langage SaLSA...Erreur! Signet non défini. 11. Chapitre 11. Utilisation de SaLSA pour résoudre des problèmes combinatoires...erreur! Signet non défini Stratégies de recherche globale pour un résolveur de contraintes sur les domaines finis....erreur! Signet non défini GSAT...Erreur! Signet non défini Algorithmes d insertion pour des problèmes de tournées...erreur! Signet non défini Heuristiques en ordonnancement....erreur! Signet non défini Méthodes complètes en ordonnancement et shaving...erreur! Signet non défini Optimisation locale et solutions partielles : «Shuffling»...Erreur! Signet non défini Jeux d échecs...erreur! Signet non défini Recherche de bonnes cliques maximales en ordonnancement cumulatif...erreur! Signet non défini La procédure d optimisation locale de Lin & Kernighan pour le TSPErreur! Signet non défini. 12. Chapitre 12. Sémantique opérationnelle et implémentation...erreur! Signet non défini Préliminaires et notations...erreur! Signet non défini Transitions du calcul de processus...erreur! Signet non défini Implémentation du générateur de code...erreur! Signet non défini. 13. Conclusion...Erreur! Signet non défini. 14. Bibliographie...Erreur! Signet non défini. 6
7 7
8 Remerciements Je remercie Maurice Nivat de me faire l'honneur de présider ce jury, témoignant ici de son intérêt pour mes travaux. Je souhaite remercier très particulièrement Yves Caseau pour le plaisir que j'ai eu à travailler avec lui, pour sa vision scientifique et ses conseils avisés, pour sa direction efficace et confiante et enfin, pour l'attention et la disponibilité dont il a fait preuve. Je remercie François Fages et Guy Cousineau de m'avoir chaleureusement accueilli au LIENS. Mon intégration à l'équipe Langages Logiques, Contraintes et Optimisation m'a permis d'avoir un cadre bien agréable pour mener cette thèse, et la collaboration amicale avec l'équipe a été fructueuse. Je remercie Jean Jourdan et Béatrice Bacconnet de m'avoir accueilli au Laboratoire Central de Recherches de Thomson-CSF. J'ai beaucoup apprécié notre collaboration et la confiance qu'ils m'ont accordée en décidant d'utiliser Claire, Eclair et SaLSA. Je remercie particulièrement Éric Jacopin, Jean-Luc Lambert et Catherine Roucairol qui ont relu ce mémoire avec une minutie bienveillante, pour leurs suggestions pertinentes. Je remercie Krysztof Apt et Monique Laurent pour leur invitation à venir présenter mes travaux aux CWI. L'intérêt qu'ils leur ont porté est une reconnaissance chaleureuse. Je remercie Eric Jacquet-Lagrèze et Pascal Van Hentenryck d'avoir accepté de prendre de leur temps pour participer à ce jury. Je remercie enfin tous ceux avec lesquels j'ai eu le plaisir de reflechir au tableau ou devant une feuille blanche. Ces moments d'échange comptent parmi les meilleurs souvenirs de ces quatre années. Pour ces passionantes discussions, pour le plaisir de chercher et argumenter ensemble, je souhaiterais remercier Philippe Baptiste, Hervé Chibois, Simon De Givry, Akim D le, Sébastien Desreux, Francois Fages, Éric Jacopin, Tibor Kökény, Claude Le Pape, Domitile Lourdeaux, Laurent Perron, Pierre Savéant, Vincent Schächter et Mark Wallace. Enfin, merci à celui, qui m'a montré, il y a maintenant longtemps, en faisant dessiner une maison à une petite tortue, que l'informatique, c'est cool. 8
9 9
10 0. Introduction 0.1 Sujet Le but de cette thèse est d étudier les apports mutuels de la programmation par contraintes et de la recherche opérationnelle à résolution de problèmes d optimisation combinatoire réels. Cet objectif se décline selon deux axes : d une part trouver les techniques algorithmiques pertinentes pour la résolution de tels problèmes et en particulier celles relatives à la programmation par contraintes, et d autre part, les mettre en oeuvre dans un environnement informatique. La première direction de recherche veut répondre à la question «Que faut-il faire pour résoudre de tels problèmes combinatoires?», alors que la seconde vise la question «Comment faut-il le faire?». 0.2 Motivations Quand ce travail de recherche a commencé, les réponses à ces questions étaient mal connues, pressenties ou dispersées. Un certain nombre de techniques algorithmiques (i.e. la programmation linéaire, la programmation par contraintes, les algorithmes de graphes, la recherche tabou, etc.) étaient étudiées dans des communautés séparées. Chacune avait obtenu de bons résultats ou des résultats prometteurs sur certains problèmes. En particulier, la programmation par contraintes effectuait ses premières percées en milieu industriel, provoquant des réactions contrastées : réactions enthousiastes devant la flexibilité de son formalisme qui permet de décrire des problèmes fort complexes, prenant en compte de nombreux aspects spécifiques à une application; réactions sceptiques devant la piètre qualité des résultats obtenus par rapport à d autres techniques algorithmiques, lors de mises en œuvre naïves. Face à l'attrait de cette nouvelle technique qu'était la programmation par contraintes, la littérature était de peu d'aide à celui qui voulait résoudre un problème d'optimisation particulier. En effet, peu de comparaisons systématiques entre ces techniques algorithmiques étaient disponibles, et si un certain nombre de chercheurs savaient de manière expérimentale, pour un problème donné, quelles étaient les techniques pertinentes à utiliser, cette connaissance dispersée n'était pas accessible dans les publications. Enfin, une fois identifiés les algorithmes pertinents à la résolution du problème, l'expérimentation informatique pouvait s'avérer problématique. En effet, chacune des techniques étant décrite dans son formalisme propre, l'utilisateur, à moins d'investir beaucoup de temps en programmation, en était généralement réduit à l'utilisation d'un outil spécifique (système CLP, résolveur linéaire, bibliothèque d'algorithmes de graphe). Ces outils relativement rigides limitaient le brassage des algorithmes et l'expérimentation de combinaisons des méthodes de résolution. Cette situation nous a incité à proposer à la communauté une évaluation de la programmation par contraintes face aux autres grandes techniques algorithmiques, sur un ensemble de problèmes d'optimisation classiques, pour mettre à la disposition de celui qui envisage la résolution d'un problème similaire, une synthèse des techniques appropriées, directement utilisable. De plus, nous avons voulu apporter notre contribution aux problèmes de génie logiciel des algorithmes hybrides d'optimisation en proposant un langage pour la programmation d'algorithmes de recherche locale et globale. 0.3 Méthode La méthode suivie a consisté à répondre d'abord à la première question avant d'aborder la seconde. En effet, de manière pragmatique, nous voulions d'abord délimiter les algorithmes avant de proposer un langage pour les exprimer. Pour répondre à la première question, nous avons décidé de faire un tour d horizon des problèmes d optimisation combinatoire. On s est limité à un ensemble de problèmes qui semblaient revenir de 9
11 manière récurrente dans le contexte d applications réelles, comme l'ordonnancement, l'affectation de ressources, l'optimisation de parcours et les problèmes de grilles d'emplois du temps. Pour chacun de ces problèmes, nous avons voulu comparer les techniques algorithmiques classiques (du moins, celles programmables en un temps raisonnable), avec des techniques de programmation par contraintes, d un double point de vue : = celui de l efficacité. On veut comparer des algorithmes suivant leur rapidité et suivant la taille maximale des problèmes résolus. = celui de la robustesse. On veut évaluer, pour chaque algorithme, la capacité à résoudre des problèmes voisins, c est à dire des problèmes dont on a légèrement changé les spécifications de départ, en ajoutant certaines contraintes additionnelles spécifiques, ou en introduisant des dépendances nouvelles entre certaines parties du problème. Le premier objectif était d obtenir une cartographie pour ces problèmes d optimisation combinatoire qui mette en relation des zones d utilisation (taille du problème et présence ou non de contraintes additionnelles) avec des techniques algorithmiques particulières. En particulier, on cherche à évaluer les limites d une résolution en programmation par contraintes (et le cas échéant, à les repousser). Notons que ce premier objectif ne constitue pas exactement une évaluation de la programmation par contraintes pour la résolution de problèmes combinatoires réels. Notre méthode a introduit un biais en délaissant les problèmes vraiment difficiles à modéliser (souvent trop spécifiques pour être présenter un intérêt général) et en se concentrant sur de vrais problèmes combinatoires (sur lesquels on peut mener des comparaisons de manière rigoureuse). En pratique, il semble qu'il existe de nombreux problèmes où la difficulté réside bien plus dans la modélisation que dans la résolution, et qu'une approche naïve par contraintes parvient à résoudre de manière satisfaisante (quand ces problèmes sont soit petits, soit denses en solutions). Mais une telle affirmation étant difficile à étayer de manière scientifique, nous avons laissé de telles situations en dehors du champ d'expériences de ce travail. Le second objectif - fournir un environnement pour le développement des algorithmes pertinents - a été abordé au tout début de ce travail, puis plus tard dans la thèse. La première étape a consisté à proposer un langage de programmation simple et élégant, CLAIRE [CL 96a], dans lequel nous avons programmé tous les algorithmes décrits dans ce travail. Cette expérience de programmation ainsi que l'interaction avec d'autres utilisateurs de CLAIRE nous a permis d'aborder à nouveau la question du langage plus tard dans la thèse. Parmi les nombreuses possibilités ouvertes, nous aurions pu, par exemple, proposer une extension du cadre CLP, ou un système d'optimisation intégrant un certain nombre d'objets prédéfinis (des tâches, des ressources, des grilles, des réseaux, etc. ), ou encore un système avec des contraintes sur les relations dans la lignée d'alice [Lau 78]. En 1996, nous ne nous sommes pas senti assez mûrs pour franchir ce pas, et nous n'avons pas voulu proposer un système fermé proposant un ensemble non-extensible par l'utilisateur de mécanismes d'optimisation. Nous avons préféré nous concentrer sur une difficulté : l'expression du contrôle pour certains algorithmes hybrides. Nous avons proposé un langage, SaLSA, qui permet de décrire de manière élégante et très synthétique des algorithmes hybrides complexes et nous avons implémenté un compilateur de SaLSA vers CLAIRE. Cette approche de génération de code (ou compilation) a l'intérêt de pouvoir s'appliquer à n'importe quel langage cible de programmation et de ne pas se limiter à un système particulier. Pour proposer le langage SaLSA, notre démarche a été pragmatique et a commencé par réunir un cahier des charges rassemblant tous les algorithmes complexes de recherche arborescente que nous avions rencontrés. Le langage à proposer devait ainsi permettre de les exprimer tous de manière simple. Après avoir proposé et implémenté la première version de SaLSA, nous nous sommes rendu compte que les opérations de base de SaLSA étaient les mêmes que celles d'un langage pour l'optimisation locale, 10
12 LOCALIZER [MVH 97]. Nous avons alors choisi d'étendre SaLSA et d'en proposer une version plus générale permettant d'exprimer aussi bien les algorithmes de recherche locale que globale. 0.4 Historique Les deux questions de la thèse s étaient posées de manière naturelle à l équipe d Yves Caseau. En effet, elle avait développé le système LAURE [Ca 91a] à Bellcore, qui proposait, au-dessus d un modèle objet issu de la représentation de connaissances, toute une série d outils pour faire de la résolution de problèmes (règles de production, règles déductives, contraintes, etc.). Ce système avait été utilisé pour réaliser des prototypes d applications industrielles en optimisation et avait, entres autres, remporté de beaux succès en enrichissant le cadre de la programmation par contraintes, soit par l utilisation d algorithmes de propagation spécialisés (en emplois du temps [CGL 92] ou en ordonnancement [CL 94]), soit par l utilisation de la propagation par contraintes dans le cadre d algorithmes plus généraux (application de LAURE à la gestion des tâches de maintenance sur un réseau téléphonique). Au cours de son utilisation, nous nous sommes rendu compte que LAURE était trop complexe et trop difficile à maîtriser pour un nouvel utilisateur. Dans les faits, une partie des technologies avancées offertes par le système n était que rarement utilisée. Le succès des applications fit apparaître un autre problème, lié à l explication d un programme à un utilisateur novice : à mesure que l'on programmait des algorithmes de plus en plus complexes, le code devenait de plus en plus difficile à comprendre, et Laure ne pouvait plus être utilisé à la fois comme langage de spécification et comme langage de programmation, comme cela avait été le cas lors d utilisations antérieures plus simples. Nous avons donc réfléchi en 1993 à la conception d un langage de spécifications formelles orientées-objets, CECILE [CL 93], qui permettrait de documenter le code LAURE. Faute de moyens, ce langage n a jamais été supporté, mais nous en avons gardé un goût fort pour les descriptions élégantes en pseudo-code de programmes complexes. A commencé alors le projet d un nouveau langage, CLAIRE [CL 96a], qui mettrait à la disposition de l utilisateur, les technologies de LAURE qui s étaient avérées utiles et dont le code serait aussi élégant et naturel que celui de CECILE. Avec un petit groupe d intéressés, nous avons passé l année à définir le langage dont Yves Caseau a réalisé la première implémentation à l été 94. A partir de ce moment, CLAIRE a été notre environnement informatique d'expérimentation. Le travail exploratoire de cartographie des méthodes de résolution par contraintes pour les problèmes d'optimisation combinatoire a été mené conjointement avec Yves Caseau, dont le cours Contraintes et Algorithmes au Magistère de l'école Normale Supérieure (MMFAI) aux printemps 95, 96 et 97 a joué le rôle d'aiguillon (il fallait pouvoir présenter dans un cours de trois heures une synthèse des techniques algorithmiques efficaces sur un problème combinatoire donné). Ce cours a aussi permis de mettre à l'épreuve le langage CLAIRE : nous avons systématiquement utilisé CLAIRE comme langage de pseudocode pour la description d'algorithmes d'optimisation qui ont pu être compris par des élèves sans formation préalable au langage. Le deuxième volet de la thèse a été abordé à partir de Après presque deux ans d'utilisation de CLAIRE et d'expérimentation en optimisation combinatoire, et d'interaction avec d'autres utilisateurs de Claire, nous pouvions commencer à considérer le pas suivant vers le système idéal de résolution de ces problèmes. Cette thématique a été explorée en liaison avec le projet ESPRIT CHIC-2 (consacré à la programmation d'algorithmes hybrides en optimisation combinatoire) auquel nous étions associés. De plus, j'ai fait ma troisième année de thèse au Laboratoire Central de Recherches de Thomson/CSF comme scientifique du contingent, où l'on m'a demandé de réfléchir à la résolution de problèmes combinatoires en temps réel avec des contraintes. Ce cadre d'utilisation rejoignait exactement nos préoccupations, puisqu'il passait par le développement d'algorithmes hybrides. Le travail lié à SaLSA a donc permis de collaborer avec de nombreuses personnes, dans le cadre du projet CHIC-2, au Laboratoire 11
13 Central de Recherches de Thomson/CSF et dans le cercle des utilisateurs de Claire (à l'ens, à Bouygues et ailleurs). Aujourd'hui, CLAIRE est utilisé dans des applications industrielles d'optimisation combinatoire à Bouygues et à Thomson-CSF et comme outil d'expérimentation dans de nombreux laboratoires universitaires (ENSAM, LIRMM, CMU,...) ainsi qu'à EDF, Lucent technologies, Axlog ingénierie, etc. 0.5 Plan de l étude Cette thèse se décompose en deux parties répondant aux deux objectifs visés : = la partie A est consacrée à l évaluation des techniques de programmation par contraintes par rapport aux techniques d algorithmique classique sur un certain nombre de problèmes d'optimisation discrète. = la partie B est consacrée à l étude de la description de tels algorithmes du point de vue du langage ou du système de programmation. On décrit maintenant, pour chaque chapitre, les principaux points abordés. Après cette introduction, le premier chapitre brosse un panorama des techniques algorithmiques disponibles pour l'optimisation combinatoire. On présente ainsi, rapidement, les principes de la programmation linéaire et de la programmation par contraintes. On montre comment ces deux techniques peuvent être utilisées dans le cadre d'algorithmes de recherche globale pour résoudre de manière exacte des problèmes d'optimisation. On présente ensuite des familles d'algorithmes approchés d optimisation, notamment les algorithmes gloutons et les méthodes de recherche locale. Enfin, on conclut en présentant la résolution d'un exemple simple, la couverture d'ensembles, en programmation linéaire et en programmation par contraintes. Partie A La partie A qui comporte sept chapitres (deux à huit), s'intéresse à un ensemble de problèmes d'optimisation. Chaque chapitre est consacré à un problème donné. Pour chacun d'entre eux, on s'efforce de présenter le problème, de motiver son étude et d'envisager les principaux algorithmes pour le résoudre. Dans ce cadre, on présente l'approche habituelle en programmation par contraintes, que l'on s'efforce d'améliorer, pour permettre une évaluation de la programmation par contraintes par rapport aux autres techniques algorithmiques sur le problème en question. Le chapitre deux présente le problème de l allocation de ressources. On commence par en décrire une formulation comme un problème de couplage maximal dans un graphe biparti et on présente dans ce cadre deux algorithmes de Recherche Opérationnelle, un algorithme de flot et un algorithme linéaire primal-dual, la méthode Hongroise. Après avoir décrit une formulation naïve par contraintes, on propose des améliorations du schéma de propagation qui permettent de résoudre des problèmes de taille moyenne (jusqu'à 2 40 noeuds), alors que la méthode Hongroise permet de résoudre des grands problèmes. On considère ensuite deux extensions du problème d'allocation pour lesquelles, contrairement au cas du problème pur, la programmation par contraintes devient compétitive avec la méthode Hongroise. On propose en conclusion l'ajout d'une nouvelle contrainte globale aux systèmes de P.P.C., dédiée aux problèmes d'affectation bijective et implémentée grâce à la méthode Hongroise. Le chapitre trois présente le problème de l ordonnancement disjonctif. Après avoir décrit une formulation linéaire, on présente un cadre complet pour sa résolution en programmation par contraintes. Celui-ci comporte des règles de propagation, basées sur l'analyse d' intervalles de tâches et un schéma de branchement, et permet une résolution exacte très compétitive des problèmes, grâce à laquelle nous avons résolu des problèmes ouverts. On aborde ensuite la famille des algorithmes approchés et on montre 12
14 comment le cadre précédent de propagation de contraintes peut être réutilisé pour proposer une heuristique gloutonne ainsi qu'une procédure d'optimisation locale très efficaces. On conclut que la propagation de contraintes est une technique essentielle à la résolution de problèmes d'ordonnancement disjonctif, tant pour leur résolution exacte que leur résolution approchée. Le chapitre quatre présente le problème du voyageur de commerce. Après avoir décrit le modèle linéaire et présenté les méthodes de résolution associées, pour le cas d'un distance symmétrique ou d'une distance asymétrique, on propose un algorithme de propagation de contraintes basé sur une formulation issue des couplages bipartis. On décrit la propagation de la contrainte d'élimination de sous-cycles, la propagation croisée avec un modèle temporel (en présence d'éventuelles fenêtres de temps). Pour les petits problèmes (moins de 15 nœuds), la PPC est ainsi un des algorithmes génériques (s'appliquant en particulier aussi bien aux distances symétriques qu'aux distances asymétriques) les plus rapides actuellement disponibles. Enfin, on complète le schéma de propagation par plusieurs techniques de bornes inférieures, basées sur des relaxations (couplage Hongrois, arbre couvrant de poids minimum et relaxation Lagrangienne à la Held & Karp). L'ensemble de ces techniques permet de résoudre, de manière exacte, des problèmes jusqu'à 70 nœuds. Pour les problèmes plus grands, on passe en revue les heuristiques gloutonnes (par insertion) ainsi que les méthodes d'optimisation locale. Le chapitre cinq s'intéresse à la résolution de problèmes d'emplois du temps. On commence par délimiter deux formulations de problèmes différents, l'allocation matricielle et la gestion de personnel. On décrit le lien entre le problème de l'allocation matricielle et d'autres problèmes combinatoires comme les multiflots, l'ordonnancement ou la reconstruction de polyominos. On présente ensuite une modélisation simple par contraintes, puis quatre techniques de propagation redondante. Pour le problème de l'allocation matricielle, on montre comment analyser de manière globale les demandes minimales et maximales sur les lignes et les colonnes et on montre comment traiter le problème limité à une ligne (ou une colonne) comme un problème de flot maximal. Pour le problème de gestion de personnel, on montre comment résoudre de manière exacte le problème où tous les individus sont semblables et où tous les horaires sont des intervalles par un algorithme de flots, et on propose une technique de borne, basée sur la méthode Hongroise, applicable au cas de gestion de personnel en présence de préférences pour les personnes. Enfin, on utilise ces techniques dans deux applications réalistes, une pour les rotations en 3/8 du personnel dans un central téléphonique, l'autre pour la planification des horaires de personnel dans un centre d'appel. Le chapitre six présente le problème de l ordonnancement cumulatif. Après avoir motivé la généralisation du cadre de l'ordonnancement disjonctif pour la modélisation de problèmes réels de production, et décrit le problème général de l'ordonnancement cumulatif et sa restriction au cadre du RCPSP, on présente les deux techniques principales de propagation de contraintes, celle issue de l'analyse des fenêtres de temps (généralisation des intervalles de tâches) et celle issue de l'analyse des demandes de ressource (prise en compte des parties fixes des tâches). On décrit ensuite un cadre de recherche arborescente basé sur la construction chronologique de l'ordonnancement et enrichi par un apprentissage des échecs et l'utilisation de règles de dominance. On applique ensuite ces techniques à trois séries de problèmes, cumulatifs monoressource, cumulatif multi-ressource et RCPSP. Enfin, on évoque d'autres techniques de propagation dont l'apport est moins clair. On conclut, comme pour l'ordonnancement disjonctif, à l'importance des techniques de contraintes, en insistant sur la variété des problèmes et des techniques utilisées. Le chapitre sept présente le problème des tournées. Après avoir évoqué rapidement les méthodes exactes impropres à traiter de grands problèmes, on décrit les principales heuristiques ainsi que les procédures d'optimisation locale, issues du problème du voyageur de commerce (TSP). On propose ensuite une nouvel algorithme basé sur une procédure d'insertion enrichie par une phase d'optimisation locale incrémentale (O.L.I) après chaque insertion. On montre comment cet algorithme fournit des résultats de bonne qualité pour un temps de calcul très rapide, pour le problèmes de tournées, avec ou sans fenêtres de temps. On propose ensuite deux améliorations de cet algorithme : l'une, fait appel à un module 13
15 d'optimisation exact pour l'optimisation de chacune des routes individuelles (petits TSP), l'autre, plonge l'algorithme d'insertion dans un arbre de recherche à branchement limités (recherche LDS ). On montre ensuite comment la complexité de cet algorithme permet de résoudre des problèmes de grande taille (2 minutes pour mille nœuds). Enfin, sur une série de petits problèmes de tournées de taille plus petite, pour lesquels on dispose de résultats comparatifs, on montre que l'on obtient des résultats compétitfs avec le meilleur algorithme de recherche tabou, et on améliore l'état de l'art sur 4 instances. Enfin, on conclut en proposant des pistes pour prendre en compte d'autres contraintes (qualification de personnel, ressources, synchronisation de tâches, etc.) dans l'algorithme d'insertion. Enfin, on propose un bilan, dans le chapitre huit, de l'ensemble de ces expérimentations avec la programmation par contraintes sur ces problèmes combinatoires. D'une part, on présente, pour chacune des familles de problèmes, une cartographie synthétique des techniques considérées. D autre part, en faisant la synthèse des algorithmes qui se sont illustrés dans cette comparaison, on présente quelques conclusions méthodologiques, évoquant en particulier l'intérêt de la combinaison de différentes techniques algorithmiques, pour aboutir à la mise en œuvre d algorithmes hybrides. Partie B La partie B s'attache à la deuxième question de la thèse, celle de la mise en œuvre d'algorithmes complexes d'optimisation dans un environnement informatique. Elle comprend quatre chapitres (neuf à douze). Comme le sujet de cette deuxième partie est vaste et que l'état de l'art est beaucoup moins avancé que pour la première partie, on ne prétend pas chercher à y répondre de manière exhaustive. On commence par faire, dans le chapitre neuf, un tour d horizon des directions de recherche qui nous ont apparu importantes au cours de ce travail, pour la mise en œuvre de procédures de résolution. On retient cinq directions majeures, sur lesquelles on indique des pistes de travail. On commence par évoquer les problèmes liés à la modélisation d'un système et d'une situation. On discute ensuite les problèmes de programmation liés à l'utilisation de structures de données spécifiques à certains algorithmes. Puis, on examine les possibilités de spécification déclarative de comportements de composants algorithmiques. On aborde ensuite la question de la programmation d'algorithmes de recherche dont le flot de contrôle est complexe. Enfin, on évoque les problèmes d'environnement de programmation qui sont spécifiques au développement d'applications en optimisation combinatoire. Parmi ces cinq points, on choisit de se concentrer sur le quatrième (la spécification du contrôle pour des algorithmes de recherche complexe) que l'on traite en détail dans les deux chapitres suivants. Le chapitre dix présente le langage SaLSA dont le but est de permettre la spécification de manière élégante et très concise des algorithmes de recherche globale, locale ou hybride. Après avoir présenté les motivations à la définition d'un tel langage, ainsi que les solutions disponibles actuellement, on présente les briques du langage, les points de choix qui correspondent à la description de décisions indéterministes. On présente ensuite une algèbre permettant de composer ces points de choix pour décrire des arbres de recherche complexes. Le chapitre onze décrit l application de SaLSA à des algorithmes présentés dans la partie A. On commence par montrer comment SaLSA permet de décrire simplement un grand nombre d'algorithmes hybrides en optimisation combinatoire. On passe en revue une dizaine de problèmes, issus, pour la plupart, des expériences de la partie A, en évoquant entre autres la spécification des algorithmes de shuffle, de GSAT, d'optimisation locale incrémentale, de recherche LDS et la procédure de Lin et Kernighan. Le chapitre douze se penche sur l'utilisation pratique du langage SaLSA. On présente une sémantique opérationnelle du langage sous forme de règles de transitions dans un calcul de processus concurrents. 14
16 Enfin, on évoque quelques aspects liés à l'implémentation, qui génère du code Claire à partir de description SaLSA. Enfin, on conclut sur cette seconde partie liée à l'étude des problèmes de mise en œuvre et de génie logiciel des algorithmes hybrides. 15
17
18 17
19 1. Chapitre 1. Formalismes pour l optimisation combinatoire L'objet de ce premier chapitre est la description des principaux formalismes pour exprimer et résoudre des problèmes d optimisation combinatoire. On commencera par présenter le cadre le plus éprouvé, celui de la programmation linéaire, puis on s'attachera au cadre qui nous intéresse particulièrement, celui de la programmation par contraintes. On décrira ensuite la partie algorithmique commune à ces deux formalismes : les algorithmes de recherche par séparation et évaluation (branch and bound). Enfin, on survolera rapidement des grandes familles d algorithmes approchés. Ce chapitre se conclura par le développement d un exemple introductif : le problème de la couverture d ensembles. 1.1 Programmation linéaire Formalisme - description des problèmes La programmation linéaire (P.L.) [Chv 83] s'attache à la résolution de problèmes qui peuvent se décrire de la façon suivante : on cherche à affecter des valeurs réelles positives à un ensemble de variables x i de sorte qu'un certain nombre d'inéquations linéaires soient satisfaites. Chaque valuation admissible (respectant toutes les inégalités) du vecteur x est appelée solution. Parmi toutes les solutions, on en cherche une qui maximise un coût dont la donnée est une fonction linéaire de x. Le problème peut ainsi s'exprimer sous la forme suivante, appelée programme linéaire : max c.x sous les contraintes A.x b, x 0 Pour que les calculs restent dans les rationnels, on impose aux contraintes (la matrice A et le membre droit b) ainsi qu'à la fonction objective (vecteur c) d'être à coefficients entiers. Il existe de multiples versions équivalentes de cette formalisation, suivant que l'on minimise ou que l'on maximise la fonction objective, et que les contraintes sont des égalités ou des inégalités. Mentionnons enfin que l'on peut imposer aux variables x i de prendre des valeurs entières : on parle alors de programmation linéaire en nombres entiers (P.L.N.E) [Sch 86]. La traduction d'un problème combinatoire dans ce formalisme n'est pas toujours évidente. Il existe généralement de nombreux encodages possibles d'un problème sous forme linéaire, et la sélection d'un bon modèle demande une certaine expertise. Pour les problèmes d'optimisation discrète qui nous intéressent, cette traduction se fait au moyen de variables entières. Plus précisément, on est souvent amené à utiliser des variables à valeur dans {0,1} pour représenter des alternatives binaires. La traduction d'un problème en formalisme linéaire génère parfois un nombre important de variables [mat 97] L algorithme du simplexe Géométriquement, l'ensemble des solutions à un programme linéaire réside dans un polyèdre de R n (où n est le nombre de variables), défini par les inégalités linéaires de A. Dans le cas où ce polyèdre est borné (et ainsi la valeur maximale du programme linéaire est finie), on parle de polytope. Savoir si le programme admet une solution revient à savoir si ce polyèdre est vide ou non. Optimiser une fonction linéaire sous ces contraintes revient à trouver le(s) sommet(s) du polyèdre qui sont les plus éloignés de l'origine suivant une direction de l'espace (celle de c). Plusieurs algorithmes génériques ont été proposés pour résoudre les programmes linéaires. L algorithme du simplexe est un algorithme géométrique élémentaire qui part d un sommet quelconque du polytope et glisse le long des arêtes vers un (le) sommet optimal. Sa complexité, dans le cas le pire, est exponentielle. Suivant [Chv 83] et [Mau 92], décrivons de manière plus précise cet algorithme. En rajoutant à chaque inéquation linéaire une variable (appelée variable d'écart), on peut transformer les 1
20 inégalités linéaires en égalités, pourvu que ces variables d'écart prennent des valeurs positives. On peut ainsi réécrire le programme linéaire sous la forme suivante : max c.x sous les contraintes A.x = b, x 0 On peut aussi transformer A pour qu'elle soit de dimension m n, où m est son rang (m n). (Notons ici que n correspond au nombre de variables de départ, augmenté du nombre de contraintes, à cause des variables d'écart). Un ensemble d'indices B = {i 1,..., i m } forme une base si les colonnes A i1,..., A im sont linéairement indépendantes. Dans ce cas, la matrice carrée A B = A i1,..., A im est inversible. On va construire une solution au système linéaire de la manière suivante : on part du vecteur x B = A -1 B b, que l'on complète en une solution complète x* en fixant à 0 toutes les autres variables x i pour i B. On a ainsi Ax* = b. La solution x* est appelée solution basique, et, dans le cas où toutes ses composantes sont positives, solution basique réalisable. Enfin, on montre que l'ensemble des sommets du polytope défini par A et b correspond exactement à l'ensemble des solutions basiques réalisables, obtenues par une base B quelconque. On montre encore que deux sommets adjacents du polytope peuvent être obtenus par deux bases identiques à un indice près. On peut ainsi passer de la description géométrique de l'algorithme du simplexe à sa description algébrique. On part d'un sommet initial sur lequel on évalue la fonction objective. Cela revient à chercher une base qui fournisse une solution basique réalisable. Ensuite, on passe d'un sommet à un sommet adjacent de sorte que la fonction objective augmente (strictement) le long de l'arête entre les deux sommets. Ce déplacement le long d'une arête correspond au remplacement, dans la base courante, d'un indice par un autre. D'autres algorithmes géométriques plus complexes ont été proposés (méthode de l ellipsoïde [Kh 79] ou du point intérieur, [Ka 84] voir [Sch 86]) dont les complexités théoriques sont polynomiales. L algorithme du simplexe, bien qu'il puisse être, dans le cas le pire, de complexité exponentielle est, en pratique, plus rapide que la méthode de l ellipsoïde. En revanche, la méthode du point intérieur fournit, elle, dans certains cas, des résultats très compétitifs. Il existe aussi une théorie de la dualité pour les programmes linéaires, qui permet, à partir d'un programme linéaire P, d'en considérer un autre, D, (que l'on appelle son dual) : p = max{ c.x A.x b, x 0} (P) d = min{ b.u u.a c, u 0} (D) L'étude conjointe de ces deux programmes peut être particulièrement intéressante, car on a la relation d'ordre suivante : soit x une solution réalisable du programme primal P et u une solution du programme dual D, alors : c.x p = d b.u Ainsi, dans le cas où les deux programmes sont réalisables, leurs valeurs optimales coïncident. La connaissance de deux solutions x et u permet ainsi d'encadrer cet optimal. Enfin, on prouve encore que si p =, alors D est irréalisable, et réciproquement, si d = -, alors P est irréalisable Programmation entière Le cas de la P.L.N.E., où l'on cherche des solutions à coordonnées entières est beaucoup plus complexe. En effet, d'un point de vue géométrique, le domaine d'optimisation n'est plus un corps convexe continu, mais un ensemble discret de points. Alors que dans le cas précédent, il suffisait de parcourir l'ensemble des sommets du polytope, puisqu'ils correspondaient à des solutions, ici, cette approche n'est plus valable, car les sommets sont en général à coordonnées fractionnelles. 2
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étailLa programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique
La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation
Plus en détailCours 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étailLE 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étailPROBLEMES 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étailSouad 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étailChapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Plus en détailPourquoi 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étailAnnexe 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étailProgrammation linéaire
Programmation linéaire DIDIER MAQUIN Ecole Nationale Supérieure d Electricité et de Mécanique Institut National Polytechnique de Lorraine Mathématiques discrètes cours de 2ème année Programmation linéaire
Plus en détailOptimisation Discrète
Prof F Eisenbrand EPFL - DISOPT Optimisation Discrète Adrian Bock Semestre de printemps 2011 Série 7 7 avril 2011 Exercice 1 i Considérer le programme linéaire max{c T x : Ax b} avec c R n, A R m n et
Plus en détailCalculer avec Sage. Revision : 417 du 1 er juillet 2010
Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1
Plus en détailArithmé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étailDate : 18.11.2013 Tangram en carré page
Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches
Plus en détailLES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION
LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement
Plus en détailINTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES
INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES Dominique LAFFLY Maître de Conférences, Université de Pau Laboratoire Société Environnement Territoire UMR 5603 du CNRS et Université de Pau Domaine
Plus en détailIntroduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.
Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis
Plus en détailProgrammation 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étailO b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée
O b s e r v a t o i r e E V A P M É q u i p e d e R e c h e r c h e a s s o c i é e à l ' I N R P Taxonomie R. Gras - développée Grille d'analyse des objectifs du domaine mathématique et de leurs relations
Plus en détail2. RAPPEL DES TECHNIQUES DE CALCUL DANS R
2. RAPPEL DES TECHNIQUES DE CALCUL DANS R Dans la mesure où les résultats de ce chapitre devraient normalement être bien connus, il n'est rappelé que les formules les plus intéressantes; les justications
Plus en détailCours 02 : Problème général de la programmation linéaire
Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la Programmation Linéaire. 5 . Introduction Un programme linéaire s'écrit sous la forme suivante. MinZ(ou maxw) =
Plus en détailCorrection de l examen de la première session
de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi
Plus en détailGrandes 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étailCours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. E-mail address: Nicolas.Thiery@u-psud.fr URL: http://nicolas.thiery.
Cours de Recherche Opérationnelle IUT d Orsay Nicolas M. THIÉRY E-mail address: Nicolas.Thiery@u-psud.fr URL: http://nicolas.thiery.name/ CHAPTER 1 Introduction à l optimisation 1.1. TD: Ordonnancement
Plus en détailRapport d'analyse des besoins
Projet ANR 2011 - BR4CP (Business Recommendation for Configurable products) Rapport d'analyse des besoins Janvier 2013 Rapport IRIT/RR--2013-17 FR Redacteur : 0. Lhomme Introduction...4 La configuration
Plus en détailFonctions de plusieurs variables
Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme
Plus en détailCONCEPTION Support de cours n 3 DE BASES DE DONNEES
CONCEPTION Support de cours n 3 DE BASES DE DONNEES Auteur: Raymonde RICHARD PRCE UBO PARTIE III. - LA DESCRIPTION LOGIQUE ET PHYSIQUE DES DONNEES... 2 A. Les concepts du modèle relationnel de données...
Plus en détailCommunications 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étailmodélisation solide et dessin technique
CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir
Plus en détailProblèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris 12 20 Mars 2003
Problèmes d ordonnancement dans les systèmes de production Michel Gourgand Université Blaise Pascal Clermont Ferrand LIMOS CNRS UMR 6158 1 Le LIMOS Laboratoire d Informatique, de Modélisation et d Optimisation
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailAlgorithmes de recherche
Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème
Plus en détailExemples 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étailCatalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.
Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands. Pourquoi un autre catalogue en Suisse romande Historique En 1990, la CRUS (Conférences des
Plus en détailThéorème du point fixe - Théorème de l inversion locale
Chapitre 7 Théorème du point fixe - Théorème de l inversion locale Dans ce chapitre et le suivant, on montre deux applications importantes de la notion de différentiabilité : le théorème de l inversion
Plus en détail2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE
2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance
Plus en détailInfo0804. 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étailExercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA
75. Un plombier connaît la disposition de trois tuyaux sous des dalles ( voir figure ci dessous ) et il lui suffit de découvrir une partie de chacun d eux pour pouvoir y poser les robinets. Il cherche
Plus en détailCHAPITRE 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étailBrique BDL Gestion de Projet Logiciel
Brique BDL Gestion de Projet Logiciel Processus de développement pratiqué à l'enst Sylvie.Vignes@enst.fr url:http://www.infres.enst.fr/~vignes/bdl Poly: Computer elective project F.Gasperoni Brique BDL
Plus en détailLes diagrammes de modélisation
L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse
Plus en détailCOMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL
COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL J. TICHON(1) (2), J.-M. TOULOTTE(1), G. TREHOU (1), H. DE ROP (2) 1. INTRODUCTION Notre objectif est de réaliser des systèmes de communication
Plus en détailANNEXE 1 RÈGLEMENTS GÉNÉRAUX 1 ASSOCIATION DES ARCHÉOLOGUES PROFESSIONNELS DU QUÉBEC (AAQ) CODE D ÉTHIQUE ET DES NORMES PROFESSIONNELLES
ANNEXE 1 RÈGLEMENTS GÉNÉRAUX 1 ASSOCIATION DES ARCHÉOLOGUES PROFESSIONNELS DU QUÉBEC (AAQ) CODE D ÉTHIQUE ET DES NORMES PROFESSIONNELLES Ce code fait partie intégrante du règlement de l'association des
Plus en détailAnnexe sur la maîtrise de la qualité
Version du 09/07/08 Annexe sur la maîtrise de la qualité La présente annexe précise les modalités d'application, en matière de maîtrise de la qualité, de la circulaire du 7 janvier 2008 fixant les modalités
Plus en détailMPI Activité.10 : Logique binaire Portes logiques
MPI Activité.10 : Logique binaire Portes logiques I. Introduction De nombreux domaines font appel aux circuits logiques de commutation : non seulement l'informatique, mais aussi les technologies de l'asservissement
Plus en détailLe modèle de données
Le modèle de données Introduction : Une fois que l étude des besoins est complétée, deux points importants sont à retenir : Les données du système étudié Les traitements effectués par le système documentaire.
Plus en détailchapitre 4 Nombres de Catalan
chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C
Plus en détailOptimisation 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étailExercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Plus en détailExercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Plus en détailbasée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
Plus en détailL 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étailChapitre 2 Le problème de l unicité des solutions
Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)
Plus en détailSystèmes de transport public guidés urbains de personnes
service technique des Remontées mécaniques et des Transports guidés Systèmes de transport public guidés urbains de personnes Principe «GAME» (Globalement Au Moins Équivalent) Méthodologie de démonstration
Plus en détailFiche méthodologique Rédiger un cahier des charges
Fiche méthodologique Rédiger un cahier des charges Plan de la fiche : 1 : Présentation de la fiche 2 : Introduction : les grands principes 3 : Contenu, 1 : positionnement et objectifs du projet 4 : Contenu,
Plus en détailBaccalauréat technologique
Baccalauréat technologique Épreuve relative aux enseignements technologiques transversaux, épreuve de projet en enseignement spécifique à la spécialité et épreuve d'enseignement technologique en langue
Plus en détailJade. 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étailLogique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.
Logique binaire I. L'algèbre de Boole L'algèbre de Boole est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques.
Plus en détail4.2 Unités d enseignement du M1
88 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT 4.2 Unités d enseignement du M1 Tous les cours sont de 6 ECTS. Modélisation, optimisation et complexité des algorithmes (code RCP106) Objectif : Présenter
Plus en détailStages 2014-2015 ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr
Stages 2014-2015 ISOFT : UNE SOCIETE INNOVANTE Contact : Mme Lapedra, stage@isoft.fr ISoft, éditeur de logiciels, est spécialisé dans l informatique décisionnelle et l analyse de données. Son expertise
Plus en détailOrdonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1
CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste
Plus en détailExo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.
Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).
Plus en détailGuide No.2 de la Recommandation Rec (2009).. du Comité des Ministres aux États membres sur la démocratie électronique
DIRECTION GENERALE DES AFFAIRES POLITIQUES DIRECTION DES INSTITUTIONS DEMOCRATIQUES Projet «BONNE GOUVERNANCE DANS LA SOCIETE DE L INFORMATION» CAHDE (2009) 2F Strasbourg, 20 janvier 2009 Guide No.2 de
Plus en détailRappels 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étailGESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET
GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET 1 Tianxiao LIU Licence Professionnelle Réseaux & Sécurité Université de Cergy-Pontoise http://depinfo.u-cergy.fr/~tliu/lpg.php PLAN Objectif et
Plus en détailLES MÉTHODES DE POINT INTÉRIEUR 1
Chapitre XIII LES MÉTHODES DE POINT INTÉRIEUR 1 XIII.1 Introduction Nous débutons par un rappel de la formulation standard d un problème d optimisation 2 linéaire et donnons un bref aperçu des différences
Plus en détailProgrammation Linéaire - Cours 1
Programmation Linéaire - Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence V. Chvátal - Linear Programming, W.H.Freeman, New York, 1983.
Plus en détailReconstruction de bâtiments en 3D à partir de nuages de points LIDAR
Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains
Plus en détailCalcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.
1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le
Plus en détailÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab
ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab notre compétence d'éditeur à votre service créée en juin 2010, Scilab enterprises propose services et support autour
Plus en détailService de réplication des données HP pour la gamme de disques Continuous Access P9000 XP
Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP Services HP Care Pack Données techniques Le service de réplication des données HP pour Continuous Access offre
Plus en détailAxiomatique de N, construction de Z
Axiomatique de N, construction de Z Table des matières 1 Axiomatique de N 2 1.1 Axiomatique ordinale.................................. 2 1.2 Propriété fondamentale : Le principe de récurrence.................
Plus en détailAnalyse tarifaire en ligne (TAO) de l'omc
Analyse tarifaire en ligne (TAO) de l'omc L'analyse tarifaire en ligne (TAO) permet d'effectuer des recherches et d'analyser les données tarifaires conservées dans deux bases de données de l'omc, à savoir
Plus en détailNouvelles 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étailOASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication
Statut du Committee Working Draft document Titre XACML Language Proposal, version 0.8 (XACML : XML Access Control Markup Language) Langage de balisage du contrôle d'accès Mot clé Attestation et sécurité
Plus en détailFICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique
NOM DE L'UE : Algorithmique et programmation C++ LICENCE INFORMATIQUE Non Alt Alt S1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques) MASTER INFORMATIQUE Non
Plus en détailRaisonnement par récurrence Suites numériques
Chapitre 1 Raisonnement par récurrence Suites numériques Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Raisonnement par récurrence. Limite finie ou infinie d une suite.
Plus en détailUtilisation des médicaments au niveau des soins primaires dans les pays en développement et en transition
09-0749 1 WHO/EMP/MAR/2009.3 Utilisation des médicaments au niveau des soins primaires dans les pays en développement et en transition Synthèse des résultats des études publiées entre 1990 et 2006 Organisation
Plus en détailLES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN
LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas
Plus en détailInstallation de Windows 2003 Serveur
Installation de Windows 2003 Serveur Introduction Ce document n'explique pas les concepts, il se contente de décrire, avec copies d'écran, la méthode que j'utilise habituellement pour installer un Windows
Plus en détailSynthèse «Le Plus Grand Produit»
Introduction et Objectifs Synthèse «Le Plus Grand Produit» Le document suivant est extrait d un ensemble de ressources plus vastes construites par un groupe de recherche INRP-IREM-IUFM-LEPS. La problématique
Plus en détailProbabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur
Plus en détailCOURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE
COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE Le cours de la première année concerne les sujets de 9ème et 10ème années scolaires. Il y a bien sûr des différences puisque nous commençons par exemple par
Plus en détailUniversité de Lorraine Licence AES LIVRET DE STAGE LICENCE 2014-2015
Université de Lorraine Licence AES LIVRET DE STAGE LICENCE 2014-2015 1 LA REDACTION DU RAPPORT DE STAGE Le mémoire ne doit pas consister à reprendre tels quels des documents internes de l entreprise ou
Plus en détailUNITE U 6.2 : PROJET TECHNIQUE OBJET DE L'EPREUVE.
UNITE U 6.2 : PROJET TECHNIQUE OBJET DE L'EPREUVE. Cette épreuve permet de valider les compétences C1, C2, C3 et T2 du référentiel au travers de la démarche de projet 15 que le candidat aura mis en œuvre.
Plus en détailhttp://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux
http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux Version 1.0 Septembre 2011 SOMMAIRE 1. Introduction 3 2. Installation du logiciel de virtualisation VirtualBox 4 3. Création d'une
Plus en détailIntelligence 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étailChampionnat de France de Grilles Logiques Finale 7 juin 2014. Livret d'instructions
Championnat de France de Grilles Logiques Finale 7 juin 0 Livret d'instructions Épreuve Thème Horaires Durée Points Déjà vu? h h minutes 0 Medley international h h 0 minutes 00 Futur proche? h h0 minutes
Plus en détailIFT1215 Introduction aux systèmes informatiques
Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d
Plus en détailProjet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies
Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Régis Boulet Charlie Demené Alexis Guyot Balthazar Neveu Guillaume Tartavel Sommaire Sommaire... 1 Structure
Plus en détailDe même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que
Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer
Plus en détail1. Introduction...2. 2. Création d'une requête...2
1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête
Plus en détail2. Activités et Modèles de développement en Génie Logiciel
2. Activités et Modèles de développement en Génie Logiciel Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Les Activités du GL Analyse des besoins Spécification globale Conceptions architecturale
Plus en détailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détailInstallation de Windows 2000 Serveur
Installation de Windows 2000 Serveur Introduction Ce document n'explique pas les concepts, il se contente de décrire, avec copies d'écran, la méthode que j'utilise habituellement pour installer un Windows
Plus en détailUniversité de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
Plus en détail«Manuel Pratique» Gestion budgétaire
11/06/01 B50/v2.31/F/MP005.01 «Manuel Pratique» Gestion budgétaire Finance A l usage des utilisateurs de Sage BOB 50 Solution Sage BOB 50 2 L éditeur veille à la fiabilité des informations publiées, lesquelles
Plus en détailAnticiper pour avoir une innovation d'avance : le leitmotiv de Pierre Jouniaux, entrepreneur du big data!
Anticiper pour avoir une innovation d'avance : le leitmotiv de Pierre Jouniaux, entrepreneur du big data! Pierre Jouniaux http://www.safety line.fr CV : Pierre Jouniaux, ingénieur aéronautique, pilote
Plus en détail