Rappels sur les tableaux et l`algorithme du simplexe

publicité
Rappels sur les tableaux et l’algorithme du simplexe
• À tout tableau est associée non seulement une base du problème initial
(primal) mais également une base du problème dual.
• Les valeurs des variables basiques primales se lisent dans la dernière
colonne du tableau.
• Les valeurs de la solution basique duale se lisent dans la dernière ligne
du tableau.
• Les variables de décision du dual sont associées aux variables d’écart du
primal. Réciproquement, les variables d’écart du dual sont associées aux
variables de décision du primal.
J.-F. Hêche, ROSO-EPFL
Recherche opérationnelle SC & PH
125
• Les solutions basiques primale et duale associées à un tableau ont même
valeur et vérifient les écarts complémentaires.
• Dans tous les tableaux visités par l’algorithme du simplexe la solution
basique primale est toujours admissible.
• L’algorithme s’arrête dès qu’une solution basique duale admissible est
atteinte, le tableau étant alors optimal.
• Le tableau optimal contient non seulement la solution (optimale) du
problème initial mais également celle de son dual.
J.-F. Hêche, ROSO-EPFL
Recherche opérationnelle SC & PH
126
L’algorithme dual du simplexe (phase II)
Considérons le PL canonique
Max z = −x1 − 2x2
s.c.
2x1 + x2 ≤
6
−x1 − x2 ≤ −4
x2 ≥
0
x1 ,
de tableau initial
T0 =
x1
2
−1
1
x2
1
−1
2
x3
1
0
0
x4
0
1
0
z
0
0
1
6
−4
0
T 0 n’est pas (primal-)admissible mais est dual-admissible !
J.-F. Hêche, ROSO-EPFL
Recherche opérationnelle SC & PH
127
On peut donc chercher à résoudre le problème dual tout en travaillant dans
le tableau primal.
Dans T 0, la fonction objectif duale (à minimiser) s’écrit w = yb. Il faut
donc augmenter une variable de décision duale associée à un élément bi < 0
afin de diminuer w.
Le seul candidat est b2 = −4, la variable primale x4 va donc quitter la base
primale et la variable duale y2 associée va entrer dans la base duale. Afin de
conserver l’admissibilité duale, le pivot doit être choisi dans une colonne r
vérifiant
!
"
−γk
−γr
= max
| α2k < 0 .
α2r
α2k
Comme −γ1/α21 = −1 et −γ2/α22 = −2, il faut pivoter sur α21 et faire
entrer x1 dans la base en lieu et place de x4.
J.-F. Hêche, ROSO-EPFL
Recherche opérationnelle SC & PH
128
T0 =
x1
2
−1
1
x2
1
−1
2
x3
1
0
0
x4
0
1
0
z
0
0
1
T1 =
x1
0
1
0
y3
x2
−1
1
1
y4
x3
1
0
0
y1
x4
2
−1
1
y2
z
0
0
1
6
−4
0
−2
4
−4
Le tableau T 1 est toujours dual-admissible mais, maintenant, β1 est
négatif, x3 va donc quitter la base primale et y1 entrer dans la base duale.
Le seul pivot négatif dans la première ligne est α12 = −1.
J.-F. Hêche, ROSO-EPFL
Recherche opérationnelle SC & PH
129
T1 =
x1
0
1
0
x2
−1
1
1
x3
1
0
0
x4
2
−1
1
z
0
0
1
T2 =
x1
0
1
0
y3
x2
1
0
0
y4
x3
−1
1
1
y1
x4
−2
1
3
y2
z
0
0
1
−2
4
−4
2
2
−6
Le tableau T 2 est primal et dual admissible, il est donc optimal.
La solution optimale primale est x∗1 = x∗2 = 2 (x∗3 = x∗4 = 0) et la solution
optimale duale est y1∗ = 1, y2∗ = 3 (y3∗ = y4∗ = 0). On a évidemment
z ∗ = w∗ = −6.
J.-F. Hêche, ROSO-EPFL
Recherche opérationnelle SC & PH
130
Tableau primal / Algo. dual
x2
x3
x4
x1
2
1
1
0
6
−1 −1
0
1
−4
1
2
0
0
0
0
1
0
−1
1
1
1
0
0
2
−1
1
−2
4
−4
0
1
0
y3
1
0
0
y4
−1
1
1
y1
−2
1
3
y2
2
2
−6
J.-F. Hêche, ROSO-EPFL
T0
Tableau dual / Algo. primal
y1
y2
y3
y4
−2
1
1
0
1
−1
1
0
1
2
6
−4
0
0
0
T1
−2
1
−2
1
0
0
1
−1
4
0
1
0
1
1
4
T2
0
1
0
x3
1
0
0
x4
−1
−1
2
x1
2
1
2
x2
3
1
6
Recherche opérationnelle SC & PH
131
Algorithme dual du simplexe (phase II)
Données : Un tableau dual-admissible.
Résultat : Un tableau optimal ou un certificat d’absence de solutions admissibles.
(1) Choix d’une variable sortante :
Choisir une ligne i avec βi < 0, la variable basique xj avec j = σ(i) quitte la base.
S’il n’existe pas de variable sortante : STOP le tableau courant est optimal.
(2) Choix d’une variable entrante :
Choisir une colonne hors base r maximisant les quotients caractéristiques duaux
!
!
""
−γj
−γk
r∈ k∈N |
= max
| αij < 0
αik
αij
S’il n’existe pas de variable entrante : STOP le dual est non borné et le primal sans
solutions admissibles.
(3) Mise à jour de la base et du tableau :
Pivoter autour de αir et retourner en (1).
J.-F. Hêche, ROSO-EPFL
Recherche opérationnelle SC & PH
132
Remarque. Si, pendant l’application de l’algorithme dual, un tableau non
admissible est atteint pour lequel aucun pivot ne peut être trouvé, cela
signifie que le problème dual est non borné et donc que le problème primal
n’admet pas de solution admissible.
En effet, dans une telle situation, on a bi < 0 et αij ≥ 0 ∀ j. Ceci
correspond à la contrainte (impossible si xj ≥ 0 ∀ j)
#
0≤
αij xj = bi < 0.
xD
Dual non borné
xE
⊕ ... ... ... ... ⊕
⊕ ... ... ... ... ⊕
J.-F. Hêche, ROSO-EPFL
z
0
..
0
1
∗
−
∗
∗
Sans solution admissible (primale)
xD
xE
z
0
∗
⊕ . . . . . . . . . . . . ⊕ ..
−
0
∗
∗ ... ... ... ... ∗ 1
∗
Recherche opérationnelle SC & PH
133
Téléchargement