Académique Documents
Professionnel Documents
Culture Documents
GHADI
Faculté des Sciences et Techniques –Tanger S1 2021-2022
Département Génie Informatique Théories des graphes & Applications
Chapitre 5 :
Réseaux de transports-Recherche du flot max
5.1 Problématique
Supposons que en trois dépôts A, B, C, on dispose respectivement de 20, 35 et 10 tonnes de
marchandises. On a des demandes de 25, 20 et 20 tonnes aux destinations D, E et F. Il existe des
possibilités de transport à l'aide de camions. Ces possibilités sont rapportées dans le tableau
suivant :
D E F
A 15 10 0
B 15 5 5
C 5 0 10
Problème : Déterminer un plan de transport permettant de transporter des origines aux destinations
une quantité maximale.
Nous pouvons modéliser ce problème sous le graphe suivant :
avec +
Ei est l’ensemble des voisins sortants du sommet i
avec Ei − est l’ensemble des voisins entrants du sommet i
Définition
Pour un flot f su un réseau de transport G=(V , E , C)
On dit qu’un arc (i , j) est saturé si on a f (i, j)=c (i , j) .
On dit qu’un arc (i , j) est insaturé si on a f (i, j )=0 .
Le flot est dit complet si tout chemin allant de s à p contient au moins un arc saturé.
Définition
Une coupe d’un réseau de transport G=(V , E , C) est une partition noté ( X , X̄ ) telle que :
• V = X∪ X̄
• X ∩ X̄=∅
• s ∈X et p∈ X̄
La capacité de la coupe (X , X̄ ) est définie par c ( X , X̄ )=∑i∈ X , j∈ X̄ c (i , j)
Exemple de coupe
X ={S , B , C , F }
X̄ ={ A , D , E , P }
on a bien
X∪ X̄={S , A , B ,C , D , E , F , P }=V
X ∩ X̄=∅
s ∈ X et p∈ X̄
Exemple
Notation : 35/20 → 35 est la capacité
et 20 est le flux.
Théorème de Ford-Fulkerson
Soit G=(V , E , C) réseau de transport, Pour tout flot réalisable F et toute coupe ( X , X̄ ) , on
a v (F )⩽c (X , X̄ ) ou v(F) est la valeur du flot F.
Proposition
S’il existe une coupe minimale pour un flot F, alors ce flot est maximal.
Définition
Soit G=(V , E , C) réseau de transport. Une chaîne C=(s , i₁ ,i ₂ ,... i l ,i k +1 .. , p) est dite chaîne
améliorante (ou augmentante) pour un flot réalisable f donné si :
f (i k , i k+1 )<c (i k ,i k +1) si l’arc (i k ,i k+ 1) est direct.
f (i k+1 ,i k )>0 si l’arc (i k+1 , i k ) est indirect.
En d’autre terme, une chaîne améliorante est une chaîne pour laquelle les arcs dans le sens direct
n'ont pas atteint leur limite maximum et les arcs en sens indirect ont un flot non nul qui les
traverse.
Théorème
Un flot réalisable est maximal si et seulement s’il n’existe pas de chaîne améliorante.
L'augmentation de flot maximum pour une chaîne est le minimum des écarts entre le flot courant et
le flot maximal pour les arcs directs ou le flot courant pour les arcs indirects.
Algorithme 1 (Marquage)
Initialisation :
Marquer s par (+).
Poser F = 0 (0 est un flot compatible et réalisable)
Boucle - Recherche d’un chaîne améliorante :
Marquer - un sommet qui est extrémité d’un arc dont l’origine est déjà marqué + ou – et sur lequel
le flux peut augmenter :
Marquer + un sommet qui est origine d’un arc dont l’extrémité est déjà marqué + ou – et sur lequel
le flux peut diminuer :
On continue jusqu’à ce que le sommet p soit marqué ( c.à.d trouver un chemin améliorant) ou qu’il
ne soit plus possible de marquer.
ϵ− =min {f (i , j) / (i , j )∈ A− }
ϵ =min( ϵ+ , ϵ− )
+
A est l’ensemble des arcs directs du chemin améliorant.
−
A est l’ensemble des arcs indirects du chemin améliorant.
Remarque si A =∅ alors ϵ =ϵ
− +
Exemple
Le graphe suivant est bien un réseau de transport car
• le graphe est orienté pondéré sans boucle,
• on a une source S ( pas de prédécesseur de S),
• on a un puits P ( pas de successeur de P),
• on a un chemin de S vers P ( ex. S→A→P)
Ci-après la trac de l’algorithme de Ford-Fulkerson via la méthode de marquage :
Solution 1 :
Initialisation F=0
On marque S par un +
Étape 1
d’où F=0+ ϵ =1
Étape 2
→ On marque S par un +
Solution 2 :
Initialisation F=0
On marque S par un +
Étape 1
d’où F=0+ ϵ =1
Étape 2
→ On marque S par un +
ϵ− =min {f ( A , B)}=1
ϵ =min {ϵ + , ϵ− }=min(4,1)=1
Étape 3
→ On marque S par un +
ϵ =ϵ+ =2
En d’autre terme, On peut définir le graphe résiduel comme le graphe non orienté sous-jacent, où,
sur chaque arête, nous associons deux valeurs: la capacité résiduelle et le flot déjà affecté.
Remarque : Dans le graphe d’écart, on ne parle que de capacité (pas de flux) : capacité et capacité
retour.
Le réseau résiduel indique le long de quels arcs on peut augmenter ou diminuer le flot.
L’intérêt du graphe d’écart apparaît dans le théorème suivant :
Théorème
Soit f un flot de G (de s à p ) et G’ ( f ) le réseau résiduel associé à f . Une condition
nécessaire et suffisante pour que le flot f soit maximal est qu’il n’existe pas de chemin de s à
p dans G’(f ) .
Exemple
Dans le graphe initial Dans le graphe d’écart (résiduel)
0< f (i , j)<c (i , j)
Initialisation
F=0 ( flot compatible et réalisable)
Étape 1 :
Soit le chemin améliorant SAP ( de la même manière de que la méthode de marquage). ϵ =1
donc flot f =1 . Donc le réseau d’écart sera :
Étape 2 :
Soit le chemin améliorant SBP. ϵ =3 donc flot f =3 . Donc le réseau d’écart sera :
Les flux dans graphe finale seront les capacités retours du dernier graphe d’écart (ici) :
Soit la coupe ( X , X̄ ) avec X ={S , B } et X̄ ={ A , P}