Introduction à la Recherche Opérationnelle Frédéric Meunier 28 septembre 2016 Ecole des Ponts, France 4 5 ??????? 5 1 4 11 5 9 10 8 7 3 10 5 8 2 10 12 10 2 7 1 6 3 7 10 6 4 13 Monsieur R. doit organiser sa tournée. 4 5 5 1 4 11 5 9 10 8 7 3 10 5 8 2 10 12 10 2 7 1 6 3 7 10 4 13 Monsieur R. a organisé sa tournée. 6 A 25 villes, cela fait 24! = 24 × 23 × 22 × · · · × 2 × 1 possibilités, soit environ 6.204 × 1025 possibilités. A la main, à raison d’une possibilité par seconde, il faudrait environ 1.976 × 1016 années. Avec un ordinateur, à raison d’1 million de possibilités par seconde, il faudrait environ 19 milliards d’années. Plan • Qu’est-ce que la Recherche Opérationnelle ? • Déroulement du cours. • Notions de bases (un peu de théorie). Qu’est-ce que la Recherche Opérationnelle ? La Recherche Opérationnelle Ce que nous venons de voir, c’est un problème typique de la Recherche Opérationnelle : problème du voyageur de commerce. Recherche Opérationnelle, ou RO : discipline des mathématiques appliquées traitant des questions d’utilisation optimale des ressources en entreprise. Exemples de problème de RO 4 5 5 1 4 11 5 9 10 • trouver la meilleure tournée 10 5 8 10 12 10 8 7 3 2 2 7 1 6 3 7 10 6 4 13 • organiser le meilleur emploi du temps • concevoir le réseau le plus robuste • remplir de manière optimale un conteneur • positionner intelligemment ses entrepôts A D 80 70 0 30 30 Début • ordonnancer des tâches sur des machines Fin E B 0 50 80 0 F C 30 40 Les Pères Monge, Blackett, Dantzig. A partir des années 50, fort développement de la RO : • laboratoires (mathématiques, informatique), • entreprises (supply chain, transport, télécommunications, etc.) Deux mots-clés : Modélisation et Optimisation. Progrès des performances sur le problème du voyageur de commerce 1954 1971 1975 1977 1980 1987 1987 1987 1994 1998 2001 2004 Dantzig, Fulkerson, Johnson Held, Karp Camerini, Fratta, Maffioli Grötschel Crowder, Padberg Padberg, Rinaldi Grötschel, Holland Padberg, Rinaldi Applegate, Bixby, Chvátal, Cook Applegate, Bixby, Chvátal, Cook Applegate, Bixby, Chvátal, Cook Applegate, Bixby, Chvátal, Cook, Helsgaun Et ce n’est pas avant tout une question de puissance d’ordinateur. 49 villes 64 villes 67 villes 120 villes 318 villes 532 villes 666 villes 20 392 villes 70 397 villes 130 509 villes 150 112 villes 240 978 villes Déroulement du cours “Fondements” 1. Plus courts chemins et programmation dynamique 2. Flots 3. Graphes bipartis 4. Problèmes difficiles : programmation linéaire en nombres entiers, heuristiques et métaheuristiques e − k zT B “Problématiques” 1. Localisation d’entrepôts 2. Remplissage de conteneurs 3. Conception de réseau 4. Tournées A D 80 70 0 30 30 Début 5. Ordonnancement Fin E B 0 50 80 0 F C 30 40 Intervenants extérieurs A cela s’ajouteront trois interventions d’1h par des personnes du monde industriel • Bouygues. • Air France. • Saint-Gobain. Support de cours et mode d’évaluation Support Polycopié. Page web Educnet. Mode d’évaluation Par ordre décroissant de pondération. 1. Contrôle final de 2h45 le 1er février (c) 2. Un miniprojet (p) Deux miniprojets, à commencer sur les séances en autonomie (pi pour i = 1, 2) 3. Deux contrôles surprises de 20 minutes (qi pour i = 1, 2) 4. Participation, assiduité. 1 (max(q1 , q2 ) + 3p + 5c). 9 Si note < 8, pas de rattrapage. Si 8 ≤ note < 10, rattrapage. note = Séances en autonomie Les deux séances en autonomie seront les 7 décembre et 11 janvier. 7 décembre : Modélisation par la programmation linéaire en nombres entiers • planification de la production • conception d’une grille horaire pour du transport ferroviaire 11 janvier : Régulation d’un système de vélos partagés Notions de base Quelles notions ? 1. Modélisation. 2. Optimisation. 3. Graphes. 4. Problèmes. 5. Algorithmes et Complexité. Modélisation Modèle = Un modèle mathématique est une traduction de la réalité pour pouvoir lui appliquer les outils, les techniques et les théories mathématiques, puis généralement, en sens inverse, la traduction des résultats mathématiques obtenus en prédictions ou opérations dans le monde réel. Graphes Brique de base en modélisation. Graphe : G = (V , E) V : ensemble de sommets E : ensemble d’arêtes ; à toute arête correspond une paire de sommets. v3 v3 v 3 v5 v1 v 2 v2 v1 v2 v 5 v5 v 6 v1 v 2 v3 v 4 v4 v6 degré d’un sommet : nombre d’arêtes incidentes au sommet. Graphes complets, graphes bipartis Graphe complet : toute paire de sommets est reliée par une arête. Graphe biparti : sommets peuvent être partitionnés en deux parties n’induisant chacune aucune arête. Graphes : Chaîne Chaîne : suite de la forme v0 , e1 , v1 , . . . , ek , vk vi ∈ V , ej ∈ E avec ej = vj−1 vj . Chaîne ne passant jamais plus d’une fois par une arête : chaîne simple. Chaîne ne passant jamais plus d’une fois sur un sommet : chaîne élémentaire. Chaîne simple passant par toutes les arêtes d’un graphe : chaîne eulérienne. Chaîne élémentaire passant par tous les sommets du graphe : chaîne hamiltonienne. Graphes : Chaîne hamiltonnienne Hamilton inventa l’“Icosian Game” au XIXe siècle, mais ce fut un bide commercial. Hamilton (1805–1865) Graphes : connexité, cycles Graphe connexe : entre toute paire de sommets, il y a une chaîne. Cycle : chaîne simple fermée. Cycle élémentaire, hamiltonien, eulérien. Graphes : Coloration Coloration : c : V → N (N= couleurs). Coloration propre : pour toute paire de voisins u, v, on a c(u) 6= c(v). nombre minimum de couleurs d’une coloration propre : nombre chromatique (noté χ(G)) Graphes : Couplage et couverture Ensemble d’arêtes deux à deux disjointes : couplage Ensemble de sommets tel que toute arête touche au moins un de ses éléments : couverture : couverture par les sommets du graphe Les ponts de Königsberg Euler, 1736. Euler (1707–1783) Chaîne et cycle eulériens : existence Modélisation Un graphe connexe admet une chaîne eulérienne si et seulement si il possède au plus deux sommets de degré impair. Un graphe connexe admet un cycle eulérien si et seulement si il n’a pas de sommet de degré impair. Optimisation Min f (x) s.c. x ∈ X . f : critère. « s.c. » = « sous contraintes » X : ensemble des solutions réalisables « x ∈ X » : contraintes du programme. Parmi les solutions réalisables, on veut chercher une solution optimale x ∗ , i.e. une solution réalisable qui minimise le critère. Minimisation : De l’importance des bornes inférieures OPT = Min f (x) s.c. x ∈ X . Toujours se demander s’il n’y a pas une borne inférieure simple et de bonne qualité à OPT. Une borne inférieure permet d’évaluer la qualité d’une solution courante → évite de continuer à chercher des solutions et éventuellement, montre l’optimalité d’une solution. Coloration Graphe coloré avec 5 couleurs: rouge, bleu, vert, jaune et noir. Coloration et sous-graphe complet : une inégalité cardinalité d’un sous-graphe complet ≤ nombre de couleurs dans une coloration propre. La cardinalité maximale d’un sous-graphe complet de G se note ω(G). ω(G) ≤ χ(G). Couplage Couplage et couverture : une inégalité Soit M un couplage et C une couverture par les sommets. Alors |M| ≤ |C|. τ (G) : cardinalité minimale d’une couverture ν(G) : cardinalité maximale d’un couplage ν(G) ≤ τ (G). Problèmes Problème : • “Donnée” • “Tâche” ou “Question”. Exemples de problèmes PROBLÈME DE LA CHAÎNE EULÉRIENNE Donnée : Un graphe G = (V , E). Question : G a-t-il une chaîne eulérienne ? PROBLÈME DU COUPLAGE DE PLUS GRAND POIDS Donnée : Un graphe G = (V , E), une fonction de poids w : E → R+ . Tâche : Trouver le couplage de G de plus grand poids. Problème de décision, problème d’optimisation Problème de décision : consiste à répondre ‘Oui’ ou ‘Non’ à une question. Problème d’optimisation : consiste à trouver l’optimum d’une fonction. Algorithmes et complexité algorithme = suite d’opérations élémentaires implémentable dans un ordinateur Supposons donnés un problème P et un algorithme A qui le résout. Se pose alors la question de son efficacité. → Théorie de la complexité. Fonction de complexité Fonction de complexité f (n) d’un algorithme : nombre d’opérations élémentaires qu’il faut effectuer si la donnée est de taille n. Exemples : Trier n entiers : O(n log(n)). Tester l’existence d’un cycle eulérien : O(n + m). Algorithme polynomial/exponentiel Algorithme polynomial : fonction de complexité = O(na ) avec a constante. Sinon, algorithme exponentiel. Fonction de complexité n n2 n3 n5 2n 10 0, 01 µs 0, 1 µs 1 µs 0, 1 ms ∼ 1 µs 20 0, 02 µs 0, 4 µs 8 µs 3, 2 ms ∼ 1 ms Taille n 50 60 0, 05 µs 0, 06 µs 2, 5 µs 3, 6 µs 125 µs 216 µs 312, 5 ms 777, 6 ms ∼ 13 jours ∼ 36 années et 6 mois TABLE: Comparaison de diverses fonctions de complexité pour un ordinateur ffectuant 1 milliard d’opérations par seconde. Une question de puissance des ordinateurs ? Soit A un algorithme résolvant un problème P en 2n opérations. On a une machine qui résout P avec A en 1 heure jusqu’à n = 438. Si on a un machine 1000 fois plus rapide ? Une question de puissance des ordinateurs ? On a une machine qui résout P avec A en 1 heure jusqu’à n = 438. Machine 1000 fois plus rapide → en une heure, jusqu’à n = 448. Une question de puissance d’ordinateurs ? Taille de l’instance la plus large que l’on peut résoudre en 1 heure Fonction Avec un ordinateur Avec un ordinateur Avec un ordinateur de complexité actuel 100 × plus rapide 1000 × plus rapide n N1 100N1 1000N1 n2 N2 10N2 31.6N2 n3 N3 4.64N3 10N3 n5 N4 2.5N4 3.98N4 2n N5 N5 + 6.64 N5 + 9.97 3n N6 N6 + 4.19 N6 + 6.29 TABLE: Comparaison de diverses fonctions de complexité. Classe P Problème (de décision) est polynomial ou dans P : il existe un algorithme polynomial qui le résout. Problème (de décision) est non-déterministiquement polynomial ou dans NP : si la réponse est oui pour l’instance considérée, il existe un certificat et un algorithme polynomial qui permet de vérifier que la réponse est bien oui. Classe NP PROBLÈME DU CYCLE HAMILTONIEN Donnée : Un graphe G = (V , E). Question : G a-t-il un cycle hamiltonien ? Pour F ⊆ E, on peut tester en temps polynomial si F est un cycle hamiltonien. F est un certificat. Le problème du cycle hamiltonien est dans NP. Classe NP Proposition P ⊆ NP. Démonstration. En cas de réponse ‘Oui’, la donnée est un certificat. Problèmes NP-complets problème de décision est NP-complet : s’il existe un algorithme polynomial qui le résout, alors il existe un algorithme polynomial pour tout problème NP. On ne connaît pas d’algorithme polynomial résolvant un problème NP-complet. Theorem (Cook, 1970) Il existe des problèmes NP-complets. Exemple de problème NP-complet PROBLÈME DU CYCLE HAMILTONIEN Données : Un graphe G = (V , E). Question : G a-t-il un cycle hamiltonien ? est NP-complet. Problèmes NP-difficiles problème est NP-difficile : s’il existe un algorithme polynomial qui le résout, alors il existe un algorithme polynomial pour tout problème NP. Différence avec NP-complet : pas nécessairement un problème de décision. Exemple : le problème du voyageur de commerce est NP-difficile. Les problèmes NP NP-complets NP P NP-difficiles Question à 1 millions de $ ? P = NP. offerts par la Fondation Clay.