Anda di halaman 1dari 5

PolytechLille I.M.A.

2
`eme
Annee
2007-2008
Optimisation
Correction TD : Algorithme du simplexe
Corrige de lexercice 7 :
maxz = 1000x
1
+ 1500x
2
8x
1
+ 4x
2
160
4x
1
+ 6x
2
120
x
1
34
x
2
14
x
1
, x
2
0
Le probl`eme est initialement mis sous forme canonique. On commence par le mettre
sous forme standard en introduisant des variables decart x
3
, x
4
, x
5
, x
6
.
maxz = 1000x
1
+ 1500x
2
8x
1
+ 4x
2
+ x
3
= 160
4x
1
+ 6x
2
+ + x
4
= 120
x
1
+ x
5
= 34
x
2
+ x
6
= 14
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
Tous les seconds membres sont positifs, donc x
1
= x
2
= 0, x
3
= 160, x
4
= 120,
x
5
= 34, x
6
= 14 est une solution de base admissible.
Les variables de base sont x
3
, x
4
, x
5
, x
6
.
Les variables hors base sont x
1
, x
2
.
Le tableau du simplexe est alors le suivant :
x
1
x
2
x
3
x
4
x
5
x
6
z 1000 1500 0 0 0 0 L
0
x
3
160 8 4 1 0 0 0 L
1
x
4
120 4 6 0 1 0 0 L
2
x
5
34 1 0 0 0 1 0 L
3
x
6
14 0 1 0 0 0 1 L
4
Au dessus on note le nom des variables associees `a chaque colonne, `a gauche on note
le nom de la variable de base associees `a chaque ligne.
En utilisant la r`egle de Dantzig pour le choix de la variable entrante, la variable entrante
est la variable x
k
telle que c
k
= max
j{1,2}
c
j
, ici k = 2 avec c
k
= 1500. La variable
entrante est donc x
2
, par convention on souligne c
2
.
La variable sortante est la variable l telle que
b
l
a
lk
= min
i={3,...,6}

b
i
aik
|a
ik
> 0

