23 février 2007Cours de graphes 4 - Intranet1 Cours de graphes Problèmes de flots. Théorème du Max-flow – Min-cut. Algos de Ford-Fulkerson et Edmonds-Karp.

Slides:



Advertisements
Présentations similaires
Introduction à la Théorie des graphes
Advertisements

La recherche de chemin optimal
Théorie des graphes.
Présentation générale Marc Gengler
Connexité.
Introduction à la Théorie des graphes
Cours d’Algorithmique
Cours d’Algorithmique
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours dAlgorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Cours d’Algorithmique
Cours d’Algorithmique
Problème des 4 couleurs, graphes planaires.
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
18 octobre 2007Cours de compilation 7 - Intranet1 Cours de compilation Génération de code Optimisation de code.
Cours de graphes Problèmes de flots. Théorème du Max-flow – Min-cut.
Quelques applications.
Cours d’Algorithmique
Cours d’Algorithmique
Cours d'algorithmique 9 - Intranet 1 12 décembre 2006 Cours dAlgorithmique Logique de Hoare (début) : Principes et constructions élémentaires.
Cours d'algorithmique 7 - Intranet 1 27 novembre 2006 Cours dAlgorithmique Dérécursion (début) : Équivalences entre programmes récursifs et programmes.
Cours d'algorithmique 4 - Intranet 1 16 novembre 2006 Cours dAlgorithmique Lalgorithme alpha-beta. Sous-arbres alpha et beta dun arbre minimax et propriétés.
Cours d’Algorithmique
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
Cours d'algorithmique 5 - Intranet 1 17/21 novembre 2006 Cours dAlgorithmique Divide and Conquer : principes et applications. Calculabilité.Complexité.
Cours de graphes Les plus courts chemins,
18 octobre 2007Cours de compilation 7 - Intranet1 Cours de compilation Génération de code Optimisation de code.
21 septembre 2007Cours de compilation 2 - Intranet1 Cours de compilation Evaluation partielle etcompilation.
Analyse syntaxique (intro)
Cours d'algorithmique 8 - Intranet 1 4 décembre 2006 Cours dAlgorithmique Dérécursion (fin) : Équivalences entre programmes récursifs et programmes itératifs.
24 septembre 2007Cours de compilation 4 - Intranet1 Cours de compilation Techniques danalyse descendantes.
Cours d’Algorithmique
28 février 2006Cours de graphes 3 - Intranet1 Cours de graphes Les arbres et arborescences. Les arbres de recouvrement. Les arbres de recouvrement minimaux.
Mise à Niveau en Recherche Opérationnelle
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Flots et réseaux de transport
Le réseau Information Jeunesse d’ILE DE FRANCE
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Cours d'algorithmique 2 - Intranet 1 8 novembre 2006 Cours dAlgorithmique Listes, piles et files. Arbres. Types de données abstraits. Implantations.
Houssein ALAEDDINE Kamal SERRHINI
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
Géo 5: La circulation des hommes et des biens
Cours d’Algorithmique
Problème des 4 couleurs, graphes planaires.
Quelques applications.
Quelques graphes particuliers.
Optimisation et Complexité
Cours de graphes Les arbres et arborescences.
16 mars 2007Cours de graphes 7 - Intranet1 Cours de graphes Problèmes NP-complets. Réductions polynômiales.
Algorithme de Bellman-Ford


1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Optimisation dans les réseaux
Programmation linéaire et Recherche opérationnelle
Recherche Opérationnelle
Cours de graphes Marc Gengler Alexandra Bac Sébastien Fournier
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
Cours de graphes 6 - Intranet
DONG Xiaoguang HONG Liang OULDBABA Fadel WANG Min
Atelier de formation : MAT optimisation II (les graphes).
Pour le chemin le plus court pour tous les couples
Coupes efficaces pour la relaxation lagrangienne
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Comment construire un graphique ?
LE FLOT MAXIMAL et LA COUPE MINIMALE
Ceci est un graphe valué Des arcs : 1-2, 1-4, 7-10,…..
Licence d’informatique Algorithmique des graphes
Licence d’Informatique Algorithmique des graphes
Introduction à la Théorie des graphes
 Réseau express régional d'Île-de-France (redirection depuis RER parisien) Réseau express régional d'Île-de-FranceRER parisien  couramment appelé.
