Problme de flot maximal dans un rseau - PowerPoint PPT Presentation

1 / 61
About This Presentation
Title:

Problme de flot maximal dans un rseau

Description:

Une compagnie poss de 6 postes T1, T2, T3, T4, T5 et T6 de. retransmission des appels ... Appliquons maintenant ces r sultats l'exemple suivant o chaque ... – PowerPoint PPT presentation

Number of Views:386
Avg rating:3.0/5.0
Slides: 62
Provided by: www2Ift
Category:

less

Transcript and Presenter's Notes

Title: Problme de flot maximal dans un rseau


1
Problème de flot maximaldansun réseau
Formulation du problème de flot maximal. Notions
de coupe et de chaînes daugmentation par rapport
à un flot f. Algorithme de Ford et Fulkerson.
Théorème dintégrité. Généralisation au cas
de plusieurs sources et plusieurs destinations.
Présence de contraintes de capacité sur les arcs
et les sommets. Détermination dun
flot réalisable.
2
Introduction
Une compagnie possède 6 postes T1, T2, T3, T4, T5
et T6 de retransmission des appels téléphoniques
des Laurentides vers les Cantons de lEst.
4
T2
T3
8
12
8
6
Cantons de lEst
Laurentides
6
T1
T6
9
6
3
11
9
T4
T5
4
Les capacités maximales en milliers dappels par
minute.
3
Ce réseau de communication a été construit de
telle façon quil satisfasse aux conditions
suivantes
Chaque poste intermédiaire T2, T3, T4, T5
conserve les appels i.e. tout appel arrivant à
lun de ces postes est immédiatement
acheminé vers un autre poste (il ne se perd pas
dappels à un poste donné).
Le dappels passant entre 2 postes est
évidemment une quantité non négative et est au
plus égal à la capacité maximale des
lignes téléphoniques reliant ces 2 postes.
Les appels des Laurentides passent tous par le
poste T1 qui les achemine vers les autres postes.
Les appels arrivant au poste T6 sont tous
acheminés dans les Cantons de lEst.
Problème
Soit v le dappels passant dans le réseau de T1
(la source) à T6 (la destination), comment
répartir les appels dans le réseau de façon à
maximiser v ?
4
Énoncé du problème de flot maximal
Soit un réseau R (N, A) où N représente les
sommets du réseau et A lensemble des arcs.
On désigne aussi par K(x, y) capacité maximale
de larc (x, y), ?(x, y) ? A, f(x, y)
quantité de flot passant par larc (x, y), ?(x,
y) ? A.
Le problème avec une source s et une destination
d sénonce alors comme suit
MAX v
v si x s
? f(x, y)
? f(y, x)
-

0 si x ? s, d
(P)
-v si x d
y ? N (x, y) ? A
y ? N (y, x) ? A
L(x, y) ? f(x, y) ? K(x, y), ?(x, y) ? A.
Note Sauf avis contraire par la suite, L(x, y)
0 ?(x, y) ? A.
5
Problème de programmation linéaire
En ajoutant un arc fictif (d, s) de capacité
infinie, le problème devient
MAX f(d, s)
? f(x, y)
-
? f(y, x)

