Plus courts chemins et programmation dynamique discrète

Documents pareils
Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Plus courts chemins, programmation dynamique

Chapitre 5 : Flot maximal dans un graphe

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

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

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

Introduction à la théorie des graphes. Solutions des exercices

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

Programmation linéaire

Eléments de Théorie des Graphes et Programmation Linéaire

Programmation Linéaire - Cours 1

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

MIS 102 Initiation à l Informatique

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Université Paris-Dauphine DUMI2E 1ère année, Applications

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Amphi 3: Espaces complets - Applications linéaires continues

Cours de Master Recherche

Resolution limit in community detection

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Polynômes à plusieurs variables. Résultant

Annexe 6. Notions d ordonnancement.

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Cours 02 : Problème général de la programmation linéaire

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

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

Jean-Philippe Préaux

Équations non linéaires

Optimisation for Cloud Computing and Big Data

Simulation de variables aléatoires

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Faculté des sciences Département de mathématiques. Théorie des graphes

Fonctions de plusieurs variables

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Cryptographie et fonctions à sens unique

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples.

Résumé du cours en graphiques En vue des prochains cours En vue de l examen final. Macroéconomie 1. Conclusion générale. Olivier Loisel.

Comment faire avancer un engin roulant le plus loin possible sans le toucher?

Continuité et dérivabilité d une fonction

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

F411 - Courbes Paramétrées, Polaires

Algorithmes d'apprentissage

Résolution d équations non linéaires

Limites finies en un point

Chp. 4. Minimisation d une fonction d une variable

Algorithmes pour la planification de mouvements en robotique non-holonome

Un K-espace vectoriel est un ensemble non vide E muni : d une loi de composition interne, c est-à-dire d une application de E E dans E : E E E

chapitre 4 Nombres de Catalan

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

Chapitre 7 : Intégration sur un intervalle quelconque

PROBABILITES ET STATISTIQUE I&II

Analyse en Composantes Principales

aux différences est appelé équation aux différences d ordre n en forme normale.

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Mesure d angles et trigonométrie

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Chapitre 6. Fonction réelle d une variable réelle

Chapitre 7. Récurrences

LE PROBLEME DU PLUS COURT CHEMIN

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

RECHERCHE OPERATIONNELLE

3. Conditionnement P (B)

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48


Table des matières. 1 Programmation linéaire 1

BACCALAUREAT GENERAL MATHÉMATIQUES

Une introduction aux codes correcteurs quantiques

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Introduction à la théorie des graphes

LES MÉTHODES DE POINT INTÉRIEUR 1

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Comparaison de fonctions Développements limités. Chapitre 10

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

Markov processes and applications to queueing/risk/storage theory and mathematical biology

Algorithmes de recherche d itinéraires en transport multimodal

Model checking temporisé

Cours de mathématiques

1.1 Codage de source et test d hypothèse

CH.6 Propriétés des langages non contextuels

OPTIMISATION À UNE VARIABLE

EXERCICE 4 (7 points ) (Commun à tous les candidats)

de calibration Master 2: Calibration de modèles: présentation et simulation d

Calcul fonctionnel holomorphe dans les algèbres de Banach

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

Techniques d interaction dans la visualisation de l information Séminaire DIVA

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Moments des variables aléatoires réelles

PROBLEMES D ORDONNANCEMENT

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

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

Transcription:

Plus courts chemins et programmation dynamique discrète Frédéric Meunier 12 octobre 2016 Ecole des Ponts, France

Un exemple 5 1 2 1 2 2 1 9 10 6 4 2 5 s a b c d e f g h i t 6 Trouver le trajet le plus court dans ce réseau, i.e. la s-t chaîne de plus petit poids dans ce graphe.

Un exemple a 1 b 2 s 5 2 10 c 6 e 2 d 6 4 f 1 2 g 5 9 h 1 t La solution. i

Plan 1. Graphes orientés : quelques définitions. 2. Plus courts chemins dans les graphes orientés. Tous les poids sont 0 : Dijkstra. Le graphe est sans circuit Et sinon?. Plus courte chaîne dans les graphes non-orientés. Tous les poids sont 0 : Encore Dijkstra. Et sinon?

Graphes orientés : quelques définitions

Graphes orientés graphe orienté= brique de base en modélisation. graphe : D = (V, A) V : ensemble de sommets A : ensemble d arcs ; à tout arc correspond un couple de sommets arc (u, v) : u est le prédécesseur de v et v est le successeur de u. u1 u (u, u4) u4 (u4, u) (u5, u) (u7, u5) u5 u7 (u2, u1) (u6, u) u2 u6

