Vous êtes sur la page 1sur 20

Chap 4 :Flot maximum et flot à coût minimum

La notion de flot est utilisée dans des contextes variés:


- Trafic dans un réseau routier
- Electricité dans un réseau de distribution d’énergie
- Transport de marchandise dans un réseau routier, aérien, maritime.
- Transport d’informations et des données dans un réseau informatique
-…etc.

Le réseau se modélise par un graphe valué par c(x,y) : capacité de l’arc (x,y)
Un arc représente:
- un tronçon de route
- une liaison entre deux entrepôts, deux ports, deux aéroports etc.…
- une connexion entre deux ordinateurs
- une connexion électrique entre deux villes
- etc. …

ENSI Flot à valeur max et à coût min 1


I. Flot sur un graphe: Formulation
Nous souhaitons trouver:
- le trafic maximum entre 2 villes s et t sur un réseau de trafic routier.
- Transporter le maximum de marchandises entre 2 villes.
- …etc.
Un flot est une fonction f : U → IR vérifiant la loi de conservation
( x , y )→ f ( x , y )

⎧− V ( f ) si y = s

∑ f ( x , y ) − ∑ f ( y , x ) = ⎨0 si y ≠ s , t
x∈P ( y ) x∈S ( y ) ⎪V ( f ) si y = t

avec f ( x , y ) est le flot de l' arc (x,y)


V(f) est la valeur du flot total
Sous la contrainte : ∀ u = (x,y) ∈ U, a(u) ≤ f(u) ≤ b(u)

ENSI Flot à valeur max et à coût min 2


I.1 Formulation
Flot compatible: Un flot compatible est un flot vérifiant:
∀ u = (x,y) ∈ U, a(u) ≤ f(u) ≤ b(u)
∀ A ⊂ X , s ∈ A et t ∉ A

V( f ) = ∑ f ( u ) − ∑ f ( u ) ≤ ∑ b( u ) − ∑ a( u )
u∈ΓA+ u∈ΓA− u∈ΓA+ u∈ΓA−

Γ A+ = {u = ( x , y ) ∈ U / x ∈ A et y ∉ A }
Γ A− = {u = ( y , x ) ∈ U / x ∈ A et y ∉ A }
Flot complet: un flot complet est un flot compatible pour
lequel tout chemin allant de s à t possède au moins un arc
saturé [c-à-d f(u)=b(u)]

ENSI Flot à valeur max et à coût min 3


I.1 Formulation
Position du problème:
Le problème du flot à valeur maximum est de trouver les valeurs f(x,y) qui
maximise V(f).

Le problème peut être formulé de la manière suivante:

⎧ Maximiser V(f)
⎪ Sous contrainte s
⎪ ⎧− V ( f ) si y = s
⎪⎪ ⎪
⎨ ∑ f ( x , y ) − ∑ f ( y , x ) = ⎨0 si y ≠ s , t
⎪ x∈P ( y ) x∈S ( y ) ⎪V ( f ) si y = t
⎪ ⎩
⎪a ( x , y ) ≤ f ( x , y ) ≤ b ( x , y ) ∀( x , y ) ∈ U
⎪⎩

ENSI Flot à valeur max et à coût min 4


I.1 Formulation
Remarque
Le problème du flot à valeur maximum peut être résolu par la
programmation linéaire.

⎧Maximiser V(f)
⎪ Sous contraintes x = vecteur des f(x,y) avec (x,y) ∈ U
⎪ ⎡1⎤
⎪ Les inconnues sont V(f ) et x
⎢0⎥
⎪ ⎢ ⎥
⎪ A = matrice d' incidence
⎨ Ax + ⎢ M ⎥V ( f ) = 0
⎪ ⎢0⎥ sommets - arcs du graphe
⎪ ⎢ ⎥
⎪ ⎢⎣− 1⎥⎦
⎪B ≤ x ≤ B Bsup = vecteur des bornes supérieures
⎪ inf sup
⎩ Binf = vecteur des bornes inférieure s

ENSI Flot à valeur max et à coût min 5


I.2 Coupe d’un graphe
Une coupe est une partition des sommets noté ( N , N ) telle que:

N∩N =Φ
N ∪N = X
s∈ N & t ∈ N

On dira que ( N,N ) une coupe séparant s et t

La capacité d’une coupe:

C (N , N ) = ∑ b( x , y ) − ∑ a ( y , x )
x∈N x∈N
y∈N y∈N

ENSI Flot à valeur max et à coût min 6


I.2 Coupe d’un graphe
Exemple
[a(u),f(u),b(u)]=[borne inf, flot sur u, borne sup]
(0,2,2)
a c
(0,4,10) (0,3,6)
(0,1,3)
V(f)=7 s t V(f)=7
(0,2,4)

(0,3,3) b d (0,4,4)
(0,5,5)
Question:
Vérifier que quelque soit la coupe, la capacité d’une coupe est
supérieure ou égale à la valeur du flot.
ENSI Flot à valeur max et à coût min 7
I.3 Théorème de Ford & Fulkerson
Théorème: Pour tout flot ( f(x,y) )( x , y )∈U et pour toute coupe ( N, N )
on a V ( f ) ≤ C ( N, N ).
Preuve:
Pour une coupe donnée ( N,N ), on note par f ( N,N ) = ∑ f ( x, y )
x∈N
y∈ N

