La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 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.

2 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

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

4 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 ».

5 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 ) !

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

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

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

9 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 !

10 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é

11 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 ! ! !

12 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 / 10 10 en entrée ! 10 en sortie !

13 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 !

14 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

15 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 / 15 10 / 10 8 / 8 18 / 20 Source « s » Puits « p » flot / capacité Le flot est de 22 unités !

16 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 / 15 10 / 10 8 / 8 18 / 20 Source « s » Puits « p » flot / capacité OUI : + 1

17 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 / 15 10 / 10 8 / 8 18 / 20 Source « s » Puits « p » flot / capacité Le flot est de 23 unités ! Voici une « coupe ».

18 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 / 15 10 / 10 8 / 8 18 / 20 Source « s » Puits « p » flot / capacité Le flot est de 23 unités !

19 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 -----------------------------------------------------------------

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

21 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 !

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

23 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!

24 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 !

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

26 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 !

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

28 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 !

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

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

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

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

33 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

34 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 !

35 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 !

36 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 !

37 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 -----------------------------------------------------------------

38 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

39 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 !

40 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 )

41 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 + 2 3 / 5 1 / 4 u v - 1- 1- 1- 1 2 / 5 3 / 4

42 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 5 / 5 0 / 4

43 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 - 4- 4- 4- 4 0 / 5 4 / 4 v u + 4+ 4+ 4+ 4 0 / 5 4 / 4

44 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 )

45 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 + 2 3 / 5 1 / 4 r ( u, v ) = 5 – 2 = 3 r ( v, u ) = 4 – (– 2) = 6

46 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 - 2- 2- 2- 2 3 / 5 1 / 4 r ( u, v ) = 5 – 2 = 3 r ( v, u ) = 4 – (– 2) = 6

47 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

48 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 !

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

50 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 ) = 0 + 1 = 1 2/31/2

51 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 ! 3 1 4 2 3 3 23 2/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 ) = 2 + 1 = 3

52 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 ! 3 1 4 2 3 3 23 Un chemin augmentant de poids 3 ! +3 +3 +1 -2-2-2-2 2/31/2

53 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...

54 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 ! 3 1 3 Le nouveau graphe G ! Ceci est conservé ! 0/32/2

55 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 ! 3 1 3 Le nouveau graphe G ! 1 5 5 3 0/32/2

56 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

57 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

58 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 / …

59 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 ) = 4 + 2 - 3 f ( S, P ) = f ( u, v ) = 4 + 2 - 3 s p... S P u S v P S P S P 4 / … 2 / … - 3 / …

60 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 ) = 4 + 2 c ( S, P ) = c ( u, v ) = 4 + 2 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

61 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 ) = 4 + 2 – 3 <= 4 + 2 <= 7 + 5 = c ( S, P ) f ( S, P ) = 4 + 2 – 3 <= 4 + 2 <= 7 + 5 = 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

62 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

63 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 )

64 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 )

65 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 !

66 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/1 10001000 1 10001000 Graphe ! Graphe résiduel !

67 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 ! 9991000 1 1000999 Nouveau graphe résiduel ! 1 1

68 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 !

69 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 ).

70 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 !...

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

72 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) !

73 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.


Télécharger ppt "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."

Présentations similaires


Annonces Google