, ici il sagit
de la variable x
6
. Reste maintenant `a eectuer le changement de base par pivotage, les
operations sont les suivantes :
L
0
devient L
0

c
k
b
l
a
lk
L
l
L
l
devient
L
l
a
lk
L
j
pour j = l devient L
j

a
lj
a
lk
L
0
Le nouveau tableau du simplexe est alors :
x
1
x
2
x
3
x
4
x
5
x
6
z 21000 1000 0 0 0 0 1500
x
3
104 8 0 1 0 0 4
x
4
36 4 0 0 1 0 6
x
5
34 1 0 0 0 1 0
x
2
14 0 1 0 0 0 1
On est passe dun tableau `a lautre par pivotage. La solution de base admissible
actuelle est donc x
1
= x
6
= 0, x
3
= 104, x
4
= 36, x
5
= 34, x
2
= 12, la valeur de la
fonction economique est alors z = 21000.
Tous les c
j
ne sont pas negatifs ou nuls, on peut donc ameliorer la valeur de la fonction
economique. En suivant les memes r`egles de changement de base que precedemment on
a, x
4
qui sort de la base et x
1
qui y entre. Apr`es pivotage on obtient le tableau suivant :
x
1
x
2
x
3
x
4
x
5
x
6
z 30000 0 0 0 250 0 0
x
3
32 0 0 1 2 0 8
x
1
9 1 0 0
1
4
0
3
2
x
5
25 0 0 0
1
4
1
3
2
x
2
14 0 1 0 0 0 1
La solution de base admissible actuelle est x
6
= x
4
= 0, x
3
= 32, x
1
= 9, x
5
= 25,
x
2
= 14, la valeur de la fonction economique est alors z = 30000. Ici tous les c
j
sont
negatifs ou nuls, le crit`ere doptimalite est alors verie, la solution obtenue est donc une
solution optimale, cependant, on voit que c
6
= 0 alors que la variable x
6
est hors base.
On peut alors faire entrer x
6
dans la base puisque c
6
0, ceci sans modier la valeur
de la fonction economique puisque le c
6
= 0, on va ainsi pouvoir calculer lensemble des
solutions de base optimales. On fait entrer x
6
dans la base, la variable sortante est x
3
. La
solution obtenue est alors x
3
= x
4
= 0, x
6
= 4, x
1
= 15, x
5
= 19, x
2
= 10, la valeur de la
fonction economique reste z = 3000.
On a ainsi determine lensemble des solutions de base optimales. On sait que len-
semble des solutions optimale peut etre obtenu par combinaison convexe de lensemble
des solutions de base optimales. Ainsi si on sinteresse plus quau couple (x
1
, x
2
) et quon
note A = (9, 14) et B = (15, 10), lensemble des solution optimales est le segment [A, B].
Ou sous forme algebrique x
1
= 9 + 15(1 ) et x
2
= 14 + 10(1 ) avec [0, 1].
Corrige de lexercice 8
max z = x
1
+ 2x
2
x
1
+ x
2
2
3x
1
+ x
2
2
x
1
+ x
2
6
x
1
, x
2
0
Le probl`eme est initialement mis sous forme canonique. On commence par le mettre
sous forme standard en introduisant des variables decart x
3
, x
4
, x
5
.
max z = x
1
+ 2x
2
x
1
+ x
2
+ x
3
= 2
3x
1
+ x
2
+ x
4
= 2
x
1
+ x
2
+ x
5
= 6
x
1
, x
2
, x
3
, x
4
, x
5
0
x
1
x
2
x
3
x
4
x
5
z 1 2 0 0 0
x
3
2 1 1 1 0 0
x
4
2 3 1 0 1 0
x
5
6 1 1 0 0 1
En utilisant la r`egle de Dantzig pour le choix de la variable entrante, la variable en-
trante est la variable x
k
telle que c
k
= max
j{1,2}
c
j
, ici k = 2 avec c
k
= 2. La variable
entrante est donc x
2
.
La variable sortante est la variable l telle que
b
l
a
lk
= min
i={3,4,5}

b
i
aik
|a
ik
> 0

, ici on a le
choix entre la variable x
3
et la variable x
4
. On choisi de faire sortir la variable x
4
. Reste
maintenant `a eectuer le changement de base par pivotage. Apr`es pivotage on obtient :
x
1
x
2
x
3
x
4
x
5
z 4 5 0 0 2 0
x
3
0 2 0 1 1 0
x
2
2 3 1 0 1 0
x
5
4 4 0 0 1 1
La solution actuelle est alors x
1
= x
4
= 0, x
3
= 0, x
2
= 2 et x
5
= 4, la valeur actuelle
de z est 4. On voit ici quune variable de base a une valeur nulle, cette solution est appelee
solution degeneree.
En utilisant les r`egles de changement de base on a que la variable x
1
entre dans la
base et la variable x
3
sort de la base. Apr`es pivotage le tableau du simplexe est le suivant :
x
1
x
2
x
3
x
4
x
5
z 4 0 0
5
2
1
2
0
x
1
0 1 0
1
2

1
2
0
x
2
2 0 1
3
2

1
2
0
x
5
4 0 0 2 1 1
La solution actuelle est alors x
3
= x
4
= 0, x
1
= 0, x
2
= 2 et x
5
= 4, la valeur actuelle
de z est 4. On voit ici quune variable de base a une valeur nulle.
Ce phenom`ene illustre la possibilite que lalgorithme du simplexe ne fasse pas crotre
strictement la valeur de la fonction economique `a chaque etape. Dans le pire des cas, si on
utilise la r`egle de Dantzig pour le choix de variables entrantes et sortantes il peut arriver
le phenom`ene appele cyclage ou lalgorithme passe indeniment dune base `a une autre
sans que la solution ne soit modie. Cest par exemple le cas de lexemple de Beale.
Continuons le derouelement de lalgorithme : la variable entrante est x
4
et la variable
sortante est x
5
. On obtient le tableau du simplexe suivant :
x
1
x
2
x
3
x
4
x
5
z 6 0 0
3
2
0
1
2
x
1
2 1 0
1
2
0
1
2
x
2
4 0 1
1
2
0
1
2
x
4
4 0 0 2 1 1
La solution est alors x
3
= x
5
= 0, x
1
= 2, x
2
= 4 et x
4
= 4, la valeur actuelle de
z est 6. Tous les c
j
0, le crit`ere doptimalite est donc verie, la solution optimale est
obtenue. Remarquons quici aucune variable hors base na de c
j
= 0, la solution optimale
est donc unique.
Corrige de lexercice 5
max z = 1000x
1
+ 1200x
2
8x
1
+ 4x
2
160
4x
1
+ 6x
2
120
x
1
34
x
2
14
x
1
, x
2
0
On commence par le mettre sous forme standard en introduisant des variables decart
x
3
, x
4
, x
5
, x
6
.
max z = 1000x
1
+ 1200x
2
8x
1
+ 4x
2
+ x
3
= 160
4x
1
+ 6x
2
+ x
4
= 120
x
1
+ x
5
= 34
x
2
+ x
6
= 14
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
On est dans une situation o` u tous les seconds membres ne sont pas positif, dans ce
cas utilise la methode en deux phases de GASS. Pour cela on introduit une variable ar-
ticielle x
7
. On soustrait alors la variable articielle x
7
au membre de gauche de toutes
les contraintes ayant un second membre negatif.
max z = 1000x
1
+ 1200x
2
8x
1
+ 4x
2
+ x
3
= 160
4x
1
+ 6x
2
+ x
4
= 120
x
1
+ x
5
x
7
= 34
x
2
+ x
6
x
7
= 14
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
0
On introduit la fonction economique auxiliaire z