Transcription de la présentation:

23 février 2007Cours de graphes 4 - Intranet1 Cours de graphes Problèmes de flots. Théorème du Max-flow – Min-cut. Algos de Ford-Fulkerson et Edmonds-Karp. Applications.

23 février 2007Cours de graphes 4 - Intranet2 Les grandes lignes du cours Définitions de base Définitions de base Connexité Connexité Les plus courts chemins Les plus courts chemins Dijkstra et Bellmann-Ford Dijkstra et Bellmann-Ford Arbres Arbres Arbres de recouvrement minimaux Arbres de recouvrement minimaux Problèmes de flots Problèmes de flots Coloriage de graphes Coloriage de graphes Couplage Couplage Chemins dEuler et de Hamilton Chemins dEuler et de Hamilton Problèmes NP-complets Problèmes NP-complets

23 février 2007Cours de graphes 4 - Intranet3 Les graphes de flots I N T R O D U C T I O N

23 février 2007Cours de graphes 4 - Intranet4 Les graphes de flots Un graphe de flot est :Un graphe de flot est : –un graphe orienté; les arcs portent des capacités (poids), –qui possède deux sommets particuliers qui sont la « source s » et le « puits p ».

23 février 2007Cours de graphes 4 - Intranet5 Les graphes de flots Un graphe de flot est :Un graphe de flot est : –un graphe orienté; les arcs portent des capacités (poids), –qui possède deux sommets particuliers qui sont la « source s » et le « puits p ». On a en plus :On a en plus : –Le graphe est quasi-fortement connexe avec « s » comme unique racine ! –Si nous inversons tous les arcs, le graphe est quasi-fortement connexe avec « p » comme unique racine ! –Donc, tout sommet « u » appartient à un chemin simple orienté qui relie « s » à « p » en passant par « u », ( s ; u ; p ) !

23 février 2007Cours de graphes 4 - Intranet6 Les graphes de flots Exemple : Source « s » Uniquement des arcs sortants ! Les capacités ! Tous les autres sommets peuvent être atteints !

23 février 2007Cours de graphes 4 - Intranet7 10 Les graphes de flots Exemple : Source « s » Puits « p » Uniquement des arcs entrants ! Les capacités ! Depuis tout autre sommet nous pouvons atteindre p !

23 février 2007Cours de graphes 4 - Intranet8 Les graphes de flots Exemple : Source « s » Puits « p » Tout sommet « u » appartient à un chemin simple de « s » vers « p » ! u Les capacités !

23 février 2007Cours de graphes 4 - Intranet9 Les graphes de flots La dynamique :La dynamique : –La source produit ( des m^3 deau, des kWh ), elle est la seule à produire ! –Le puits consomme, il est le seul à le faire ! –Les autres sommets transmettent, sans produire, ni consommer !

23 février 2007Cours de graphes 4 - Intranet10 Les graphes de flots La dynamique :La dynamique : –La source produit ( des m^3 deau, des kWh ), elle est la seule à produire ! –Le puits consomme, il est le seul à le faire ! –Les autres sommets transmettent, sans produire, ni consommer ! Un peu de discipline :Un peu de discipline : –Sur chaque arc le flot est compris entre zéro et la capacité de larc ! –Représentation : flot / capacité

23 février 2007Cours de graphes 4 - Intranet11 Les graphes de flots Exemple : 10 / 20 0 / 10 5 / 10 7 / 10 7 / 15 5 / 17 4 / 5 0 / 15 5 / 10 8 / 8 13 / 20 Source « s » Puits « p » flot / capacité Toutes contraintes sur les capacités sont respectées ! ! !

23 février 2007Cours de graphes 4 - Intranet12 Les graphes de flots Exemple : 10 / 20 0 / 10 7 / 10 7 / 15 5 / 17 4 / 5 0 / 15 5 / 10 8 / 8 13 / 20 Source « s » Puits « p » flot / capacité Les intermédiaires redistribuent exactement ce quils reçoivent ! 5 / en entrée ! 10 en sortie !