⎧0 si y ≠ s , t
Comme ∑ f ( x , y ) − ∑ f ( y , x ) = ⎨
x∈P ( y ) x∈S ( y ) ⎩V ( f ) si y = t

L' addition des deux équations donne f ( N, N ) − f ( N , N ) = V ( f )


Comme ∀ (x,y), f(x ,y) ≤ c(x,y)
⇒ V ( f ) = f ( N, N ) − f ( N , N ) ≤ c ( N , N )

ENSI Flot à valeur max et à coût min 8


II. Algorithme de Ford & Fulkerson: Principe
Etape N°1: Rendre le flot complet
A partir d’un flot f donné sur les arcs, existe-t-il un chemin µ de s à t le
long duquel aucun arc n’est saturé. nous pouvons augmenter le flot par
une valeur θ:
θ = min (c( x , y ) − f ( x , y ))
( x , y )∈µ

⇒ ∀( x,y ) ∈ µ , f(x,y) → f(x,y) + θ et V ( f ) → V ( f ) + θ

Etape N°2: Chercher une chaîne ζ joignant s et t telle que nous pouvons
augmenter le flot par une valeur θ: Choisir θ = min( θ1 ,θ 2 )
θ = min (c( x , y ) − f ( x , y )) θ 2 = min ( f ( y , x ))
1
( x , y )∈ζ ( x , y )∈ζ
( x , y )∈U ( y , x )∈U

⇒ ∀( x,y ) ∈ ζ et ( x , y ) ∈ U , f(x,y) → f(x,y) + θ


∀( x,y ) ∈ ζ et ( y , x ) ∈ U , f(y,x) → f(y,x) − θ

et V ( f ) → V ( f ) + θ

ENSI Flot à valeur max et à coût min 9


II.2 Exemple
Partant d’un flot nul sur le réseau.
Etape N ° 1 : Flot complet
1−0 2−0 3−0
s → a → b → t ;θ = 1
a
⇒ V (f )= 0 +1 = 1 (0,0,1) (0,0,5)

4−0 3−1 s (0,0,2) t


s → b → t ;θ = 2
⇒ V (f )= 1+ 2 = 3 (0,0,4) b (0,0,3)

Etape N ° 2 : Chaînes
4−2 1 5−0
s → b → a → t ;θ = 1 ⇒ V(f) = 3 + 1 = 4

ENSI Flot à valeur max et à coût min 10


II.3 CNS d’optimalité
Définition: Une chaîne ζ = (s , i 1 ,i 2 , ... ,i p ,i p + 1 , ... ,i n , t )
augmentant le flot, pour un flot donné, est une chaîne entre s
et t telle que:
f(i p ,i P + 1 ) < c(i p ,i P + 1 ) si (i p ,i P + 1 )∈ U
f(i p ,i P + 1 ) > 0 si (i p +1 ,i P )∈ U

CNS pour qu’un flot soit maximum:


Il n’existe plus de chaînes augmentant le flot entre s et t.

Théorème du flot maximum et de la coupe minimum:


La valeur maximum d’un flot de s à t dans un réseau R(X,U,C)
est égale à la capacité minimum d’une coupe séparant s et t.

ENSI Flot à valeur max et à coût min 11


II.4 Algorithme de Ford & Fulkerson(1956)
1- Soit un flot initial réalisable (en général, on prend le flot nul)
2- Rendre le flot complet (saturer tous les chemins possibles)
(i) marquer le sommet s par (+)
(ii) à partir d’un sommet x marqué, marquer par (+) tout sommet y tel que: f(x,y)< c(x,y)

Le chemin tro uvé augmentera le flot par θ = min (c(x, y ) − f ( x , y ))


(x, y)∈µ
(iii) recommencer (ii) jusqu’à ce qu’on ne puisse plus marquer t à partir de s.
3- Chaînes augmentant le flot
(i) marquer le sommet s par (+)
⎧ f(x,y) < c(x,y)
(ii) à partir d’un sommet x marqué, marquer par (+) tout sommet y tel que: ⎨
⎩ ou f ( y , x ) > 0
θ1 = min (c( x , y ) − f ( x , y )) θ 2 = min ( f ( y , x ))

La chaîne trouvée augmentera le flot par θ = min( θ 1 ,θ 2 )

(iii) recommencer (ii) jusqu’à ce qu’on ne puisse plus marquer t à partir de s.

ENSI Flot à valeur max et à coût min 12


II.5 Application
On dispose de 3 entrepôts A, B et C disposant respectivement de 20, 10 et
35 tonnes de marchandises.
On a 3 destinations X,Y et Z où faire parvenir les quantités maximales de
25, 20 et 20 tonnes.
Il existe des disponibilités de transport sur certains camions qui vont faire
route entre les entrepôts et les destinations. Ces disponibilités sont données
dans le tableau suivant:

