Problèmes de flots

publicité
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Problèmes de flots
Vincent Mousseau
Ecole Centrale Paris,
[email protected]
January 29, 2009
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
1
Réseaux de transports et flots
Réseaux de transports
Flot, flux
Coupe
2
Différents types de problèmes de flot
Détermination d’un flot réalisable sur un réseau de transport
Détermination d’un flot maximum
Détermination d’un flot de coût minimum
3
Recherche d’un flot de valeur maximale
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
4
Flot de coût minimum
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
1
Réseaux de transports et flots
Réseaux de transports
Flot, flux
Coupe
2
Différents types de problèmes de flot
Détermination d’un flot réalisable sur un réseau de transport
Détermination d’un flot maximum
Détermination d’un flot de coût minimum
3
Recherche d’un flot de valeur maximale
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
4
Flot de coût minimum
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport et flots
Définition : un réseau de transport de E à S est un graphe
G = (X , U) sans boucle, comporte une racine unique E
(appelée entrée ou source) et une antiracine unique S
(appelée sortie ou puit),
à chaque arc u = (xi , xj ) ∈ U est associé :
une capacité notée k(u) (ou k(xi , xj ) ou kij ) représentant la
quantité max. de matière pouvant circuler sur u, k(u) ≥ 0,
une borne notée b(u) (ou b(xi , xj ) ou bij ) représentant la
quantité minimum de matière pouvant circuler sur l’arc u,
k(u) ≥ b(u) ≥ 0,
un coût unitaire noté c(u) (ou c(xi , xj ) ou cij ) représentant le
coût d’acheminement d’une unité de matière sur l’arc u,
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport
Remarque 1 :
si G comporte plusieurs racines e1 , e2 , ..., en , on se ramène à
un réseau en ajoutant à X un sommet E et à U (E , ei ),
∀i = 1, . . . , n, avec k(E , ei ) = +∞, b(E , ei ) = 0,
c(E , ei ) = 0.
1
a
b
2
c
3
Vincent Mousseau
d
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport
Remarque 1 :
si G comporte plusieurs racines e1 , e2 , ..., en , on se ramène à
un réseau en ajoutant à X un sommet E et à U (E , ei ),
∀i = 1, . . . , n, avec k(E , ei ) = +∞, b(E , ei ) = 0,
c(E , ei ) = 0.
1
,∞
[0
E
a
]
[0,∞]
[0
,∞
b
2
c
]
3
Vincent Mousseau
d
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport
Remarque 2 :
si G n’a pas de racine,
1
a
b
2
c
3
Vincent Mousseau
d
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport
Remarque 2 :
si G n’a pas de racine, on ajoute un sommet E prédécesseur
de tous les sommets x t.q. Γ−1 (x) = ∅, k(E , x) = +∞,
b(E , x) = 0, c(E , x) = 0.
1
,∞
[0
E
a
]
[0,∞]
[0
,∞
b
2
c
]
3
Vincent Mousseau
d
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport
Remarque 3 :
si G comporte plusieurs antiracines s1 , s2 , ..., sn ,
1
∞
[0,
E
a
]
b
[0,∞]
[0,
∞
2
c
]
3
Vincent Mousseau
d
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport
Remarque 3 :
si G comporte plusieurs antiracines s1 , s2 , ..., sn , on se ramène
à un réseau en ajoutant à X un sommet S et à U (si , S),
∀i = 1, . . . , n, avec k(si , S) = +∞, b(si , S) = 0, c(si , S) = 0.
1
∞
[0,
E
a
[0,
∞
]
b
[0,∞]
[0,
∞
2
]
[0,∞
c
]
3
Vincent Mousseau
]
[0,∞]
∞
[0,
d
Problèmes de flots
]
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport
Remarque 4 :
si G n’a pas d’antiracine,
1
∞
[0,
E
a
]
b
[0,∞]
[0,
∞
2
c
]
3
Vincent Mousseau
d
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Réseau de transport
Remarque 4 :
si G n’a pas d’antiracine, on ajoute un sommet S successeur
de tous les sommets x t.q. Γ(x) = ∅, k(x, S) = +∞,
b(x, S) = 0, c(x, S) = 0.
1
,∞
[0
E
a
[0,
]
[0,∞]
[0
,∞
b
2
c
]
3
Vincent Mousseau
∞
]
[0,∞]
[0,∞]
]
∞
[0,
d
Problèmes de flots
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Exemple
Transport d’un produit d’entrepôts à des clients
3 dépots (1, 2 et 3), quantité en stock : 45, 25 et 25 resp.,
4 clients (a, b, c et d), demande : 30, 10, 20 et 30 resp.,
Les limitations en matière de transport de produit d’un
entrepôt à un client sont définies par :
1
2
3
a
10
20
-
b
15
5
-
c
5
10
d
20
10
Questions :
Peut-on satisfaire toutes les demandes ? Si oui, comment?
Sinon comment les satisfaire au mieux?
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Modélisation
Remarques :
X = {1, 2, 3} ∪ {a, b, c, d} ∪ {E } ∪ {S},
U représente :
les possibilités de transport d’un d’entrepôt à un client,
les arcs ajoutés pour constituer la racine E et l’antiracine S.
le flux représente :
le déstockage de produits à un dépôt,
le transport de produits d’un dépôt à un client,
l’arrivée de produit chez un client.
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
]
[0,10
45]
[0,
E
[0,25]
[0,
25]
1
[0,15
]
a
]
20
[0,
b
[0,5]
2
[0,
30
]
[0,20]
[0,5]
c
]
[0,10
[0,10
]
0]
,2
[0
3
[0,10]
S
]
30
[0,
d
a
r
c
f
l
u
x
|
{z
}
existence d’une
disponibilité au
dépôt i
|
{z
}
existence d’une
liaison dépôt i
client j
|
{z
}
existence d’une
demande chez le
client j
quantité
de
matière
provenant
du
dépôt i
quantité
acheminée
par la liaison
dépôt i client j
quantité
acheminée
au client i
On note sur chaque arc u l’intervalle [b(u), k(u)] ainsi que φ(u).
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Flot, flux
La quantité qui transite sur chaque arc u ∈ U s’appelle le flux
associé à (ou passant par) l’arc u. On note φ(u),
Definition : un flot Φ défini sur un réseau de transport est un
vecteur Φ = (φ1 , φ2 , . . . , φm ) avec φi = φ(ui ), i = 1, 2, . . . , m
vérifiant la loi de conservation (loi de Kirshhoff), i.e.,
P
P
u∈ω − (x) φ(u) =
u∈ω + (x) φ(u),
∀x ∈ X \ {E , S}
.
.
.
x
.
.
|
{z }
ω − (x)
Vincent Mousseau
|
{z }
ω + (x)
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Flot, flux
Dans certains cas on ajoutera un arc “retour” (S, E ) de sorte
que la loi de conservation soit vérifiée ∀x ∈ X ,
Un flot réalisable (ou compatible) est un flot vérifiant
b(u) ≤ φ(u) ≤ k(u), ∀u ∈ U.
0]
0,[0,1
E
45]
[0,
20,
25, [0,25]
0,[0,1
5]
]
5, [0,5
2
3
b
5, [0,5
]
,10]
10, [0
10, [0
,10]
c
]
20
0,
,[
20
20,
[0,
25]
1
a
0]
0,2
,[
5
1
15
,[
0,3
0]
5, [0,1
0]
,20]
15, [0
0]
0,3
,[
0
3
d
Figure: exemple de flot réalisable
Vincent Mousseau
Problèmes de flots
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Flot, flux
v (Φ), la valeur d’un flot Φ représente la quantité totale de
matière P
circulant sur le réseau.
P Elle est définie par :
v (Φ) = u∈ω+ (E ) φ(u) = u∈ω− (S) φ(u)
5
E
2
1
1
0
4
1
3
2
S
E
1
5
2
1
0
S
1
3
Le coût d’un flot représente le coût associé au transport de
l’ensemble
P de la matière sur le réseau, i.e.,
c(Φ) = u∈U c(u).φ(u),
si le coût sur chaque arc des l’exemples est égal à 1,
c(Φ1 ) = (2 × 1) + (3 × 1) + (1 × 1) + (1 × 1) + (4 × 1) = 11
c(Φ2 ) = (1 × 1) + (1 × 1) + (5 × 1) + (5 × 1) = 12
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Coupe
Définition : Soit A ⊂ X , t.q. E ∈ A, S ∈
/ A. On appelle
coupe engendrée par A (notée ω(A)) l’ensemble des arcs
dont une des extrémités appartient à A et l’autre à X \ A,
On distingue :
ω + (A) = {u ∈ ω(A) t.q. l’extrémité init. de u appartient à A},
ω − (A) = {u ∈ ω(A) t.q. l’extrémité term. de u ∈ A}
Exemple : A = {E , 1, 3} ⊂ X .
1
3
E
S
2
La coupe engendrée par A est :
ω(A) =
=
4
ω + (A) ∪ ω − (A)
{(e, 2), (1, 2), (3, s)} ∪ {(4, 1), (4, 3)}
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Coupe
Définition : On appelle valeur d’une coupe ω(A) (notée
v (ω(A))) la quantité de matière pouvant circuler sur les arcs
de la coupe, i.e.,
P
P
v (ω(A)) = u∈ω+ (a) k(u) − u∈ω− (a) b(u)
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Coupe
S
0]
,2
[0
Exemple : A = {E , 1, 2, a}, B = {E , 1, b}.
a
]
[0,10
]
0
[0,
2
1[0,15
30
[0,
]
]
5]
4
,
[0
[0
,10]
b
[0,5]
[0,25]
]
2
E
[0,5]
[0,20
[0,
25]
]
c
]
30
[0,10
[0,
[0,10
3
]
d
+
−
ω(A) = ω (A) ∪ ω (A)
v (ω(A))
ω(B)
v (ω(B))
=
=
=
=
=
{(E , 3), (1, b), (1, d), (2, b), (2, c), (a, S)} ∪ ∅
115
ω + (B) ∪ ω − (B)
{(E , 2), (E , 3), (1, a), (1, d), (b, S)} ∪ ∅
90
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Réseaux de transports
Flot, flux
Coupe
Coupe
Chaque coupe constitue un “goulot d’étranglement” qui limite
la valeur du flot.
Théorème (relation entre flot et coupe): soit Φ un flot
réalisable quelconque, soit un ensemble de sommets A ⊂ X tel
que E ∈ A, S ∈
/ A, on a : v (Φ) ≤ v (ω(A))
Interprétation : la valeur de tout flot est majorée par la valeur
d’une coupe quelconque ; ceci est vrai en particulier pour le
flot maximum,
La notion de coupe correspond bien à l’idée de goulet
d’étranglement.
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Détermination d’un flot réalisable sur un réseau de transport
Détermination d’un flot maximum
Détermination d’un flot de coût minimum
1
Réseaux de transports et flots
Réseaux de transports
Flot, flux
Coupe
2
Différents types de problèmes de flot
Détermination d’un flot réalisable sur un réseau de transport
Détermination d’un flot maximum
Détermination d’un flot de coût minimum
3
Recherche d’un flot de valeur maximale
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
4
Flot de coût minimum
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Détermination d’un flot réalisable sur un réseau de transport
Détermination d’un flot maximum
Détermination d’un flot de coût minimum
Différents types de problèmes de flot
un flot réalisable
est un flot P
Φ vérifiant b(u) ≤ φ(u) ≤ k(u),
P
∀u ∈ U et u∈ω− (x) φ(u) = u∈ω+ (x) φ(u), ∀x ∈ X \ {E , S},
un réseau de transport n’admet pas nécessairement de flot
réalisable,
Exemple :
]
[0,3
E
[0,3
]
1
[1,2]
3
4]
[1,
2
4
[1,3]
on a φ(2, 4) ≥ 1 et φ(E , 2) ≤ 3 ⇒ φ(2, 3) ≤ 2
or φ(1, 3) ≤ 2 donc φ(3, S) ≤ 4 ≤ b(3, S)
Vincent Mousseau
Problèmes de flots
[5,7
]
]
[1,3
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Détermination d’un flot réalisable sur un réseau de transport
Détermination d’un flot maximum
Détermination d’un flot de coût minimum
Flot réalisable sur un réseau de transport
Cas particulier important :
si le réseau de transport ne comporte aucune borne
(b(u) = 0, ∀u ∈ U) alors il existe toujours un flot réalisable,
i.e., le flot nul Φ0 t.q. φ(u) = 0, ∀u ∈ U.
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Détermination d’un flot réalisable sur un réseau de transport
Détermination d’un flot maximum
Détermination d’un flot de coût minimum
Détermination d’un flot maximum
Objectif : faire transiter dans le réseau de transport la plus
grande quantité de matière,
Rechercher parmi tous les flots réalisables, le flot Φ∗ tel que
v (Φ∗ ) soit maximale,
Ce problème peut s’écrire sous la forme d’un programme
linéaire:
P
max
φ(u)
+
Pu∈ω (E )
P
s.c.
φ(u)
=
u∈ω − (x)
u∈ω + (x) φ(u), ∀x 6= E , S
b(u) ≤ φ(u) ≤ k(u), ∀u ∈ U
φ(u) ≥ 0
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Détermination d’un flot réalisable sur un réseau de transport
Détermination d’un flot maximum
Détermination d’un flot de coût minimum
Détermination d’un flot de coût minimum
Objectif : rechercher parmi les flots d’une valeur v donnée,
celui (ou ceux) qui minimise(nt) le coût,
Ce problème peut s’écrire sous la forme d’un programme
linéaire:
P
min Pu∈U c(u).φ(u) P
s.c.
u∈ω − (x) φ(u) =
u∈ω + (x) φ(u), ∀x 6= E , S
b(u)
P ≤ φ(u) ≤ k(u), ∀u ∈ U
u∈ω + (E ) φ(u) = v
φ(u) ≥ 0
Cas particulier : détermination d’un flot maximum à coût
minimum (v = v (Φ∗ ))
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Recherche d’un flot de valeur maximale
Principe général de l’algorithme de Ford-Fulkerson
Principe général : on part d’un flot réalisable (flot nul si
b(u) = 0, ∀u ∈ U ) que l’on améliore itérativement,
Définitions :
un arc u ∈ U est dit saturé si φ(u) = k(u),
un flot Φ est dit complet si tout chemin µ de E vers S
comporte au moins un arc saturé,
Remarque : un flot non complet ne peut pas être maximum
Φ maximum ⇒ Φ complet,
mais Φ complet ; Φ maximum ,
Construire un flot complet lors de la première étape de
l’algorithme → on part d’un flot complet au lieu de Φ0 ,
Vincent Mousseau
Problèmes de flots
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
Partir d’un flot réalisable (flot nul si b(u) = 0, ∀u ∈ U),
Examiner tous les chemins de E à S de façon systématique,
Pour chaque chemin µ de E à S, faire passer un flot égal à la
capacité résiduelle minimale des arcs de µ.
Exemple :
5]
[0,4
E
a
[0,10]
[0,25]
[0,2
5]
1
[0,
30]
20]
[0,
[0,15]
b
[0,5]
2
[0,20]
[0,5]
[0,10]
3
[0,10]
[0
,2
0]
c
d
Vincent Mousseau
[0,10]
Problèmes de flots
30]
[0,
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
a
[0,10]
5]
[0,4
E
[0,25]
10,
[0,2
5]
1
[0,15]
b
[0,5]
2
3
[0,
30]
20]
[0,
[0,20]
[0,5]
[0,10]
10, [0,1
0]
[0
,2
0]
c
d
E → 3 → d → S : 10
Total : 10
Vincent Mousseau
[0,10]
Problèmes de flots
]
,30
, [0
10
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
a
[0,10]
5]
[0,4
E
[0,25]
10+
10,
[0,2
5]
1
[0,
30]
20]
[0,
[0,15]
[0,5]
2
[0,5]
3
0]
10, [0,1
10, [0,1
0]
[0
,2
0]
b
[0,10]
c
0]
10, [0,2
]
0
3
,
, [0
10
d
E → 3 → d → S : 10
E → 3 → c → S : 10
Total : 20
Vincent Mousseau
Problèmes de flots
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
a
[0,10]
5]
[0,4
E
5, [0,25]
10+
10,
[0,2
5]
1
[0,15]
[0,5]
2
3
[0,
30]
20]
[0,
b
[0,10]
c
[0,20]
10+5,
]
,30
, [0
10
5, [0,5]
0]
10, [0,1
10, [0,1
0]
[0
,2
0]
d
E → 3 → d → S : 10,
E → 3 → c → S : 10
E →2→c →S :5
Total : 25
Vincent Mousseau
Problèmes de flots
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
a
[0,10]
5]
[0,4
E
5+5, [0,25]
10+
10,
[0,2
5]
1
[0,15]
5, [0,5]
2
3
[0,
30]
20]
[0,
b
5, [0,1
0]
c
[0,20]
10+5,
]
,30
, [0
10
5, [0,5]
0]
10, [0,1
10, [0,1
0]
[0
,2
0]
d
E → 3 → d → S : 10,
E → 3 → c → S : 10
E →2→c →S :5
E →2→b→S :5
Total : 30
Vincent Mousseau
Problèmes de flots
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
a
[0,10]
5]
[0,4
E
5+5+15, [0,25]
10+
10,
[0,2
5]
1
[0,15]
]
,20
, [0
15
2
3
b
5, [0,5]
5, [0,5]
0]
10, [0,1
10, [0,1
0]
[0
,2
0]
c
15
, [0
,30
]
5, [0,1
0]
[0,20]
10+5,
]
,30
, [0
10
d
E → 3 → d → S : 10,
E → 3 → c → S : 10
E → 2 → c → S : 5,
E →2→b→S :5
E → 2 → a → S : 15
Total : 45
Vincent Mousseau
Problèmes de flots
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
a
[0,10]
E
5]
[0,4
20,
5+5+15, [0,25]
10+
10,
[0,2
5]
1
[0,15]
]
,20
, [0
15
b
5, [0,5]
2
5, [0,5]
3
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
15
, [0
,30
]
5, [0,1
0]
[0,20]
10+5,
]
,30
, [0
20
+
10
d
E
E
E
E
→ 3 → d → S : 10,
E → 3 → c → S : 10
→ 2 → c → S : 5,
E →2→b→S :5
→ 2 → a → S : 15
→ 1 → d → S : 20
Total : 65
Vincent Mousseau
Problèmes de flots
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
a
[0,10]
E
]
0,45
5, [
20+
5+5+15, [0,25]
10+
10,
[0,2
5]
1
5, [0,15
]
5, [0,5]
]
,20
, [0
15
b
2
5, [0,5]
3
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
15
, [0
,30
]
5+5, [0
,10]
[0,20]
10+5,
]
,30
, [0
20
+
10
d
E
E
E
E
→ 3 → d → S : 10,
E → 3 → c → S : 10
→ 2 → c → S : 5,
E →2→b→S :5
→ 2 → a → S : 15,
E → 1 → d → S : 20
→1→b→S :5
Total : 70
Vincent Mousseau
Problèmes de flots
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Construction d’un flot complet
0]
10, [0,1
]
0,45
0, [
5+1
E
20+
5+5+15, [0,25]
10+
10,
[0,2
5]
1
5, [0,15
]
]
5, [0,5
a
]
,20
, [0
15
b
2
5, [0,5]
3
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
15
+1
0,
[0,
30]
5+5, [0
,10]
[0,20]
10+5,
30]
[0,
0,
+2
0
1
d
E
E
E
E
E
→ 3 → d → S : 10,
E → 3 → c → S : 10
→ 2 → c → S : 5,
E →2→b→S :5
→ 2 → a → S : 15,
E → 1 → d → S : 20
→1→b→S :5
→ 1 → a → S : 10
Total : 80
Vincent Mousseau
Problèmes de flots
S
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Flot complet
0]
10, [0,1
E
5]
[0,4
35,
25, [0,25]
20,
[0,2
5]
1
5, [0,15
]
5, [0,5]
a
]
,20
, [0
15
b
2
5, [0,5]
3
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
25
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
d
E
E
E
E
→ 3 → d → S : 10,
E → 3 → c → S : 10
→ 2 → c → S : 5,
E →2→b→S :5
→ 2 → a → S : 15,
E → 1 → d → S : 20
→ 1 → b → S : 5,
E → 1 → a → S : 10
Total : 80
Vincent Mousseau
Problèmes de flots
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Amélioration d’un flot réalisable
L’algorithme de Ford-Fulkerson se décompose en deux étapes :
procédure de marquage + procédure de changement de flot.
1 : Procédure de marquage
début
marquer [+] le sommet E
répéter
- sélectionner un sommet marqué x,
- marquer [+] tout sommet y non marqué,
extrémité terminale d’un arc (x, y ) non saturé
- marquer [-] tout sommet y non marqué,
l’extrémité initiale d’un arc (y , x)
tel que φ(y , x) > b(y , x)
jusqu’à (aucun sommet ne peut e
^tre marqué) ou (S marqué)
si S n’est pas marqué
alors le flot est maximum
sinon le flot peut e
^tre amélioré
fin si
fin
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
procédure de changement de flot
Cette procédure ne s’applique que si S est marqué à l’issue de
la procédure de marquage.
Soit µ une chaı̂ne de E à S.
e
Soit
xi
xi +1
xj
xj+1
s
µ+
l’ensembles des arcs de la chaı̂ne de type (xi , xi +1 )
“arcs avant”.
Soit µ− l’ensembles des arcs de la chaı̂ne de type (xj , xj+1 )
“arcs arrière”.
Les arcs de µ+ sont tels qu’il est possible d’augmenter la
valeur du flux associé d’une quantité ε+ ≥ 0.
Les arcs de µ− sont tels qu’il est possible de diminuer la
valeur du flux associé d’une quantité ε− ≥ 0.
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Procédure de changement de flot
Une chaı̂ne µ est dite améliorante si ε+ > 0 et ε− > 0.
Si on augmente la valeur du flux sur les arcs de µ+ et diminue
la valeur du flux d’une même valeur sur les arcs de µ− , la loi
de Kirshhoff est préservée en chaque sommet,
Procédure de changement de flot (Φ → Φ′ ) :
début
ε+ ← minu∈µ+ {k(u) − φ(u)}
ε− ← minu∈µ− {φ(u) − b(u)}
ε ← min{ε+ , ε− }
construire Φ′ tel que
φ′ (u) ← φ(u) + ε, ∀u ∈ µ+
φ′ (u) ← φ(u) − ε, ∀u ∈ µ−
φ′ (u) ← φ(u), ∀u ∈
/µ
réappliquer la procédure de marquage
fin
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
0]
10, [0,1
+
E
5]
[0,4
35,
25, [0,25]
20,
[0,2
5]
1
2
3
5, [0,15
]
]
5, [0,5
a
]
,20
, [0
15
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
Vincent Mousseau
Problèmes de flots
25
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
+
25, [0,25]
20,
[0,2
5]
1
2
+
+
E
5]
[0,4
35,
3
0]
10, [0,1
5, [0,15
]
]
5, [0,5
a
]
,20
, [0
15
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
Vincent Mousseau
Problèmes de flots
25
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
20,
[0,2
5]
2
+
25, [0,25]
1
3
5, [0,15
]
]
5, [0,5
]
,20
, [0
15
a
+
+
+
E
5]
[0,4
35,
0]
10, [0,1
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
Vincent Mousseau
Problèmes de flots
25
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
2
+
20,
[0,2
5]
-
25, [0,25]
1
3
5, [0,15
]
]
5, [0,5
]
,20
, [0
15
a
+
+
+
E
5]
[0,4
35,
0]
10, [0,1
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
Vincent Mousseau
Problèmes de flots
25
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
+
2
+
20,
[0,2
5]
-
25, [0,25]
1
3
5, [0,15
]
]
5, [0,5
]
,20
, [0
15
a
+
+
+
E
5]
[0,4
35,
0]
10, [0,1
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
Vincent Mousseau
Problèmes de flots
25
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
+
+
20,
[0,2
5]
2
3
5, [0,15
]
]
5, [0,5
a
+
25, [0,25]
1
]
,20
, [0
15
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
Vincent Mousseau
Problèmes de flots
25
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
+
+
+
E
5]
[0,4
35,
0]
10, [0,1
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
chaı̂ne améliorante
+
2
+
20,
[0,2
5]
3
5, [0,15
]
5, [0,5]
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
a
b
c
d
E →1→b→2→a→S : 5
Vincent Mousseau
Problèmes de flots
25
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
,30
, [0
30
+
+
25, [0,25]
1
]
,20
, [0
15
+
+
E
5]
[0,4
35,
0]
10, [0,1
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Nouveau flot
]
0,45
5, [
35+
E
25, [0,25]
20,
[0,2
5]
1
2
3
0]
10, [0,1
20]
[0,15]
[0,
+5
15
5+5
]
,5
5-5, [0
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
a
b
c
d
Vincent Mousseau
Problèmes de flots
25
+5
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
0]
10, [0,1
+
E
5]
[0,4
40,
25, [0,25]
20,
[0,2
5]
1
2
3
10, [0,1
5]
]
0, [0,5
a
]
,20
, [0
20
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
Vincent Mousseau
Problèmes de flots
30
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
+
25, [0,25]
20,
[0,2
5]
1
2
+
+
E
5]
[0,4
40,
3
0]
10, [0,1
10, [0,1
5]
]
0, [0,5
a
]
,20
, [0
20
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
Vincent Mousseau
Problèmes de flots
30
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
+
20,
[0,2
5]
2
+
25, [0,25]
1
+
3
10, [0,1
5]
0, [0,5]
]
,20
, [0
20
a
+
E
5]
[0,4
40,
0]
10, [0,1
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
d
On ne peut plus marquer de sommets,
S n’est pas marqué
→ le flot est maximum.
Vincent Mousseau
Problèmes de flots
30
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Marquage
20,
[0,2
5]
2
+
25, [0,25]
1
+
3
10, [0,1
5]
0, [0,5]
]
,20
, [0
20
a
+
+
E
5]
[0,4
40,
0]
10, [0,1
b
5, [0,5]
0] 20,
10, [0,1
[0
,2
0]
10, [0,1
0]
c
30
, [0
,30
]
10, [0,1
0]
0]
15, [0,2
]
0
3
,
, [0
30
S
d
On ne peut plus marquer de sommets,
S n’est pas marqué
→ le flot est maximum, v (Φ∗ ) = 85.
La coupe de valeur minimale est engendrée par le sous-ensemble A
des sommets marqués → v (ω(A∗ )) = 85.
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Justification de l’algorithme
Théorème (de Ford-Fulkerson) : La valeur d’un flot maximum
est égale à la valeur d’une coupe minimum,
Ce théorème traduit le fait que rechercher un flot maximum
est équivalent à rechercher une coupe minimum,
A la fin de l’algorithme de Ford-Fulkerson, soit A∗ les
sommets marqués (E ∈ A∗ , S ∈
/ A∗ ), la coupe ω(A∗ ) est de
valeur minimale,
Lemme 1 : Soit Φ un flot définit sur un réseau de transport
(de racine E et d’antiracine S), ∀A ⊂ X t.q. E ∈ A, S ∈
/ A, on a
:
X
X
v (Φ) =
φ(u) −
φ(u)
u∈ω + (A)
u∈ω − (A)
i.e.,“la valeur d’un flot peut être déterminée sur toute coupe”
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Preuve
P
P
d’après la loi de Kirshhoff on a :
u∈ω + (x) φ(u) =
u∈ω − (x) φ(u), ∀x 6= E
P
P
P
P
d’où :
x∈A\{E }
u∈ω + (x) φ(u) =
x∈A\{E }
u∈ω − (x) φ(u)
C’est-à-dire
P
P :
P
φ(u) − u∈ω + (E ) φ(u) =
+
x∈A
u∈ω
P (x) P
P
x∈A
u∈ω − (x) φ(u) −
u∈ω − (E ) φ(u),
P
P
or, u∈ω + (E ) φ(u) = v (Φ) et u∈ω − (E ) φ(u) = 0
donc,
v (Φ)
=
=
=
P
x∈A
P
P
u∈ω + (x)
(y,z):y∈A,z∈A
φ(u) −
P
φ(y , z) +
x∈A
P
P
u∈ω − (x)
(y,z):y∈A,z ∈A
/
φ(u)
φ(y , z)
P
P
−
φ(y , z) + (y,z):y ∈A,z
(y,z):y ∈A,z∈A
/
/
∈A
/ φ(y , z)
P
P
u∈ω + (A) φ(u) −
u∈ω − (A) φ(u)
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
P
Corollaire : v (Φ) = u∈ω− (S) φ(u)
Preuve : application du lemme 1 avec A = {S}
Lemme 2 (relation fondamentale flot-coupe) :
∀Φ flot réalisable, ∀A ⊂ X t.q. E ∈ A, S ∈
/ A,
on a : v (Φ) ≤ v (ω(A))
Preuve :
d’après le
Plemme 1 on a : P
v (Φ) = u∈ω+ (A) φ(u) − u∈ω− (A) φ(u),
or Φ est réalisable donc b(u) ≤ φ(u) ≤ k(u), ∀u ∈ U,
P
P
d’où
+ (A) φ(u) ≤
u∈ω
P
P u∈ω+ (A) k(u) et
− u∈ω− (A) φ(u) ≤ − u∈ω− (A) b(u)
P
P
donc
v (Φ) ≤
u∈ω + (A) k(u) −
u∈ω − (A) b(u)
= v (ω(A))
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Théorème : Si ∃ flot Φ∗ et une coupe engendrée par A∗ tels que
v (Φ∗ ) = v (ω(A∗ )), alors Φ∗ est de valeur maximale et la coupe
engendrée par A∗ est de valeur minimale.
Preuve :
d’après le lemme 2, ∀Φ′ un flot réalisable, on a : v (Φ′ ) ≤ v (ω(A∗ )),
or v (ω(A∗ )) = v (Φ∗ ) donc v (Φ′ ) ≤ v (Φ∗ ).
d’après le lemme 2, ∀A′ ⊂ X t.q. E ∈ A, S ∈
/ A, on a :
v (ω(A′ )) ≥ v (Φ∗ ), or v (Φ∗ ) = v (ω(A∗ )) donc
v (ω(A′ )) ≥ v (ω(A∗ ))
Montrons qu’il existe un flot Φ∗ et une coupe engendrée par A∗ tels
que v (Φ∗ ) = v (ω(A∗ )),
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
A la fin de l’algorithme de Ford-Fulkerson, on obtient un flot Φff
(réalisable par construction) et un ensemble de sommets marqués
Aff (avec E ∈ Aff et S ∈
/ Aff ),
on a:
∀u = (x, y ) ∈ ω + (Aff ), u saturé (i.e. φ(u) = k(u)), sinon on
aurait pu marquer + y et donc u = (x, y ) ∈
/ ω + (Aff ),
−
∀u = (x, y ) ∈ ω (Aff ), φ(u) = b(u), sinon on aurait pu
marquer - x et donc u = (x, y ) ∈
/ ω − (Aff ),
d’après le lemme 1, on P
a:
P
v (Φff ) =
u∈ω + (Aff ) φ(u) −
u∈ω − (Aff ) φ(u)
P
P
=
u∈ω + (Aff ) k(u) −
u∈ω − (Aff ) b(u)
=
v (ω(Aff ))
l’algorithme de Ford-Fulkerson fournit permet donc de déterminer
un flot de valeur maximum et une coupe de valeur minimum,
La preuve du théorème de Ford-Fulkerson est fournit par
l’algorithme lui-même.
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Convergence et complexité
partant du flot nul Φ0 à chaque étape de l’algorithme (prise en
compte d’une chaı̂ne améliorante), le flot est augmenté d’un valeur
entière >0
or v (Φ∗ ) ≤ v (ω(A)), ∀A ⊂ X t.q. E ∈ A, S ∈
/ A ⇒ il existe
un nombre fini de chaı̂nes améliorantes,
b(u) et k(u) sont entier ⇒ l’algorithme converge en un
nombre fini d’itérations.
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Complexité de l’algorithme de Ford-Fulkerson,
nombre d’itérations ≤ v (Φ∗ ) = v (ω + ({E })),
à chaque itération, on examine tous les sommets (excepté E ),
c’est-à-dire n − 1 sommets
examiner un sommet consiste à effectuer un nombre
d’opération proportionnel au degré du sommet (pour tester si
on peut prolonger une chaı̂ne améliorante),
le nombre d’opérations à effectuer à chaque itération est donc
borné par la somme des degrés des sommets, i.e., 2m,
la complexité est donc de O(m.v (Φ∗ )) ou O(m.v (ω({E }))),
or ω({E }) est majoré par n.kmax , où kmax = maxu∈U {k(u)},
donc la complexité est de O(m.n.kmax )
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Graphe d’écart
On peut associer à un réseau de transport G = (X , U)
antisymétrique et un flot Φ, un graphe G e (Φ) = (X , U e (Φ))
appelé graphe d’écart. U e (Φ) est défini par :
à tout arc (x, y ) ∈ U tel que b(u) < φ(u) < k(u), on associe :
un arc (x, y ) ∈ U e (Φ) t.q. k e (x, y ) = k(u) − φ(u) et
c e (x, y ) = c(u),
un arc (y , x) ∈ U e (Φ) t.q. k e (x, y ) = φ(u) − b(u) et
c e (y , x) = −c(u),
à tout arc (x, y ) ∈ U tel que φ(u) = k(u), on associe un arc
(y , x) ∈ U e (Φ) t.q. k e (x, y ) = φ(u) − b(u) et c e (y , x) = −c(u),
à tout arc (x, y ) ∈ U tel que φ(u) = b(u), on associe un arc
(x, y ) ∈ U e (Φ) t.q. k e (x, y ) = k(u) − φ(u) et c e (x, y ) = c(u),
Vincent Mousseau
Problèmes de flots
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Graphe d’écart
Dans le graphe G e (Φ) = (X , U e (Φ)), tout chemine de E à S
représente une chaı̂ne améliorante ,
Considérons le flot Φ correspondant au flot complet déterminé
au §3.2. le graphe G e (Φ) est le suivant. On retrouve la chaı̂ne
améliorante E 1b2aS
1
]
[10
E
]
[35
[25]
a
]
[15
[5]
2
b
[5]
[5]
[15]
c
[10]
3
[10]
[5]
[25
]
[10]
d
Vincent Mousseau
[5]
]
[30
0]
[2
[20
]
[5]
[10]
]
[10] [5
Problèmes de flots
S
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Changement de flot avec G e (Φ)
Soit µe un chemin de E à S dans G e (Φ) et µ la chaı̂ne
correspondante (concept non-orienté) dans G ,
Soit δ = Minu∈µe k e (u),
On peut obtenir un flot réalisable Φ′ en faisant varier les flux
sur les arcs de G comme suit :
∀u ∈ µ t.q. l’arc correspondant dans µe a la même orientation
: φ′ (u) = φ(u) + ε (ε ≤ δ),
∀u ∈ µ pour lequel l’arc correspondant dans µe a l’orientation
inverse : φ′ (u) = φ(u) − ε (ε ≤ δ),
∀u ∈
/ µ, φ′ (u) = φ(u)
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Principe général de l’algorithme de Ford-Fulkerson
Construction d’un flot complet
Amélioration d’un flot réalisable
Justification de l’algorithme, convergence et complexité
Graphe d’écart
Changement de flot avec G e (Φ)
Φ est un flot (loi de Kirshhoff préservée) réalisable (ε ≤ δ),
En appliquant la procédure à un chemin de E à S, on
augmente la valeur du flot Φ de ε,
En appliquant la procédure à un circuit, onP
ne modifie pas la
valeur du flot mais on a : c(Φ′ ) = c(Φ) + u∈µe c e (u).ε,
Exemple : circuit 1b2a1, δ = min{10, 5, 10, 10} = 5
ajouter 5 à φ(1, b),
retirer 5 à φ(2, b),
ajouter 5 à φ(2, a),
retirer 5 à φ(1, a),
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Flot de coût minimum
Soit un réseau de transport G = (X , U) sur lequel sont associés à
chaque arc u ∈ U, b(u) (borne), k(u) (capacité) et c(u) (coût
unitaire),
Le problème consiste à déterminer parmi les flots réalisables de
valeur v , un flot de coût minimum,
Formulation en Programmation Linéaire :
P
min Pu∈U c(u).φ(u) P
s.c.
u∈ω − (x) φ(u) =
u∈ω + (x) φ(u), ∀x 6= E , S
b(u)
≤
φ(u)
≤
k(u),
∀u
∈U
P
c(u).φ(u)
=
v
+
u∈ω (E )
φ(u) ≥ 0, ∀u ∈ U
Les variables du PL sont φ(u), ∀u ∈ U, les deux premières
contraintes assurent que le flot est réalisable,
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Flot de coût minimum
Théorème : Φ, un flot de valeur v , est de coût minimum ssi
G e (Φ) ne contient pas de circuit de valeur négative au sens
des coûts,
Algorithme de construction d’un flot de valeur v et de coût
minimum :
début
construire un flot Φ de valeur v de co^
ut k
répéter
- construire G e (Φ),
- si ∃µ un circuit de valeur kµ < 0 dans G e (Φ),
alors construire Φ′ en appliquant la
procédure de changement de flot
sur µ avec ε = δ
Finsi
- le flot′ Φ′ est de valeur v ′ = v et de
co^
ut k = k − δ.kµ
jusqu’à ∄µ circuit de valeur négative dans G e (Φ)
fin
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Flot de coût minimum
On peut appliquer différents algorithmes pour la détection de
circuits de valeur négative (Bellman-Kalaba, Floyd,...).
Problème : A partir d’un flot Φ de valeur v (v < v (Φ∗ )) et de
coût minimum, comment déterminer un flot Φ′ de valeur
v ′ > v et de coût minimum ?
Théorème :
Soit Φ un flot de valeur v (v < v (Φ∗ )) et de coût minimum,
soit µe un chemin de coût minimum de E à S dans G e (Φ).
On obtient un flot Φ′ de valeur v ′ > v et de coût minimum en
appliquant la procédure de changement de flot sur µe .
Algorithme de construction d’un flot Φ′ de valeur v ′ > v et de
coût minimum à partir d’un flot Φ de valeur v et de coût
minimum :
Vincent Mousseau
Problèmes de flots
Réseaux de transports et flots
Différents types de problèmes de flot
Recherche d’un flot de valeur maximale
Flot de coût minimum
Flot de coût minimum
début
- soit Φ un flot de co^
ut minimum parmi
les flots de valeur v
- construire G e (Φ),
- choisir dans G e (Φ) un chemin µe de E à S
minimal au sens des co^
uts
′
- construire Φ en appliquant la procédure de
changement de flot en utilisant avec ε = δ
fin
Problème : pour appliquer l’algorithme, il faut disposer d’un
flot de coût minimum. On peut soit appliquer l’algorithme
précédent, soit considérer le flot nul.
Vincent Mousseau
Problèmes de flots
Téléchargement