= x
7
Le tableau du simplexe est le suivant :
x
1
x
2
x
3
x
4
x
5
x
6
x
7
z 1000 1200 0 0 0 0 0
z

0 0 0 0 0 0 1
x
3
160 8 4 1 0 0 0 0
x
4
120 4 6 0 1 0 0 0
x
5
34 1 0 0 0 1 0 -1
x
6
14 0 1 0 0 0 1 1
Ensuite on eectue le changement de base
suivant : la variable articielle entre dans la base et la variable l telle que b
l
= min
i
b
i
sort de la base. Ici, x
7
entre dans la base et x
5
sort de la base, apr`es pivotage on obtient
le tableau suivant :
x
1
x
2
x
3
x
4
x
5
x
6
x
7
z 1000 1200 0 0 0 0 0
z

+ 34 1 0 0 0 0 0 0
x
3
160 8 4 1 0 0 0 0
x
4
120 4 6 0 1 0 0 0
x
7
34 1 0 0 0 1 0 1
x
6
20 1 1 0 0 1 1 0
La solution actuelle est x
1
= x
2
= x
6
= 0, x
3
= 160, x
4
= 120, x
7
= 34, x
6
= 20.
Pour ramener au probl`eme initial, il faut avoir x
7
= 0, on va donc maximiser la fonction
economique auxiliaire z

= x
7
sous les contraintes precedentes. Si ce maximum est
obtenu pour x
7
= 0 on est alors ramene au probl`eme initial pour lequel on poss`ede
desormais une solution de base admissible, sinon le probl`eme initial ne poss`ede pas de
solution.
On applique donc lalgorithme du simplexe mais `a la fonction economique z

. La
variable x
1
entre dans la base, pour la variable sortante on a le choix entre x
3
et x
6
, on
choisi arbitrairement la variable x
3
. Apr`es pivotage on obtient le tableau suivant :
x
1
x
2
x
3
x
4
x
5
x
6
x
7
z 20000 0 700 125 0 0 0 0
z

+ 14 0
1
2

1
8
0 0 0 0
x
3
20 1
1
2
1
8
0 0 0 0
x
4
40 0 4
1
2
1 0 0 0
x
7
14 0
1
2

1
8
0 1 0 1
x
6
0 0
3
2

1
8
0 1 1 0
Tous les c

j
sont negatifs, on a donc obtenu la solution optimale pour le probl`eme
auxiliaire. Ce maximum est obtenu pour x
7
= 14, le probl`eme initial ne poss`ede pas de
solution, le domaine du programme est donc vide.

Anda mungkin juga menyukai