Académique Documents
Professionnel Documents
Culture Documents
GRAPHES
Flots et coupes
Marie-Christine Costa
X={a,b,c,d,e,f,h}
U={(a,c),(a,d),(b,h),…,(f,e),(f,h)}
Γ+(e)={a,b,c} Γ-(e)={c,f} (Γ- : prédécesseur) 5
Un graphe orienté
Chemin : suite d'arcs
a telle que l'extrémité
e b terminale d'un arc
coïncide avec
c l'extrémité initiale de
f
l'arc suivant
d h
Exemple
µ=((a,c),(c,e),(e,b),(b,h))=(a,c,e,b,h)
6
Un graphe orienté
Chaîne : suite d'arcs
a telle que tout arc a une
e b extrémité commune avec
l'arc précédent (sauf
éventuellement le
c premier) et l'autre avec
f
l'arc suivant (sauf
éventuellement le
dernier)
d h
Exemple
µ’=((a,c),(f,c),(f,h)) = [a,c,f,h]
Remarque: un chemin est une chaîne. 7
Réseau de transport
8
Un réseau de transport
R=(X,U,C)
[6]
a b
[4] [4]
[4] [6] capacités
c t
s [2] [4]
[1]
e
[3] [2] [6]
[7]
[2]
[2] f
d
source puits
capacités
9
Un réseau de transport
R=(X,U,C)
[6]
a b
[4] [4]
[4] [6]
c t
s [2] [4]
[1]
e
[3] [2] [6]
[7]
[2]
[2] f
d
11
Le problème du flot maximal
12
Un réseau de distribution de l’eau
13
14
s Capacité du château d’eau
Capacité des canalisations
[a] [b]
[x]
[x] [x]
[x]
[x] [x]
[x] [x]
15
s Capacité du château d’eau
Capacité des canalisations
[a] [b]
[x]
[x] [x]
[x]
[x] [x]
[x] [x]
demandes
[d4]
[d2] [d3] [d5] [d6]
[d1]
t
16
Le problème du flot maximal
• Hypothèses:
– On peut décomposer/recomposer la matière
transférée en chaque nœud.
– Il y a conservation de la matière en chaque
nœud.
17
Un réseau de transport
flux sur un arc
[6] 2
a b
2
2 [4] [4]
[4] [6]
c t
s [2] [4]
[1]
e
[3] [2] [6]
[7]
[2]
[2] f
d
2
18
Décomposition/recomposition des flux
5 [6] 3
[6] y z
[4]
x
2
w
5
[7]
[4] v
[2] t
4 1
∀ ∈ , ∑∈ =∑∈
20
Flot sur un réseau de transport
21
Un réseau de transport
a
[6] 4 b
4
4 [3] [4]
[4] [6]
c t
s [2] [4]
[1]
e
[3] [2] [6]
[7]
[2]
[2] f
d
4 22
Un réseau de transport
a
[6] 4 b
4
4 [3] [4]
[4] [6]
c 1 t
s [4]
1 [2] [1]
1 e
[3] [2] [6]
[7]
[2]
[2] f
d
4+1 23
Un réseau de transport
Le flot est
a
[6] 4 b
4 complet et
4 [3] [4]
[4] [6] v(ϕ)=7
c 1 t
s [4]
1 [2] [1]
1 e
2 [2] [6]
[7] [3]
[2]
2
d 2 [2] f
4+1+2 24
Chaîne améliorante
25
Chaîne améliorante
[6] -4
a b
4
4 [3] [4]
+ [6]
[4]
+
+ c 1 t
s 1 [2] [4]
[1] +
1
e
2 [2]
[7] [3] [6]
[2]
2
2 [2] f
d
[6]
-1 4
a b
4
4 [3] +1 [4]
[4] [6]
+1
+1 c 1 t
s 1 [2] [4]
[1] +1
1
e
2 [2]
[7] [3] [6]
[2]
2
2 [2] f
v(ϕ)=8
d
7 +1
27
Chaîne améliorante
[6] 3
a b
4
4 [3] [4]
1 [6]
[4] 1
c 2 t
s 2 [2] [4]
[1]
1
e
2 [2]
[7] [3] [6]
[2]
2
2 [2] f
d
v(ϕ)=8
8
28
Chaîne améliorante
• On note :
– µ + = {arcs de µ dans le bon sens}
– µ - = {arcs de µ dans le mauvais sens}
• Augmentation de la valeur du flot de α :
30
L’algorithme de Ford-Fulkerson: une procédure de marquage
31
Chaîne améliorante
-b +c
[6] 3
a b
4
4 [3] [4]
1 [6]
[4] 1
+e
c 2 t
s 2 [2] +a [4]
+d [1]
1
+ e
2 [2]
[7] [3] [6]
[2]
2
2 [2] f
d
+s v(ϕ)=8
8
32
Chaîne améliorante
-b +c
[6] 3
a b
4
4 [3] [4]
1 [6]
[4] 1
+e
c 2 t
s 2 [2] +a [4]
+d [1]
1
+ e
2
[7] [3] [2] [6] Amélioration
[2]
2 de +2 le long
d 2 [2] f de la chaîne
+s
µ s +
5
d 3
+
c +
5
b -3 a +
2
e 2
+
t 33
Chaîne améliorante Amélioration
-b +c de +2 le long
[6] 3 -2
a b de la chaîne
4
4 [3] [4]
1 [6]
[4] +2 1
+2
+e
c 2 +2 t
s 2 [2] +a [4]
+d [1]
1
+ e
2 +2 [2]
[3] [6]
+2 [7] [2]
2
2 [2] f
d
+s v(ϕ)=10
8 +2
34
[6] 1
a b
4
4 [3] [4]
3 [6]
[4] 3
c 4 t
s 2 [2] [4]
[1]
1
e
4 2 [2]
[7] [3] [6]
[2]
2
2 [2] f
d
v(ϕ)=10
10
35
t non marqué: flot maximal
-b +c
a
[6] 1
b v(ϕ*)=10
4
4 [3] [4]
3 [6]
[4] 3
c 4 t
s 2 [2] [4]
+d [1]
1
+ e
4 2 [2]
[7] [3] [6]
[2]
2
2 [2] f
d
+s
10
4. Flot maximal et coupe minimale
Preuve de l’algorithme
, =
, ( ) 38
Coupe et réseau de transport
S={s,a,b,c}
a
[6]
b T={t,d,e,f}
[3] [4]
[4] [6]
c t
s [2] [4]
[1]
e
[3] [2] [6]
[7] [2]
Exemple
[2] f
d Une coupe
de valeur 15
C=ω -(T)={(b,t),(a,e),(c,e),(s,d)}
39
Flot / coupe
c 4 t
s 2 [2] [4]
+d [1]
1
+ e
4 2 [2]
[7] [3] [6]
[2]
2
2 [2] f
d
S*={s,a,b,c,d}
+s
T*={t,e,f}
v(ϕ*)=10=v(C*) C*={(b,t),(a,e),(c,e),(d,f)}
Théorème de Ford-Fulkerson
42
Preuve du théorème et de l’algorithme de Ford-Fulkerson
Soit ϕ* le flot obtenu par l’algorithme et soit S* (resp. T*)
l’ensemble des sommets marqués (resp. non marqués) à la
fin de l’algorithme. (v(ϕ*)=ϕ*(t,s) et par définition: (t,s)∉ ω+(T))
44
Complexité de l’algorithme (nombre d’itérations)
45
Complexité de l’algorithme (nombre d’itérations)
46
1 +1
+1 1 -1
+1
+1 +1 1
1 2
1 1 1+1
+1 2
1 -1
+1
1 1 +1 1+1 2
3 4… 47
Complexité de l’algorithme (nombre d’«opérations »)
48
5. Des modèles mathématiques
« Programmation linéaire »
max ϕ ts
ϕij ≤ cij ∀(i,j) ∈ U (1)
∑ ϕij − ∑ϕ ji =0 ∀j ∈ X (2)
i∈Γ − ( j ) i∈Γ + ( j )
ϕij ≥ 0 ∀(i,j) ∈ U
Propriété
Si (P) admet une solution finie, alors le programme admet
un optimum en un point extrême du polyèdre.
50
Max
Programme linéaire : (P)
≤
≥0
max ϕ ts
ϕij ≤ cij ∀(i,j) ∈ U (1)
∑ ϕij − ∑ϕ ji =0 ∀j ∈ X (2)
i∈Γ − ( j ) i∈Γ + ( j )
ϕij ≥ 0 1 ∀(i,j) ∈ U
52
Un modèle mathématique « Programme linéaire »
max ϕ ts
ϕ ij ≤ cij ∀(i,j) ∈ U (1)
∑ ϕij − ∑ϕ ji =0 ∀j ∈ X (2)
i∈Γ − ( j ) i∈Γ + ( j )
ϕij ≥ 0 ∀(i,j) ∈ U
max ϕ ts
ϕij + eij = cij ∀(i,j) ∈ U (1)
∑ ϕij − ∑ϕ ji = 0 ∀j ∈ X (2)
i∈Γ − ( j ) i∈Γ + ( j )
1 1
2
matrices
identité
1 1
1 -1 -1
un 1 et
-1 1 1 1
un -1
-1 1
par
colonne
1 -1 -1
max ϕ ts
Données: G=(X,E)
ce, e∈E capacité de l’arc e (e=(i,j))
Chemins de s à t numérotés de 1 à M (M peut être très grand)
pi , i=1,…,M chemin de s à t
Variables:
fi , i=1,…,M fi ≥0 flot circulant sur le chemin pi
ye, e∈E ye=1 si l’arc e est coupé, ye=0 sinon
Flot total: v(ϕ) = Σ i=1,…,M fi 57
[6] 1 p1=(s,a,b,t) f1=1
a b
4
[4]
p2=(s,a,e,t) f2=3
4 [3]
3
[4] 3
[6] p3=(s,a,e,d,f,t) f3=0
p4=(s,a,e,f,t) f4=0
c 4 t
s 2 [2] [1]
[4] p5=(s,c,b,t) f5=2
1
e p6=(s,c,e,t) f6=0
4 2 [2]
[7] [3] [6]
[2]
2
p7=(s,d,c,b,t) f7=1
d 2 [2] f p8=(s,d,f,t) f8=2
p9=(s,d,c,e,t) f3=1
ybt=yae=yce=ydf=1 p10=(s,a,e,d,c,b,t) =
yij=0 pour les autres arcs. p11=(s,c,e,f,t) …
f10=f11=…=0
v(ϕ)=10 58
Dualité flot/coupe
Deux nouveaux programmes mathématiques
• Flot
M
Max ∑ f i
i=1
Contraintes de capacités
∑f ≤c
i t.q.
i e ∀e (10 ) sur chaque arc
(flot sur l’arc = somme des flots sur
e∈pi les chemins qui passent par cet arc)
f i ≥ 0 ∀ i = 1,.., M
Remarque: si ce=1, on cherche des chemins disjoints.
Dualité flot/coupe
Deux nouveaux programmes mathématiques
• Coupe
Contraintes de coupe
Min ∑
e∈ E
ce ye
(Il faut au moins un arc coupé sur
≥ 1 ∀i
chaque chemin pi de s à t, donc au
moins un ye qui vaut 1 sur chaque
chemin pi ).
∑y
e∈pi
e ( 20 )
y e ∈ {0 ,1} ∀ e ∈ E
60
Dualité flot/coupe
Deux nouveaux programmes mathématiques
• Flot • Coupe
M
Max ∑ f i Min ∑ ce ye
i=1 e∈ E
∑f ≤c
i t.q.
i e ∀e (10 ) ∑y
e∈pi
e ≥ 1 ∀i ( 20 )
e∈pi
f i ≥ 0 ∀ i = 1,.., M y e ∈ {0 ,1} ∀ e ∈ E
61
Deux programmes mathématiques « duaux »
• Flot • Coupe
M
Max ∑ f i Min ∑ ce ye
i=1 e∈ E
∑f ≤c
i t.q.
i e ∀e (10 ) ∑y
e∈pi
e ≥ 1 ∀i ( 20 )
e∈pi
f i ≥ 0 ∀ i = 1,.., M 0 ≤ ye ≤ 1 ∀ e ∈ E
62
Deux programmes mathématiques « duaux »
• Flot • Coupe
M
Max ∑ f i Min ∑ ce ye
i=1 e∈ E
∑f ≤c
i t.q.
i e ∀e (10 ) ∑y
e∈pi
e ≥ 1 ∀i ( 20 )
e∈pi
f i ≥ 0 ∀ i = 1,.., M 0 ≤ ye ≤ 1 ∀ e ∈ E
63
Deux PL B TU ⇔ tB TU
« duaux » B TU⇐ tB Matrice de « chaîne »: TU
• Flot • Coupe
M
Max ∑
i=1
f i Min ∑
e∈ E
ce ye
∑f ≤c
i t.q.
i e ∀e (10 ) ∑y
e∈pi
e ≥ 1 ∀i ( 20 )
e∈pi
f i ≥ 0 ∀ i = 1,.., M 0 ≤ ye ≤ 1 ∀ e ∈ E
Maximiser
f = -2x1-3x2-2x3-3x4+2x1x2+3x1x3+6x3x4
x1 [∞]
[2] x1x2
[∞] [2]
[3] x2
s [2] [∞] x1x3 [3]
t
x3
[∞] [6]
[3] x3x4
x4 [∞]
Maximisation d’une fonction négative-positive
x1 0
[2] x1x2
2 2 [2]
2 [3] x2 2 2
s 2 [2] 0 x1x3 [3] 2
t
3
x3 2 [6]
[3] x3x4 5
x4 3
[∞]
Maximisation d’une fonction négative-positive
x1 0 +
[2] x1x2
2 + 2 [2]
2 [3] x2 2 2
+
s 2 [2] 0 x1x3 [3] 2
t
3
x3 2 [6]
[3] x3x4 5
x4 3
[∞]
poids du stable {x2, x1x3, x3x4} =
somme de tous les poids (arcs incidents s ou t) – valeur de la coupe
et coupe min ⇒ stable max
Maximisation d’une fonction négative-positive
x1 +
[2] x1x2
[3] + [2]
+ x2
s [2] x1x3 [3]
t
x3
[6]
[3] x3x4
x4 [∞]
valeur de la coupe =
somme de tous les poids – poids du stable {x2, x1x3, x3x4}
et coupe min ⇒ stable max
Maximisation d’une fonction négative-positive
x1 +
[2] x1x2
[3] + [2]
+ x2
s [2] x1x3 [3]
t
x3
[6]
[3] x3x4
x4
stable max {x2, x1x3, x3x4} de poids 3+3+6=12
x1
[2] x1x2
[3] [2]
x2
s [2] x1x3 [3]
t
x3
[6]
[3] x3x4
x4
stable max {x2, x1x3, x3x4} de poids 3+3+6=12
où xj = 1 - xj
75
Maximisation d’une fonction négative-positive
[c1] x1 [∞]
[c2] Πj∈N1 xj [b1]
x2 [∞]
s [c3] Πj∈N2 xj [b2]
x3 t
[c4]
Πj∈N3 xj [b3]
x4
[∞]
77
8. Petite bibliographie
• Recherche opérationnelle pour ingénieurs (Volume 1). D. de Werra, T. M. Liebling, J.-F. Hêche.
2003. Presses polytechniques universitaires romandes.
• Précis de recherche opérationnelle. R. Faure, B. Lemaire, C. Picouleau. 2009. Dunod.
• Optimisation combinatoire: Théorie et algorithmes. B. H. Korte, J. Vygen. 2010. Springer.
• Méthodes de planification en transport. Y. Nobert, R. Ouellet, R. Parent. 2005. Les presses de
l'université de Montréal.
• Programmation linéaire avec Excel. C. Prins, M. Sevaux. 2011. Eyrolles.
• Optimisation discrète: De la modélisation à la résolution par des logiciels de programmation
mathématique. A. Billionnet. 2007. Dunod.
• Graphes et algorithmes. M. Gondran et M. Minoux. 2009. Lavoisier.
• Une application : Optimizing the deployment of a multilevel optical FTTH network. M. Chardy,
M.-C. Costa, A. Faye, M. Trampont. EJOR European Journal of Operational research, vol.
222(3), pp. 430--440, 2012.
• Un survey sur les multiflots: M.-C. Costa, L. Létocart , F. Roupin. Minimal multicut and
maximal integer multiflow: a survey, EJOR European J. on Operations Research, vol. 162(1), pp.
55-69, 2005.
• et pour vous amuser: L'agrapheur: intrigues policières à saveur mathématique, Alain Hertz, 2010.
Presses internationales Polytechnique.
78