Вы находитесь на странице: 1из 42

Flots et coupes Algorithme de Ford-Fulkerson

Calcul de ots maximum Algorithme de Ford-Fulkerson


Frederic.Guinand@univ-lehavre.fr
Master I - Le Havre

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Rseau Soit G = (S , A) un graphe orient. Chaque arc est valu par une valeur correspondant la capacit du lien associ cet arc. Soit la fonction c : A R + qui associe chaque arc une valeur relle positive de capacit. Soient deux sommets particuliers : un sommet source s et un sommet puits p, tels que v S il existe un chemin qui va de s p et qui passe par v . Un rseau est dni par la donne du quadruplet R = (G, c , s, p).

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Un ot est une fonction f : A R + telle que :


f ((a, b)) c ((a, b)), (a, b) A (1)

f ((s, j ))
j voisins(s) j voisins(s)

f ((j , s)) = v

(2)

f ((p, j ))
j voisins(p) j voisins(p)

f ((j , p)) = v

(3)

f ((i , j ))
j voisins(i) j voisins(i)

f ((j , i )) = 0, i S \{s, p} (4)

v reprsente la valeur du ot. Equation (4) : loi de Kirchhoff.


Frederic.Guinand@univ-lehavre.fr Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Coupe Soit G = (S , A), et R = (G, c , s, p), une coupe est une , tels que : partition de S en deux ensembles V et V
=S V V s V et p V

la capacit de la coupe est gale la somme des capacits des arcs qui font la coupe.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Un rseau
5 7 4 8 3 3 4 9 6

un ot ralisable pour ce rseau


5

2
7

3 2

2
4

2 1
3

3
9

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Problme du calcul du ot maximum

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Connectivit
Pour un graphe connexe, la connectivit est dnie comme le nombre minimum de sommets dont la suppression entrane la perte de connexit. Thorme de Menger (1927) : Pour deux sommets non adjacents quelconques dun graphe connexe G, le nombre minimum dartes dont la suppression entrane leur dconnexion est gal au nombre maximum de chanes deux--deux artes disjointes les connectant dans G. Ce rsultat a t re-formul en termes de rseaux en 1956 par Ford et Fulkerson et est connu sous le nom de thorme maximum ow/minimum cut ou max ow-min cut.
Frederic.Guinand@univ-lehavre.fr Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Enonc du problme

1 2

Intitul du problme : Flot maximum. Description des paramtres : un graphe orient G = (S , A) dont chaque arte est value par une capacit, un sommet source et un sommet puits, Question : quel est le ot maximum quil est possible de faire passer dans ce rseau depuis la source vers le puits ?

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Enonc du problme

Intuitivement cela fait rfrence aux problmes de plomberie ou de trac routier. On dispose dune source et dun puits et le ot doit scouler de la source vers le puits et il doit tre maximum en fonction de la capacit des arcs.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4 8

4 8 3 2 4 10 7 6 7 12 6 10 10

Source

20 6 15 10 5

Puits

20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4 8

4 8 3 2 4 10 7 6 7 12 6 10 10

Source

20 6 15 10 5

Puits

20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4/4 4/8

4/4 4/8 3 2 4 10 7 6 7 12 6 10 4/10

Source

4/20 6 15 10 5

Puits

20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4/4 6/8

4/4 6/8 2/3 2/2 4 10 7 6 7 12 6 10 6/10

Source

6/20 6 15 10 5

Puits

20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4/4 8/8

4/4 8/8 2/3 2/2 2/4 10 7 6 7 12 6 10 8/10

Source

8/20 6 15 10 2/5

Puits

20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4/4 8/8

4/4 8/8 2/3 2/2 2/4 2/10 2/7 2/6 7 12 6 10 10/10

Source

10/20 2/6 15 10 2/5

Puits

20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4/4 8/8

4/4 8/8 2/3 2/2 4/4 2/10 4/7 2/6 7 12 2/6 2/10 10/10

Source

12/20 4/6 15 10 2/5

Puits

20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4/4 8/8

4/4 8/8 2/3 2/2 4/4 2/10 6/7 4/6 2/7 12 2/6 4/10 10/10

Source

14/20 6/6 15 10 2/5

Puits

20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4/4 8/8

4/4 8/8 2/3 2/2 4/4 2/10 7/7 5/6 3/7 12 2/6 5/10 10/10

Source

14/20 6/6 1/15 10 2/5

Puits

1/20

10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Exemple

4/4 8/8

4/4 8/8 2/3 2/2 4/4 2/10 7/7 5/6 7/7 4/12 2/6 9/10 10/10