23 février 2007Cours de graphes 4 - Intranet13 Les graphes de flots Exemple : 10 / 20 0 / 10 5 / 10 7 / 10 7 / 15 5 / 17 4 / 5 0 / 15 5 / 10 8 / 8 13 / 20 Source « s » Puits « p » flot / capacité Il sort 17 unités de la source « s », il entre 17 unités dans le puits « p », cest ce que nous appellerons le flot !

23 février 2007Cours de graphes 4 - Intranet14 Les graphes de flots Exemple : 10 / 20 0 / 10 5 / 10 7 / 10 7 / 15 5 / 17 4 / 5 0 / 15 5 / 10 8 / 8 13 / 20 Source « s » Puits « p » flot / capacité OUI : + 5

23 février 2007Cours de graphes 4 - Intranet15 Les graphes de flots Exemple : 15 / 20 0 / 10 5 / 10 7 / 10 7 / 15 5 / 17 4 / 5 0 / / 10 8 / 8 18 / 20 Source « s » Puits « p » flot / capacité Le flot est de 22 unités !

23 février 2007Cours de graphes 4 - Intranet16 Les graphes de flots Exemple : 15 / 20 0 / 10 5 / 10 7 / 10 7 / 15 5 / 17 4 / 5 0 / / 10 8 / 8 18 / 20 Source « s » Puits « p » flot / capacité OUI : + 1

23 février 2007Cours de graphes 4 - Intranet17 Les graphes de flots Exemple : 15 / 20 1 / 10 5 / 10 7 / 10 7 / 15 6 / 17 5 / 5 0 / / 10 8 / 8 18 / 20 Source « s » Puits « p » flot / capacité Le flot est de 23 unités ! Voici une « coupe ».

23 février 2007Cours de graphes 4 - Intranet18 Les graphes de flots Exemple : 15 / 20 1 / 10 5 / 10 7 / 10 7 / 15 6 / 17 5 / 5 0 / / 10 8 / 8 18 / 20 Source « s » Puits « p » flot / capacité Le flot est de 23 unités !

23 février 2007Cours de graphes 4 - Intranet19 Pour un graphe de flot, nous voulons connaître :Pour un graphe de flot, nous voulons connaître : –Le flot maximal : pour prévoir les investissements,pour prévoir les investissements, pour connaître la marge de sécurité, cest-à-dire la différence entre le flot normal et le flot maximal !pour connaître la marge de sécurité, cest-à-dire la différence entre le flot normal et le flot maximal ! –La coupe minimale : pour localiser le goulot détranglement,pour localiser le goulot détranglement, pour orienter les investissements !pour orienter les investissements ! Les graphes de flots

23 février 2007Cours de graphes 4 - Intranet20 Application U N E A P P L I C A T I O N

23 février 2007Cours de graphes 4 - Intranet21 Application La SNCF étudie son réseau ferré de la région parisienne :La SNCF étudie son réseau ferré de la région parisienne : –Nous connaissons les capacités des gares de Paris ! –Nous connaissons le réseau et ses capacités ! –Nous connaissons les capacités des gares de banlieue !

23 février 2007Cours de graphes 4 - Intranet22 Application Lyon Austerlitz Lazare Est Nord Versailles Evry Marne la Vallée Saint-Denis S Les capacités daccueil des différentes gares ! P Les capacités daccueil des différentes gares ! Les lignes et leurs capacités !

23 février 2007Cours de graphes 4 - Intranet23 Application Le flot maximal sur ce graphe donne le nombre maximal de voyageurs que le nombre maximal de voyageurs que la SNCF peut prendre en charge, la SNCF peut prendre en charge,... pour peu quil y ait assez de trains dans chaque gare de départ!

23 février 2007Cours de graphes 4 - Intranet24 Application La SNCF étudie son réseau ferré de la région parisienne :La SNCF étudie son réseau ferré de la région parisienne : –Nous connaissons les capacités des gares de Paris ! –Nous connaissons le réseau et ses capacités ! –Nous connaissons les capacités des gares de banlieue ! –Nous limitons les capacités des trains dans les gares !

23 février 2007Cours de graphes 4 - Intranet25 Application Lyon Austerlitz Lazare Est Nord Versailles Evry Marne la Vallée Saint-Denis S Les capacités daccueil des différentes gares ! P Les capacités daccueil des différentes gares ! Les lignes et leurs capacités ! Capacités de trains en gares, au départ !

