Flots et coupesAlgorithme de Ford-Fulkerson
Calcul de flots maximumAlgorithme de Ford-Fulkerson
Master I - Le Havre
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
RéseauSoit G = (S, A) un graphe orienté.Chaque arc est valué par une valeur correspondant à lacapacité du lien associé à cet arc.Soit la fonction c : A→ R+ qui associe à chaque arc unevaleur réelle positive de capacité.Soient deux sommets particuliers : un sommet source s etun sommet puits p, tels que ∀v ∈ S il existe un chemin quiva de s à p et qui passe par v .Un réseau est défini par la donnée du quadrupletR = (G, c, s, p).
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Un flot est une fonction f : A→ R+ telle que :
f ((a, b)) ≤ c((a, b)),∀(a, b) ∈ A (1)
∑j∈voisins(s)
f ((s, j))−∑
j∈voisins(s)f ((j , s)) = v (2)
∑j∈voisins(p)
f ((p, j))−∑
j∈voisins(p)f ((j , p)) = −v (3)
∑j∈voisins(i)
f ((i , j))−∑
j∈voisins(i)f ((j , i)) = 0,∀i ∈ S\{s, p} (4)
v représente la valeur du flot.Equation (4) : loi de Kirchhoff.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Coupe
Soit G = (S, A), et R = (G, c, s, p), une coupe est unepartition de S en deux ensembles V et V̄ , tels que :
V ∪ V̄ = Ss ∈ V et p ∈ V̄
la capacité de la coupe est égale à la somme descapacités des arcs qui font la coupe.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Un réseau un flot réalisable pour ce réseau
98
4
7
5
3
3
4
6
3
9
25
73
4 1
82
3
2
6
4
1
2
2
3
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Problème du calcul du flot maximum
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Connectivité
Pour un graphe connexe, la connectivité est définie commele nombre minimum de sommets dont la suppressionentraîne la perte de connexité.Théorème de Menger (1927) :Pour deux sommets non adjacents quelconques d’ungraphe connexe G, le nombre minimum d’arêtes dont lasuppression entraîne leur déconnexion est égal au nombremaximum de chaînes deux-à-deux arêtes disjointes lesconnectant dans G.Ce résultat a été re-formulé en termes de réseaux en 1956par Ford et Fulkerson et est connu sous le nom dethéorème maximum flow/minimum cut ou max flow-mincut.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Enoncé du problème
1 Intitulé du problème : Flot maximum.2 Description des paramètres : un graphe orienté
G = (S, A) dont chaque arête est valuée par une capacité,un sommet source et un sommet puits,
3 Question : quel est le flot maximum qu’il est possible defaire passer dans ce réseau depuis la source vers le puits ?
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Enoncé du problème
Intuitivement cela fait référence aux problèmes deplomberie ou de trafic routier.On dispose d’une source et d’un puits et le flot doits’écouler de la source vers le puits et il doit être maximumen fonction de la capacité des arcs.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
8
4
15
107
8
1010
12
67
5 4
23
4
6
20
20
10
610
Source Puits
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
8
4
15
107
8
1010
12
67
5 4
23
4
6
20
20
10
610
Source Puits
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
Source Puits
4/4
4/8
4/20
4/8
4/10
4/4
1510
6
20
5
3 2
4
7 6
1210
10
7
6
10
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
Source Puits6/20
6/8
2/3
6/8
6/102/2
4/44/4
1510
20
6 5
7
10 12
6
4
10
7
6
10
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
Source Puits8/20
8/8
2/4
8/8
8/10
2/5
4/4
2/3 2/2
4/4
1510
6
2010
7 6
12
10
7
6
10
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
Source Puits2/3
2/5 2/42/6
2/7 2/6
10/10
2/10
10/20
8/8
4/4
2/2
4/4
8/8
1510
2010 12
7
6
10
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
Source Puits2/3
2/5
8/8
4/4
2/2
4/4
8/8
1510
2010 12
7
2/6
2/10
10/1012/20
4/6
4/7
4/4
2/6
2/10
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
Source Puits2/3
2/5
8/8
4/4
2/2
4/4
8/8
1510
2010 12
2/10
10/10
2/6
4/4
14/20
6/6
6/7 4/6
2/7
4/10
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
Source Puits2/3
2/5
8/8
4/4
2/2
4/4
8/8
10
10 12
2/10
10/10
2/6
4/46/6
1/15
1/20
7/7 5/6
3/7
5/10
14/20
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Exemple
Source Puits2/3
2/5
8/8
4/4
2/2
4/4
8/8
10 2/10
10/10
2/6
4/46/6
14/20
7/7 5/6
7/7
9/10
4/124/105/20
5/15
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Rapport avec la connexité
Il suffit de supprimer les arcs pour lesquels la valeur du flotest égale à la capacité :
Source Puits2/3
2/5
10 2/10 2/6
14/20
5/65/15
5/204/10 4/12
9/10
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Capacité résiduelle
crésiduelle(si ,sj )
= c(si ,sj ) − f ((si , sj))
la capacité résiduelle, pour un arc (si , sj) donné,représente la quantité de flot pouvant encore passer parcet arc.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Réseau résiduelGrésiduel = (S, Arésiduel) tel que
Arésiduel = {(si , sj) ∈ A, crésiduelle(si ,sj )
> 0}
le réseau résiduel, est le graphe partiel obtenu à partir dugraphe d’origine mais dont ont été retiré tous les arcs dontla capacité résiduelle est nulle.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Chemin améliorant ou augmentant
Un chemin améliorant ou chemin augmentant, est unchemin de Grésiduel, allant de s à p et sans circuit
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Capacité résiduelle d’un chemin améliorantLa capacité résiduelle d’un chemin améliorant est leminimum des capacités résiduelles des arcs appartenantau chemin
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Définitions
Arc saturéUn arc est dit saturé si sa capacité résiduelle est nulle.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Algorithme de Ford-Fulkerson
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Principe de résolution
PrincipeTant qu’il existe un chemin augmentant dans le graphe, onajoute un flot le long de ce chemin.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Algorithme de Ford-Fulkerson
Principe
Créer un graphe résiduel Gr = GInitialement tous les arcs sont valués par leur capacitéDéterminer un chemin augmentantTantQue il existe un chemin augmentant de s vers p Faire
mettre à jour le graphe résiduelchercher un nouveau chemin augmentant
finTantQue
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Algorithme de Ford-Fulkerson
Principaux pointsdéterminer un chemin augmentantmettre à jour le graphe résiduel
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Algorithme de Ford-Fulkerson
Mise à jour du graphe résiduel
Soit c un chemin augmentantSoit cr la capacité résiduelle de ce cheminPour tous les arcs (si , sj) appartenant au chemin Faire
mettre à jour la capacité résiduelle de l’arcfinPour
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Algorithme de Ford-Fulkerson
Détermination d’un chemin augmentant
Plus délicat.Examen des chemins du graphe résiduel→ parcours dugraphe résiduel.Il peut y avoir remise en question de flots déjà validés.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Exemple
8
6
4
6
2
8
8
6
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Exemple
8/8
8/8
8/86/0
6/0
2/0
6/0
4/0
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Exemple
6/2
6/2
2/2
6/2
4/0
8/8
8/8
8/8
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Exemple
6/6
6/6
8/4
6/6
4/4
8/8
8/8
2/2
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Algorithme de Ford-Fulkerson
Départ de la sourceVoisins éligibles← ensemble des voisins......dont les arcs entrants depuis la source ne sont pas saturésTantQue (il reste des voisins non visités) ET (chemin pas trouvé) Faire
choisir un voisin pour poursuivre le chemin augmentantSi ce voisin est le puits Alors
le chemin construit est le chemin augmentantvalider le flotmettre à jour le graphe résiduelretour au départ pour la recherche d’un nouveau chemin
finSifinTantQue
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Algorithme de Ford-Fulkerson
Voisins éligibles
Les voisins éligibles d’un sommet u sont :les successeurs v de ce sommet tels que l’arc (u, v) n’estpas saturéeles prédecesseurs v ′ de ce sommet tels que l’arc (v ′, u)présente un flot strictement positif
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Algorithme de Ford-Fulkerson
Condition de terminaisonLe calcul du flot maximum se termine lorsqu’il n’existe plusde chemin augmentant de s vers p.Détecter une telle situation suppose de marquer lessommets à partir desquels aucun nouveau cheminaugmentant n’est possible. Cette procédure de marquagepeut s’appuyer par exemple sur un algorithme de parcoursclassique :
profondeur d’abord : lorsque la pile est vide et qu’aucunchemin augmentant de s à p n’a pu être déterminélargeur d’abord : lorsque la file est vide et qu’aucun cheminaugmentant de s à p n’a pu être déterminé
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Analyse de la complexité
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Complexité
Exercice.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Références
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Flots et coupesAlgorithme de Ford-Fulkerson
Références
1 Maximal Flow Through a Network. L. R. Ford, Jr. and D. R.Fulkerson. Canadian Journal of Mathematics, vol. 8, pages399-404, 1956.
2 Ford-Fulkerson Max-Flow Labeling Algorithm. Harvey J.Greenberg. Rapport de recherche. University of Colorado,Denver. Decembre 1998.
[email protected] Calcul de flots maximum Algorithme de Ford-Fulkerson
Top Related