Master MPRI Rappels : dualité de la programmation linéaire
-
Upload
bryar-skinner -
Category
Documents
-
view
59 -
download
1
description
Transcript of Master MPRI Rappels : dualité de la programmation linéaire
Master MPRI
Rappels : dualité de la programmation linéaire
Michel de Rougemont
http://www.lri.fr/~mdr
Programmation linéaire et dualité
1. Simplex
2. Principe de Dualité
3. Dual et Primal.
4. Théorème du Minimax
5. Faisabilité et impossibilité
6. Complémentarité
7. Interprétation économique
8. Simplex révisé
Introduction au Simplex
Résolution d’un système linéaire de maximisation:
•Introduction de variables d’écart•Solution initiale•Itération pour augmenter la valeur de la solution.•Terminaison
0,...,
.
.cMax
21
t
nxxx
bxA
x
Exemple d’itération
0,,8243
1124532345Max
321
321
321
321
321
xxxxxxxxxxxx
xxx
321
3216
3215
3214
34524382411
325
xxxzxxxxxxxxxxxx
Itérations possibles
321
3216
3215
3214
34524382411
325
xxxzxxxxxxxxxxxx
0,8,11,5,0,0,0 654321 zxxxxxx
Augmentons 3,2,1 111 xxx
Les contraintes sont : 4/113/82/51 x
2/25,2/1,1,0,0,0,2/5 654321 zxxxxxx
Nouvelle solution:
Nouveau système
321
3216
3215
4321
34524382411
2/2/2/32/5
xxxzxxxxxxxxxxxx
32432
324326
324325
4321
34)2/2/2/32/5(524)2/2/2/32/5(382)2/2/2/32/5(411
2/2/2/32/5
xxxxxzxxxxxxxxxxxxxxxx
2/52/2/72/252/32/2/2/1
2512/2/2/32/5
432
4326
425
4321
xxxzxxxxxxxxxxx
Substituons 1x
Itération 2
Augmentons
642
425
6421
6423
313251
222231
xxxzxxxxxxxxxxx
2x
3x
513 xLes contraintes sont:
13,0,1,0,1,0,2/5 654321 zxxxxxx
Nouveau système:
La valeur z ne peut plus être augmentée: optimum.
Méthode générale
Mise sous forme normale.
Itération:•Choix d’un pivot qui augmente la solution.•Détection de l’optimum ou d’infaisabilité
Problèmes possibles:•Solution non bornée•Infaisabilité•Cycles•Solution initiale
Difficultés du Simplex
•Initialisation : peut-on toujours trouver une solution initiale?
•Itération : peut-on toujours itérer?
•Terminaison : les itérations terminent-elles toujours?
Interprétation géométrique
•Contrainte sur n variables : hyperplan de dimension n•Dimension 2 : droites•Dimension 3 : plans
21
21
2
1
2 1
0 20 2
xxMaxxx
xx
Difficultés d’itération
•Itération : peut-on toujours itérer?•Solution non bornée•Itération dégénérée•Cycle
•Solution non bornée:
143
145
1432
5
437325
xxxz
xxxxxxx
3x entre dans la base : seule borne est
2/53 x
Solution z arbitraire !
Itération dégénérée
321
3216
3215
34
82432642321
xxxzxxxxxxxxxx
3x entre dans la base. Seule contrainte est:
2/13x sort de la base (au choix). On obtient:4x
421
4216
4215
43
42423342
2/2/1
xxxzxxxxxxxxxx
Itération dégénérée
4 ,2/1,0et 0 365421 zxxxxxx
065 xxSolution dégénérée car
421
4216
4215
43
42423342
2/2/1
xxxzxxxxxxxxxx
01xEquation 2 impose:
542
5426
43
5421
342/2/7
2/2/12/2/32
xxxzxxxx
xxxxxx
Itération dégénérée
Solution identique à la précédente! L’itération est dégénérée.
Remarque: l’itération suivante est aussi dégénérée et la suivante est optimale.
4 ,2/1,0et 0 365421 zxxxxxx
Cycles
sort. et entre 51 xx
4321
17
43216
43215
2495710
15.05.15.0
95.25.55.0
xxxxz
xxxxxxxxxxxx
5432
54327
54326
54321
202044153
2185111824
218511
xxxxz
xxxxxxxxxxxxxxx
sort. et entre 62 xx
6543
65437
65431
65432
25.1375.6985.14
25.1375.045.0175.275.045.025.025.025.0
xxxxz
xxxxxxxxxxxxxxx
sort. et entre 13 xx
Cycles
sort. et entre 24 xx
1654
17
16542
16543
29931518
15.25.02
25.55.18
xxxxz
xxxxxxxxxxxx
2165
17
21653
21654
9205.705.10
1425.45.05.05.025.125.0
xxxxz
xxxxxxxxxxxx
sort. et entre 35 xx
3216
17
32164
32165
21932224
15.05.15.0
2849
xxxxz
xxxxxxxxxxxx
sort. et entre 46 xx
Cycles
!1er au identique reDictionnai
4321
17
43216
43215
2495710
15.05.15.0
95.25.55.0
xxxxz
xxxxxxxxxxxx
Chaque itération est dégénérée.
Initialisation
Solution faisable, Dictionnaire faisable?Problème auxiliaire:
0,,12532
422Max
321
321
321
321
321
xxxxxxxxxxxxxxx
0,,,12532
422Max
3210
0321
0321
0321
0
xxxxxxxxxxxxxxxxx
0
03216
03215
03214
21325
224
xw
xxxxxxxxxxxxxxx
Initialisation
Infaisable: Pivot :
0
03216
03215
03214
21325
224
xw
xxxxxxxxxxxxxxx
sort. )(Min et entre 50 ibxx
5321
53216
5324
53210
325
343429325
xxxxw
xxxxxxxxxxxxxx
Faisable: sort. et entre 62 xx
Initialisation
Pivot : sort. et entre 03 xx
6531
65314
65310
65312
75.025.025.125.02
5.05.05.25.1775.025.025.125.0225.025.075.075.01
xxxxw
xxxxxxxxxxxxxxx
0
0614
06512
06513
236.02.04.06.02.28.06.02.02.06.1
xw
xxxxxxxxxxxxxx
Optimum :Dictionnaire d’origine:
3. 1.6, , 2.2 0, 4320 xxxx
651
614
6512
6513
4.02.02.06.0
32.04.06.02.26.02.02.06.1
xxxz
xxxxxxxxxxx
Initialisation générale
Etape 1 :
Etape générale : simplex
Terminaison:• •
sort. variableautre uneet entre 0x
Faisable 0.et w base la dans pasest n' 0 xInfaisable 0.et w base la dansest 0 x
Interprétation géométrique de l’initialisation
•Le point (0,0,…0) n’est pas dans le polytope.•Trouver un autre point en ajoutant -x0 pour être sur de trouver une solution.
21
21
2
1
2 1
0 21 2
xxMaxxx
xx
Interprétation géométrique de l’initialisation
Ecrire les contraintes avec x0
2 1
12
02
021
01
01
xxxxx
xxxx
Interprétation géométrique de l’initialisation
Ecrire les contraintes avec x0
0
026
0215
014
013
211
2
xzxxxxxxxxxxxxx
Interprétation géométrique de l’initialisation
Dictionnaire infaisable: x0 entre et x4 sort (b minimum)
41
4216
4215
413
410
13
2223
1
xxzxxxxxxxxxxxxxx
Interprétation géométrique de l’initialisation
Dictionnaire : x1 rentre et x0 sort
02
221
1
206
4205
403
401
xzxxxxxxxxxxxxx
OptimumX0=0 donc faisable
Interprétation géométrique de l’initialisation
Dictionnaire global
42
26
425
43
41
222
11
xxzxxxxxxxxx
Simplex à deux phases
Phase 1 : résolution du problème auxiliaire.
Phase 2 : résolution du problème original.
Théorème fondamental.Pour chaque problème LP:•Soit le problème est infaisable•Soit le problème n’est pas borné•Soit le problème a une solution optimale
Simplex révisé
Représentation compacte d’un dictionnaire.
Forme Matricielle:
0,,,4204334117225223
171213 19Max
4321
4321
4321
4321
4321
xxxxxxxxxxxxxxxxxxxx
1004 3340101 1110 0 1 2 1 2 3
Bases de la Dualité
0,,,3532
5583513
35 4Max
4321
4321
4321
4321
4321
xxxxxxxxxxxxxxxxxxxx
Estimation de z > az>5 avec (0,0,1,0)z>22 avec (3,0,2,0)….
Estimation de z <b ?Quel est le témoin?
Dualité : z < b
0,,,3532
5583513
35 4Max
4321
4321
4321
4321
4321
xxxxxxxxxxxxxxxxxxxx
Montrons que z <275/3
2nd contrainte . 5/3
3/2753/4053/53/25 4321 xxxx
3/2753/4053/53/25354 43214321 xxxxxxxx
Donc z <275/3
Dualité
0,,,3532
5583513
35 4Max
4321
4321
4321
4321
4321
xxxxxxxxxxxxxxxxxxxx
2nd contrainte +3ème contrainte
583634 4321 xxxx
Donc z <58
Méthode systématique.
Dualité : méthode
0,,,3532 .
55835 . 13 .
35 4Max
4321
43213
43212
43211
4321
xxxxxxxxyxxxxyxxxxyxxxx
332123211321 ).33().2().5( xyyyxyyyxyyy
Conditions pour que le membre gauche >
)355().583( 3214321 yyyxyyy
4321 354 xxxx
358353312 45
321
321
321
321
yyyyyyyyyyyy
Dualité
On obtient donc le système dual:
358353312 45
3 55 Min
321
321
321
321
321
yyyyyyyyyyyyyyy
3114321 355354 yyyzxxxx
Remarques générales
Problème Primal de Maximisation donne un problème Dual de minimisation.
3114321 355354 yyyzxxxx
jijim
i
n
jjjn
jxyaxc ,111
iim
iijjin
j
m
iybyxa
1,11
*1
*,1 iim
ijjin
jybxa
A l’optimum:
Théorème de dualité
Préliminaires: relations entre variables d’écart et variables duales
x3 rentre et x7 sort
43217
43216
43215
4321
5323835553135 4Max
xxxxxxxxxxxxxxxxxxx
7421
74216
74215
74213
3/53/343/73/175 13652
3/13/43/13/223/13/53/2 3/1
xxxxMaxxxxxxxxxxxxxxxx
Théorème de dualité
Itération 2:
x4 rentre et x5 sort. Après plusieurs itérations:
7421
74216
74215
74213
3/53/343/73/175 13652
3/13/43/23/223/13/53/2 3/1
xxxxMaxxxxxxxxxxxxxxxx
7531
75316
75314
75312
611229 1121951
25354 214
xxxxMaxxxxxxxxxxxxxxxx
Préliminaires au théorème de dualité
Variables d’écart: x5, x6, x7 liées aux variables duales y1, y2, y3
La solution z= 29 ……..-11x5 +0.x6 –6.x7 donne la solution optimale du dual:
y1=11, y2=0, y3=6 !!!
7531
75316
75314
75312
611229 1121951
25354 214
xxxxMaxxxxxxxxxxxxxxxx
Solution du Dual
1 2
22
32
21
321
yyyy
yyyMin
1 2-
22-
32
21
321
yyyy
yyyMax
1 2-
-
032
021
0
yyyyyyyMax
Solution du Dual
1 2-
-
032
021
0
yyyyyyyMax
1 2
-
0325
0214
0
yyyyyyyy
yMax
y0 entre et y4 sort
21
2 2-
43215
4210
421
yyyyyyyyy
yyyMax
Solution du Dual
21
2 2-
43215
4210
421
yyyyyyyyy
yyyMax
y1 entre et y5 sort
1
21 21-
5320
54321
5432
yyyyyyyyyyyyyMax
y3 entre et y0 sort
2 1
4021
5023
0
yyyyyyyy
yMax
Dual
2 1
4021
5023
0
yyyyyyyy
yMax
y0=0 solution initiale
2 1
22-
421
523
321
yyyyyyyyyMax
2 1
226-
421
523
542
yyyyyyyyyMax
Minimum=6
Comparaison des solutions: dual et primal
43
435
31
42
26 1 2 2
xxzxxx
xxxx
2 1 2
2
2
21
1
21
xxx
xxxMax
2 1
226-
421
523
542
yyyyyyyyyz
DernierSystèmeprimal
DernierSystèmedual
Comparaison des solutions: dual et primal
43
435
31
42
26 1 2 2
xxzxxx
xxxx
2 1
226-
421
523
542
yyyyyyyyyz
Dernier
Systèmedual
Coefficients des variables d’écart dans z donne l’optimum du dual:-2x3 y1=2-x4 y2=1 (y2 et y3 sont inversés..)0.x5 y3=0
Démonstration Minimax
Considérons la dernière ligne du dernier système du primal:
kkmn
kxczz .'
1*
*1
* . jjn
jxcz
mipourcy nii ...1'*
Posons:
Vérifions que y* satisfait :
*1
*1
.. iim
ijjn
jybxc
Démonstration Minimax
Les variables d’écart sont définies comme:
kkmn
kjn
j j xczxc .. '1
*1
*1
*1
.. iim
ijjn
jybxc
mixabx jjin
jiin ...1.,1
mipourcy nii ...1'*
inim
ikkn
kjn
j j xyxczxc ... *1
'1
*1
jjin
jiim
ikkn
kjn
j j xabyxczxc .... ,1*
1'
1*
1
kjjin
jkn
kiim
ijn
j j xyacbyzxc *,1'
1*
1*
1.)(.
iim
ibyz *
1* Comparant les coefficients
de xj
Et on conclut:
Complémentarité
0*4*3 xx
Contraintes saturées du dual (m=3) et variables nulles du primal (n=2)
1,2,2 *5*2*1 xxx
0,0,0,1,2 *5*4*2*3*1 yyyyy
1 2
22
32
21
321
yyyy
yyyMin2*1x2*2x
Soit xi=0 soit contrainte duale est saturée
Complémentarité
0*4*3 xx
Contraintes saturées du primal (n=2) et variables nulles du dual (m=3)
1,2,2 *5*2*1 xxx
0,0,0,1,2 *5*4*2*3*1 yyyyy
2*1y0*2y
Soit yi=0 soit contrainte primale est saturée
Théorème : Ces deux conditions caractérisent une solution x*,y* optimum.
2 1 2
2
2
21
1
21
xxx
xxxMax
1*3y
Interprétation économique
Exemple de fabrication de produits en quantité x1, x2, x3.
Chaque produit utilise des composants e1,e2,e3,e4 et contribue à un profit ci ($ par unité de xi)
Contraintes du primal : Ax < b
Contraintes du dual A’ y >c yj = $ par unité de composant ej
Min y.b : coût minimum des composants
Simplex révisé
Représentation compacte d’un dictionnaire.
Forme Matricielle:
0,,,4204334117225223
171213 19Max
4321
4321
4321
4321
4321
xxxxxxxxxxxxxxxxxxxx
1004 3340101 1110 0 1 2 1 2 3
A
420117225
b
7
6
5
4
3
2
1
xxxxxxx
x
0 0 0 17 12 13 19c
Simplex révisé
Base : x1, x3, x7:
Variables:
004 3101 1 0 1 2 2
NA
7
3
1
xxx
xB
6
5
4
2
xxxx
xN
1 3 40 1 10 1 3
BA
NNBB xAbxA
Simplex révisé
Base : x1, x3, x7:
NNBB xAbxA
NNBBB xAAbAx 11
NNNNBBB xcxAAbAcz 11
NNBNBB xAAcbAcz 11
NNB xABbBx 11 NNNB xABcbBcz 11
Simplex révisé
Déterminer le pivot:
Calculer :
En 2 étapes:
Exemple:
NNB xABbBx 11 NNBNB xABccbBcz 11
NBN ABcc 1
BB cyBBcy ou 1
NN yAc
01219134011013
.321
yyy
Simplex révisé
Solution:
01219134011013
.321
yyy
05.85.3321 yyy
8.5- 5.35.15.21 NBN ABcc
Donc x4 entre dans la base. Pour trouver la variable qui sort:
47
43
41
5.0...155.0...635.0...54
xxxxxx
txtxtx
5.0...155.0...635.0...54
7
3
1
Simplex révisé
NNB xABbBx 11
Technique systématique: t est la variable entrante et a est la colonne entrante.
dtxx BB .*
412
.134011013d
adB .
5.05.05.0
d
Trouver le plus grand t tel que:
t=30 et x7 quitte la base.
0.* dtxB
Simplex révisé
Mise à jour de xb:
434111213
B
Nouvelle solution:
dtxx BB .**
04839
151515631554
156354
*Bx
304839
*Bx