Graphes orientés : Chemins chemin = suite de la forme v 0, a 1, v 1,..., a k, v k v i V, a j A avec a j = (v j 1, v j ) Chemin ne passant jamais plus d une fois sur un arc = chemin simple. Chemin ne passant jamais plus d une fois sur un sommet = chemin élémentaire. Chemin simple passant par tous les arcs = chemin eulérien Chemin élémentaire passant par tous les sommets = chemin hamiltonien.

Graphes orientés : Chemin eulérien 5 6 2 1 7 4 8

Graphes orientés : circuits chemin = suite de la forme v 0, a 1, v 1,..., a k, v k v i V, a j A avec a j = (v j 1, v j ) Chemin simple fermé (v 0 = v k ) = circuit Circuit élémentaire, circuit hamiltonien, circuit eulérien

Graphe non-orienté / orienté graphe non-orienté graphe orienté G = (V, E) D = (V, A) arête arc chaîne chemin cycle circuit

Plus courts chemins dans les graphes orientés

Tous les poids sont 0 Cas le plus naturel : tous les poids sont 0. Le plus naturel? Modélisation d un réseau de transport, par exemple. a 2 b 1 1 s d c 5 f 2 1 e 2 6 t 7

L algorithme de Dijkstra Initialisation : U := V, λ(s) := 0 et λ(v) = + pour tout v s. Répéter 1. Choisir u minimisant λ(u) dans U. 2. Pour chaque a = (u, v) A tq λ(v) > λ(u) + w(a), redéfinir λ(v) := λ(u) + w(a).. Redéfinir U := U \ {u}. Arrêt qd λ(u) = + pour tout u U (en particulier arrêt si U = ).

Exemple d application s a b c d e f t (0) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 0 () ( ) ( ) () ( ) (5) ( ) 0 (5) ( ) () ( ) (5) ( ) 0 (4) ( ) ( ) (5) ( ) 0 4 (5) ( ) (5) ( ) 0 4 5 (8) (5) ( ) 0 4 5 (7) 5 (12) 0 4 5 7 5 (9) 0 4 5 7 5 9

L algorithme de Dijkstra Algorithme peut être facilement adapté pour calculer le chemin lui-même (et pas seulement le poids minimum) Théorème Etant donné un graphe orienté D = (V, A), deux sommets s, t et une fonction de poids w : A R +, un s-t chemin de plus petit poids peut être trouvé en O(n 2 ).

Un graphe sans circuit a 2 s 2 10 4 b 2 c 6 d 5 t

Equation de Bellman Posons pour tout sommet v λ(v) := poids minimum d un s-v chemin (λ(v) := si un tel chemin n existe pas) Alors (équation de Bellman) λ(v) = min (λ(u) + w(u, v)) (u,v) A Le plus court chemin de s à v est le plus court chemin de s à un antécédent u de v auquel on a ajouté le dernier arc (u, v).

Suite de l exemple a 2 s 2 10 4 b 2 c 6 d 5 t

Suite de l exemple a 2 s 2 10 4 b 2 c 6 d 5 t

Equation de Bellman algorithme. L algorithme Initialisation λ(s) := 0 et λ(u) := pour tout u tel qu il n existe pas de s-u chemin. Répéter 1. Chercher v dont on connaît λ(u) pour tous les prédécesseurs u. 2. λ(v) := min (u,v) A (λ(u) + w(u, v)) (équation de Bellman) Arrêt quand λ calculé pour tous les sommets. Graphe acircuitique il y a toujours un sommet v dont on connaît tous les prédécesseurs.

L idée de Bellman Principe d optimalité de Bellman La sous-trajectoire d une trajectoire optimale est encore optimale.

Algorithme Algorithme peut être facilement adapté pour calculer le chemin lui-même (et pas seulement le poids minimum) Théorème Etant donné un graphe acircuitique D = (V, A), deux sommets s, t et une fonction de poids w : A R, un s-t chemin de plus petit poids peut être trouvé en O(m). Poids peuvent être positifs et négatifs ( Dijkstra). On peut donc également trouver le plus long chemin élémentaire.

Poids quelconques, pas forcément acircuitique Poids quelconques, et il peut y avoir des circuits : algorithme polynomial si le graphe est sans circuit absorbant. Circuit absorbant = circuit dont la somme des poids < 0. Equation de Bellman.

Pas de circuit absorbant : équation de Bellman λ(k, v) := poids minimum d un s-v chemin traversant exactement k arcs. Equation de Bellman : pour tout v V. λ(k + 1, v) = min (λ(k, u) + w(u, v)) (u,v) A

L algorithme Equation de Bellman algorithme. Initialisation λ(0, s) := 0, λ(0, v) := + pour v s et k := 0. Répéter tant que k V 1 1. Pour tout v, faire λ(k + 1, v) := min (u,v) A (λ(k, u) + w(u, v)) (équation de Bellman) 2. k := k + 1 Renvoyer min k=1,..., V 1 λ(k, t).

