Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Objectifs de ce cours
> Introduire les notions de rseau de transport et de flot. > Introduire la notion de flot complet sur un rseau de transport. > Poser le problme du flot maximum et montrer comment le rsoudre laide de la programmation linaire et de lalgorithme de Ford-Fulkerson. > Les problmes de flot (plutt dans leurs versions pondres) ont de nombreuses applications industrielles que nous verrons dans un prochain cours.
RO03 - 2011
Notions de rseau de transport et de s-t-flot > Un rseau de transport R=(G,u,s,t) consiste en la donne :
Dun graphe orient G=(V,A) (sans boucle). Dune fonction de capacit u : AR+. De deux sommets particuliers s et t de V (resp. appels source et puit).
> Soit R=(G,u,s,t) un rseau de transport, on appelle s-t-flot sur R une fonction f : AR+ telle que :
f(a) u(a), pour tout a A. a (v) f(a) = a +(v) f(a), pour tout v V \ {s,t} (contraintes de Kirchoff).
On peut poser (t,s) A et u((t,s)) = pour tendre leur validit V.
Exemple
> En trois dpts 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 possibilits de transport l'aide de camions. Ces possibilits sont rapportes dans le tableau suivant :
D E F A 15 10 0 B 15 5 5 C 5 0 10
RO03 - 2011
RO03 - 2011
Exemple A 0/2 s 0/7 0/2 C 0/5 0/2 B 0/3 0/2 0/8 F E 0/6 D 0/2 0/5 0/7 t
Exemple A 0/2 s 0/7 0/2 C 0/5 0/2 B 0/3 0/2 0/8 F E 0/6 D 0/2 0/5 0/7 t
RO03 - 2011
Exemple A 2/2 s 0/7 0/2 C 0/5 0/2 B 0/3 0/2 0/8 F E 2/6 D 2/2 0/5 0/7 t
Exemple A 2/2 s 0/7 0/2 C 0/5 0/2 B 0/3 0/2 0/8 F E 2/6 D 2/2 0/5 0/7 t
RO03 - 2011
Exemple A 2/2 s 3/7 0/2 C 0/5 0/2 B 3/3 0/2 0/8 F E 2/6 D 2/2 3/5 0/7 t
11
Exemple A 2/2 s 3/7 0/2 C 0/5 0/2 B 3/3 0/2 0/8 F E 2/6 D 2/2 3/5 0/7 t
RO03 - 2011
2/6 0/5
14
RO03 - 2011
> Remarque : le systme dingalits linaires ci-dessus possde toujours au moins une solution.
15
Consquences
> Le problme du s-t-flot maximum est un problme polynomial.
Consquence direct du thorme de Khachiyan.
> On peut utiliser nimporte quel algorithme pour la programmation linaire (par ex. lalgorithme du simplexe) afin de rsoudre ce problme.
En termes de complexit nous allons faire mieux laide dalgorithmes combinatoires . En pratique, par contre, ce nest pas forcment idiot, mais cela devient une question de gnie logiciel.
16
RO03 - 2011
> Soit un rseau de transport R=(G,u,s,t) et un s-t-flot f sur R, on dfinit la fonction de capacit rsiduelle uf : AAR+ t. q. :
uf(a) = u(a) f(a), pour tout aA. uf(a) = f(a), pour tout a=(v,w)A et a=(w,v)A.
> On appelle graphe rsiduel associ f le graphe Gf = (V,{aAA : uf(a) > 0}).
17
> On appelle chemin f-augmentant, tout s-t-chemin dans le graphe rsiduel Gf.
18
RO03 - 2011
Lalgorithme de Ford-Fulkerson
> Entre : R=(G,u,s,t) un rseau de transport. > Sortie : un s-t-flot f de valeur maximum. > nonc :
Poser f := 0. Rpter :
Choisir un chemin f-augmentant P. Si un tel chemin nexiste pas alors fin (f est alors maximum). Augmenter f de =minaP uf(a) selon P.
19
Exemple (prcdent) A 2/2 s 3/7 2/2 C 0/5 0/2 B 3/3 2/2 0/8 F E 2/6 D 2/2 5/5 0/7 t
20
RO03 - 2011
10
Exemple (prcdent) A 2/2 s 3/7 2/2 C 0/5 0/2 B 3/3 2/2 0/8 F E 2/6 D 2/2 5/5 0/7 t
Exemple (prcdent) A 2/2 s 5/7 2/2 C 2/5 2/2 B 3/3 0/2 2/8 F E 0/6 D 2/2 5/5 2/7 t
RO03 - 2011
11
1/ 1/ 0/
Retour sur le problme du couplage biparti de cardinalit maximum > Mettre ce problme sous la forme dun problme de flot maximum.
24
RO03 - 2011
12
Retour sur le problme du couplage biparti de cardinalit maximum > Mettre ce problme sous la forme dun problme de flot maximum.
1 s 1 1 1 1 1
25
1 1 1 1 1 1
Lemme des contraintes de Kirchoff gnralises > Soit R=(G,u,s,t) un rseau de transport et f un s-t-flot sur R alors pour tout X V \ {s,t} on a : a (X) f(a) = a +(X) f(a). > Preuve :
Pour tout v X on a a (v) f(a) - a +(v) f(a) = 0, do v X (a (v) f(a) - a +(v) f(a)) =0. Or -(v)= -(v) -(X) -(v) \ -(X) et -(v)= +(v) +(X) +(v) \ +(X), v X (a (v)(X) f(a) - a +(v)+(X) f(a)) = a (X) f(a) - a +(X) f(a) et v X (a (v)\(X) f(a) - a +(v)\+(X) f(a)) = a A(X) f(a) - a A(X) f(a) = 0.
26
RO03 - 2011
13
Lemme
> Soit R=(G,u,s,t) un rseau de transport et f un s-t-flot sur R alors pour tout X V t. q. s X et t X on a :
(a) valeur(f) = a +(X) f(a) - a (X) f(a). (b) valeur(f) a +(X) u(a).
> Preuve :
(a) : analogue la preuve du lemme des contraintes de Kirchoff gnralises. (b) : consquence triviale de (a) et de 0 f(a) u(a).
27
Thorme
> Soit R=(G,u,s,t) un rseau de transport, un s-t-flot f sur R est maximum si et seulement si il nexiste pas de chemin faugmentant. > Preuve :
Ncessit : sil existe un chemin f-augmentant alors lalgorithme de FordFulkerson fourni un flot de plus grande valeur et donc f nest pas maximum. Suffisance : sil ny a pas de chemin f-augmentant t nest (par dfinition) pas atteignable depuis s dans Gf. Soit Y lensemble des sommets atteignables depuis s dans Gf. Par dfinition de Gf on a f(a)=u(a) (car uf(a)=u(a)-f(a)=0) pour tout a de +G(Y) et f(a)=0 (car uf(a)=f(a)=0) pour tout a de -G(Y). Le lemme prcdent (partie (a)) implique
valeur(f) = a +
G(Y)
u(a),
RO03 - 2011
14
Lien avec le problme de la coupe minimum > Soit G=(V,A) un graphe orient, C A est une s-t-coupe sur G si G=(V,A \ C) ne contient pas de s-t-chemin.
On dfinit galement capa(C) = a C u(a).
> Thorme : soit R=(G,u,s,t) un rseau de transport, la valeur maximum dun s-t-flot sur R est gal la capacit minimum dune s-t-coupe. > Preuve :
Dans la preuve du thorme prcdent nous avons construit une s-t-coupe, +(Y), dont la capacit est gale la valeur dun flot maximum, f. toute s-t-coupe minimale C on peut associer X V t. q. s X, t X et C=+(X) Or (lemme prcdent), on a capa(+(X)) = a +(X) u(a) valeur(f).
29
> Remarque : cest aussi le cas des solutions du PL prcdent car les matrices associes aux problmes de flot sont totalement unimodulaires (i.e., tous leurs sous-dterminants sont 0, +1 ou -1).
30
RO03 - 2011
15
Remarques algorithmiques
> Pour obtenir des algorithmes efficaces, il convient de ne pas choisir le chemin f-augmentant arbitrairement.
Par ex. avec des capacits irrationnelles, lalgorithme tel que nous lavons dcrit ne termine pas forcment
> Par ex. dans lalgorithme dEdmonds-Karp on choisit le plus court des chemins f-augmentant.
Thorme : lalgorithme dEdmonds-Karp rsout le problme du s-t-flot maximum en O(m2n).
> Dautres algorithmes existent, par ex. lalgorithme de GolbergTarjan qui rsout le problme en O(n3).
31
RO03 - 2011
16