Vous êtes sur la page 1sur 21

RECHERCHE DU FLOT MAXIMUM

I. Rseau de transport- flot :


Dfinition (Rseau de transport ou de circulation) :

1. Un rseau de transport R= (G, c, s , t) est la donne dun graphe

G=(S, A(G)) vrifiant les proprits suivantes :

Orient, et sans boucle,


Pondr(valu) : il existe une application de A(G) dans chaque arc
u dans A(G) fait correspondre un nombre c(u) 0, appel "capacit" de l'arc
u.
Il admet un sommet source s (aucun arc narrive la source), et un sommet
puits t (aucun arc ne quitte le puits).
proprit daccessibilit : Tous les sommets sont sur un chemin de la
source s au puits t.

2. Les sommets autres que s et t sappellent les nuds transits.

Exemples de rseaux de transport :

R1 :

R2 :
R3 :

Dfinition (Flot travers un rseau) :

Soit R = ( G, c, s, t) un rseau de transport. Un flot travers R est une application F de


A(G) dans R+ qui chaque arc u associe la quantit F(u) dite le flux de u, vrifiant les
proprits suivantes :

Limitation du flux : Le flot en chaque arc u est infrieur la capacit:


F(u) c(u),

Loi des nuds : Pour tout sommet transit (dans S \ {s, t}),

flot entrant = flot sort

A remarquer que la loi des nuds pour le flot est semblable la loi de Kirchhoff en
lectricit.

Rappel (loi de Kirchhoff) :

La somme des intensits qui arrivent au nud est gale la somme des intensits qui en repartent.

(x) = I1 + I3

(x) = I2 + I4

(x) = (x) ce qui donne I1 + I3 = I2 + I4

Exemples de flot travers un rseau :

1. Un rseau lectrique est form de lignes reliant des nuds (transformateurs, centre de
redistributions,...), chaque ligne a une capacit de transport maximale. On cre un flot
en faisant passer une quantit de courant entre le lieu de production (la source,
suppose unique) et le lieu de consommation (la cible, aussi suppos unique).

2. Flot ( en rouge) travers R1:

3. Flot (en vert) travers R2:

4. Flot travers R3 :

Remarque :
le flot travers un rseau pet tre prsent de plusieurs manires.

Dfinition (valeur du flot):

La somme des flux des arcs sortant de la source s, et la somme des flux

Des arcs arrivant au puits t, sont gales ; cette valeur note | F | est la valeur du flot F.
Exemples :

Dfinition (Flot complet)

Soit F un flot travers un rseau de transport R= (G, c, s, t)

La quantit c(u) - F(u) sappelle la capacit rsiduelle de larc u pour le flot F.


Un arc u est dit satur si F(u) = c(u), (c..d. le flux qui traverse u est gal sa
capacit ).
Un arc non satur sappelle encore arc fluide lorsque son flux nest pas nul.
Le flot F est dit complet si tout chemin allant de la source au puits, admet au
moins un arc satur.

Exemple de flot complet:

Flot complet de Source E et puits S :

Dfinition(Coupe) :
Soit R =(G, c, s, t) un rseau de transport avec G = (S,A),
Soit C une partie de S telle que
Le sous ensemble darcs dont
lorigine est dans C et lextrmit est dans S -C sappelle coupe de R
associe C. En bref on parle de la coupe C.
On appelle capacit de la coupe la somme de la capacit des arcs
constituant la coupe :

c(C) =

Exemple de coupe :

Coupe d'un rseau

La coupe ci-dessus est dfinie par C= { s, a, b, c } et S \ C = { d, e, t }. Elle comporte les arcs


(a, d) (b, d) et (c, e). Sa capacit est de 6.

Remarques et proprits:
Soit C une coupe du rseau R=(G, c, s, t)

Lorigine du nom de coupe vient du fait que : Si lon supprime tous les arcs dune
coupe, on supprime en mme temps tout les chemins de s t.

La capacit de la coupe C est la somme des capacits des arcs dextrmit initiale dans C et
dextrmit terminale dans S \ C.

La somme des valeurs du flot sur les arcs de C vers S \ C moins la somme des valeurs
du flot sur les arcs de S \ C vers C vaut aussi | F |.
Cette diffrence de sommes de flots est appele flot net traversant la coupe C.
On dduit de ce qui prcde que le flot net traversant une coupe ne dpend pas de la
coupe.
La proprit de l'invariance du flot net montre que | F | est infrieur la
Capacit de n'importe quelle coupe.

Exemple :

La capacit de cette coupe est gale 8.


Le flot de cette coupe est gale 5
Le flot net traversant cette coupe vaut 3.

Flot maximum:
Dans un rseau de transport, il existe toujours un flot de valeur minimale, cest le flot nul (de
valeur zro). Mais dans tous les domaines on a intrt transporter une quantit maximale de
la source au puits do le problme du flot maximum (c..d. celui de valeur maximale).
Le problme du flot maximum consiste trouver quelle est la quantit maximum de flot
qui peut circuler de la source s au puits t.

Question : Comment trouver un flot de valeur maximum ?

Mthodes de rsolution du problme du flot maximum :


