• Nous utilisons la variante du simplexe pour les problèmes de
programmation linéaire avec variables bornées pour résoudre le problème de flot à coût minimum (FCM):
E
• Pour analyser une itération, supposons que nous disposons d’une solution de base réalisable x du problème.
Donc les variables hors base xij
sont telles que
xij = 0 ou dij. Les variables de base xij
correspondent aux arcs E(T) d’un arbre partiel T du réseau
• Critère d’entrée associées aux arcs
T ij
ligne i
ligne j
ij
Puisque pour un arbre
(# d’arcs) = (# de sommets) –1 le système précédent comportent
(m – 1) équations associés aux arcs et m inconnus πi associés aux sommets i de T ( ou de A).
Or puisque toute sous matrice (m – 1)x(m – 1) de la matrice
d’incidence de T est non
singulière, il suffit de fixer la
valeur d’un des multiplicateurs et d’évaluer les autres avec le
système d’équations.
) ( )
, (
0 i j E T
c
cij ij i j
) ( )
,
(i j E T
Or puisque toute sous matrice (m – 1)x (m – 1) de la matrice
d’incidence de T est non
singulière, il suffit de fixer la
valeur d’un des multiplicateurs et d’évaluer les autres avec le
système d’équations.
Le système d’équations étant triangulaire, les multiplicateurs sont très simplement évalués séquentiellement un à un.
) ( )
, (
0 i j E T
c
cij ij i j
Reprenons notre exemple
Après avoir déterminer les valeurs des multiplicateurs, déterminons les coûts relatifs
des variables hors base associées aux arcs qui ne font pas partie de l’arbre partiel T.
Revenant à notre exemple
Après avoir déterminer les valeurs des multiplicateurs, déterminons les coûts relatifs
des variables hors base associées aux arcs qui ne font pas partie de l’arbre partiel T.
Critère d’optimalité
Sinon choisissons une des variables (admissibles) xij où le critère n’est pas satisfait comme variable d’entrée.
Si la variable admissible xij = 0, alors sa valeur augmente, et si la valeur de xij = dij, alors sa valeur diminue.
Après avoir déterminer les valeurs des multiplicateurs, déterminons les coûts relatifs
des variables hors base associées aux arcs qui ne font pas partie de l’arbre partiel T.
Revenant à notre exemple
x21 est admissible à augmenter x est admissible à diminuer
• Critère de sortie
Nous voulons évaluer l’effet de la modification de la variable d’entrée sur les variables de base.
Il est facile de vérifier que seules les valeurs du flot des arcs du cycle fondamental associé à l’arc de la variable d’entrée sont modifiées.
Revenant à notre exemple:
x3t est une variable d’entrée
Il faut déterminer la plus grande modification θ de la valeur de la variable d’entrée avant que
i) la valeur d’une variable de base xij diminue à 0;
ii) la valeur d’une variable de base xij atteigne sa capacité dij;
iii) la valeur de la variable d’entrée passe d’une borne à l’autre.
Si le cas i) ou ii) limite la modification θ de la variable
d’entrée, la variable de base xij sort de la base pour être remplacée par la variable d’entrée. La nouvelle base correspond à un nouvel arbre partiel T ' où l’arc (i, j) dans T est remplacé par l’arc de la variable d’entrée.
Si le cas iii) se produit, il suffit d’ajuster les valeurs du flot sur les arcs du cycle fondamental et de procéder à la prochaine itération avec la même base.
Complétons la résolution de notre exemple. La variable d’entrée x3t
diminue de θ.
La plus grande valeur que θ peut prendre est θ = 2 car alors le flot dans l’arc (1, t) atteint la capacité d1t = 2.
La variable x1t est remplacé par la variable x3t dans la base.
La nouvelle solution et l’arbre partiel associé à la nouvelle base deviennent
4-θ 4-θ
4-θ
0+θ 0+θ
Complétons la résolution de notre exemple. La variable d’entrée x3t
diminue de θ.
La plus grande valeur que θ peut prendre est θ = 2 car alors le flot dans l’arc (1, t) atteint la capacité d1t = 2.
La variable x1t est remplacé par la variable x3t dans la base.
La nouvelle solution et l’arbre partiel associé à la nouvelle base deviennent
Deuxième itération : Critère d’entrée
Déterminons les multiplicateurs en solutionnant le système:
Nous pouvons déterminer les multiplicateurs en utilisant
directement la représentation de l’arbre partiel en utilisant la
définition des coûts relatifs
Évaluons maintenant les coûts relatifs
des variables hors base 2
3
Puisque x1t = 2 = d1t et , alors x1t n’est pas admissible.
Par contre x21 = 0 et , et ainsi x21 est variable d’entrée.
2 3
1 4 1
0 2 1
1 2
5 2
1 1 1
1 2
21 21
t t c t
c
c c
1
1t c
21 1 c
Puisque x1t = 2 = d1t et , alors x1t n’est pas admissible.
Par contre x21 = 0 et , et ainsi x21 est variable d’entrée qui
augmente.
Le cycle fondamental correspondant à l’arbre partiel devient
1 0
2 1
1 2
5 2
1 1 1
1 2
21 21
t t c t
c
c c
1
1t c
21 1 c
• Critère de sortie
Évaluons la plus grande valeur que peut prendre l’augmentation θ de la variable d’entrée.
Alors θ = 2 puisque pour cette valeur, xs1 = 2 – 2 = 0
x21 = 0 + 2 = 2 = d21.
Nous pouvons poursuivre avec la même base puisque x21 = 2 = d21. Nous préférons considérer xs1 comme variable de sortie.
La nouvelle solution et l’arbre partiel associé à la nouvelle base deviennent
2+θ 0+θ 2-θ
• Critère de sortie
Évaluons la plus grande valeur que peut prendre l’augmentation θ de la variable d’entrée.
Alors θ = 2 puisque pour cette valeur, xs1 = 2 – 2 = 0
x21 = 0 + 2 = 2 = d21.
Nous pouvons poursuivre avec la même base puisque x21 = 2 = d21. Nous préférons considérer xs1 comme variable de sortie
La nouvelle solution et l’arbre partiel associé à la nouvelle base deviennent
Troisième itération : Critère d’entrée
Déterminons les multiplicateurs en en utilisant directement la
représentation de l’arbre partiel et la définition des coûts relatifs
Évaluons maintenant les coûts relatifs
des variables hors base
0
La solution est optimale puisque
• L’adaptation de la méthode du simplexe est grandement simplifié grâce à la structure de la matrice d’incidence.
• Il y a beaucoup de dégénérescence dans ce type de problème. Ceci peut entraîner des itérations dégénérées (où les valeurs des variables ne
changent pas) tout simplement pour changer de base. Certains résultats existent pour guider le choix des solutions de base d’une itération à l’autre pour réduire le nombre d’itérations dégénérées.