23 février 2007Cours de graphes 4 - Intranet26 Application La SNCF étudie son réseau ferré de la région parisienne :La SNCF étudie son réseau ferré de la région parisienne : –Nous connaissons les capacités des gares de Paris ! –Nous connaissons le réseau et ses capacités ! –Nous connaissons les capacités des gares de banlieue ! –Nous limitons les capacités des trains dans les gares ! –Nous levons cette limitation pour certaines gares ! –Nous limitons la capacité globale de tous les trains !

23 février 2007Cours de graphes 4 - Intranet27 Application Lyon Austerlitz Lazare Est Nord Versailles Evry Marne la Vallée Saint-Denis S Les capacités daccueil des différentes gares ! P Les capacités daccueil des différentes gares ! Les lignes et leurs capacités ! 25 Capacités de trains en gares, au départ ! 250 Limitationglobaleen trains ! 23

23 février 2007Cours de graphes 4 - Intranet28 Application Le flot maximal sur ce graphe donne le nombre maximal de voyageurs que la SNCF le nombre maximal de voyageurs que la SNCF peut prendre en charge, en tenant compte de peut prendre en charge, en tenant compte de - de la capacité totale des trains, - de la capacité totale des trains par gare de départ, - des capacités des gares et - des capacités des lignes.... pour peu que les gares darrivée puissent accueillir tous les trains !

23 février 2007Cours de graphes 4 - Intranet29 Application Lyon Austerlitz Lazare Est Nord Versailles Evry Marne la Vallée Saint-Denis S Les capacités daccueil des différentes gares ! P Les capacités daccueil des différentes gares ! Les lignes et leurs capacités ! 25 Capacités de trains en gares ! 250 Limitationglobaleen trains ! 23

23 février 2007Cours de graphes 4 - Intranet30 Application Lyon Austerlitz Lazare Est Nord Versailles Evry Marne la Vallée Saint-Denis S Les capacités daccueil des différentes gares ! P Les capacités daccueil des différentes gares ! Les lignes et leurs capacités ! 25 Capacités de trains en gares ! 250 Limitationglobaleen trains ! 23

23 février 2007Cours de graphes 4 - Intranet31 Application Lyon Austerlitz Lazare Est Nord Versailles Evry Marne la Vallée Saint-Denis S Les capacités daccueil des différentes gares ! P Les capacités daccueil des différentes gares ! Les lignes et leurs capacités ! 25 Capacités de trains en gares ! 250 Limitationglobaleen trains ! 23

23 février 2007Cours de graphes 4 - Intranet32 Application Lyon Austerlitz Lazare Est Nord Versailles Evry Marne la Vallée Saint-Denis S Les capacités daccueil des différentes gares ! P Les capacités daccueil des différentes gares ! Les lignes et leurs capacités ! 25 Capacités de trains en gares ! 250 Limitationglobaleen trains ! 23

23 février 2007Cours de graphes 4 - Intranet33 Définitions L E S D E F I N I T I O N S D E B A S E

23 février 2007Cours de graphes 4 - Intranet34 La représentation :La représentation : –Les capacités : c : V x V - > R+ –Si ( u, v ) nexiste pas, alors c ( u, v ) = 0 ! –Les flots : f : V x V - > R ( flots négatifs ! ) –f ( u, v ) >= 0, si le flot va de « u » vers « v », –f ( u, v ) <= 0, si le flot va de « v » vers « u » ! Les contraintes :Les contraintes : –f ( u, v ) <= c ( u, v ) I I Définitions Nous respectons les limites des capacités !

23 février 2007Cours de graphes 4 - Intranet35 La représentation :La représentation : –Les capacités : c : V x V - > R+ –Si ( u, v ) nexiste pas, alors c ( u, v ) = 0 ! –Les flots : f : V x V - > R ( flots négatifs ! ) –f ( u, v ) >= 0, si le flot va de « u » vers « v », –f ( u, v ) <= 0, si le flot va de « v » vers « u » ! Les contraintes :Les contraintes : –f ( u, v ) <= c ( u, v ) –f ( u, v ) = - f ( v, u ) I I Définitions Au signe près, le flot est le même dans un sens ou lautre !