Source

14/20 6/6 5/15 10 2/5

Puits

5/20

4/10

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Rapport avec la connexit

Il suft de supprimer les arcs pour lesquels la valeur du ot est gale la capacit :

Source

14/20 2/5 10

2/3

Puits
2/6 9/10

2/10 5/6

5/15

5/20

4/10

4/12

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Capacit rsiduelle rsiduelle = c c( (si ,sj ) f ((si , sj )) si ,sj ) la capacit rsiduelle, pour un arc (si , sj ) donn, reprsente la quantit de ot pouvant encore passer par cet arc.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Rseau rsiduel Grsiduel = (S , Arsiduel ) tel que rsiduelle > 0} Arsiduel = {(si , sj ) A, c( si ,sj ) le rseau rsiduel, est le graphe partiel obtenu partir du graphe dorigine mais dont ont t retir tous les arcs dont la capacit rsiduelle est nulle.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Chemin amliorant ou augmentant Un chemin amliorant ou chemin augmentant, est un chemin de Grsiduel , allant de s p et sans circuit

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Capacit rsiduelle dun chemin amliorant La capacit rsiduelle dun chemin amliorant est le minimum des capacits rsiduelles des arcs appartenant au chemin

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Dnitions

Arc satur Un arc est dit satur si sa capacit rsiduelle est nulle.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Principe de rsolution

Principe Tant quil existe un chemin augmentant dans le graphe, on ajoute un ot le long de ce chemin.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson

Principe Crer un graphe rsiduel Gr = G Initialement tous les arcs sont valus par leur capacit Dterminer un chemin augmentant TantQue il existe un chemin augmentant de s vers p Faire mettre jour le graphe rsiduel chercher un nouveau chemin augmentant nTantQue

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson

Principaux points dterminer un chemin augmentant mettre jour le graphe rsiduel

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson

Mise jour du graphe rsiduel Soit c un chemin augmentant Soit cr la capacit rsiduelle de ce chemin Pour tous les arcs (si , sj ) appartenant au chemin Faire mettre jour la capacit rsiduelle de larc nPour

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson

Dtermination dun chemin augmentant Plus dlicat. Examen des chemins du graphe rsiduel parcours du graphe rsiduel. Il peut y avoir remise en question de ots dj valids.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Exemple

4 8 8 2 6 6 8 6

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Exemple

4/0 8/8 8/8 2/0 6/0 6/0 8/8 6/0

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Exemple

4/0 8/8 8/8 2/2 6/2 6/2 8/8 6/2

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Exemple

4/4 8/8 8/4 2/2 6/6 6/6 8/8 6/6

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson

Dpart de la source Voisins ligibles ensemble des voisins... ...dont les arcs entrants depuis la source ne sont pas saturs TantQue (il reste des voisins non visits) ET (chemin pas trouv) Faire choisir un voisin pour poursuivre le chemin augmentant Si ce voisin est le puits Alors le chemin construit est le chemin augmentant valider le ot mettre jour le graphe rsiduel retour au dpart pour la recherche dun nouveau chemin nSi nTantQue

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson

Voisins ligibles Les voisins ligibles dun sommet u sont :


les successeurs v de ce sommet tels que larc (u , v ) nest pas sature les prdecesseurs v de ce sommet tels que larc (v , u ) prsente un ot strictement positif

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Algorithme de Ford-Fulkerson
Condition de terminaison Le calcul du ot maximum se termine lorsquil nexiste plus de chemin augmentant de s vers p. Dtecter une telle situation suppose de marquer les sommets partir desquels aucun nouveau chemin augmentant nest possible. Cette procdure de marquage peut sappuyer par exemple sur un algorithme de parcours classique :
profondeur dabord : lorsque la pile est vide et quaucun chemin augmentant de s p na pu tre dtermin largeur dabord : lorsque la le est vide et quaucun chemin augmentant de s p na pu tre dtermin

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Analyse de la complexit

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Complexit

Exercice.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Rfrences

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Flots et coupes Algorithme de Ford-Fulkerson

Rfrences

Maximal Flow Through a Network. L. R. Ford, Jr. and D. R. Fulkerson. Canadian Journal of Mathematics, vol. 8, pages 399-404, 1956. Ford-Fulkerson Max-Flow Labeling Algorithm. Harvey J. Greenberg. Rapport de recherche. University of Colorado, Denver. Decembre 1998.

Frederic.Guinand@univ-lehavre.fr

Calcul de ots maximum Algorithme de Ford-Fulkerson

Вам также может понравиться