1 / 18

Théorie des graphes

Théorie des graphes. Plan du cours. Que peut-on faire avec la théorie des graphes ? Concepts généraux en théorie des graphes 2. Le problème du plus court chemin 3. Flots et réseaux de transport. 3. Flots dans les réseaux. PROBLEME DU FLOT MAXIMUM. Recherche de flots maximaux.

darius
Download Presentation

Théorie des graphes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Théorie des graphes

  2. Plan du cours • Que peut-on faire avec la théorie des graphes ? Concepts généraux en théorie des graphes 2. Le problème du plus court chemin 3. Flots et réseaux de transport

  3. 3. Flots dans les réseaux PROBLEME DU FLOT MAXIMUM

  4. Recherche de flots maximaux Objectif : Faire transiter la plus grande quantité (informations, marchandises, personnes) d’une source vers une destination au sein d’un réseau. Un réseau avec capacitésR = (X,U,C) d’ordre n est un graphe orienté asymétrique* valué dans lequel : • -1(x1) = Ø x1 est le sommet entrée (source) • (xn) = Ø xn est le sommet sortie (destination) *  (xi,xj)  U (xj,xi)  U (arc à sens unique) Notation :  (xi,xj)  U : C(xi,xj) = Cij capacité de l’arc (xi,xj)

  5. Exemple de réseau avec capacités b [3] [7] [5] Entrée Sortie a [4] d e [2] [5] [2] c

  6. Définition du flot réalisable Un flotF sur un réseau avec capacités R = (X,U,C) est une valuation de l’ensemble des arcs U. Le flot correspond à la quantité qui transite sur le réseau. Notation :  (xi,xj)  U : F(xi,xj) = Fij flot sur l’arc (xi,xj) Un flot F sur R = (X,U,C) est réalisable s’il satisfait les contraintes de : • Capacité des arcsLe flot sur un arc ne dépasse pas la capacité de cet arc. • Conservation du flux (loi de Kirchhoff)La somme des flots entrant dans un sommet est égale à la somme des flots sortant de ce sommet.

  7. Définition du flot maximal La valeur d’un flot F sur R = (X,U,C) correspond à la quantité totale qui transite sur le réseau. La valeur du flot correspond à la somme des flots sortant de l’entrée qui est égale à la somme des flots convergeant vers la sortie (conservation du flux). Un flot F sur R = (X,U,C) est maximal si F est un flot réalisable qui maximise la valeur du flot.

  8. Connaissant les capacités des arcs d'un réseau de transport, le problème du flot maximum consiste à trouver quelle est la quantité maximum de flot qui peut circuler de la source à la destination. L'algorithme le plus connu pour résoudre ce problème est celui de Ford et Fulkerson. Nous verrons l’approche par cette méthode qui consiste à construire un graphe "d'écart" dans lequel on recherche un chemin.

  9. Construction du graphe d’écart Un arc (xi,xj) du réseau R = (X,U,C) est saturé par le flot F si : Fij = Cij (capacité maximale atteinte) Un arc (xi,xj) du réseau R = (X,U,C) est antisaturé par F si : Fij = 0 (flot inexistant) A partir du réseau R = (X,U,C) et d’un flot F, on peut construire le graphe d’écartG = (X,F(U),E) qui traduit les augmentations ou diminutions possibles du flot F dans le réseau.  (xi,xj)  U : Si Fij < Cij (non saturé) alors (xi,xj)  F(U) , Eij = Cij-Fij(augmentation) Si Fij > 0 (non antisaturé) alors (xj,xi)  F(U) , Eji = Fij(diminution)

  10. Exemple de graphe d’écart b b 3 [3] 2 5 [7] 3 5 a 2 [4] d a 2 d 2 1 2 [2] 2 4 [5] 4 c c Réseau R = (X,U,C) Graphe d’écart G = (X,F(U),E)

  11. Construction d’un flot maximal Algorithme de Ford-Fulkerson Initialisation du flot F : Fij = 0 (arcs antisaturés) Fin = FAUX Tant que NON Fin Construction du graphe d’écart G = (X,F(U),E) Recherche d’un chemin C dans G depuis l’entrée vers la sortie Si C existe Alors Calcul de l’augmentation Affectation de l’augmentation Sinon Fin = VRAI

  12. ALGORITHME DE FORD-FULKERSON,GRAPHE D'ECART • on part d'un flot compatible. Ensuite, on construit un graphe d'écart à partir de ce flot. Ce graphe d'écart représente les modifications de flot possibles sur chaque arc. Sur ce graphe, les noeuds ont exactement la même signification que dans le réseau de transport. • Par contre, un arc indiquera de combien il est possible d'augmenter le flot entre deux noeuds. Ainsi, • pour un arc u = (x;y), on créera dans le graphe d'écart: un arc de x à y de capacité c'((x;y)) = c(u) - f(u) si c(u) > f(u), un arc de y à x de capacité c'((y;x)) = f(u) si f(u)> 0. • Ensuite, dans ce graphe d'écart, on cherchera un chemin de l’entrée à la sortie. Si on n'en trouve pas, le problème est résolu. Sinon, on augmente le flot sur ce chemin. Le flot sera augmenté de la plus petite capacité des arcs du chemin. Autrement dit, le chemin C sera augmenté de: • min{c'(u) | u étant sur le chemin C}

  13. Exemple : réseau et graphe d’écart correspondant

  14. (A,B,C,D,F,G) est un chemin pour aller de A à G. On peut augmenter le flot de: • 2 entre A et B, 3 entre B et C,1 entre C et D,4 entre D et F, 2 entre F et G. • On augmentera donc le flot de 1 sur ce chemin, ce qui signifie: • augmenter de 1 entre A et B,réduire de 1 entre C et B,augmenter de 1 entre C et D,augmenter de 1 entre D et F,augmenter de 1 entre F et G.

  15. a [0,10] [0,20] [0,30] 1 [0,15] [0,45] [0,5] [0,10] b [0,25] E 2 S [0,20] [0,5] [0,25] c [0,10] 3 [0,20] [0,30] [0,10] d 3. Flots dans les réseauxFlot dans un réseau de transport • On veut acheminer un produit à partir de 3 entrepôts (1,2,3) vers 4 clients (a,b,c,d) • Quantités en stock : 45, 25, 25 • Demande des clients : 30,10, 20, 30 • Limitations en matière de transport d’un entrepôt à un client

  16. a [0,10], 10 1 [0,20], 15 [0,30], 25 [0,15], 5 [0,45], 35 [0,10], 10 b [0,5], 5 [0,25], 25 E 2 S [0,20], 15 [0,5], 5 [0,25], 20 c [0,10], 10 3 [0,20], 20 [0,30], 30 [0,10], 10 d 3. Flots dans les réseauxExemple de flot Valeur du flot = 80 Ce flot est un flot complet, c-à-d, tout chemin de E à S comporte au moins un arc saturé

  17. 3. Flots dans les réseauxProblèmes • Détermination d’un flot réalisable ou compatible • Détermination d’un flot maximum

  18. 3. Flots dans les réseaux Détermination d’un flot maximum • Principe de l’algorithme de Ford-Fulkerson • Construire un flot complet • Améliorer itérativement ce flot • Construire un flot complet • Examiner tous les chemins de E à S de façon systématique • Pour chaque chemin faire passer un flot égal à la capacité résiduelle minimale de ce chemin

More Related