23 février 2007Cours de graphes 4 - Intranet36 La représentation :La représentation : –Les capacités : c : V x V - > R+ –Si ( u, v ) nexiste pas, alors c ( u, v ) = 0 ! –Les flots : f : V x V - > R ( flots négatifs ! ) –f ( u, v ) >= 0, si le flot va de « u » vers « v », –f ( u, v ) <= 0, si le flot va de « v » vers « u » ! Les contraintes :Les contraintes : –f ( u, v ) <= c ( u, v ) –f ( u, v ) = - f ( v, u ) – f ( u, v ) = 0, si u est différent de s et de p. I v V I Définitions Mis à part s et p, aucun sommet ne consomme ou ne produit !

23 février 2007Cours de graphes 4 - Intranet37 La représentation :La représentation : –Les capacités : c : V x V - > R+ –Si ( u, v ) nexiste pas, alors c ( u, v ) = 0 ! –Les flots : f : V x V - > R ( flots négatifs ! ) –f ( u, v ) >= 0, si le flot va de « u » vers « v », –f ( u, v ) <= 0, si le flot va de « v » vers « u » ! Les contraintes :Les contraintes : –f ( u, v ) <= c ( u, v ) –f ( u, v ) = - f ( v, u ) – f ( u, v ) = 0, si u est différent de s et de p. I v V I Définitions

23 février 2007Cours de graphes 4 - Intranet38 Ford et Fulkerson F O R D & F U L K E R S O N U N A L G O R I T H M E G E N E R I Q U E

23 février 2007Cours de graphes 4 - Intranet39 Ford et Fulkerson Initialiser le flot à 0 Tantquil existe un chemin augmentant Augmenter le flot le long Augmenter le flot le long du chemin en question ! du chemin en question !

23 février 2007Cours de graphes 4 - Intranet40 Ford et Fulkerson Comment changer le flot ?Comment changer le flot ? Dabord :Dabord : Donc :Donc : u v f ( u, v ) c ( u, v ) c ( v, u ) f ( u, v ) = - f ( v, u ) f ( u, v ) <= c ( u, v ) - f ( u, v ) = f ( v, u ) <= c ( v, u ) - c ( v, u ) <= f ( u, v ) <= c ( u, v )

23 février 2007Cours de graphes 4 - Intranet41 Ford et Fulkerson Comment changer le flot ?Comment changer le flot ? Ensuite :Ensuite : –Le flot « f ( u, v ) » est le flot dans larc ( u, v ) diminué du flot dans larc ( v, u ) ! u v f ( u, v ) c ( u, v ) c ( v, u ) f ( u, v ) = - f ( v, u ) u v / 5 1 / 4 u v / 5 3 / 4

23 février 2007Cours de graphes 4 - Intranet42 Ford et Fulkerson Comment changer le flot ?Comment changer le flot ? –Le flot dans larc ( u, v ) est porté au maximum ! –Le flot dans larc ( v, u ) est ramené à zéro ! u v f ( u, v ) c ( u, v ) c ( v, u ) f ( u, v ) = - f ( v, u ) u v / 5 0 / 4

23 février 2007Cours de graphes 4 - Intranet43 Ford et Fulkerson Comment changer le flot ?Comment changer le flot ? –Le flot dans larc ( v, u ) est porté au maximum ! –Le flot dans larc ( u, v ) est ramené à zéro ! u v f ( u, v ) c ( u, v ) c ( v, u ) f ( u, v ) = - f ( v, u ) u v / 5 4 / 4 v u / 5 4 / 4

23 février 2007Cours de graphes 4 - Intranet44 Ford et Fulkerson Comment changer le flot ?Comment changer le flot ? r ( u, v ) = c ( u, v ) - f ( u, v ) le flot maximal le flot déjà acquis le flot maximal le flot déjà acquis u v f ( u, v ) c ( u, v ) c ( v, u ) f ( u, v ) = - f ( v, u )

23 février 2007Cours de graphes 4 - Intranet45 Ford et Fulkerson Comment changer le flot ?Comment changer le flot ? r ( u, v ) = c ( u, v ) - f ( u, v ) u v f ( u, v ) c ( u, v ) c ( v, u ) f ( u, v ) = - f ( v, u ) u v / 5 1 / 4 r ( u, v ) = 5 – 2 = 3 r ( v, u ) = 4 – (– 2) = 6

