Cours sur les graphes
Transcription
Cours sur les graphes
Cours sur les graphes Graphes orientés, problème du plus court chemin Florent Madelaine ([email protected]) Université d’Auvergne 8 Octobre 2007 Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 1 / 18 Plan du cours 1 Introduction De casses-têtes amusants... ... aux problèmes industriels 2 Graphes orientés Définitions Représentations Graphes orientés valués 3 Problème du plus court chemin Définitions Algorithme de Bellman-Ford 4 Exercices Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 2 / 18 Les sept ponts de Königsberg Étant donné que la ville est construite sur deux ı̂les reliées au continent par six ponts, et entre elles par un pont, trouver un chemin quelconque permettant, à partir d’un point de départ au choix, de passer une et une seule fois par chaque pont, et de revenir à son point de départ, étant entendu qu’on ne peut traverser l’eau qu’en passant par les ponts. Léonard Euler. (( Solutio problematis ad geometriam situs pertinentis )). Mémoires de l’académie des sciences de Berlin, 1759 Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 3 / 18 Le cavalier Sur un échiquier, le cavalier se déplace de deux cases dans une direction (horizontale ou verticale) puis d’une case dans une direction orthogonale (mouvement en forme de L). Est-il possible qu’un cavalier passe par toutes les cases de l’échiquier sans passer deux fois par la même case et revenir à son point de départ ? al-Adli ar-Rumi donne une solution, vers 840. Warnsdorff donne une méthode heuristique, 1843. Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 4 / 18 Le voyageur de commerce Étant donné un ensemble de destinations, le problème est de trouver un circuit qui visite chaque destination en visitant chacune d’elle exactement une seule fois, le tout en minimisant le coût du voyage. Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 5 / 18 Arbre couvrant Une société de téléphonie souhaite câbler entièrement une zone à l’aide de fibres optiques en minimisant le nombres de connexions à réaliser. Le nouveau câblage s’appuie sur le réseau téléphonique déjà existant. Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 6 / 18 Distance Problème de routage dans un réseau du type internet. Si un utilisateur désire accéder au contenu d’une page web présentée sur un serveur, une connexion entre ce serveur et la machine de l’utilisateur. Cette connexion n’est en général pas directe mais doit passer par une série de machine relais. Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 7 / 18 Graphes Orientés Definition (graphe orienté) un ensemble de sommets V un ensemble d’arcs E ⊆ V × V Exemple a A B f d b g c V = {A, B, C , D} E = {a, b, c, d, e, f , g , h} C D h Florent Madelaine (Université d’Auvergne) e Graphes 8 Octobre 2007 8 / 18 Représentations par listes Listes de successeurs a A B sommet successeurs A B, C C, D B C C A, B, C D f d b g c C D h e Exercice Donnez la représentation du graphe par listes de prédécesseurs. Peut-on retrouver cette représentation à partir de la liste des successeurs ? si oui, comment ? Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 9 / 18 Représentations par Matrices I Matrice d’adjacence Tableau d’adjacence a A origine \ B A B C D f d b g c h Florent Madelaine (Université d’Auvergne) A B C a b c e f g h Matrice d’adjacence 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 C D fin e Graphes D d 8 Octobre 2007 10 / 18 Représentations par Matrices II Matrice d’incidence a A B Tableau d’incidence A B C D f d b g c C D h On utilise cette représentation pour les graphes sans boucle uniquement. Florent Madelaine (Université d’Auvergne) e Matrice 1 −1 0 0 Graphes a d f b d f c d d f d f e f × f × × × d g h f d f d d’incidence 1 0 0 −1 0 0 0 1 1 0 −1 0 −1 −1 0 0 0 −1 0 0 −1 1 1 1 8 Octobre 2007 11 / 18 Graphes valués Exemple 2 A Definition (graphe orienté valué) B un ensemble de sommets V un ensemble d’arcs E ⊆ V × V une fonction de valuation f : E → R. 0 6 8 1 3 Definitions C D -1 valeur d’un chemin : somme des valeurs des arcs qui le compose 1 plus court chemin : chemin de valeur minimale Le chemin DCC a longueur −1 + 1 + 1 = 1 Le chemin fermé (circuit) DBD a longueur 1 + 6 = 7 Florent Madelaine (Université d’Auvergne) plus long chemin : chemin de valeur maximale Graphes 8 Octobre 2007 12 / 18 Mise en oeuvre Exercice 2 A B existe-t’il un unique plus court chemin de A à C ? 0 6 8 1 3 est-ce-toujours le cas ? existe-t’il un plus long chemin de A à C ? C D -1 Florent Madelaine (Université d’Auvergne) est-ce-toujours le cas ? 1 Graphes 8 Octobre 2007 13 / 18 Problème du plus court chemin Donnée Exercice source s Un graphe orienté valué sans circuit de valeur négatif ; et, 2 un sommet spécial s, la source. 0 On doit calculer 6 8 1 3 La longueur L(v ) des plus court chemins de la source à chaque sommet du graphe ; et, pour chaque sommet v , la description d’un plus court chemin de la source à v . Florent Madelaine (Université d’Auvergne) -1 Graphes 1 8 Octobre 2007 14 / 18 L’algorithme de Bellman-Ford Idée Pour tout v , on calcule successivement une approximation de L(v ) : si passer par u puis par l’arc (u, v ) pour aller à v , alors on le fait. Initialisation L(s) = 0 L(v ) = ∞, pour v 6= s. On répète l’étape de relaxation Pour tout arc (u, v ), si L(v ) > L(u) + f (u, v ), alors L(v ) ← L(u) + f (u, v ) Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 15 / 18 Mise en oeuvre Exemple sur un graphe 3 4 4 s 9 -4 1 6 2 4 Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 16 / 18 Exercice Appliquer Bellman-Ford 1 1 s 1 2 3 2 -1 3 3 2 3 2 -4 Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 17 / 18 Exercice Algorithme de Bellman-Ford Montrer que si il n’y a pas de circuit de longueur négative, alors les plus courts chemins sont élémentaires (n’a pas de sommet qui y apparaı̂t plus d’une fois). Au plus combien d’étapes sont-elles nécessaires pour l’algorithme de Bellman-Ford ? Écrire l’algorithme en pseudo-code. Comment peut-on stocker le chemin le plus court qui correspond à celui trouvé par l’algorithme de Bellman-Ford ? Adapter le pseudo-code en conséquence. Variation de Bellman-Ford plus court chemin de tous les sommets vers t ? plus long chemin de s vers tous les autres sommets ? Donnez un algorithme dans ces deux cas. Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 18 / 18 Exercice Algorithme de Bellman-Ford Montrer que si il n’y a pas de circuit de longueur négative, alors les plus courts chemins sont élémentaires (n’a pas de sommet qui y apparaı̂t plus d’une fois). Au plus combien d’étapes sont-elles nécessaires pour l’algorithme de Bellman-Ford ? Écrire l’algorithme en pseudo-code. Comment peut-on stocker le chemin le plus court qui correspond à celui trouvé par l’algorithme de Bellman-Ford ? Adapter le pseudo-code en conséquence. Variation de Bellman-Ford plus court chemin de tous les sommets vers t ? plus long chemin de s vers tous les autres sommets ? Donnez un algorithme dans ces deux cas. Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 18 / 18 Exercice Algorithme de Bellman-Ford Montrer que si il n’y a pas de circuit de longueur négative, alors les plus courts chemins sont élémentaires (n’a pas de sommet qui y apparaı̂t plus d’une fois). Au plus combien d’étapes sont-elles nécessaires pour l’algorithme de Bellman-Ford ? Écrire l’algorithme en pseudo-code. Comment peut-on stocker le chemin le plus court qui correspond à celui trouvé par l’algorithme de Bellman-Ford ? Adapter le pseudo-code en conséquence. Variation de Bellman-Ford plus court chemin de tous les sommets vers t ? plus long chemin de s vers tous les autres sommets ? Donnez un algorithme dans ces deux cas. Florent Madelaine (Université d’Auvergne) Graphes 8 Octobre 2007 18 / 18