Flot A Cout Minimum
Flot A Cout Minimum
Flot A Cout Minimum
à
coût minimum
Énoncé du problème
Exemples d’application
Note :
Pour l'instant, nous supposerons que la somme des disponibilités
égale la somme des demandes. Cette hypothèse sera relâchée par
la suite.
3
Exemple d’application Réseau de transbordement d’un bien
Tiré de B. T. Smith, "Introduction à la théorie des graphes et des réseaux". Tome II,
Département de Génie industriel, École Polytechnique de Montréal, Sept. 1983.
Voici un flot réalisable dont le coût total est: 8x7 + 6x8 + 1x1 = 105
(les arcs en gras portent un flot positif, les autres arcs un flot nul) :
6
Voyons maintenant un autre exemple de flot réalisable moins cher
que le précédent.
les projets sont éliminés s’il n’y a pas d’étudiants qui leur sont affectés,
10
Objectif collectif :
Affecter les étudiants
aux projets et
aux professeurs
afin de minimiser
la somme
des classements
des projets
sur lesquels
travailleront
les étudiants.
11
(10) (12) (6) Si un professeur j
peut diriger le projet i
capacité
coût
Demande de 10
étudiants au puits
Note :
Certains arcs seulement
Sont indiqués pour
éviter la confusion.
Limite le # d’étudiants
affectés au professeur j.
Limite le # d’étudiants
affectés au projet i.
Numéro Un arc entre chaque
de étudiant et chaque projet
classement qu’il préfère.
Propriétés de la matrice des contraintes de conservation du flot
Théorème :
14
Preuve du théorème précédent :
15
Exemple de transformation d’un flot réalisable en un autre tel que les
arcs portant un flot positif fasse partie d’un arbre partiel du graphe :
Réseau de transbordement d’un bien
Par la suite, seulement les arcs portant un flot positif sont illustrés,
avec la valeur du flot indiqué à côté de chaque arc; les autres arcs du
16
réseau portent un flot nul.
Considérons le flot réalisable suivant :
On ajoute 3 unités de flot aux arcs (1, 2), (2,4) et (3,1) et on soustrait 3
unités de flot de l'arc
(3,4), on a alors:
18
19
Le circuit 2, 5, 6, 2 permet de transformer le flot comme suit :
Enfin, le circuit 2, 4, 6, 2 donne lieu à un flot positif dans un arbre
partiel comme suit: 20
21
On aurait pu arriver au flot indiqué par les arcs en gras de la figure
ci-dessous, où 4 arcs portent un flot positif et un arc (2,4) porte un flot
nul, mais fait partie de l'arbre partiel de G.
22
Ce flot réalisable est dégénéré.
BREF
Tout arbre partiel du graphe G correspond
à une soln de base du programme linéaire
et inversement,
toute soln de base du programme linéaire peut se ramener
à une soln réalisable n'utilisant que les arcs d'un arbre partiel du graphe.
23
Adaptation de la méthode du simplexe
Il s’agit d’exploiter le fait que A est la matrice d’incidence du graphe.
24
La valeur du flot sur chacun des arcs correspond à une solution de base
réalisable dont la base associée correspond à un arbre partiel T :
Cette solution de base est dégénérée puisque le flot à l’arc (s,1) est nul.
25
Cette adaptation du simplexe repose sur l'utilisation des multiplicateurs
du simplexe.
29
Si on pose t = 0, alors 3 = c(3,t) + t = 2 + 0 = 2,
2 = c(2,3) + 3 = 3 + 2 = 5,
s = c(s,2) + 2 = 1 + 5 = 6,
1 = 2 - c(2,1) = 5 - 2 = 3.
Évaluons maintenant le coût relatif des variables hors-base :
c(s,1) = c(s,1) - s + 1 = 4 – 6 + 3 = 1
c(1,t) = c(1,t) - 1 + t = 1 – 3 + 0 = -2.
L’arc (1,t) devient variable d’entrée avec comme cycle fondamental :
+ -
-
30
On peut donc augmenter le flot à l’arc (1,t) de 4 et mettre à jour les
autres arcs du cycle en conséquence.
On considère l’arc (3,t) comme étant la variable de sortie pour
retrouver la base suivante :
Si on pose t = 0, alors
1 = c(1,t) + t = 1, 2 = c(2,1) + 1 = 2 + 1 = 3,
31
s = c(s,2) + 2 = 1 + 3 = 4, 3 = 2 - c(2,3) = 3 – 3 = 0.
Évaluons maintenant le coût relatif des variables hors-base :
c(s,1) = c(s,1) - s + 1 = 4 – 4 + 1 = 1
c(3,t) = c(3,t) - 3 + t = 2 - 0 = 2.
Donc, la solution est optimale.
Remarques :
Choisir l’arc de sortie (i', j') inverse par rapport à (i*, j*) dans C :
(i', j') = arg Min f(i,j)
(i,j) C
(i, j) est l’inverse de (i*, j*)
5. Pivot
Effectuer un pivot pour passer de l’arbre T à l’arbre
T {(i*, j*)} – {(i', j')} avec comme flot :
f(i, j) si (i, j) C
f(i, j) + f (i', j') si (i, j) C et direct p/r à (i*, j*)
36
Exemple : v = 4, s est la source et t la destination.
À chaque arc (i, j) est associé le coût cij.
Appliquons la méthode M.
37
Considérons donc le réseau augmenté suivant où à chaque arc (i, j) est
associé le couple cij, fij:
38
La valeur du flot sur chacun des arcs correspond à une solution de base
réalisable dont la base associée correspond à un arbre partiel T :
40
Calcul du coût relatif des variables hors-base
Coût négatif
43
Coût
négatif
44
- -
+ +
47
-
+ +
49
Coût
négatif
f23 50
Le cycle fondamental obtenu en ajoutant la variable d’entrée f23 est :
+ 51
Augmentation de f23 de 0.
On choisit fA3 comme étant la variable de sortie.
52
Les multiplicateurs sont obtenus en posant :
53
Extensions possibles :
1. vi > vi
iS iP
54
2. vi < vi
iS iP
55
3. Présence d’une borne supérieure finie sur le flot dans un arc
Rappel :
à chaque itération du simplexe, le flot positif est restreint aux arcs
d’un arbre partiel T (solution de base);
fij = 0 (i, j) T
un arc (i,j) T est candidat pour entrer dans la base si cij -i +j < 0
61
Les coûts relatifs des variables hors-base sont :
+ +
- -
- 62
On peut donc diminuer la valeur de f3t de 2 et alors f23 = fs2 = f3t = 2
et fsl = flt = 2. C'est la plus grande modification possible puisque flt
atteint sa borne supérieure Klt = 2.
Cette solution réalisable est :
63
L’arbre correspondant à cette solution de base réalisable est :
+
+
65
Les coûts relatifs des variables hors-base sont donc
csl = csl - πs + πl = 4 - 6 + 3 = 1
clt = clt - πl + πt = 1 - 3 = -2.