0 ?x ? N.
y ? N (x, y) ? A'
y ? N (y, x) ? A'
L(x, y) ? f(x, y) ? K(x, y), ?(x, y) ? A' où A'
A ? (d, s).
Note
Cela nous ramène à un problème de flot à coût
minimum.
La méthode du simplexe peut être utilisée -
membre de droite nul, - vecteur de coût nul
excepté pour la variable f(d, s).
? un algorithme spécialisé plus efficace que la
méthode du simplexe.
6
Exemple
(0, 4)
T2
T3
(8, 8)
(12, 12)
(6, 6)
(6, 6)
29
29
(8, 8)
T1
T6
(3, 9)
(6, 6)
(0, 3)
(6, 11)
(9, 9)
T4
T5
0, 4
(f(x, y), K(x, y))
La valeur du flot passant dans ce réseau est v
29.
7
Définition de coupe
Notation
Si X et Y sont 2 sous-ensembles de N, (X, Y)
désigne (x, y) ? A x ? X, y ? Y.
On peut aussi définir une fonction g sur A et à
valeurs réelles, comme suit
g(X, Y) ? g(x, y) (x, y) ? (X, Y)
Définition
Soit X ? N, un sous-ensemble de sommets contenant
la source s, mais ne contenant pas la sortie d,
la partition X, X N X génère une coupe C ?
X, X (X, X) ?(X, X ) séparant la source s de
la destination d.
8
Définition
La capacité de la coupe C ? X, X est égale à
K(X, X) L(X, X).
Exemple
1
1
4
1
2
1
s
2
1
1
1
1
3
d
2
Soit X s, 1, alors C (s, 2), (1, 3), (1,
d), (1, 2), (3, s), (d, s).
Toute chaîne reliant s à d doit nécessairement
contenir un arc dans chaque coupe X, X .
Note
9
Note
Si lon enlève du réseau tous les arcs de la
coupe X, X , il ne peut y avoir de chaînes
reliant s à d.
La valeur du flot pouvant passer dans le nouveau
réseau ainsi obtenu est nulle.
Étant donné quune coupe bloque toutes les
chaînes reliant s à d, il sensuit que la valeur
du flot f passant dans le réseau ne peut
pas excéder la capacité dune coupe, quelque soit
celle-ci.
La valeur v dun flot quelconque de s à d est
inférieure ou égale à la capacité de toute coupe
séparant s et d.
Lemme
Soient un flot f de s à d dans le réseau R (N,
A) et v la valeur de ce flot. Si X, X est une
coupe dans R séparant s et d, alors v f(X, X)
f(X, X) ? K(X, X) L(X, X).
10
Démonstration du lemme
Étant donné que f est un flot, f satisfait les
équations
f(s, N) f(N, s) v
f(d, N) f(N, d) - v
f(x, N) f(N, x) 0 si x ? s et x ? d.
Additions ces équations pour x ? X, vu que s ? X
et d ? X, on a
v ? (f(x, N) f(N, x) ) f(X, N) f(N,
X). x ? X
Sachant que N X ? X, on obtient
v f(X, X ? X) f(X ? X, X)
v f(X, X) f(X, X) f(X, X) f(X, X) f(X,
X) f(X, X).
Puisque f(X, X) ? L(X, X) et f(X, X) ? K(X, X),
alors v f(X, X) f(X, X) ? K(X, X) L(X,
X).
CQFD
11
Corollaire du lemme
vmax Max v(f) ? Min K(X, X) L(X, X) f est
un flot réalisable de s à d X ? N s ? X, d
? X
cest-à-dire, que la valeur maximale du flot est
toujours inférieure ou égale à la coupe minimale
des capacités.
12
Exemple
1
L(x, y) 0 ?(x, y) ? A.
2,3
1,1
3
v 3.
3
0,1
1,1
s
d
1,1
2,3
X
2
X
(f(x, y), K(x, y))
La coupe C (s, 1), (2, 1), (2, d), (1, 2) a
aussi une capacité égale à 1 1 1 - 0 3.
Daprès ce qui précède, le flot est maximal et la
coupe est minimale.
13
Théorème (flot max coupe min)
Pour nimporte quel réseau donné, la valeur
maximale du flot reliant la source s à la
destination d est égale à la capacité minimale
des coupes séparant s et d dans le réseau.
Démonstration
Laissée en exercice.
Les définitions suivantes et les corollaires de
ce théorème vont nous permettre délaborer un
procédé pour parvenir à un flot maximal.
14
Définition
Une chaîne W reliant la source s à la destination
d est dite une chaîne daugmentation par rapport
au flot f si f(x, y) lt K(x, y) ?(x,y) de cette
chaîne tel que (x,y) ? A et f(x, y) gt L(x,
y) ?(x,y) de cette chaîne tel que (y,x) ? A.
Les arcs de W parcourus dans le sens de leur
orientation.
Les arcs de W parcourus dans le sens inverse de
leur orientation.
15
Exemple
1
0,3
1,1
Il existe une chaîne daugmentation (s,2) -
(1,2) (1,d).
1
1
1,1
s
d
1,1
0,3
2
On peut faire passer une unité de flot à travers
cette chaîne.
(f(x, y), K(x, y))
1
1,3
1,1
2
2
0,1
s
d
1,1
1,3
2
16
Définition
Un arc (x, y) est saturé par rapport à f si f(x,
y) K(x, y).
Un arc (u, v) est dit minimal par rapport à f si
f(u, v) L(u, v).
Corollaire
Un flot f est maximal si et seulement si il
nexiste pas de chaîne daugmentation par rapport
à celui-ci.
Corollaire
Une coupe X, X est minimale si et seulement si,
pour tout flot maximal f, les arcs de (X, X) sont
saturés par rapport à f et ceux de (X, X) sont
minimaux par rapport à f.
Appliquons maintenant ces résultats à lexemple
suivant où à chaque itération, nous tenterons de
construire une chaîne daugmentation.
17
Exemple
0,3
2
3
0,7
0,6
0,6
0,2
0,2
0
0
s
d
0,3
0,1
0,4
0,9
4
Déterminons dabord un flot au jugé en saturant
le plus grand nombre possible de chemins reliant
s à d.
I. s - 2 - 3 - d 3 unités pour obtenir une
saturation.
18
3,3
2
3
3,7
3,6
0,6
0,2
3
0,2
3
s
d
0,3
0,1
0,4
0,9
4
II. s - 2 - 3 - 4 - d déjà saturé.
III. s - 2 - 4 - 3 - d 2 unités pour obtenir
une saturation.
19
3,3
2
3
5,7
5,6
0,6
2,2
5
2,2
5
s
d
0,3
0,1
0,4
0,9
4
IV. s - 2 - 4 - d déjà saturé.
V. s - 3 - d 2 unités pour obtenir une
saturation.
20
3,3
2
3
7,7
5,6
2,6
2,2
7
2,2
7
s
d
0,3
0,1
0,4
0,9
4
VI. s - 3 - 4 - d 1 unité pour obtenir une
saturation.
21
3,3
2
3
7,7
5,6
3,6
2,2
8
2,2
8
s
d
0,3
1,1
0,4
1,9
4
VII. s - 4 - 2 - 3 - d déjà saturé.
VIII. s - 4 - 3 - d déjà saturé.
IX. s - 4 - d 4 unités pour obtenir une
saturation.
22
3,3
2
3
7,7
5,6
3,6
2,2
12
2,2
12
s
d
0,3
1,1
4,4
5,9
4
Pour déterminer une chaîne daugmentation reliant
s à d (si elle existe), on doit opter pour une
procédure de marquage
Soit Z (s, pred(s) , ? ?), pour chaque
sommet (x, pred(x), ?) ? Z non traité, si f(x,
y) lt K(x, y) ajouter (y, x, min?, K(x, y)
f(x, y)) à Z sinon si f(y, x) gt L(y,
x) ajouter (y, x, min?, f(y, x) L(y, x)) à
Z.
23
3,3
2
3
7,7
5,6
3,6
2,2
12
2,2
12
s
d
0,3
1,1
4,4
5,9
4
Z (s, ,?)
Z (s, ,?), (2, s, 1), (3, s, 3)
Z (s, ,?), (2, s, 1), (3, s, 3), (4, 3, 2)
Z (s, ,?), (2, s, 1), (3, s, 3), (4, 3, 2),
(d, 4, 2)
Il existe une chaîne daugmentation reliant s à d
où lon peut faire passer 2 unités de flot. À
laide de Z, on peut retracer la chaîne
daugmentation.
24
3,3
2
3
7,7
5,6
5,6
0,2
14
2,2
14
s
d
0,3
1,1
4,4
7,9
4
Répétons la procédure de marquage
Z (s, ,?)
Z (s, ,?), (2, s, 1), (3, s, 1)
Z (s, ,?), (2, s, 1), (3, s, 1)
Il nest pas possible datteindre la sortie
d par conséquent, le flot est maximal.
25
3,3
2
3
7,7
5,6
5,6
0,2
14
2,2
14
s
d
0,3
1,1
4,4
7,9
4
X s, 2, 3 (X, X) (s, 4), (2, 4), (3, 4),
(3, d) (X, X) (4, 2), (4, 3) v 14 f (X,
X) - f (X, X) K(X, X) L(X, X).
Donc, le flot est optimal.
26
Algorithme de Ford Fulkerson
Marquage des sommets
Étape A
Cela conduit soit à la fin de
lalgorithme, à la découverte dune chaîne
daugmentation.
Un sommet peut être dans lun des 3 états
suivants
non marqué
marqué et examiné
marqué et non encore examiné
À chaque sommet x marqué est associé un
quadruplet (x, pred(x), m(x), p(x)).
Le sommet qui a permis le le marquage de x.
La qté de flot supplém. que lon peut faire
passer dans la chaîne de s à x.
ou selon que x a été marqué grâce à
larc (pred(x), x) ou (x, pred(x)).
Modifie le flot le long de la chaîne
daugmentation.
Étape B
27
Description complète de lalgorithme de Ford
Fulkerson
Étape A
1. Initialisation.
La source s est marquée et non encore examinée
(s, , , ?).
Les autres sommets sont non marqués.
2. Marquage.
Choisir un sommet x marqué et non encore examiné
(x, pred(x), m(x), p(x)).
?sommet y non marqué tel que (x, y) ? A, si f(x,
y) lt K(x, y), alors marquez y non encore examiné
(y, x, , minp(x), K(x, y) f(x, y))
?sommet y non marqué tel que (y, x) ? A, si f(y,
x) gt L(y, x), alors marquez y non encore examiné
(y, x, -, minp(x), f(y, x) L(y, x))
x est maintenant marqué et examiné.
28
Si la destination d est marquée et non encore
examinée, aller à létape B.
Si tous les sommets marqués ont été examinés,
cest terminé (il ny a pas de chaînes
daugmentation et le flot est maximal).
Autrement, répéter cette opération de marquage
avec un nouveau sommet marqué et non encore
examiné.
29
Étape B
Changement de flot dans une chaîne daugmentation.
La destination d a été marquée (d, pred(d),
m(d), p(d)).
Si m(d) alors f(pred(d), d) f(pred(d), d)
p(d) sinon f(d, pred(d)) f(d, pred(d)) p(d).
Posons y pred(d).
Tant et aussi longtemps que y est différent de
s soit le quadruplet associé à y (y, pred(y),
m(y), p(y)),
si m(y) alors f(pred(y), y) f(pred(y), y)
p(d) sinon f(y, pred(y)) f(y, pred(y))
p(d) poser y pred(y).
.
On efface les marques des sommets et on retourne
à létape A.
30
Construction dune coupe minimale
À la fin de lalgorithme de Ford Fulkerson, on
peut construire une coupe minimale comme suit
Poser U i ? N le sommet i est marqué, V
j ? N le sommet j est non marqué,
Alors la coupe minimale est U, V et v K(U, V)
L(V, U).
31
Exemple
3
0,5
0,2
2
0,9
4
0,3
0,8
0,4
0,2
0,10
0,3
0
0,8
0,6
0
8
1
5
0,3
0,8
0,1
0,4
0,16
0,2
7
0,1
0,7
6
Effectuons un premier marquage.
32
(1,,10)
3
0,5
0,2
(1,,4)
2
0,9
4
0,3
0,8
0,4
0,2
0,10
0,3
0
(1,,8)
0,8
0,6
0
8
1
5
(,,?)
(5,,6)
0,3
0,8
0,1
0,4
0,16
0,2
7
0,1
(1,,3)
0,7
6
(1,,4)
Ajoutons 6 unités dans la chaîne daugmentation.
33
3
0,5
0,2
2
0,9
4
0,3
0,8
0,4
0,2
0,10
0,3
6
6,8
6,6
6
8
1
5
0,3
0,8
0,1
0,4
0,16
0,2
7
0,1
0,7
6
Effectuons un 2ième marquage.
34
(1,,10)
3
0,5
(1,,4)
0,2
2
0,9
4
0,3
0,8
0,4
0,2
0,10
0,3
6
(1,,2)
6,8
6,6
6
8
1
5
(,,?)
(7,,3)
0,3
0,8
0,1
0,4
0,16
0,2
7
0,1
(1,,3)
0,7
6
(1,,4)
Ajoutons 3 unités dans la chaîne daugmentation.
35
3
0,5
0,2
2
0,9
4
0,3
0,8
0,4
0,2
0,10
0,3
9
6,8
6,6
9
8
1
5
3,3
0,8
0,1
0,4
3,16
0,2
7
0,1
0,7
6
Effectuons un 3ième marquage.
36
(1,,10)
3
0,5
(1,,4)
0,2
2
0,9
4
0,3
0,8
0,4
0,2
0,10
0,3
9
(1,,2)
6,8
6,6
9
8
1
5
(,,?)
(7,,2)
3,3
0,8
0,1
0,4
3,16
0,2
7
0,1
(5,,2)
0,7
6
(1,,4)
Ajoutons 2 unités dans la chaîne daugmentation.
37
3
0,5
0,2
2
0,9
4
0,3
0,8
0,4
0,2
0,10
0,3
11
8,8
6,6
11
8
1
5
3,3
2,8
0,1
0,4
5,16
0,2
7
0,1
0,7
6
Effectuons un 4ième marquage.
38
(1,,10)
3
0,5
(1,,4)
0,2
2
(3,,2)
0,9
4
0,3
0,8
0,4
0,2
0,10
(4,,2)
0,3
11
8,8
(3,,9)
6,6
11
8
1
5
(,,?)
3,3
2,8
0,1
0,4
5,16
0,2
7
0,1
0,7
6
(1,,4)
Ajoutons 2 unités dans la chaîne daugmentation.
39
3
0,5
2,2
2
0,9
4
0,3
2,8
0,4
0,2
2,10
0,3
13
8,8
6,6
13
8
1
5
3,3
2,8
0,1
0,4
5,16
0,2
7
0,1
0,7
6
Effectuons un 5ième marquage.
40
3
(1,,8)
0,5
(1,,4)
2,2
2
0,9
4
0,3
2,8
0,4
0,2
2,10
0,3
13
(6,,2)
8,8
6,6
13
8
1
5
(,,?)
(7,,4)
3,3
2,8
0,1
0,4
5,16
0,2
7
0,1
(6,,4)
0,7
6
(1,,4)
Ajoutons 4 unités dans la chaîne daugmentation.
41
3
0,5
2,2
2
0,9
4
0,3
2,8
0,4
0,2
2,10
0,3
17
8,8
6,6
17
8
1
5
3,3
2,8
0,1
4,4
9,16
0,2
7
0,1
4,7
6
Effectuons un 6ième marquage.
42
(1,,8)
3
0,5
(1,,4)
2,2
2
0,9
4
0,3
2,8
0,4
0,2
2,10
0,3
17
(2,,3)
8,8
6,6
17
8
1
5
(,,?)
(7,,3)
3,3
2,8
0,1
4,4
9,16
0,2
7
0,1
(5,,3)
4,7
6
Ajoutons 3 unités dans la chaîne daugmentation.
43
3
0,5
2,2
2
0,9
4
3,3
2,8
3,4
0,2
2,10
0,3
20
8,8
6,6
20
8
1
5
3,3
5,8
0,1
4,4
12,16
0,2
7
0,1
4,7
6
Effectuons un 7ième marquage.
44
(1,,8)
3
0,5
(1,,1)
2,2
2
0,9
4
3,3
2,8
3,4
0,2
2,10
0,3
20
(3,,8)
8,8
6,6
20
8
1
5
(,,?)
(7,,3)
3,3
5,8
0,1
4,4
12,16
0,2
7
0,1
(5,,3)
4,7
6
(5,,1)
Ajoutons 3 unités dans la chaîne daugmentation.
45
3
0,5
2,2
2
3,9
4
3,3
2,8
3,4
0,2
5,10
0,3
23
8,8
6,6
23
8
1
5
3,3
8,8
0,1
4,4
15,16
0,2
7
0,1
4,7
6
Effectuons un 8ième marquage.
46
(1,,5)
3
0,5
(1,,1)
2,2
2
3,9
4
3,3
2,8
3,4
0,2
5,10
0,3
23
(3,,5)
8,8
6,6
23
8
1
5
(,,?)
(7,,1)
3,3
8,8
0,1
4,4
15,16
0,2
7
0,1
(6,,1)
4,7
6
(5,,1)
Ajoutons 1 unité dans la chaîne daugmentation.
47
3
0,5
2,2
2
4,9
4
3,3
2,8
3,4
0,2
6,10
0,3
24
8,8
6,6
24
8
1
5
3,3
8,8
0,1
4,4
16,16
0,2
7
1,1
5,7
6
Effectuons un 9ième marquage.
48
(1,,4)
3
0,5
(1,,1)
2,2
2
4,9
4
3,3
2,8
3,4
0,2
6,10
0,3
24
(3,,4)
8,8
6,6
24
8
1
5
(,,?)
3,3
8,8
0,1
4,4
16,16
0,2
7
1,1
5,7
6
Il nest pas possible datteindre le sommet 8 le
flot est donc optimal. En prenant X 1, 2, 3,
5, la coupe minimale des capacités est X, X et
la valeur du flot est 24.
49
Théorème dintégrité
Si les capacités K(x, y) et les bornes
inférieures L(x, y) sont toutes entières, il
existe toujours un flot maximal à valeurs
entières.
Si le flot initial est à valeurs entières et que
les capacités le sont aussi, le flot maximal
obtenu de lalgorithme sera aussi à valeurs
entières car la découverte dune chaîne
daugmentation entraîne un changement de flot
conduisant à un minimum de nombres entiers.
50
Extension au cas de plusieurs sources et / ou
destinations
On peut toujours se ramener au cas dune source
et dune destination.
Supposons que les sommets N du réseau R (N, A)
sont partitionnés comme suit
S lensemble des sources,
D lensemble des destinations,
X lensemble des sommets intermédiaires.
Le problème sénonce comme suit
Max v f(x, N) f(N, x) 0 ?x ? X L(x, y) ?
f(x, y) ? K(x, y) ?(x, y) ? A f(S, N) f(N,
S) v f(D, N) f(N, D) - v
51
Prolongeons le réseau R (N, A) en un réseau R
(N, A) où
N N ? s, d,
S s,
D d,
X N,
A A ? tous les arcs correspondants à (s, S) ?
tous les arcs correspondants à (D, d).
De plus,
L(s, x) 0 et K(s, x) ? ?x ? S
L(x, d) 0 et K(x, d) ? ?x ? D
L(x, y) L(x, y) et K(x, y) K(x, y) ?(x, y) ?
A.
Théorème
Le problème de flot maximal de S à D dans le
réseau R est équivalent au problème de flot
maximal de s à d dans R.
52
Extension au cas où chaque sommet x est soumis à
une capacité maximale ?(x)
Exemple
Il est naturel et même nécessaire pour le réseau
téléphonique de notre exemple dintroduction de
supposer que chaque poste Ti de retransmission
des appels ne peut pas traiter plus de
?(Ti) appels par minute.
Théorème
Le problème de flot maximal dans un réseau soumis
à des contraintes de capacité sur ses arcs et sur
ses sommets est équivalent à un problème de flot
maximal dans un nouveau réseau soumis à des
contraintes de capacité sur ses arcs seulement.
53
Hypothèse non restrictive
Tous les arcs admettant la source s à une de
leurs extrémités sont de la forme (s, )
uniquement.
Tous les arcs admettant la destination d à une de
leurs extrémités sont de la forme (, d)
uniquement.
Note Sil en est autrement, il sagit de
considérer 2 sommets supplémentaires s? et d? de
même que les arcs (s? , s) et (d, d?). s? et
d? joueront le rôle de source et de destination
resp.
54
Le problème sénonce comme suit
Max f(s, N) f(x, N) f(N, x) 0 ?x ? N, x ?
s, d L(x, y) ? f(x, y) ? K(x, y) ?(x, y) ?
A f(x, N) ? ?(x) ?x ? N, x ? d f(N, d) ?
?(d).
?
Pour ramener ce problème au cas de capacités
maximales associées à des arcs seulement,
définissons un nouveau réseau R (N, A).
?x ? N, on fait correspondre 2 sommets x' et x''
? N.
(x', y'') ? A ?(x, y) ? A.
(x'', x') ? A ?x ? N.
L(x', y'') L(x, y), K(x', y'') K(x, y),
?(x, y) ? A.
L(x'', x') 0, K(x'', x') ?(x), ?x ? N.
55
Exemple
x
x''
x'
s
d
s'
d''
d'
s''
y
y''
y'
Les arcs incidents à x sont maintenant incidents
à x'' tandis que ceux issus de x sont maintenant
issus de x'.
La capacité maximale ?(x) est imposée comme une
capacité maximale sur larc reliant x'' à x'.
Tout flot f satisfaisant ?, conduit à un flot
équivalent f de s'' à d' dans R (N, A) en
définissant
f(x', y'') f(x, y) ?(x, y) ? A,
f(x'', x') f(x, N) ?x ? d et f(d'', d')
f(N, d).
56
Comment déterminer un flot réalisable initial
lorsque les bornes inférieures ne sont pas toutes
nulles ?
Lorsque les bornes inférieures L(x, y) ne sont
pas toutes nulles, il peut y avoir un sérieux
problème pour déterminer un flot au jugé puisque
le flot nul nest pas admissible comme flot de
départ.
Pour déterminer un flot réalisable initial, sil
existe,
on ajoute un arc  artificiel  (d, s) avec L(d,
s) 0, K(d, s) ?.
on obtient le graphe G' (N, A') où A' A ?
(d, s).
Si f est un flot réalisable pour G avec une
valeur de flot v, posons
f '(d, s) v et f '(x, y) f(x, y) ? (x, y) ?
A.
Ainsi, f ' est un flot réalisable sur G ' et la
quantité nette de flot sécoulant à la source est
nulle.
57
Définition
f ' est une circulation réalisable sur G' si la
qté nette de flot sécoulant à nimporte quel
sommet du réseau est nulle.
Rechercher un flot réalisable de départ sur G est
donc équivalent à rechercher une circulation
réalisable sur G' car, étant donné
une circulation réalisable sur G', en enlevant
larc (d, s) du réseau, on obtient un flot
réalisable sur G.
Transformons maintenant le problème de trouver
une circulation réalisable sur G' en un problème
de flot maximal sur un réseau augmenté G" (N",
A").
58
Procédé
Ajoutons une nouvelle source s" et une nouvelle
destination d"
N" N ? s", d".
Ajoutons les arcs (s", x) et (x, d") ??x ? N
A" A' ? (s", N) ? (N, d").
Ajoutons des bornes inférieures nulles
L"(x, y) 0 ??(x, y) ? A".
Ajoutons un nouveau vecteur de capacités
K"(x, y) K(x, y) L(x, y) ?(x, y) ? A'
K"(s", y) ? L(x, y) ? ?y ? N x tel que (x,
y) ? A
K"(x, d") ? L(x, y) ? ?x ? N y tel que (x,
y) ? A
59
Il sagit alors de trouver un flot maximal f" de
s" à d" en partant avec le flot nul comme flot au
jugé.
Soit la valeur de flot v" du flot f" sur G",
v" lt ? L(x, y) (x, y) ? A
?
Il nexiste pas de flot réalisable sur G.
v" ? L(x, y) (x, y) ? A
?
Le vecteur f suivant est réalisable sur G f(x,
y) f "(x, y) L(x, y).
60
Exemple
2
Note
0,11
3,6
Les données sur larc (x, y) sont L(x, y),
K(x, y).
1
4
1,3
2,4
3,12
2,8
3
Le problème de trouver un flot réalisable sur G
est équivalent au problème de trouver une
circulation réalisable sur G'
2
0,?
0,11
3,6
1
4
1,3
2,4
2,8
3,12
3
61
Sur le réseau augmenté G", le flot maximal f" de
s" à d" est
7,?
2
4,11
0,3
1,1
5,5
0,2
0,2
1
4
3,3
0,0
2,6
0,0
5,5
s"
0,9
d"
3
3,3
5,5
Réseau G" avec sur chaque arc f"(x, y), K"(x,
y).
Tous les arcs issus de s" sont saturés alors, v"
? L(x, y) 11. (x, y) ? A
Le problème initial est réalisable et un vecteur
de flot réalisable sur G est (f12, f13, f23,
f32, f24, f34) (3, 4, 1, 2, 4, 3).
Write a Comment
User Comments (0)
About PowerShow.com