Vous êtes sur la page 1sur 3

Chapitre 4 : Réseaux et flots

Un réseau est un graphe (connexe) orienté N=(V,A) avec une valuation positive de ses arcs. La
valuation c(x,y) d'un arc (x,y) est appelée la capacité de l'arc. On distingue sur N deux sommets
particuliers : une source s (source) et une destination t (sink). Les autres sommets sont les noeuds
intermédiaires du réseau. On suppose que la source n'a pas d'arcs entrants et la destination n'a pas
d'arcs sortants.
Un flot représente l'acheminement d'un flux de matière depuis une source s vers une destination t.
Le flot est ainsi décrit par la quantité de matière transitant sur chacun des arcs du réseau. Cette
quantité doit être inférieure à la capacité de l'arc, qui limite ainsi le flux pouvant transiter par lui.
De plus il n'est pas possible de stocker ou de produire de la matière aux noeud intermédiaires : un
flot vérifie localement la loi de conservation (analogue aux lois de Kirshoff en électricité).

Définition: Un flot F sur un réseau N=(V,A) est une valuation positive des arcs, c'est à dire une
application de A dans R+, qui vérifie les deux propriétés suivantes :

1. Pour tout arc aA, 0 ≤ F(a) ≤ c(a)

2. Pour tout sommet intermédiaire x  V\{s,t}, 𝑦 𝐹 𝑦, 𝑥 = 𝑦 𝐹(𝑥, 𝑦)

Exemple

Flot Maximum (MaxFlow)


La somme 𝐹 − 𝑥 = 𝑦 𝐹(𝑦, 𝑥) est le flot entrant au sommet x
La somme 𝐹 + 𝑥 = 𝑦 𝐹(𝑥, 𝑦) est le flot sortant au sommet x

Le problème du Flot Maximum consiste à trouver un flot de valeur maximale. i.e dans un réseau
N, nous cherchons a envoyer autant de flot possible entre la source s et la destination t, sans excéder la
capacité des arcs.
Les applications de ce problème sont diverses: industrie manufacturière, systèmes de
communication, planification de distribution en transport, l'ordonnancement,...
Plus formellement, le MaxFlow consiste a maximiser v tel que:

Coupe (cut):une coupe est une partition de l'ensemble des nœuds N en deux sous-ensembles S et
S'=N-S. La coupe est notée [S,S']. Alternativement, nous définissons une coupe comme l'ensemble des
arcs dont les extrémités sont dans les différentes partitions S et S'. Une coupe est appelée une coupe s-t
si sS et tS'. Un arc (i,j) tel que iS et jS' est un arc avant, et un arc (i,j) tel que iS' et jS est un
arc arrière de la coupe [S,S'].
Soit (S,S') l'ensemble des arcs avant et (S', S) l'ensemble des arcs arrière.
Par exemple, dans cette figure, les arcs discontinus constituent une coupe s-t. Pour cette coupe,
(S,S') = {(1, 2), (3,4), (5, 6)}, et (S',S) = {(2, 3),(4, 5)}.

La capacité d'une coupe s-t cut (S,S') est la somme des capacités des arcs avant de cette coupe:
C[S,S']= 𝑖,𝑗 ∈(𝑆,𝑆′ ) 𝐶𝑖𝑗

Une coupe s-t dont la capacité est minimum parmi toutes les coupes s-t est une coupe minimum.

N'importe quel flot allant de s vers t doit passer de S à S' à un moment donné, et donc utilise la
capacité des arcs de S à S'. Ce qui veut dire que chaque coupe du graphe met une borne (limite)
sur la valeur du flot maximum possible.

Graphe résiduel
Soit un réseau G et un flot f dans G, le graphe résiduel Gf contient:
 Tous les nœuds de G.
 Seulement les arcs de G qui peuvent un flot supplémentaire.
 Pour chaque arc (u,v), sa capacité résiduelle) dans Gf: cf(u,v)=c(u,v)-f(u,v)
 Pour chaque arc (u, v) de G tel que f(u,v) > 0, il y a f(u,v) unités de flot que nous pouvons
"défaire" (annuler), donc nous ajoutons l'arc (v, u) dans Gf, avec une capacité de
cf(v,u)=cf(v,u)+f(u,v)

Augmentation des chemins dans un graphe résiduel


Soit P, un chemin simple dans Gf qui va de s vers t et qui visite chaque nœud au plus une fois.
Nous définissons la capacité résiduelle de P sous f (notée cf(P))comme la capacité résiduelle
minimum de tout les arcs de P sous f .
L'augmentation de P sous f consiste à ajouter un flot d'une valeur égal à cf(P) à tous ses arcs.
Algorithme Ford-Fulkerson
Max_Flow(G){
MF=0; //la valeur du flot max
Tant qu'il existe un chemin augmentant dans Gf {
Trouver un chemin augmentant P
Cf(P)= plus petite capacité sur P
MF=MF+ Cf(P)
Pour chaque arc (u,v) dans P {
cf(u,v)=cf(u,v) - Cf(P)
cf(v.u)= cf(v.u) + Cf(P)
}
}
}

Exemple

Vous aimerez peut-être aussi