L'algorithme le plus connu pour rsoudre le problme du flot maximum est celui de Ford et
Fulkerson. Nous verrons deux approches pour cette mthode.

A. Mthode de FORD-FULKERSON (par graphe dcart) :


Dans le but damliorer (daugmenter) un flot travers un rseau de transport on introduit la
notion du graphe dcart (ou rsiduel) et la notion de chemin augmentant (ou amliorant).

Dfinition (rseau dcart chemin augmentant)

Soit F un flot travers un rseau de transport R= (G, c, s, t)


Le graphe (ou rseau) d'cart reprsente les modifications de flot possibles sur chaque arc.
Sur ce graphe ( rseau dcart) : les nuds ont exactement la mme signification que dans
le rseau de transport. Par contre, un arc indiquera de combien il est possible d'augmenter
le flot entre deux nuds.
Ainsi, pour un arc u = (x, y) dans R, on crera (en gnral deux arcs) dans le graphe
d'cart:

un arc de x y de capacit rsiduelle c' ((x, y)) = c(u) - F(u) si c(u) F(u),
un arc de y x de capacit rsiduelle:
o c' ((y, x)) = F(u) si F(u) 0 et (y, x) nexiste pas dans G;

o c' ((y, x)) = F(u) + c(y, x) si F(u) 0 et (y, x) existe dj dans G.

Le graphe orient pondr par les capacits rsiduelles (c'(u)), ainsi obtenu, est appel
le graphe rsiduel ou graphe dcart) associ au flot F.
Un chemin augmentant (ou amliorant) est un chemin de s t sur le graphe decart.

Exemple1 :
On considre le flot :

Le graphe dcart correspondant :


(A, B, C,D, F, G) est un chemin augmentant.

Exemple 2
Soit le flot :

Le graphe dcart correspondant :

Un chemin amliorant :

Lemme1 :. Sil existe un chemin de s t dans le graphe dcart, le flot peut tre amlior.

Lemme2 :. Sil nexiste pas de chemin de s t dans le graphe dcart de F, alors il existe une
coupe C telle que la capacit de C soit gale | F |_.

Thorme : Valeur du flot maximal = Capacit de la coupe minimale.


Algorithme de FORD-FULKERSON( par graphe dcart) :

On part d'un flot compatible (ca peut tre le flot nul). Ensuite, on construit un graphe
d'cart partir de ce flot.

Ensuite, dans ce graphe d'cart, on cherchera un chemin C de la source s au puits


t. Si on n'en trouve pas, le problme est rsolu.

Sinon, on peut donc amliorer le flot sur la chane correspondante au chemin C


en changeant chaque arc de la chane de min {c'(u) | u C} (la
Valeur minimale des capacits rsiduelles le long du chemin C) en plus ou en moins suivant
quon emprunte larc en avant ou en arrire.

Exemple dapplication :
Soit le flot F

La valeur de F vaut 5.

Le graphe dcart correspondant :

C= (A, B, C, D, F, G) est un chemin pour aller de A G. On peut augmenter le flot de:


2 entre A et B,
3 entre B et C,
1 entre C et D,
4 entre D et F,
2 entre F et G.