23 février 2007Cours de graphes 4 - Intranet46 Ford et Fulkerson Comment changer le flot ?Comment changer le flot ? r ( u, v ) = c ( u, v ) - f ( u, v ) u v f ( u, v ) c ( u, v ) c ( v, u ) f ( u, v ) = - f ( v, u ) u v / 5 1 / 4 r ( u, v ) = 5 – 2 = 3 r ( v, u ) = 4 – (– 2) = 6

23 février 2007Cours de graphes 4 - Intranet47 Ford et Fulkerson L E G R A P H E R E S I D U E L

23 février 2007Cours de graphes 4 - Intranet48 Ford et Fulkerson Le graphe résiduel R :Le graphe résiduel R : –Il a les mêmes sommets que le graphe de flot G ! –Il possède un arc ( u, v ) si la capacité résiduelle r ( u, v ) dans le graphe G est strictement positive ! –Larc en question est pondéré par la capacité résiduelle ! Un chemin augmentant est un chemin de « s » vers « p » dans le graphe résiduel R !Un chemin augmentant est un chemin de « s » vers « p » dans le graphe résiduel R ! Le poids du chemin augmentant est le poids de larc le plus léger du chemin !Le poids du chemin augmentant est le poids de larc le plus léger du chemin !

23 février 2007Cours de graphes 4 - Intranet49 Ford et Fulkerson U N E X E M P L E

23 février 2007Cours de graphes 4 - Intranet50 Ford et Fulkerson Un exemple :Un exemple : s p u v Le graphe G ! 1/4 2/63/3 0/3 s p u v Construction du graphe R ! 3 1 r ( s, u ) = c ( s, u ) - f ( s, u ) = 4 – 1 = 3 r ( u, s ) = c ( u, s ) - f ( u, s ) = c ( u, s ) + f ( s, u ) = = 1 2/31/2

23 février 2007Cours de graphes 4 - Intranet51 Ford et Fulkerson Un exemple :Un exemple : s p u v Le graphe G ! 1/4 2/63/3 0/3 s p u v Le graphe R ! /31/2 f( u, v ) = 2 – 1 = 1 r ( u, v ) = c ( u, v ) - f ( u, v ) = 3 – 1 = 2 r ( v, u ) = c ( v, u ) - f ( v, u ) = c ( v, u ) + f ( u, v ) = = 3

23 février 2007Cours de graphes 4 - Intranet52 Ford et Fulkerson Un exemple :Un exemple : s p u v Le nouveau graphe G ! 1/4 2/63/3 0/3 s p u v Le graphe R ! Un chemin augmentant de poids 3 ! /31/2

23 février 2007Cours de graphes 4 - Intranet53 Ford et Fulkerson Pour changer le flot :Pour changer le flot : 4 / 7 +2 devient 6 / 7 4 / 7 +2 devient 2 / 7 4 / 7 +2 devient 2 / 5 5 / 7 1 / 5 ou 4 / 7 0 / 5 ou...

23 février 2007Cours de graphes 4 - Intranet54 Ford et Fulkerson Un exemple :Un exemple : s p u v 1/4 5/63/3 3/3 s p u v Construction du graphe R ! Le nouveau graphe G ! Ceci est conservé ! 0/32/2

23 février 2007Cours de graphes 4 - Intranet55 Ford et Fulkerson Un exemple :Un exemple : s p u v 1/4 5/63/3 3/3 s p u v Le graphe R ! Le nouveau graphe G ! /32/2

23 février 2007Cours de graphes 4 - Intranet56 Théorème du Max-flow – Min-Cut L E T H E O R E M E D U F L O T M A X I M A L E T D E L A C O U P E M I N I M A L E

23 février 2007Cours de graphes 4 - Intranet57 Théorème du Max-flow – Min-Cut Une coupe ( S, P ) ( cut en anglais ) :Une coupe ( S, P ) ( cut en anglais ) : Nous partitionnons les sommets du graphe pourNous partitionnons les sommets du graphe pour –obtenir une partie S quasi-fortement connexe de racine s, –et une partie P quasi-fortement connexe de racine p, si nous inversons les arcs. nous inversons les arcs. s p... S P

