Download - TRANSFERT, RESEAUX, GRAPHES Flots et coupes
![Page 1: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/1.jpg)
1
TRANSFERT, RESEAUX, GRAPHES
Flots et coupes
Marie-Christine Costa
ENSTA Paris-Tech TIPE 2014
![Page 2: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/2.jpg)
2
Conférence auprès des professerusde classes préparatoires aux
concours d’accès aux grandes écoles.
Initiation aux graphes et à la recherche opérationnelle.
Présentation mise à disposition pour utilisation éventuelle.
![Page 3: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/3.jpg)
3
TRANSFERT, RESEAUX, GRAPHES
1. Graphes et réseaux de transport
2. Le problème du flot maximal
3. Un algorithme simple (Ford-Fulkerson)
4. Flot max et coupe min (dualité)
5. Des modèles mathématiques:programmes linéaires duaux (matrices TU)
6. Application: maximisation d’une fonction pseudobooléenne négative-positive
7. Pistes d'approfondissement
8. Bibliographie
![Page 4: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/4.jpg)
Qu’est-ce qu’un graphe ?
« Des points et des traits ou des flèches »
• Point de vue mathématique : une relation binaire
• Point de vue pratique : représentation abstraited’un réseau (de télécommunication par exemple)
Les graphes, un outil magique, pour visualiser deséchanges, pour la modélisation des systèmes réels, ou…pour jouer.
Les graphes sont utilisés dans des domaines très variés :économie, informatique, industrie, chimie, sociologie.
1. Graphes et réseaux de transport
![Page 5: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/5.jpg)
55
e b
hd
a
c
f
Un graphe orienté G=(X,U)=(X,Γ)
X: { sommets}
(ounœuds)
U: { arcs}Γ+:X→P(X)
applicationmultivoque« successeur»
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)
![Page 6: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/6.jpg)
66
e b
hd
a
c
f
Un graphe orientéChemin: suite d'arcs telle que l'extrémité terminale d'un arc coïncide avec l'extrémité initiale de l'arc suivant
Exemple
µ=((a,c),(c,e),(e,b),(b,h))=(a,c,e,b,h)
![Page 7: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/7.jpg)
77
e b
hd
a
c
f
Un graphe orienté Chaîne: suite d'arcs telle que tout arc a une extrémité commune avec l'arc précédent (sauf éventuellement le premier) et l'autre avec l'arc suivant (sauf éventuellement le dernier)
Exemple
µ’=((a,c),(f,c),(f,h)) = [a,c,f,h]
Remarque: un chemin est une chaîne.
![Page 8: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/8.jpg)
88
Réseau de transport
Graphe R=(X,U,C) orienté dans lequel1. Il existe une sources tel que Γ-(s)=∅2. Il existe un puits t tel que Γ+(t)=∅3. On associe à chaque arc u=(i,j) de U une capacitécij ≥0
4. Sur ce réseau, on trace un arc (fictif) de t à s (arc de retour)
![Page 9: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/9.jpg)
99
a
t
fd
sc
b
Un réseau de transportR=(X,U,C)
e
[4]
[2] [4]
[6]
[6][4] [4]
[6]
[2][3][7]
[1]
[2]
[2]
source puitscapacités
capacités
![Page 10: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/10.jpg)
1010
a
t
fd
sc
b
Un réseau de transportR=(X,U,C)
e
[4]
[2] [4]
[6]
[6][4] [4]
[6]
[2][3][7]
[1]
[2]
[2]
« Arc de retour » fictif (de très grande capacité)
![Page 11: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/11.jpg)
11
2. Le problème du flot maximal
Comment transférer une quantité maximale de « matière » de s à t sans dépasser la capacité de chaque arc ?
![Page 12: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/12.jpg)
12
Le problème du flot maximal
![Page 13: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/13.jpg)
13
Un réseau de distribution de l’eau
![Page 14: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/14.jpg)
14
![Page 15: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/15.jpg)
15
Capacité du château d’eau
[b][a]
Capacité des canalisations
[x]
[x]
[x]
[x]
[x]
[x]
s
[x]
[x]
![Page 16: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/16.jpg)
16
Capacité du château d’eau
[b][a]
Capacité des canalisations
[x]
[x]
[x]
[x]
[x]
[x]
s
[x]
[x]
[d4][d3] [d5][d2] [d6][d1]
t
demandes
![Page 17: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/17.jpg)
17
Le problème du flot maximal
• Comment transférer une quantité maximale de« matière » de s à t sans dépasser la capacité de chaque arc ?
• 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.
![Page 18: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/18.jpg)
1818
a
t
fd
sc
b
Un réseau de transport
flux sur un arc
e
[4]
[2] [4]
[6]
[6][4] [4]
[6]
[2][3][7]
[1]
[2]
[2]
22
2
2
![Page 19: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/19.jpg)
1919
y
x
u
z
Décomposition/recomposition des flux
v
[6]
[7]
[4]
[6]
[4]
35
2
4
5
[2] 1
ϕij désigne le flux sur l’arc (i, j), qui correspond à la quantité de « matière » circulant sur l’arc.
w
t
![Page 20: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/20.jpg)
2020
Flot des à t sur un réseau de transport
� Le vecteur ϕ = (ϕij )(i,j)∈U∪(t,s) est appelé flot sur R.
� Les flux sur R doivent vérifier lacontrainte de capacité: 0 ≤ ϕij ≤ cij
� Lorsqueϕij = cij , l’arc (i, j) est dit saturé.
� Les flux sur R doivent également respecter la loi de conservation(≈loi de Kirchhoff en électricité 1845) :
∀� ∈ �, ∑ �∈�� = ∑ �∈��
![Page 21: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/21.jpg)
2121
Flot sur un réseau de transport
• La loi de conservation est également vérifiéeens et t grâce à l’adjonction de l’arc de retour.
• Un flot ϕ est ditréalisable (ou admissibleoucompatible) si et seulement si :– il respecte les contraintes de capacité sur chaque arc– Il respecte la loi de conservation en chaque sommet
• Un flot ϕ est dit complet si et seulement sitout chemin des à t comporte au moins un arcsaturé.
![Page 22: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/22.jpg)
2222
a
t
fd
sc
b
Un réseau de transport
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
44
4
4
![Page 23: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/23.jpg)
2323
a
t
fd
sc
b
Un réseau de transport
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
44
4
11
1
4+1
![Page 24: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/24.jpg)
2424
a
t
fd
sc
b
Un réseau de transport
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
44
4
11
1
2
22
Le flot est
complet et
v(ϕ)=7
4+1+2
![Page 25: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/25.jpg)
2525
Chaîne améliorante
µ est une chaîne améliorante (ouaugmentante) des à t pour un flotϕ admissibledonné si :
– ϕij < cij pour tout arc (i, j) de µ dans le "bonsens" (des verst)
– ϕij > 0 pour tout arc (i, j) de µ dans le "mauvais sens" (de t vers s)
![Page 26: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/26.jpg)
2626
a
t
fd
sc
b
Chaîne améliorante
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
4
44
11
1
2
2
2
+
+
-
+
+
Amélioration de: min (2-1,6-0,4, 3,4-1)=1
![Page 27: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/27.jpg)
2727
a
t
fd
sc
b
Chaîne améliorante
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
4
44
11
1
2
2
2
+1
+1
-1
+1
+1
7 +1
v(ϕ)=8
![Page 28: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/28.jpg)
2828
a
t
fd
sc
b
Chaîne améliorante
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
3
44
21
2
2
2
2
11
8
v(ϕ)=8
![Page 29: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/29.jpg)
2929
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 α :
α=min [min(i,j)∈µ+(cij-ϕij) , min(i,j)∈µ- ϕij]
• Dansµ + : on augmente les flux de α• Dansµ - : on diminue les flux de α
![Page 30: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/30.jpg)
30
3. Un algorithme simple (Ford-Fulkerson)
Idées de l’algorithme FF de recherche d’un flot maximal:
• Trouver un flot initial (complet)
• Tant que c’est possible:
• chercher une chaîne améliorante
• améliorer le flot le long de cette chaîne
• Il n’y a plus de chaîne améliorante: le flot ainsi obtenuest optimal . (preuve plus loin)
![Page 31: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/31.jpg)
31
L’algorithme de Ford-Fulkerson: une procédure de marquage
1. Établir, au jugé, un flot admissible, si possible complet
2. Marquer s d’un +, puis, au fur et à mesure, marquer :a) L’extrémité terminale j de tout arc (i, j) non saturé tel que i est
marqué (on marque ‘+i ’ le sommet j ), puis quand ces marquages sont achevés,
b) L’extrémité initiale i de tout arc (i, j) de flux non nul tel que j
est marqué (on marque ‘-j ’ le sommet i).
c) Retour en a) jusqu’à ce que :i. Le marquage ne peut se poursuivre et on n’a pas pu marquer t : le flot
maximal a alors été trouvé : STOP
ii. Ou bien on a marqué t : choisir une chaîne améliorante, augmenter le flux le long de cette chaîne et retour en 2.
![Page 32: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/32.jpg)
3232
a
t
fd
sc
b
Chaîne améliorante
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
3
44
21
2
2
2
2
11
+
+s
+e
+a
-b +c
+d
8
v(ϕ)=8
![Page 33: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/33.jpg)
3333
a
t
fd
sc
b
Chaîne améliorante
e
[4]
[2] [4]
[6]
[6][4]
[6]
[2][3][7]
[1]
[2]
[2]
3
44
21
2
2
2
2
11
+
+s
+e
+a
-b +c
+d
Améliorationde +2 le longde la chaîne
[3]
µ s d c b a e t5 3 5 3 2+ + -+ +
2+
![Page 34: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/34.jpg)
3434
a
t
fd
sc
b
Chaîne améliorante
e
[4]
[2] [4]
[6]
[6][4]
[6]
[2][3][7]
[1]
[2]
[2]
3
44
21
2
2
2
2
11
+
+s
+e
+a
-b +c
+d
Améliorationde +2 le longde la chaîne
+2
+2
-2
+2
+2
+2
8 +2
[3]
v(ϕ)=10
![Page 35: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/35.jpg)
3535
a
t
fd
sc
b
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
1
44
21
4
4
2
2
33
2
10
v(ϕ)=10
![Page 36: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/36.jpg)
a
t
d
sc
b
e
[4]
[2] [4]
[6]
[6]
f
[3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
1
44
21
4
4
2
2
33
2+
+s
-b +c
+d
t non marqué: flot maximal
v(ϕ* )=10
10
![Page 37: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/37.jpg)
37
4. Flot maximal et coupe minimalePreuve de l’algorithme
Comment séparer la sources du puits t ensupprimant un ensemble d’arcs de valeur totaleminimale ?
« Séparer » veut dire qu’il n’existe plus dechemin des à t après la suppression des arcs.
Remarque: les valeurs sur les arcs peuvent être des capacités, des coûts, des poids,…
![Page 38: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/38.jpg)
38
Une coupe(S, T) est une partition de X en deux sous-ensembles Set T t.q. s ∈ Set t ∈ T
On note : ω -(T) = {arcs entrant dans T} = {( i, j) ∈ U t.q. i ∈ Set j ∈T}ω +(T)= {arcs sortant de T} = {( i, j) ∈ U t.q. i ∈ T et j ∈ S}
Par définition: (t,s)∉ ω+(T)
Soit (S, T) une coupe. La capacitéc(S, T) de la coupe est définie par :
� �, � = � �, ��(�)
![Page 39: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/39.jpg)
3939
a
t
fd
sc
b
Coupe et réseau de transport
Exemple
Une coupe de valeur 15
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3]
[7]
[1]
[2]
[2]
C=ω -(T)={(b,t),(a,e),(c,e),(s,d)}
S={s,a,b,c}
T={t,d,e,f}
![Page 40: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/40.jpg)
40
Flot / coupe
Propriété : Soit R=(X,U) un réseau de transport.
∀ ϕ flot admissible sur R, ∀ (S,T) coupe de R on a :
v(ϕ) ≤ c(S,T)
Preuve fondée sur la relation « flux ≤ capacité » et sur la loi
de conservation des flux.
Σ(i,j)∈ω-(T) ϕij = Σ(i,j)∈ω+(T) ϕij + ϕts et v(ϕ)=ϕts
v(ϕ) =Σ(i,j)∈ω-(T) ϕij - Σ(i,j)∈ω+(T) ϕij ≤ Σ(i,j)∈ω-(T) cij=c(S,T)
![Page 41: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/41.jpg)
a
t
d
sc
b
e
[4]
[2] [4]
[6]
[6]
f
[3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
1
44
21
4
4
2
2
33
2+
+s
-b +c
+d
t non marqué: flot maximal
v(ϕ* )=10=v(C*)
Coupe minimale :sépare les sommetsmarqués/non marqués
S*={s,a,b,c,d}
T*={t,e,f}
C*={( b,t),(a,e),(c,e),(d,f)}
![Page 42: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/42.jpg)
42
Théorème (Ford-Fulkerson, 1962) :
La valeur d’un flot maximal est égale à la capacité d’une coupe minimale.
Propriété CNS d’optimalité : un flotϕ de s à t est maximalsi et seulement s’il n’existe pas de chaîne améliorante de s à t.
Théorème de Ford-Fulkerson
![Page 43: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/43.jpg)
43
Soit ϕ* le flot obtenu par l’algorithme et soitS* (resp.T*)l’ensemble des sommets marqués (resp. non marqués) à lafin de l’algorithme. (v(ϕ*)=ϕ*( t,s) et par définition: (t,s)∉ ω+(T))
• Toute coupe (S,T) et tout flotϕ vérifient: v(ϕ) ≤ c(S,T)
• La loi de conservation des flux implique:
v(ϕ∗)= Σ(i,j)∈ω-(T) ϕ∗ij -Σ(i,j)∈ω+(T) ϕ∗ij
= Σ(i,j)∈ω-(T) c* ij - 0 =c (S*,T*)
• Donc ϕ* est un flot maximal et (S*, T*) est une coupeminimale.
Preuve du théorème et de l’algorithme de Ford-Fulkerson
![Page 44: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/44.jpg)
44
Convergence de l’algorithme
Théorème des valeurs entières : Dans un réseau de transport à capacités entières, il existe un flot maximal dont tous les flux sont entiers.
Convergence de l’algorithme : Sous l’hypothèse des capacités entières, l’algorithme de Ford-Fulkersonconverge en un nombre fini d’itérations :
– La valeur du flot max est bornée par la capacité d’une coupe quelconque
– À chaque itération de l’algorithme, on augmente le flot d’une valeur α > 0 et entière
![Page 45: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/45.jpg)
45
Complexité de l’algorithme (nombre d’itérations)
Si l’on ne prend pas garde au choix de la chaîneaméliorante, on peut avoir un nombred’itérations égal à la valeur du flot maximal.
![Page 46: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/46.jpg)
46
Complexité de l’algorithme (nombre d’itérations)
Si l’on ne prend pas garde au choix de la chaîneaméliorante, on peut avoir un nombred’itérations égal à la valeur du flot maximal.
![Page 47: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/47.jpg)
47
+1+1
+1+1
+1 1
1 -11
1
1 +1
1
+1
1
+1 1+1
1+1 2
2 -11
1 2
3 4…
![Page 48: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/48.jpg)
48
Théorème : Si chaque augmentation du flot est faitesuivant une chaîne améliorante de longueur minimale,alors le flot maximal est obtenu après moins demn/2itérations, et au plusm essais de marquage à chaqueitération, soit de l’ordre dem2n/2 « opérations ».
(n=nombre de sommets ; m=nombre d’arcs)
Remarque : il existe des algorithmes plus efficaces.
Complexité de l’algorithme (nombre d’«opérations »)
![Page 49: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/49.jpg)
49
5. Des modèles mathématiques« Programmation linéaire »
U(i,j)
Xj
U(i,j)c
ij
ji jijiij
ijij
ts
∈∀≥
∈∀=−
∈∀≤
∑ ∑− +Γ∈ Γ∈
0
(2) 0
(1)
max
)( )(
ϕ
ϕϕ
ϕ
ϕ
(1) : contraintes de capacités
(2): Contraintes de conservation des flux
![Page 50: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/50.jpg)
50
Max ���� ≤ �� ≥ 0
Programme linéaire :
A: vecteurn C: vecteurm Bmatricem x n
L'ensemble des points admissibles (tels queBx ≤ C) estdéfini par un polyèdre.(on peut avoir aussi = ou≥)
Propriété
Si (P) admet une solution finie, alors le programme admetun optimumen un point extrême du polyèdre.
(P)
![Page 51: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/51.jpg)
51
Max ���� ≤ �� ≥ 0
Programme linéaire : (P)
L'optimumd'un programme linéaire en variables continues peut êtreobtenu en temps polynomial (fonction demetn).
On peut résoudre un PL avec Excel et il existe des logiciels trèsperformants, libres ou commercialisés mais gratuits pour lesacadémiques, qui traitent des problèmes ayant des dizaines demilliers de variables et contraintes en quelques minutes.
Si les variables sont entières, les problèmes sont nettement plusdifficiles à résoudre.
![Page 52: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/52.jpg)
52
U(i,j)
Xj
U(i,j)c
ij
ji jijiij
ijij
ts
∈∀≥
∈∀=−
∈∀≤
∑ ∑− +Γ∈ Γ∈
0
(2) 0
(1)
max
1
)( )(
ϕ
ϕϕ
ϕ
ϕ
Ajout de variables d’écart fictives: transformationdes inégalités en égalités.
Flot maximalUn modèle mathématique « Programme linéaire »
![Page 53: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/53.jpg)
53
Un modèle mathématique « Programme linéaire »
U(i,j)
Xj
U(i,j)c
ij
ji jijiij
ijij
ts
∈∀≥
∈∀=−
∈∀≤
∑ ∑− +Γ∈ Γ∈
0
(2) 0
(1)
max
)( )(
ϕ
ϕϕ
ϕ
ϕ
U(i,j)e
Xj
U(i,j)ce
ijij
ji jijiij
ijijij
ts
∈∀≥≥
∈∀=−
∈∀=+
∑ ∑− +Γ∈ Γ∈
0 0
(2) 0
(1)
max
)( )(
ϕ
ϕϕ
ϕ
ϕ
![Page 54: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/54.jpg)
54
Max Ax
� ≤ �� ≥ 0
Programme linéaire : (P)
Propriété
Si (P) admet une solution finie etC est entier etB esttotalement unimodulaire (TU) alors
(P) admet une solution optimale entière.
Définition: une matriceM est TUsi tout déterminant d’unesous-matrice carrée deM vaut 0, 1 ou -1.
![Page 55: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/55.jpg)
55
Programme de flot max:
Toute matrice de flot est totalement unimodulaire.
Conséquence: un logiciel de PLfournit unesolution entière (si le problème admet une solutionfinie).
U(i,j)e
Xj
U(i,j)ce
ijij
ji jijiij
ijijij
ts
∈∀≥≥
∈∀=−
∈∀=+
∑ ∑− +Γ∈ Γ∈
0 0
(2) 0
(1)
max
)( )(
ϕ
ϕϕ
ϕ
ϕ
![Page 56: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/56.jpg)
56U(i,j)e
Xj
U(i,j)ce
ijij
ji jijiij
ijijij
ts
∈∀≥≥
∈∀=−
∈∀=+
∑ ∑− +Γ∈ Γ∈
0 0
(2) 0
(1)
max
)( )(
ϕ
ϕϕ
ϕ
ϕ
Une colonne par variable eij
1 1
1 11 -1 -1-1 1 1 1
-1 1
1 -1 -1
Une colonne par variable ϕij
2 matrices identité
un 1 et un -1 par colonne
B: 0, 1 ou -1
B est T.U.
![Page 57: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/57.jpg)
57
Dualité flot/coupe
Deux nouveaux programmes mathématiques
Données: G=(X,E)
ce, e∈E capacité de l’arce (e=(i,j))
Chemins des à t numérotés de 1 àM (M peut être très grand)
pi , i=1,…,M chemin des à t
Variables:
fi , i=1,…,M fi ≥0 flot circulant sur le cheminpi
ye, e∈E ye=1 si l’arce est coupé,ye=0 sinon
Flot total: v(ϕ) = Σ i=1,…,M fi
![Page 58: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/58.jpg)
5858
a
t
fd
sc
b
e
[4]
[2] [4]
[6]
[6][3] [4]
[6]
[2][3][7]
[1]
[2]
[2]
1
44
21
4
4
2
2
33
2
v(ϕ)=10
p1=(s,a,b,t) f1=1
p2=(s,a,e,t) f2=3
p3=(s,a,e,d,f,t) f3=0
p4=(s,a,e,f,t) f4=0
p5=(s,c,b,t) f5=2
p6=(s,c,e,t) f6=0
p7=(s,d,c,b,t) f7=1
p8=(s,d,f,t) f8=2
p9=(s,d,c,e,t) f3=1
p10=(s,a,e,d,c,b,t) =
p11=(s,c,e,f,t) …
f10=f11=…=0
ybt=yae=yce=ydf=1
yij=0 pour les autres arcs.
![Page 59: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/59.jpg)
• Flot
)1(
t.q.0
ecf e
pei
i
i
∀≤∑∈
∑
=
M
iifMax
1
Mif i ,..,1 0 =∀≥
Dualité flot/coupe
Deux nouveaux programmes mathématiques
Contraintes de capacités sur chaque arc (flot sur l’arc = somme des flots sur les chemins qui passent par cet arc)
Remarque: si ce=1, on cherche des chemins disjoints.
![Page 60: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/60.jpg)
• Coupe
)2(0
1 iyipe
e ∀≥∑∈
{ } Eeye ∈∀∈ 1,0
Contraintes de coupe(Il faut au moins un arc coupé surchaque cheminpi de s à t, donc aumoins unye qui vaut 1 sur chaquecheminpi ).
eEe
e ycMin ∑∈
Dualité flot/coupe
Deux nouveaux programmes mathématiques
60
![Page 61: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/61.jpg)
• Coupe
)2(0
1 iyipe
e ∀≥∑∈
{ } Eeye ∈∀∈ 1,0
• Flot
)1(
t.q.0
ecf e
pei
i
i
∀≤∑∈
∑
=
M
iifMax
1
Mif i ,..,1 0 =∀≥
eEe
e ycMin ∑∈
Dualité flot/coupe
Deux nouveaux programmes mathématiques
61
![Page 62: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/62.jpg)
• Coupe
)2(0
1 iyipe
e ∀≥∑∈
• Flot
)1(
t.q.0
ecf e
pei
i
i
∀≤∑∈
∑
=
M
iifMax
1
Mif i ,..,1 0 =∀≥
eEe
e ycMin ∑∈
Deux programmes mathématiques « duaux »
62
matrice des coef. B tB
Eeye ∈∀≤≤ 10
![Page 63: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/63.jpg)
• Coupe
)2(0
1 iyipe
e ∀≥∑∈
• Flot
)1(
t.q.0
ecf e
pei
i
i
∀≤∑∈
∑
=
M
iifMax
1
Mif i ,..,1 0 =∀≥
eEe
e ycMin ∑∈
Deux programmes mathématiques « duaux »
63
Eeye ∈∀≤≤ 10
![Page 64: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/64.jpg)
• Coupe
)2(0
1 iyipe
e ∀≥∑∈
Eeye ∈∀≤≤ 10
• Flot
)1(
t.q.0
ecf e
pei
i
i
∀≤∑∈
∑
=
M
iifMax
1
Mif i ,..,1 0 =∀≥
eEe
e ycMin ∑∈
B TU ⇔ tB TU
B TU⇐ tB Matrice de « chaîne »: TU
Même valeur optimale (entière) !!64
Deux PL
« duaux »
![Page 65: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/65.jpg)
65
6. Maximisation d’une fonction pseudobooléenne négative-positive
Méthode montrée sur un exemple mais généralisable àtoute fonction de ce type (et même plus, aux fonctions sur-modulaires). xj∈{0,1} xj= 1 – x�j f: {0,1} n→Z
Maximiser
f = -2x1-3x2-2x3-3x4+2x1x2+3x1x3+6x3x4
f = -10+2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
![Page 66: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/66.jpg)
Maximisation d’une fonction négative-positive
Graphe de conflit xi = 0 ou 1 ∀i
max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
x�1
x�2
x�3
x�4
x1x2
x1x3
x3x4
3
2
3
23
2
6
Recherche d’un ensemble
stable de poids maximal
dans un graphe biparti
Stable: sous-ensemble de sommets
non adjacents 2 à 2
Partition des sommets en 2 stables
![Page 67: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/67.jpg)
Maximisation d’une fonction négative-positive
Graphe de conflit xi = 0 ou 1 ∀i
max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
x�1
x�2
x�3
x�4
x1x2
x1x3
x3x4
3
2
3
23
2
6
Recherche d’un ensemble
stable de poids maximal
dans un graphe biparti
Stable: sous-ensemble de sommets
non adjacents 2 à 2
Exemple:x�3 , x�4 , x1x2 f=7
![Page 68: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/68.jpg)
Maximisation d’une fonction négative-positive
max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
x�1
x�2
x�3
x�4
x1x2
x1x3
x3x4
[3][2]
[3]
[2]
Recherche d’un ensemble stable de poids maximal G biparti
flot maximal
s t
[2]
[3]
[6]
[∞]
[∞][∞]
[∞]
[∞]
![Page 69: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/69.jpg)
Maximisation d’une fonction négative-positive
max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
x�1
x�2
x�3
x�4
x1x2
x1x3
x3x4
[3][2]
[3]
[2]
flot maximal / coupe minimale
s t
[2]
[3]
[6]
22 2
2
2
2
3
02
0
5
2
3
[∞]
![Page 70: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/70.jpg)
Maximisation d’une fonction négative-positive
max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
x�1
x�2
x�3
x�4
x1x2
x1x3
x3x4
[3][2]
[3]
[2]s t
[2]
[3]
[6]
22 2
2
2
2
3
02
0
5
2
3
++
+
poids du stable {x�2, x1x3, x3x4} =
somme de tous les poids (arcs incidents s ou t) – valeur de la coupe
et coupe min ⇒ stable max
[∞]
![Page 71: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/71.jpg)
Maximisation d’une fonction négative-positive
max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
x�1
x�2
x�3
x�4
x1x2
x1x3
x3x4
[3][2]
[3]
[2]s t
[2]
[3]
[6]
++
+
valeur de la coupe =
somme de tous les poids – poids du stable {x�2, x1x3, x3x4}
et coupe min ⇒ stable max
[∞]
![Page 72: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/72.jpg)
Maximisation d’une fonction négative-positive
max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
x�1
x�2
x�3
x�4
x1x2
x1x3
x3x4
[3][2]
[3]
[2]s t
[2]
[3]
[6]
++
+
stable max {x�2, x1x3, x3x4} de poids 3+3+6=12
Solution: f =12 avec x2 = 0, x1 = x3 = x4 = 1
![Page 73: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/73.jpg)
Maximisation d’une fonction négative-positive
max 2x�1+3 x�2+2 x�3+3 x�4+2x1x2+3x1x3+6x3x4
x�1
x�2
x�3
x�4
x1x2
x1x3
x3x4
[3][2]
[3]
[2]s t
[2]
[3]
[6]
stable max {x�2, x1x3, x3x4} de poids 3+3+6=12
Solution: f =12 avec x2 = 0, x1 = x3 = x4 = 1
![Page 74: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/74.jpg)
74
Cas général de maximisation d’une fonction
pseudobooléennenégative-positive
Une fonction pseudobooléenneest une fonction réelle devariables binaires qui peut s’écire:
f(x1,x2,…,xn)= Σk=1,…,pbk Πj∈Nk xj + K
∀k bk réel,Nk indices des variables dukièmemonome,K cste
Maximiserf: problème difficile en général
problème de flot si « négative-positive »
![Page 75: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/75.jpg)
75
Maximisation d’une fonction négative-positive
Définition
Unefonction pseudobooléenne négative-positives’écrit:
f(x1,…,xn)= -Σj=1,…,n cj xj+Σi=1,…,m bi Πj∈Ni xj
cj ≥0 ∀ j= 1,…,n , bi ≥ 0 ∀i= 1,…,m
f = -Σj=1,…,n cj+ Σj=1,…,n cj x�j +Σi=1,…,m bi Πj∈Ni xj
où x�j = 1 - xj
![Page 76: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/76.jpg)
Maximisation d’une fonction négative-positive
max f = Σj=1,…,n cj x�j +Σi=1,…,m bi Πj∈Ni xj
x�1
x�2
x�3
x�4
Πj∈N1 xj
Πj∈N2 xj
Πj∈N3 xj
[c2]
[c1]
[c4]
[c3]s
t
[b1]
[b2]
[b3]
Solution: stable de poids max obtenu en sélectionnant les sommets adjacents aux arcs non saturés incidents à set t.
[∞]
[∞]
[∞]
![Page 77: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/77.jpg)
77
7. Pistes d'approfondissement
• Flot maximal de coût minimal (problème "facile")
• Flot avec multiplicateurs
• Multiflots et multicoupes (problèmes "difficiles")
• Matrice totalement unimodulaire et programmation linéaire en nombres entiers
• Programmation linéaire et dualité
• Recherche d'applications (réseaux de transport, de télécommunications...)
![Page 78: TRANSFERT, RESEAUX, GRAPHES Flots et coupes](https://reader036.vdocuments.fr/reader036/viewer/2022062408/62ac256f596158338c708e93/html5/thumbnails/78.jpg)
78
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 del'université de Montréal.
• Programmation linéaire avec Excel. C. Prins, M. Sevaux. 2011. Eyrolles.
• Optimisation discrète: De la modélisation à la résolutionpar des logiciels de programmationmathé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 andmaximal 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.