TRANSFERT, RESEAUX, GRAPHES Flots et coupes
Transcript of TRANSFERT, RESEAUX, GRAPHES Flots et coupes
1
TRANSFERT, RESEAUX, GRAPHES
Flots et coupes
Marie-Christine Costa
ENSTA Paris-Tech TIPE 2014
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.
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
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
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)
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)
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.
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)
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
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é)
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 ?
12
Le problème du flot maximal
13
Un réseau de distribution de l’eau
14
15
Capacité du château d’eau
[b][a]
Capacité des canalisations
[x]
[x]
[x]
[x]
[x]
[x]
s
[x]
[x]
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
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.
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
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
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) :
∀� ∈ �, ∑ �∈�� = ∑ �∈��
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é.
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
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
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
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)
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
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
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
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 α
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)
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.
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
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+
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
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
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
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,…
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 :
� �, � = � �, ��(�)
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}
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)
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)}
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
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
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
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.
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.
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…
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 »)
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
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)
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.
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 »
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
)( )(
ϕ
ϕϕ
ϕ
ϕ
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.
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
)( )(
ϕ
ϕϕ
ϕ
ϕ
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.
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
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.
• 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.
• 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
• 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
• 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
• 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
• 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 »
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
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
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
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]
[∞]
[∞][∞]
[∞]
[∞]
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
[∞]
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
[∞]
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
[∞]
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
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
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 »
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
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.
[∞]
[∞]
[∞]
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...)
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.