23 février 2007Cours de graphes 4 - Intranet58 Théorème du Max-flow – Min-Cut Le flot à travers une coupe ( S, P ) : f ( S, P )Le flot à travers une coupe ( S, P ) : f ( S, P ) f ( S, P ) = f ( u, v ) f ( S, P ) = f ( u, v ) Dans le sens S vers P, nous comptons en positif !Dans le sens S vers P, nous comptons en positif ! Dans le sens P vers S, nous comptons en négatif !Dans le sens P vers S, nous comptons en négatif ! s p... S P u S v P 4 / … 2 / … 3 / …

23 février 2007Cours de graphes 4 - Intranet59 Théorème du Max-flow – Min-Cut Le flot à travers une coupe ( S, P ) : f ( S, P )Le flot à travers une coupe ( S, P ) : f ( S, P ) f ( S, P ) = f ( u, v ) = f ( S, P ) = f ( u, v ) = s p... S P u S v P S P S P 4 / … 2 / … - 3 / …

23 février 2007Cours de graphes 4 - Intranet60 Théorème du Max-flow – Min-Cut La capacité dune coupe ( S, P ) : c ( S, P )La capacité dune coupe ( S, P ) : c ( S, P ) c ( S, P ) = c ( u, v ) = c ( S, P ) = c ( u, v ) = Dans le sens S vers P, nous considérons larc !Dans le sens S vers P, nous considérons larc ! Dans le sens P vers S, nous ignorons larc !Dans le sens P vers S, nous ignorons larc ! s p... S P u S v P … / 4 … / 2 … / 3

23 février 2007Cours de graphes 4 - Intranet61 Théorème du Max-flow – Min-Cut Pour toute coupe ( S, P ), nous avons :Pour toute coupe ( S, P ), nous avons : f ( S, P ) <= c ( S, P ) f ( S, P ) <= c ( S, P ) f ( S, P ) = – 3 <= <= = c ( S, P ) f ( S, P ) = – 3 <= <= = c ( S, P ) f ( S, P ) = f ( u, v ) <= f ( u, v ) <= c ( u, v ) = c ( S, P ) u S, v P u S, v P u S, v P u S, v P u S, v P u S, v P f ( u, v ) >= 0 f ( u, v ) >= 0 s p... S P 4 / 7 2 / 5 3 / 4

23 février 2007Cours de graphes 4 - Intranet62 Théorème du Max-flow – Min-Cut Pour le flot f à travers un graphe G, nous avons :Pour le flot f à travers un graphe G, nous avons : –f = f ( S, P ), quelque soit la coupe ( S, P ) ! –Or, pour toute coupe ( S, P ), nous avons f ( S, P ) <= c ( S, P ) ! –Donc, 0 <= f <= min c ( S, P ) coupes ( S, P ) coupes ( S, P ) s p …/7 …/3 …/7 …/5 …/1 …/8 f <= 10 f <= 6

23 février 2007Cours de graphes 4 - Intranet63 Théorème du Max-flow – Min-Cut Les trois conditions suivantes sont équivalentes :Les trois conditions suivantes sont équivalentes : –( 1 ) Le flot f est maximal ! –( 2 ) Le graphe résiduel ne contient pas de chemin augmentant ! –( 3 ) Il existe une coupe ( S, P ) telle que f = c ( S, P ) ! Cette coupe est minimale et saturée ! ( 1 ) => ( 2 )( 1 ) => ( 2 ) –Par absurde ! Sil y avait un chemin augmentant, le flot ne serait pas maximal. ( 3 ) => ( 1 )( 3 ) => ( 1 ) –Comme il existe ( S, P ) telle que f = c ( S, P ), nous avons c ( S, P ) = f <= min c ( S, P ) ! f est donc maximal et égal une coupe. coupes ( S, P )

23 février 2007Cours de graphes 4 - Intranet64 Théorème du Max-flow – Min-Cut ( 2 ) => ( 3 )( 2 ) => ( 3 ) –Il existe une coupe ( S, P ) avec des arcs retour seulement ! –Dans le graphe G, il y a trois cas : s p... S P s p S P u v u v r ( u, v ) = 0 et donc f ( u, v ) = c ( u, v ) x y x y r ( x, y ) = 0 et donc f ( y, x ) = 0 a b a b r ( a, b ) = 0 et donc f ( a, b ) = c ( a, b )