On augmentera donc le flot de min{c'(u) | u C}=1 sur la chane correspondante C.

Or La chane correspondante C est :

Donc pour amliorer le flot on doit:

augmenter de 1 entre A et B,
rduire de 1 entre C et B,
augmenter de 1 entre C et D,
augmenter de 1 entre D et F,
augmenter de 1 entre F et G.

Ce qui donne un flot de valeur 6 :

Exemple 2 :

Soit le flot :

Son graphe dcart :


Un chemin amliorant :

Le flot aprs amlioration :

Le nouveau graphe dcart :

Dans ce rseau, il n'y a pas de chemin de s t, donc pas de chemin amliorant.

Ainsi le flot maximum est :


Sa valeur est gale 23.

B. Mthode de FORD-FULKERSON (par marquage des sommets) :

Lalgorithme se fait en trois tapes :

1. Faire passer un flot compatible (flux qui respecte lensemble des contraintes ;
contraintes de capacits et loi des nuds).

2. Chercher un flot complet, cest dire un flot tel que tout chemin de s t contient au
moins un arc u satur (tel que F(u) = c(u)).
Pour chercher un flot complet on applique lalgorithme suivant :
marquer dun signe + le sommet s
si x est marqu, marquer dun +x tout sommet y non marqu tel quil existe un arc
u = (x, y) non satur (F(u) < c(u))
Si t est marqu. Soit B lensemble des arcs du chemin de s t ainsi obtenu.
Notons = (c(u) F(u)), on augmente le flux sur les arcs de B de la valeur .
On itre cet algorithme tant que t est marqu. Si t ne peut pas tre marqu,
Le flot obtenu est alors complet.

3. Pour obtenir un flot maximal on procde comme suit :

Marquer les sommets du rseau laide de la procdure suivante :


marquer dun signe + le sommet s
si x est marqu, marquer dun +x tout sommet y non marqu tel quil existe un
arc u = (x, y) non satur (F(u) < c(u)).
si x est marqu, marquer dun x tout sommet y non marqu tel quil existe un
arc u = (y, x) de flux strictement positif (F(u) > 0).
Le but de la procdure est de mettre en vidence, lorsquelles existent, des chanes
dorigine s et dextrmit t, telles que :
tout arc situ dans le sens de progression s t ne soit pas satur,
tout arc situ dans le sens de progression t s ait sont flux strictement
positif.

Si t est marqu, une telle chane existe. On peut alors amliorer le flot en modifiant les
flux des arcs de cette chane ; on peut augmenter les flux des arcs non saturs et
diminuer le flux des arcs o il nest pas sa borne infrieure en respectant la loi des
noeuds.
Soit S lensemble des arcs orients dans le sens s t et T lensemble des arcs
orients dans le sens t s.
Notons :
= (F(v), c(u) F(u)),

on augmente le flux sur les arcs de S de et on diminue le flux sur les arcs de T de .

4. On reprend alors le marquage des sommets, tant que cest possible.

Si on narrive pas marquer le sommet t, on a une coupe dans le rseau :


E est lensemble des sommets non marqus. Les sommets non marqus ne peuvent tre relis
aux sommets marqus que par des arcs saturs dans le sens direct et des arcs de flot nul dans
le sens inverse.

Exemple :
Exercice corrig:

Avant d'tablir un projet de construction d'autoroute, on dsire tudier la capacit du rseau routier,
reprsent par le graphe ci-dessous, reliant la ville E la ville S.

Pour cela, on a valu le nombre maximal de vhicules que chaque route peut couler par heure,
compte tenu des ralentissements aux traverses des villes et villages, des arrts aux feux etc... Ces
valuations sont indiques en centaines de vhicules par heure sur les arcs du graphe. Les temps de
parcours entre villes sont tels que les automobilistes n'emprunteront que les chemins reprsents par
le graphe.

Dterminer, en indiquant le type de problme rsoudre et en dtaillant la mthode utilise, le dbit


total maximal de vhicules susceptibles de s'couler entre les villes E et S.

On dmarre du flot nul, construisons un flot (complet) en tudiant touts les chemins de E S.

Sur le chemin (E, a, c, g, S), on peut faire passer un flux de 5 (l'arc (E, a) est alors satur).

Sur le chemin (E, b, c, g, S), on peut augmenter les flux de 2 (l'arc cg est alors satur).

Sur le chemin (E, b, d, g, S), on peut augmenter les flux de 2 (l'arc bd est alors satur).
Sur le chemin (E, b, e, d, S), on peut augmenter les flux de 1 (larc (b, e) est alors satur).

Sur le chemin (E, e, d, S), on peut augmenter les flux de 1 (l'arc (e, d) est alors satur).

Enfin, sur le chemin (E, e, f, S), on peut augmenter les flux de 4 (l'arc (e, f ) est alors satur).

On obtient le flot suivant de valeur 15 :

Depuis E sur la chane (E, e, d, S), on ne peut pas marquer a (saturation de (E, a) mais on peut
marquer b par (E, 5) et e par (E, 3).

Depuis b, on peut marquer c par (b, 6).

Depuis c, on peut marquer a par (c, 5), puisqu'on peut diminuer le flux de l'arc ac de 5.

Depuis a, on peut marquer d par (a, 10).

Depuis d, on peut marquer f par (d, 2), g par (d, 2) et S par (d, 4).

Ainsi on peut augmenter le flot de 4 sur le chemin (E, b, c, a, d, S). (-4 sur l'arc (a, c)).

Deuxime passage:

Depuis E, on marque b par (E, 1) et e par (E, 3), puis c par (b, 1), a par (c, 1), d par (a, 1), puis f par
(d, 1) et S par (f, 1).

Ainsi on peut augmenter le flot de 1 sur le chemin (E, b, c, a, d, f, S).

Troisime passage :

Depuis E, on ne peut marquer ni a ni b (arcs (E, a) et (E, b) saturs), mais seulement e par (E, 3).De
e, on peut marquer b par (e, 1) puis c par (b, 1). De c, on ne peut marquer aucun sommet car cg est
"bien orient" et satur et (a, c) "mal orient" et de flux nul. Le flot obtenu est donc de valeur
maximale.
Ainsi le dbit total maximal de vhicules susceptibles de s'couler entre les villes E et S est de 2000
vhicules par heure.

Exercice :

Dterminer le flot maximal du rseau :


Rpartition dapprovisionnement
Donne: les fournisseurs A1, . . . ,Ap, avec Ai de capacit ai.
les clients B1, . . . , Bq, le client Bi demande une quantit bi.
les contraintes: Bj ne peut tre livr que par les {Ai}iCj .
Problme: maximiser lapprovisionnement mutuel.

Modlisation en flot: sommets X = {s, t, A1, . . . ,Ap ,B1, . . . ,Bq}

arte (Ai, Bj ) si i 2 Cj

de capacit 1.
arte (s, Ai) de capacit ai

arte (Bj , t) de capacit bj

Approvisionnement mutuel maximal = flot maximal dans ce graphe.

Vous aimerez peut-être aussi