Question
X Y Z
1- Etablir le graphe de ce problème.
2- Donner le plan de transport le meilleur. A 15 10 0
B 5 0 10
C 10 5 5

ENSI Flot à valeur max et à coût min 13


Exercice 1
On considère le réseau de transport G(X,U,f) où les arcs sont munis de
capacités et pour lequel un flot initial est donné. Sur chaque arc i le premier
nombre est le flot initial fi le second nombre est la capacité ci. Le flot fi de
l’arc i doit vérifier la relation suivante : 0≤ f ≤c i i
1 (15,25) 6
(5,30)
(15,25) 4 (5,20)
(0,10) (5,10) (0,10)
e (5,25) 2 (5,10)
7 (5,40) s
(5,15) 5
(10,15) (0,15)
(0,25)
(0,5)
3 (10,40)
8
(0,5)
1- les fi figurant sur les arcs forment-elles un flot ? quelle est sa valeur ? ce flot
est-il compatible ?
2- Ce flot est-il complet ? sinon le modifier pour le rendre complet.
3- Ce flot est-il maximal ? Sinon, déterminer un flot de e à s de valeur maximale
4- Donner la coupe minimale du graphe. Calculer la capacité de cette coupe.
ENSI Flot à valeur max et à coût min 14
Exercice 2
Une société d’import-export dispose, dans les ports de Veracruz, Sâo-
Paulo, Conakry et Abidjan, de stocks de café pour lesquels elle a reçu des
commandes d’importateurs de Dunkerque, Bordeaux, Saint-Nazaire et Le
Havre.
Les stocks disponibles sont les suivants :

Port d’origine Veracruz Sâo-Paulo Conakry Abidjan


Stocks (en tonne) 130 110 110 110

Les commandes sont livrables comme suit :

Port de destination Dunkerque Bordeaux Saint-Nazaire Le Havre


Commande (en tonne) 110 90 100 160

ENSI Flot à valeur max et à coût min 15


Exercice 2
Divers bateaux se rendent des ports étrangers considérés vers les ports
Français de destination. Le tonnage dont ils disposent (c-à-d la quantité
qu’ils peuvent transporter) est donné par le tableau suivant :

Destination Dunkerque Bordeaux Saint- Le Havre


Origine Nazaire
X Y Z T
Veracruz A 80 40 30 0
Sâo-Paulo B 60 50 20 0
Conakry C 0 30 50 90

Abidjan D 0 30 50 90

ENSI Flot à valeur max et à coût min 16


Exercice 2
Le problème est le suivant : Abstraction faite des coûts de
transport, la société veut déterminer les diverses cargaisons de
manière à satisfaire les demandes au maximum.
• Donner la construction complète du graphe. Il faudra
introduire deux sommets s et t.
• Sachant que les commandes destinées à Bordeaux et au Havre
sont prioritaires, trouver le plan de transport optimal par
l’algorithme de Ford et Fulkerson.
• Donner la coupe minimale du graphe. Calculer la capacité de
cette coupe.
• Est-ce que toutes les commandes sont satisfaites ? sinon
donner les villes non complètement servies et expliquer d’où
provient cette défection.

ENSI Flot à valeur max et à coût min 17


Exercice 3
Deux usines à gaz U et V alimentent quatre villes A, B, C et
D en utilisant le réseau figuré ci-dessous. Les sommets α, β, δ
et γ représentent des stations de pompage. Les nombres
encadrés représentent les données suivantes:
les nombres à droite en gras représentent les capacités des
canalisations.
les nombres à gauche non en gras représentent les débits
initiaux.
On sait, de plus, que les capacités de production des usines U
et V sont respectivement de 80 et 60. On veut d’autre part
satisfaire autant que possible les demandes des villes A, B, C
et D qui étaient respectivement de 20, 30, 30 et 40 et qui
deviennent 20, 30, 50 et 40 par suite d’une extension de la
ville C.

ENSI Flot à valeur max et à coût min 18


Exercice 3

A
B

20 ; 20
10 ; 20
α
20 ; 20
C

30 ; 40
10 ; 20
U 40 ; 40
β
20 ; 30

20 ; 30 10 ; 20
20 ; 20 γ

10 ; 20
V
30 ; 30 δ

40 ; 40
D

ENSI Flot à valeur max et à coût min 19


Exercice 3
• Présenter le graphe par lequel on se ramène à un problème de flot
maximum.
• On chercher à satisfaire au mieux les nouvelles demandes des villes. En
utilisant l’algorithme de Ford et Fulkerson:
• Donner un chemin augmentant le flot et qui rend ce flot complet.
• Donner une chaîne augmentant le flot.
• Donner la valeur finale du flot maximum.
• En fait, le réseau précèdent ne tient pas compte des capacités de pompage
des stations α, β, δ et γ qui sont respectivement de 40, 60, 40 et 60. Tracer
un nouveau graphe capable de tenir compte des capacités des stations de
pompage.
• Quel est maintenant le flot maximum?
• Quelle est la coupe minimale?
• Quelle recommandation peut-on faire aux responsables de la distribution
pour satisfaire les nouvelles demandes des villes?

ENSI Flot à valeur max et à coût min 20