23 février 2007Cours de graphes 4 - Intranet65 Théorème du Max-flow – Min-Cut Les trois conditions suivantes sont équivalentes :Les trois conditions suivantes sont équivalentes : –( 1 ) Le flot f est maximal ! –( 2 ) Le graphe résiduel ne contient pas de chemin augmentant ! –( 3 ) Il existe une coupe ( S, P ) telle que f = c ( S, P ) ! Cette coupe est minimale et saturée !

23 février 2007Cours de graphes 4 - Intranet66 Complexité Le calcul du graphe résiduel R et du chemin augmentant est en ( | E | ) !Le calcul du graphe résiduel R et du chemin augmentant est en ( | E | ) ! Le nombre ditérations peut être aussi élevé que la valeur du flot optimal f* !Le nombre ditérations peut être aussi élevé que la valeur du flot optimal f* ! 0/10000/1000 0/10000/1000 0/ Graphe ! Graphe résiduel !

23 février 2007Cours de graphes 4 - Intranet67 Complexité Le calcul du graphe résiduel R et du chemin augmentant est en ( | E | ) !Le calcul du graphe résiduel R et du chemin augmentant est en ( | E | ) ! Le nombre ditérations peut être aussi élevé que la valeur du flot optimal f* !Le nombre ditérations peut être aussi élevé que la valeur du flot optimal f* ! 1/10000/1000 0/10001/1000 1/1 Nouveau graphe ! Nouveau graphe résiduel ! 1 1

23 février 2007Cours de graphes 4 - Intranet68 Complexité Le calcul du graphe résiduel R et du chemin augmentant est en ( | E | ) !Le calcul du graphe résiduel R et du chemin augmentant est en ( | E | ) ! Le nombre ditérations peut être aussi élevé que la valeur du flot optimal f* !Le nombre ditérations peut être aussi élevé que la valeur du flot optimal f* ! 1/10001/1000 1/10001/1000 0/1 Re-nouveau graphe !

23 février 2007Cours de graphes 4 - Intranet69 Complexité Nous améliorons lalgorithme en choisissant le chemin augmentant le plus lourd à chaque fois !Nous améliorons lalgorithme en choisissant le chemin augmentant le plus lourd à chaque fois ! –Cest celui dont larc le plus léger est le plus lourd possible ! –Il est difficile détablir une borne sur le nombre ditérations ! Lalgorithme dEdmonds et Karp :Lalgorithme dEdmonds et Karp : –choisit le chemin augmentant le plus court (nombre darcs), –il utilise lalgorithme de la vague pour le trouver, –et nécessite au plus O ( | V | * | E | ) itérations, –doù une complexité globale de O ( | V | * | E |^2 ) = O ( | V |^5 ).

23 février 2007Cours de graphes 4 - Intranet70 Complexité Lidée derrière Edmonds-Karp :Lidée derrière Edmonds-Karp : –Il y a de plus en plus de chemins de retour de « p » vers « s » ! –Il y a de moins en moins de chemins de « s » vers « p » ! –Les chemins augmentants deviennent de plus en plus long ! –Commençons donc par nous intéresser à ceux qui sont courts ! Graphe résiduel : Nouveaugraphe s p Le chemin augmentant ! Certains arcs de retour ! s p Certains arcs aller ! Tous les arcs de retour !...

23 février 2007Cours de graphes 4 - Intranet71 V A R I A N T E S Variantes

23 février 2007Cours de graphes 4 - Intranet72 m 1 Variantes Réseau de flot multi-sources, multi-puits :Réseau de flot multi-sources, multi-puits : Ce nest plus le même problème, si s doit envoyer à p !Ce nest plus le même problème, si s doit envoyer à p ! s 1 s n p p S P Avec des capacités assez grandes pour les arcs rouges ! ii n s 1 s n p p 1 Ensuite, nous pouvons faire dépendre la capacité de la couleur (encore appelé multi-capacités) !

23 février 2007Cours de graphes 4 - Intranet73 Synthèse Problèmes de flots.Problèmes de flots. Théorème du Max-flow – Min-cut.Théorème du Max-flow – Min-cut. Algos de Ford-Fulkerson et Edmonds-Karp.Algos de Ford-Fulkerson et Edmonds-Karp. Applications.Applications.