Cours 5

publicité
A
H
LA
B
D
E
BL
I
D
A
Cours de Programmation Linéaire donné par le Dr. Ali DERBALA
D
D
Cours 05 : Initialisation de
SA
A
l'algorithme du simplexe.
U
N
IV
ER
SI
TE
Méthode des deux phases
Cours 05 : Initialisation de l'algorithme du simplexe.
49
Cours de Programmation Linéaire donné par le Dr. Ali DERBALA
Dans ce cours 05, nous supposons que pour notre problème de P.L
nous ne
disposons pas d'une solution de base réalisable de départ.
Considérons un problème de la programmation linéaire sous forme standard
E
BL
m

 min ψ = ∑ Vi
i =1

(m)
Associons à ce problème, le problème linéaire auxiliaire, (P.A)  A.x + I V = b
 Z − c.x = 0

 x ≥ 0, V ≥ 0
A
. Supposons aussi que tous les bi ≥ 0.
ID
 min z = c.x

( P.L)  Ax = b
 x≥0

D
I(m) étant la matrice unité m x m et les Vi sont des variables dites " artificielles ".
forment une base de départ et on peut appliquer à (P.A) l'algorithme
B
i= 1,…,m
LA
Les (Vi)
du simplexe et on obtiendra une solution optimale finie (en supposons qu'il n'existe
H
pas de solution de base dégénérée).
D
A
En effet si ψ = V1 + V2 +…+ Vm , Vi ≥ 0, il est impossible que minψ = + ∞.
A
D
Lemme 1 : Soit V* une solution optimale de (P.A). Le problème initial (P.L) ne
m
SA
possède pas de solutions réalisables si ψ ( v*) = ∑ v *i > 0 .
i =1
Preuve : Supposons le contraire. Soit x une solution réalisable du (P.L) alors (x,V0)
TE
avec V0 = 0 = (0, 0,…, 0) sera une solution de (P.A) et
m
D' où ψ ( v) > ψ ( v 0 ). Ce qui contredit
ER
i =1
SI
ψ = ψ ( v) = ∑ vi et ψ ( v0 ) = 0.
l'hypothèse. Si V ≠ 0 est une solution optimale de (PA), ceci implique que (PL) n'a
IV
pas de solution optimale. Supposons que ψ(V*) = 0. Deux cas sont possibles.
U
N
1. Aucune des variables artificielles vi n'est dans la base optimale de (P.A).
Cette base ne comprend que les variables xi.
z joue le rôle d'une variable quelconque non astreinte et on considère z - c.x = 0
comme une contrainte. La forme diagonale par rapport à cette base optimale pour
(PA) est une forme diagonale par rapport à la base réalisable pour (PL).
On peut lui appliquer l'algorithme du simplexe.
Cours 05 : Initialisation de l'algorithme du simplexe.
50
Cours de Programmation Linéaire donné par le Dr. Ali DERBALA
2. Au moins une variable vi est dans la base optimale, par exemple une vr, alors
l'équation contenant vr s'écrit : αr x + crV = br
(1)
Avec αr = (ar1, ar2,…, arm) , cr = (0,…,0,1(rang r),0,…0), Vr = 0, br = 0 et
m
Min ψ = ∑ v i = 0. S'il existe un certain coefficient ars ≠ 0 dans l'équation (1) alors on
i =1
base et faire sortir xs. L'opération de pivotage ne changera pas la valeur de la fonction
BL
I
D
objectif (puisque br = vr = 0) mais elle changera la base. Cette opération est possible
A
peut effectuer une opération de pivotage autour de lui. On peut faire rentrer xr dans la
que si ars soit strictement positif ou strictement négatif.
D
E
Lemme 2 : Si arj = 0 ∀j = 1, …, n (la ligne r de A) alors la contrainte correspondante
au PL est redondante.
LA
B
La relation (1) peut être obtenue par succession d'opérations de pivotage (opérations
élémentaires). Il s'ensuit que la r-ième équation αr x + crV = br, peut être considérée
H
comme une combinaison linéaire des équations du système Ax + I(m)V = b.
A
La même combinaison linéaire du système A x = b donne l'équation 0 x = 0 (une
D
équation redondante). Après avoir examiné toutes les variables de base artificielles vi
D
qui sont encore dans la base optimale de (PA), les avoir éliminer de la base si c'est
A
possible. On aboutit au problème qui peut servir à initialiser l'algorithme du simplexe
SA
au problème (PL). Ces opérations constituent la phase (1) du simplexe. L'application
de la méthode du simplexe constituent la seconde phase de la méthode du simplexe.
IV
ER
SI
TE
Exemple 1 : Soit à résoudre le programme linéaire (PL) suivant :
Minz = - x1 + 2 x2 - 2 x3
2 x1 + 3 x2 + x3
4 x1 +
= 12
x2 + 2 x3 = 14
x1 ≥ 0,…, x3 ≥ 0.
N
Nous ne disposons pas de solutions de base de départ.
U
Associons à ce (PL) le problème auxiliaire (PA) :
Min ψ = v1 + v2 = - 6 x1 - 4 x2 - 3 x3 + 26
2 x1 + 3 x2 + x3 + v1 = 12 ⇒ v1 = 12 - 2 x1 - 3 x2 - x3
4 x1 +
x2 + 2 x3 + v2 = 14 ⇒ v2 = 14 - 4 x1 - x2 - 2 x3
Z + x1 - 2 x2 + 2 x3 = 0
xi ≥ 0, i =1, 2, 3 et vj ≥ 0, j = 1, 2.
Cours 05 : Initialisation de l'algorithme du simplexe.
51
Cours de Programmation Linéaire donné par le Dr. Ali DERBALA
Dressons un tableau du simplexe.
Variables
1
x1
x2
x3
v1
V2
-ψ
-26
-6
-4
-3
0
0
v1
12
2
3
1
1
0
v2
14
4
1
2
0
1
-Z
0
1
-2
2
0
0
-ψ
-5
0
-5/2
0
0
v1
5
0
5/2
0
1
x1
7/2
1
1/4
1/2
0
-Z
-7/2
0
-9/4
3/2
-ψ
0
0
0
0
x2
2
0
1
x1
3
1
0
-Z
-1
0
0
D
E
D
B
0
H
LA
Itération2
BL
I
Itération1
A
de base
1/2
-3/2
A
D
D
A
0
SA
Comme min ψ = 0, alors la solution optimale de (PA) X = (3, 2, 0) constituera une
solution de base réalisable du problème initial (PL) de départ. X = (3, 2, 0) n'est pas
ER
SI
TE
optimale car c3 < 0. Il faut qu'on effectue un autre changement de base.
Itération3
-Z
-1
0
0
- 3/2
2
0
1
0
3
1
0
1/2
-Z
8
3
0
0
x2
2
0
1
0
x3
6
2
0
1
IV
x2
N
x1
U
Itération4
X* = x = (0, 2, 6) est optimale et minz = -8.
Cours 05 : Initialisation de l'algorithme du simplexe.
52
Cours de Programmation Linéaire donné par le Dr. Ali DERBALA
Remarques :
1. Dans la phase I, il n'est pas indispensable de s'occuper de l'équation c x -Z = 0.
En effet si l'on aura trouvé une base réalisable pour l'ensemble des contraintes
A.x = b, b ≥0, il suffira de retrancher une combinaison linéaire correspondante
des équations de ce système aux deux membres de la fonction objectif Z = c.x
A
pour une forme diagonale complète.
ID
Exemple 2 : Soit le (PL) suivant :
Minz = 2 x1 - x2 - 3 x3
x 2 + 4 x3 = 8
E
x1 -
=6
BL
x1 + 2 x2 - x3
D
x1 ≥ 0,…, x3 ≥ 0.
B
Le problème auxiliaire (PA) est :
x1 + 2 x2 - x3 + v1
=6
H
x1 - x2 + 4 x3 + v2 = 8
LA
Min ψ = v1 + v2 = - 2 x1 - x2 - 3 x3 + 14
D
A
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, v1 ≥ 0, v2 ≥ 0.
x2
x3
v1
v2
-2
-1
-3
0
0
1
2
-1
1
0
1
-1
4
0
1
-8
-7/4
0
0
1
x1
A
Variables
D
Dressons le tableau du simplexe sans la ligne de - z.
v1
6
v2
8
Itération1
8
5/4
7/4
0
1
x3
2
1/4
-1/4
1
0
-ψ
0
0
0
0
x2
32/7
5/7
1
0
x1
22/7
3/7
0
1
N
IV
- 5/4
v1
ER
-ψ
TE
-14
SI
-ψ
SA
de base
U
Itération2
Cours 05 : Initialisation de l'algorithme du simplexe.
53
Cours de Programmation Linéaire donné par le Dr. Ali DERBALA
Tous les cj = 0 alors x = (0, 32/7, 22/7) est optimale pour le problème auxiliaire (PA)
et minψ = 0. La base optimale de (PA) constituera une base réalisable du problème
initial (PL). On peut appliquer la méthode de simplexe au problème (PL) avec cette
base réalisable.
A
En interprétant le dernier tableau ci dessus, on aura :
BL
I
D
5/7 x1 + x2 = 32/7 ⇒ x2 = 32/7 - 5/7 x1.
+ x3 = 22/7 ⇒ x3 = 22/7 - 3/7 x1 .
3/7 x1
D
On applique maintenant l'algorithme du simplexe. Comme c1 ≥ 0, alors
E
La fonction objectif deviendra alors : - Z + 2 x1 - x2 - 3 x3 = 0 ⇔ -Z + 4 x1 = 14
B
x = (0, 32/7, 22/7) n'est pas optimale pour le problème auxiliaire (PL). Il faut au
LA
moins une itération de l'algorithme du simplexe. A faire par l'étudiant!
2. Si dans le (PL) une variable xr soit contenue dans une seule équation et si ars et br
H
ont même signe, il n'est pas nécessaire d'introduire une variable artificielle. Il est
A
avantageux d'introduire un minimum de variables artificielles.
D
3. Le but de la phase I est d'éliminer si cela est possible les variables artificielles de
D
la base. Tout vecteur artificiel sorti de la base ne doit être jamais candidat à
SA
A
l'entrée dans la base. Cette méthode est appelée " Méthode des deux phases ".
Exemple 3 : Soit à résoudre le (PL) suivant :
TE
Minz = x1 + x2 - x3 -
ER
SI
x1 + 2 x2
2 x5
- x4
=3
x3 - 2 x4
=2
3 x2
- x4 + x5 ≤ 5
+ x5 ≥ 3
IV
x2
N
x1 ≥ 0,…, x5 ≥ 0.
U
Sous sa forme standard, le problème devient :
Minz = x1 + x2 - x3 x1 + 2 x2
3 x2
x2
2 x5
- x4
=3
x3 - 2 x4
=2
- x4 + x5 + x6
+ x5
= 5
- x7 = 3
x1 ≥ 0,…, x7 ≥ 0.
Cours 05 : Initialisation de l'algorithme du simplexe.
54
Cours de Programmation Linéaire donné par le Dr. Ali DERBALA
x7 ne peut pas être prise pour une variable de base car elle est précédée d'un signe
moins. On ne va introduire qu'une seule variable artificielle v1 dans le (PA).
Le problème auxiliaire est :
Min ψ = v1 = 3 - x2 - x5 + x7
Minz = 1 - x2 - 3 x4 - 2 x5
- x4
=3
x3 - 2 x4
=2
+ x5
x2
= 5
A
- x4 + x5 + x6
3 x2
- x7 + v1 = 3
ID
x1 + 2 x2
x3
x4
x5
x6
-ψ
-3
0
-1
0
0
-1
0
x1
3
1
2
0
1
0
x3
2
0
0
1
-2
x6
5
0
3
0
-1
v1
3
0
1
0
-Z
-1
0
-1
0
-ψ
0
0
x1
3
x3
2
x6
2
x5
3
0
0
0
0
0
0
0
1
1
0
0
0
1
0
-1
1
-3
-2
0
0
0
SA
A
D
LA
B
0
D
1
0
0
0
0
0
0
7
0
0
0
0
-2
IV
ER
SI
TE
Itération1
-Z
v1
H
de base
x7
BL
x2
E
x1
Variables
D
1
A
x1 ≥ 0,…, x7 ≥ 0, V1≥ 0.
5
3
N
minψ = 0, la base optimale de (PA) constitue une base réalisable de (PL).
U
On appliquera l'algorithme du simplexe. A faire par l'étudiant!
Convergence de la méthode du simplexe
Si à chaque itération la solution de base est non dégénérée, l'algorithme du simplexe
conduit à une solution optimale en un nombre fini d'étapes.
Cours 05 : Initialisation de l'algorithme du simplexe.
55
Cours de Programmation Linéaire donné par le Dr. Ali DERBALA
Mais en cas de dégénérescence une base peut être répétée ce qui peut conduire à un
cycle, on retrouve la même base de départ. Dans ce cas, on n'obtiendra jamais une
solution optimale en utilisant la méthode du simplexe.
Hoffman et Beale (1953) ont construit des exemples dans lesquels le phénomène de
cyclage se produit.
Exemple 4 : Montrer que le phénomène de cyclage se produit dans le (PL) suivant:
a. Minz = - 3/4x4 + 20 x5 - 1/2 x6 + 6 x7
1/4 x4 - 8 x5 - 6 x6 - 9 x7 = 0
A
x1 +
=1
BL
+ x6
x3
ID
x2 + 1/2x4 -12 x5 - 1/2 x6 + 3 x7 = 2
D
E
xi ≥ 0, i = 1, .., 7.
b. Maxz = 3/4x1-150 x2 + 1/50 x3 - 6 x4
=0
+ x7 = 1
H
x3
+ x6
LA
1/2 x1 - 90 x2 -1/50 x3 + 3 x4
= 0
B
x1- 60 x2 - 1/25 x3 + 9 x4 + x5
A
xi ≥ 0, i = 1, .., 7.
U
N
IV
ER
SI
TE
SA
A
D
D
Plusieurs méthodes évitent le cyclage : méthode lexicographique et des perturbations.
Cours 05 : Initialisation de l'algorithme du simplexe.
56
Téléchargement