Pas de circuit absorbant Algorithme peut être facilement adapté pour calculer le chemin lui-même (et pas seulement le poids minimum) Théorème Etant donné un graphe D = (V, A), deux sommets s, t et une fonction de poids w : A R telle qu il n y ait pas circuit absorbant, un s-t chemin de plus petit poids peut être trouvé en O(nm).

Cas général Théorème Trouver le poids minimal d un s-t chemin élémentaire lorsque le graphe a des poids quelconques est NP-difficile. Contient le problème du chemin hamiltonien.

Plus courte chaîne dans les graphes non-orientés

Tous les poids sont 0 Si tous les poids sont 0, on applique encore Dijkstra. we we Transformation : we Les plus courtes chaînes élémentaires correspondent aux plus courts chemins élémentaires. Donne exactement le même algorithme.

S il y a des poids 0 S il y a des poids 0, mais pas de cycle absorbant : on peut encore y arriver en temps polynomial. Outils seront vus lors de la séance Tournée. ATTENTION : transfomation we we ne permet pas de se ramener au cas orienté (toute arête de poids négatif fait apparaître un circuit absorbant) we

Cas général Théorème Trouver la s-t chaîne élémentaire de poids minimum lorsque le graphe a des poids quelconques est NP-difficile.

Résumé Complexité Graphe orienté, O(n 2 ) poids positifs (Dijkstra) Graphe orienté, O(m) poids quelconques, acircuitique (Programmation dynamique) Graphe orienté, O(nm) poids quelconques, (Programmation dynamique, sans circuit absorbant algorithme de Ford-Bellman) Graphe orienté, NP-difficile poids quelconques Graphe non-orienté, O(n 2 ) poids positifs (Dijkstra) Graphe non-orienté, O(n ) poids quelconques, (voir Séance Tournées) pas de cycle absorbant Graphe non-orienté, NP-difficile poids quelconques

On a Programmation dynamique 1. système dynamique à temps discret x k+1 = f k (x k, u k ), k = 1, 2,..., N 2. fonction de coût additive dans le temps. x 0 : état initial. x k : état au début de la période k. u k : décision pour la période k. c k (x k, x k+1 ) : coût de la transition de x k à x k+1 sur la période k. Trouver la trajectoire x 0, x 1,..., x N de coût total N k=1 c k (x k, x k+1 ) minimal : peut se résoudre par la programmation dynamique.

Programmation dynamique λ(k, x) := coût minimal de la trajectoire amenant le système dans l état x en k étapes. Programmation dynamique : équation de Bellman pour tout y λ(k, y) = min (λ(k 1, x) + c k 1 (x, y)) x X k 1 Algorithme : calculer de proche en proche

Gestion de stock Dynamique d un stock : x k+1 = x k d k + u k, d k : demande pour la période k (supposée connue) x k Z : nombre d unités disponibles en début de période k u k : nombre d unités commandées (et reçues immédiatement) en début de période k K : capacité maximale de stockage c(u k ) + g(x k+1 ) : coût de gestion de stock pour la période k en c(u k ) coût de réapprovisionnement g(x k+1 ) coût de stockage ou coût de pénurie Objectif. Minimiser N 1 k=0 c(u k ) + g(x k+1 ).

Gestion de stock Modélisation par la programmation dynamique périodes : périodes k = 1,..., N états : valeurs possibles x k de niveau de stock, transitions : x k x k+1 tq x k+1 satisfasse simultanément x k+1 Z, x k+1 + d k K et x k+1 x k d k coût de la transition : x k x k+1 est c(x k+1 x k + d k ) + g(x k+1 ) Objectif. Minimiser N 1 k=0 c(x k+1 x k + d k ) + g(x k+1 ) (critère additif = somme des coûts des transitions de la trajectoire).

Programmation dynamique = plus court chemin Programmation dynamique = plus court chemin dans un graphe acircuitique Prog. dyn. états périodes transitions coût de la transition trajectoire trajectoire optimale Plus court s-t chemin sommets arcs longueur l arc chemin plus court chemin Si plusieurs états de départ ou plusieurs états à l arrivée, on peut ajouter des sommets fictifs s et t, et des transitions de coût = 0.

Programmation dynamique = plus court chemin xk K. x0..... transition xk xk+1, de coût ck(xk, xk+1). k = 1 k = 2 k = k = N 1 k = N k transition x0 0

Programmation dynamique = plus court chemin xk K. x0..... k = 1 k = 2 k = trajectoire optimale k = N 1 k = N k

Programmation dynamique = plus court chemin xk K. s := x0 t..... k = 1 k = 2 k = k = N 1 k = N trajectoire optimale = plus court s t chemin dans un graphe acircuitique coûts := 0 k