TIPE : Optimisation de flot sur un réseau de
transport
Youssef IRHBOULA
2018-2019
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
On part d’une situation réelle : un réseau de transport est endommagé,
on souhaite le réparer, plusieurs réparations sont possibles et le budget
est limité.
Comment peut-on mettre en place un algorithme qui optimise la
circulation dans ce réseau ?
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal Graphes de flot
Le problème du sac à dos Flot augmenté
Adaptation des deux problèmes à la question initiale le théorème maxflow mincut
Annexes
Définition 1.1.1
Un graphe de flot est un graphe (S,A) dont deux sommets sont
particuliers : la source s et le puits p. Il est muni d’une fonction de
capacité c de A→ R+ et d’un flot.
Définition 1.1.2
Un flot est une fonction f de A → R+ qui vérifie les propriétés suivantes :
• antisymétrie
• contrainte de capacité : ∀ u,v ∈ S, 0 ≤ f (u, v ) ≤ c(u, v )
•
Ploi des noeuds P (Kirchhoff) : ∀ u ∈ S -{s,p} ,
v ∈S f (u, v ) = v ∈S f (v , u)
Définition 1.1.3
P la valeur d’un flot, notée |f |, par :
On définit
|f | = v ∈S f (s, v )
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal Graphes de flot
Le problème du sac à dos Flot augmenté
Adaptation des deux problèmes à la question initiale le théorème maxflow mincut
Annexes
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal Graphes de flot
Le problème du sac à dos Flot augmenté
Adaptation des deux problèmes à la question initiale le théorème maxflow mincut
Annexes
Définition 1.2.1
Pour G=(S,A,c,f) un graphe de flot donné, on définit son graphe résiduel
Gf = (S, A, cf , 0) où cf (u, v ) = c(u, v ) − f (u, v ).
On vérifie aisément que Gf est bien un graphe de flot
Proposition 1.2.2
Soit G=(S,A,c,f) un graphe de flot, et f’ un flot sur Gf . f+f’ est un flot
sur G et |f + f 0 | = |f | + |f 0 |.
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal Graphes de flot
Le problème du sac à dos Flot augmenté
Adaptation des deux problèmes à la question initiale le théorème maxflow mincut
Annexes
Définition 1.2.3
Un chemin r entre les sommets u et v est une suite finie d’arêtes (uk , vk )
telle que ∀k ≤ n − 1 uk+1 = vk , u0 =u et vn =v.
On définit sa capacité par c(r)=min0≤k≤n (c(uk , vk ))
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal Graphes de flot
Le problème du sac à dos Flot augmenté
Adaptation des deux problèmes à la question initiale le théorème maxflow mincut
Annexes
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal Graphes de flot
Le problème du sac à dos Flot augmenté
Adaptation des deux problèmes à la question initiale le théorème maxflow mincut
Annexes
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal Graphes de flot
Le problème du sac à dos Flot augmenté
Adaptation des deux problèmes à la question initiale le théorème maxflow mincut
Annexes
Proposition 1.2.4
Soit G un graphe doté du flot f. Soit r un chemin de s à p. On a alors fr
de S 2 dans R+ défini par :
f(u,v)=c(r) pour (u,v) ∈ r
f(u,v)=0 sinon
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal Graphes de flot
Le problème du sac à dos Flot augmenté
Adaptation des deux problèmes à la question initiale le théorème maxflow mincut
Annexes
Théorème Maxflow/Mincut
Soit G=(S,A,c,f) un graphe de flot. S’équivalent :
1) f est un flot maximal
2) Il n’y a pas de chemin entre s et p dans Gf
3) Il existe une coupe de capacité |f |
Preuve en annexe
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal L’algorithme de Ford-Fulkerson
Le problème du sac à dos Analyse de complexité
Adaptation des deux problèmes à la question initiale L’algorithme pousser-réétiqueter
Annexes
Données : G un graphe de flot
Résultat : f le flot maximal pour G
1 f← 0
2 tant que il existe un chemin améliorant r faire
3 f← fr
4 fin
5 retourner f
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal L’algorithme de Ford-Fulkerson
Le problème du sac à dos Analyse de complexité
Adaptation des deux problèmes à la question initiale L’algorithme pousser-réétiqueter
Annexes
Proposition 2.1.2
∀v ∈ S
La longueur du plus court chemin de s à v dans Gf augmente de façon
monotone avec les augmentations de flot
Théorème 2.1.3
Si la recherche du chemin se fait par un parcours en largeur, le nombre
d’augmentations de flot est O(|S||A|)
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal L’algorithme de Ford-Fulkerson
Le problème du sac à dos Analyse de complexité
Adaptation des deux problèmes à la question initiale L’algorithme pousser-réétiqueter
Annexes
Définition 2.2.1
Un préflot vérifie les mêmes propriétés que le flot sauf qu’au lieu d’avoir
conservation du flot on a simplement un flot entrant supérieur au flot
sortant : P
∀u ∈ S, e(u)= v ∈S f(u,v)≥0
On appelle e(u) l’excédent de flot, et un sommet est dit débordant si
e(u)>0.
Définition 2.2.2
On définit une fonction hauteur h dans un graphe G=(S,A,c,f) où f est
un préflot par :
h(s)=S, h(p)=0 et h vérifie : ∀(u, v ) ∈ Af h(u)≤h(v)+1
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal L’algorithme de Ford-Fulkerson
Le problème du sac à dos Analyse de complexité
Adaptation des deux problèmes à la question initiale L’algorithme pousser-réétiqueter
Annexes
Données : (u,v) une arête avec u débordant plus haut que v,
cf (u, v ) > 0
Résultat : pousser de u vers v
1 ∆ ← min(e(u), cf (u, v )
2 e(u) ← e(u) − ∆
3 e(v ) ← e(v ) + ∆
4 f (u, v ) ← f (u, v ) + ∆
5 f (v , u) ← f (v , u) − ∆
Données : u un sommet débordant de hauteur inférieure à tous ses
voisins dans Gf
Résultat : met à jour la hauteur de u
1 h(u) ← min(u,v )∈Af (h(v )) + 1
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal L’algorithme de Ford-Fulkerson
Le problème du sac à dos Analyse de complexité
Adaptation des deux problèmes à la question initiale L’algorithme pousser-réétiqueter
Annexes
Données : G=(S,A,c,0) un graphe de flot
Résultat : f un flot maximal sur G
1 initialisation
2 pour u ∈ S faire
3 h(u), e(u) ← 0, c(s, u)
4 f (s, u), f (u, s) ← c(s, u), −c(s, u)
5 fin
6 tant que pousser ou réétiqueter sont applicables faire
7 appliquer une poussée ou un réétiquetage possibles
8 fin
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal L’algorithme de Ford-Fulkerson
Le problème du sac à dos Analyse de complexité
Adaptation des deux problèmes à la question initiale L’algorithme pousser-réétiqueter
Annexes
Borne pour les réétiquetages
Le nombre d’opérations de réétiquetages est un O(|S|2 )
Borne pour les poussées saturantes
Le nombre de poussées saturantes est un O(|S||A|)
Borne pour les poussées non saturantes
Le nombre de poussées non saturantes est un O(|S|2 |A|)
Ainsi si on implémente les opérations élémentaires en O(1) on a une
complexité totale en O(|S|2 |A|)
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Le problème du sac à dos
Adaptation des deux problèmes à la question initiale
Annexes
On dispose d’une liste d’objets de poids et de valeurs données et d’un sac
qui peut contenir un poids maximal. On cherche à maximiser la valeur
contenue dans le sac.
Données : w,v listes des poids et valeurs des n objets, Wmax le poids
maximal
Résultat : la valeur maximale que peut contenir le sac
1 créer K une matrice (n+1)×(Wmax +1) de zeros
2 pour i allant de 0 à n faire
3 pour j allant de 0 à Wmax faire
4 si w(i)¿j alors
5 K(j,i+1)←K(j,i)
6 fin
7 sinon
8 K(j,i+1)←max(K(j,i),K(j-w(i),i)+v(i)))
9 fin
10 fin
11 fin
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Le problème du sac à dos
Adaptation des deux problèmes à la question initiale
Annexes
Correction et complexité
∀i, j K(i,j) donne la valeur maximale pour le poids maximal i et en les j
premiers objets.
L’algorithme a une complexité temporelle en O(nWmax )
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Description d’une situation réelle
Le problème du sac à dos
Proposition d’algorithme
Adaptation des deux problèmes à la question initiale
Annexes
Voici une carte montrant des routes enneigées. Ces routes relient
Saint-Etienne à l’autoroute A75 en passant par différents villages.
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Description d’une situation réelle
Le problème du sac à dos
Proposition d’algorithme
Adaptation des deux problèmes à la question initiale
Annexes
Les usagers se déplacent dans un sens particulier (exemple : vacances).
On a donc bien une source et un puits.
En comptant le trafic en milliers, les arrêts et départs de villages sont
nuls donc la conservation de flot est vérifiée.
Le modèle de graphe de flot est valide.
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Description d’une situation réelle
Le problème du sac à dos
Proposition d’algorithme
Adaptation des deux problèmes à la question initiale
Annexes
Les routes ont des capacités sont diminuées à cause des intempéries. Le
déblaiement a un coût et apporte une capacité supplémentaire à l’arête
déblayée. Le flot peut donc augmenter ce qui donne donc les valeurs des
travaux.
Mais on ne peut appliquer directement l’algorithme du sac à dos car les
valeurs ne sont pas additives.
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Description d’une situation réelle
Le problème du sac à dos
Proposition d’algorithme
Adaptation des deux problèmes à la question initiale
Annexes
On applique un algorithme analogue au sac à dos où la valeur est donnée
par la valeur du flot maximal. Le calcul du flot en tenant compte des
améliorations proposées s’implémente :
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Description d’une situation réelle
Le problème du sac à dos
Proposition d’algorithme
Adaptation des deux problèmes à la question initiale
Annexes
On a alors l’algorithme suivant :
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Description d’une situation réelle
Le problème du sac à dos
Proposition d’algorithme
Adaptation des deux problèmes à la question initiale
Annexes
Complexités
Le calcul initial du flot maximal se fait en O(|S|2 |A|).
La complexité des boucles est en O(nWmax ) augmentations de flot.
Chaque augmentation de flot se fera en utilisant l’algorithme de
Ford-Fulkerson initialisé au flot précédent, qui sera mémoı̈sé dans K. Il y a
donc au plus 1 chemin améliorant, ce qui donne une complexité en O(|A|)
On a alors une complexité totale en O(|A|(|S|2 + nWmax ))
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Description d’une situation réelle
Le problème du sac à dos
Proposition d’algorithme
Adaptation des deux problèmes à la question initiale
Annexes
Généralisation
Le problème de flot maximal sur un graphe à sources et/ou puits multiple
est équivalent au problème de flot maximal sur un surgraphe de flot avec
une supersource (resp. un superpuits) relié aux sources de départ (resp.
aux puits) par des arêtes de capacité infinie.
Notre algorithme peut donc traiter les situations plus générales en
construisant le surgraphe tout en gardant une même complexité
asymptotique. (construction du graphe en O(|S| + |A|))
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Description d’une situation réelle
Le problème du sac à dos
Proposition d’algorithme
Adaptation des deux problèmes à la question initiale
Annexes
Bibliographie :
◦ T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein : Introduction to
Algorithms third edition : The MIT Press, 2009, Chapitre : V-Graph
algorithms, 26-Maximum Flow
◦ L.R. Ford Jr, D.R. Fulkerson, : Flows in Networks : The Rand
corporation, 1962
◦ S. Even : Graph Algorithms : Cambridge University Press, 1979,
Chapitres : 5-Flows in Networks, 6-Application of Network Flow
techniques
◦ A. V. Goldberg, E. Tardos, R.E. Tarjan : Network Flow Algorithms :
Cornell University, 1989, Chapitre : 2-The Maximum flow problem
◦ J. Edmonds, R.M. Karp : Theoretical Improvements in Algorithmic
Efficiency for Network Flow Problems : Journal of the Association for
Computing Machinery, 1972
◦ R. Garfinkel, G.L. Nemhauser : Integer Programming : Springer, 1972,
Chapitre : 13.5.4- Reformulations based on dynamic programming
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Preuves
Le problème du sac à dos
Codes
Adaptation des deux problèmes à la question initiale
Annexes
Définition 1.3.1
Une coupe est une partition de S en deux ensembles E et P tels que
s ∈ E et p ∈ P
On définit
P alorsPla capacité d’une coupe :
c(E,S)= u∈E v ∈P c(u,v)
On définit de même le flot à travers une coupe
Preuve Maxflow Mincut :
1)⇒2) si on a un chemin améliorant r la proposition 1.2.4 nous donne un
flot sur Gf de valeur c(r)¿0, et la proposition 1.2.2 nous donne un flot’
sur G tel que |f | < |f 0 |
2)⇒3) on prend E la composante connexe de s dans Gf
3)⇒1) on a |f | ≤ f (E , P) ≤ c(E , P le cas d’égalité garantit que f est
maximal
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Preuves
Le problème du sac à dos
Codes
Adaptation des deux problèmes à la question initiale
Annexes
Correction de l’algorithme pousser-réétiqueter
La propriété ”f est un préflot” est un invariant de boucle, f renvoyé est un
flot maximal et h est une fonction de hauteur.
En sortie f est un préflot aux excédents nuls, c’est donc un flot. De plus si
h est une fonction de hauteur alors il n’y a pas de chemin de s à t dans
Gf donc f est maximal d’après le théorème Maxflow-Mincut.
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Preuves
Le problème du sac à dos
Codes
Adaptation des deux problèmes à la question initiale
Annexes
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Preuves
Le problème du sac à dos
Codes
Adaptation des deux problèmes à la question initiale
Annexes
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport
Définitions et premières propriétés
Algorithmes de flot maximal
Preuves
Le problème du sac à dos
Codes
Adaptation des deux problèmes à la question initiale
Annexes
Youssef IRHBOULA TIPE : Optimisation de flot sur un réseau de transport