Dualité en Programmation Linéaire Algorithmes primal et dual du

Transcription

Dualité en Programmation Linéaire Algorithmes primal et dual du
Dualité en Programmation Linéaire
Algorithmes primal et dual du
simplexe
Alain Faye
Option 3A
Optimisation 1
1
Dualité lagrangienne
2
Dualité lagrangienne
Problème Primal
min ๐‘“(๐‘ฅ) s.c.
๐‘ฅโˆˆ๐‘‹
๐‘”๐‘– ๐‘ฅ โ‰ค 0, ๐‘– = 1, โ€ฆ , ๐‘š
&โ„Ž๐‘— (๐‘ฅ) = 0, ๐‘— = 1, โ€ฆ , ๐‘
avec ๐‘‹๏ƒ๐‘…๐‘›
๐‘š
Fonction de Lagrange ๐ฟ ๐‘ฅ, ๏ฌ, ๏ญ = ๐‘“ ๐‘ฅ +
๐‘
๏ฌ๐‘– ๐‘”๐‘– ๐‘ฅ +
๐‘–=1
๏ญ๐‘— โ„Ž๐‘— ๐‘ฅ
๐‘—=1
๐‘Ž๐‘ฃ๐‘’๐‘&๏ฌ๐‘– โ‰ฅ 0&&๐‘– = 1, โ€ฆ , ๐‘š
Fonction duale
๐œƒ(๏ฌ, ๏ญ)=min๐‘ฅโˆˆ๐‘‹ ๐ฟ(๐‘ฅ, ๏ฌ, ๏ญ)
Problème Dual
max ๐œƒ(๏ฌ, ๏ญ)
๏ฌโ‰ฅ0,&๏ญ
3
Dualité lagrangienne
Théorème de dualité
๐‘“ ๐‘ฅ ๏‚ณ&๐œƒ(๏ฌ, ๏ญ)
๏€ข๐‘ฅ๏ƒŽ๐‘‹ satisfaisant les contraintes du primal
๏€ข๏ฌโ‰ฅ0, ๏€ข๏ญ
Corollaire
Soit ๐‘ฅ โˆ— ๏ƒŽ๐‘‹ satisfaisant les contraintes du primal
et ๏ฌโˆ— โ‰ฅ0, ๏ญโˆ—
tels que:
๐‘“ ๐‘ฅ โˆ— = &๐œƒ(๏ฌโˆ— , ๏ญโˆ— )
Alors ๐‘ฅ โˆ— est solution du primal et (๏ฌโˆ— , ๏ญโˆ— ) est solution du dual
4
PL et dualité
5
Pb du pharmacien : fournir une potion contenant un minimum dโ€™unités
en vitamines A, B, C
en utilisant les poudres fournies par 2 laboratoires
100g de poudre laboratoire 1 laboratoire 2
vitamine A
20 unités
5 unités
vitamine B
30 unités
20 unités
vitamine C
5 unités
10 unités
coût
6
9
Il lui faut au moins
25 unités de vitamine A
60 unités de vitamine B
15 unités de vitamine C
6
Pb du pharmacien :
100g de poudre laboratoire 1 laboratoire 2
vitamine A
20 unités
5 unités
vitamine B
30 unités
20 unités
vitamine C
5 unités
10 unités
coût
6
9
Il lui faut au moins
25 unités de vitamine A
60 unités de vitamine B
15 unités de vitamine C
Un concurrent des laboratoires 1 et 2 :
Un 3ème laboratoire décide de commercialiser les vitamines A, B, C séparément.
Il lui faut trouver le prix yA, yB, yC pour chaque unité de vitamine.
Pour être concurrentiel avec le laboratoire 1 il faut : 20yA+30yB+5yC๏‚ฃ6
Pour être concurrentiel avec le laboratoire 2 il faut : 5yA+20yB+10yC๏‚ฃ9.
Le laboratoire désire maximiser les gains en vendant ses vitamines au
pharmacien
maximiser 25 yA + 60 yB + 15 yC
7
Pb du pharmacien : se fournissant auprès des laboratoires 1 et 2
préparer sa potion à un moindre coût
min 6 x1 ๏€ซ 9 x2
pb primal
๏€ซ 5 x2
๏ƒฌ 20 x1
๏ƒฏ 30 x
๏€ซ 20 x2
๏ƒฏ
1
s.c. ๏ƒญ
๏€ซ 10 x2
๏ƒฏ 5 x1
๏ƒฏ๏ƒฎ x1 ๏‚ณ 0 x2 ๏‚ณ 0
๏‚ณ 25
๏‚ณ 60
๏‚ณ 15
Pb du concurrent des laboratoires 1 et 2 : trouver le juste prix des vitamines
max 25 y A ๏€ซ 60 y B ๏€ซ 15 y C
pb dual
๏ƒฌ 20 y A ๏€ซ 30 y B
๏ƒฏ
s.c. ๏ƒญ 5 y A
๏€ซ 20 y B
๏ƒฏy ๏‚ณ 0 y ๏‚ณ 0
B
๏ƒฎ A
๏€ซ 5 yC
๏‚ฃ6
๏€ซ 10 y C
๏‚ฃ9
yC ๏‚ณ 0
8
Dualité et programmation linéaire
Primal (P)
min ๐‘๐‘ฅ s.c. ๐ด๐‘ฅ โ‰ฅ ๐‘
Dual (D)
max ๐‘ฆ๐‘ s.c. ๐‘ฆ๐ด โ‰ค ๐‘
๐‘ฅโ‰ฅ0
๐‘ฆโ‰ฅ0
Format des données et des variables
y
A
c
b
x
9
Construction du dual
๏ƒฉmin cx
๏ƒช
(P) ๏ƒช ๏ƒฌAx ๏‚ณ b
s.c.
๏ƒช ๏ƒญ๏ƒฎ x ๏‚ณ 0
๏ƒซ
c ๏€ฝ ๏€จ6 9 ๏€ฉ
๏ƒฆx ๏ƒถ
x ๏€ฝ ๏ƒง๏ƒง 1 ๏ƒท๏ƒท
๏ƒจ x2 ๏ƒธ
๏€จD ๏€ฉ
๏ƒฆ 20 5 ๏ƒถ
๏ƒง
๏ƒท
A ๏€ฝ ๏ƒง 30 20 ๏ƒท
๏ƒง 5 10 ๏ƒท
๏ƒจ
๏ƒธ
min 6 x1 ๏€ซ 9 x2
๏€ซ 5 x2
๏ƒฌ 20 x1
๏ƒฏ 30 x
๏€ซ 20 x2
๏ƒฏ
1
s.c. ๏ƒญ
๏€ซ 10 x2
๏ƒฏ 5 x1
๏ƒฏ๏ƒฎ x1 ๏‚ณ 0 x2 ๏‚ณ 0
๏‚ณ 25
๏‚ณ 60
๏‚ณ 15
y ๏€ฝ ๏€จyA
๏ƒฉmax yb
๏ƒช
๏ƒชs.c. ๏ƒฌ yA ๏‚ฃ c
๏ƒช ๏ƒญ๏ƒฎ y ๏‚ณ 0
๏ƒซ
yB
yC ๏€ฉ
๏ƒฆ 25 ๏ƒถ
๏ƒง ๏ƒท
b ๏€ฝ ๏ƒง 60 ๏ƒท
๏ƒง 15 ๏ƒท
๏ƒจ ๏ƒธ
max 25 y A ๏€ซ 60 y B ๏€ซ 15 y C
๏ƒฌ 20 y A ๏€ซ 30 y B
๏ƒฏ
s.c. ๏ƒญ 5 y A
๏€ซ 20 y B
๏ƒฏy ๏‚ณ 0 y ๏‚ณ 0
B
๏ƒฎ A
๏€ซ 5 yC
๏‚ฃ6
๏€ซ 10 y C
๏‚ฃ9
yC ๏‚ณ 0
10
On fait quelques essais et on constate que
le coût pour le pharmacien ๏‚ณ gain du 3è laboratoire
๏ƒฉmin z ๏€ฝ 6 x1 ๏€ซ 9 x2
๏ƒช
๏€ซ 5 x2
๏ƒช ๏ƒฌ 20 x1
๏€จP ๏€ฉ ๏ƒช ๏ƒฏ๏ƒฏ 30 x1 ๏€ซ 20 x2
๏ƒชs.c. ๏ƒญ
๏€ซ 10 x2
๏ƒช ๏ƒฏ 5 x1
๏ƒช ๏ƒฏx ๏‚ณ 0 x ๏‚ณ 0
2
๏ƒซ ๏ƒฎ 1
๏‚ณ 25
๏‚ณ 60
๏‚ณ 15
๏ƒฉmax v ๏€ฝ 25 y A ๏€ซ 60 y B ๏€ซ 15 y C
๏ƒช
๏ƒฌ 20 y A ๏€ซ 30 y B ๏€ซ 5 y C ๏‚ฃ 6
๏ƒช
๏€จD ๏€ฉ ๏ƒช ๏ƒฏ
s.c. ๏ƒญ 5 y A
๏€ซ 20 y B ๏€ซ 10 y C ๏‚ฃ 9
๏ƒช ๏ƒฏ
๏ƒช๏ƒซ ๏ƒฎ y A ๏‚ณ 0 y B ๏‚ณ 0 y C ๏‚ณ 0
๏‚ณ
x1 = 1 , x2 = 3/2 , z = 39/2
x1 = 3/2 , x2 = 3/4 , z = 63/4
yA = 1/5 , yB = 1/30 , yC = 1/5 , v = 10
yA = 0 , yB = 3/40 , yC = 3/4 , v = 63/4
=
= ๏ƒž optimalité des 2 solutions
11
Dualité et programmation linéaire
Exercice
1- Montrer que :
๐‘๐‘ฅ โ‰ฅ ๐‘ฆ๐‘
โˆ€๐‘ฅ โ‰ฅ 0 satisfaisant les contraintes de (P)
โˆ€๐‘ฆ โ‰ฅ 0 satisfaisant les contraintes de (D)
Exercice
1- Ecrire le dual lagrangien de (P) avec y=๏ฌ๏‚ณ0 comme variables duales
2- Donner les conditions sur y telles que ce dual lagrangien ait une valeur>-๏‚ต
3- En déduire que le dual lagrangien de (P) est le problème (D)
12
Saut de dualité
Le résultat suivant est très important ;
- Si lโ€™un des 2 problèmes a un optimum fini,
alors les valeurs optimales des 2 problèmes (P) et (D) coïncident.
- Si lโ€™un des 2 problèmes a un optimum non fini,
alors lโ€™autre problème nโ€™a pas de solution réalisable
pas de saut entre les valeurs optimales des problèmes (P) et (D)
13
Ecarts complémentaires
Propriété.
Soit x une solution réalisable de (P) cโ€™est-à-dire x vérifie les contraintes de (P) et
y une solution réalisable de (D) cโ€™est-à-dire y vérifie les contraintes de (D).
x et y sont solutions optimales de (P) et (D) respectivement
si et seulement si y(Ax-b)=0 et (c-yA)x=0.
Vérifions la propriété sur le pb du pharmacien:
yA๏‚ด(20x1+5x2-25) +
yB๏‚ด(30x1+20x2-60) +
yC๏‚ด(5x1+10x2-15) +
x1๏‚ด(6-20yA-30yB-5yC) +
x2๏‚ด(9-5yA-20yB-10yC) =0
termes๏‚ณ0 ๏ƒžsi la somme=0 ils sont tous nuls
๏ƒž 6x1+9x2 -20yA-60yB-15yC= 0 ๏ƒ› lโ€™objectif (P)=lโ€™objectif de (D) ๏ƒ› x et y solutions
de (P) et (D)
14
Ecarts complémentaires
Exercice
Soit ๐‘ฅ โ‰ฅ 0 satisfaisant les contraintes de (P)
et ๐‘ฆ โ‰ฅ 0 satisfaisant les contraintes de (D)
Montrer que :
๐‘๐‘ฅ = ๐‘ฆ๐‘ si et seulement si
๐‘ฆ ๐‘ โˆ’ ๐ด๐‘ฅ = 0 et ๐‘ โˆ’ ๐‘ฆ๐ด ๐‘ฅ = 0
15
Interprétation des variables duales
Soit (P) pb de type minimiser et son dual (D).
A l โ€™optimum de (P) et (D) on a z*=v*=yb
De combien varie l โ€™optimum de (P)
lorsque b le second membre des contraintes varie ?
๏„z*=y๏„b si ๏„b pas trop grand
sinon ๏„z*๏‚ณy๏„b les valeurs des var. duales y n โ€™étant plus optimales
Faisons varier un bi uniquement ๏„z*=yi๏„bi ๏ƒž ๏„z*/๏„bi=yi
yi représente le prix à payer quand on fait varier la contrainte i
16
Exemple : si le pharmacien fait varier ses demandes en vitamines A, B, C
Solution du dual:
yA = 0 , yB = 3/40 , yC = 3/4 , v = 63/4
๏ƒฉmin z ๏€ฝ 6 x1 ๏€ซ 9 x2
๏ƒช
๏€ซ 5 x2
๏ƒช ๏ƒฌ 20 x1
๏€จP ๏€ฉ ๏ƒช ๏ƒฏ๏ƒฏ 30 x1 ๏€ซ 20 x2
๏ƒชs.c. ๏ƒญ
๏€ซ 10 x2
๏ƒช ๏ƒฏ 5 x1
๏ƒช ๏ƒฏx ๏‚ณ 0 x ๏‚ณ 0
2
๏ƒซ ๏ƒฎ 1
๏‚ณ 25
๏‚ณ 60
๏‚ณ 15
25+๏ฅ ๏ƒž ๏„z= yA ๏‚ด ๏ฅ = 0 ๏‚ด ๏ฅ
60+๏ฅ ๏ƒž ๏„z= yB ๏‚ด ๏ฅ = 3/40 ๏‚ด ๏ฅ
15+๏ฅ ๏ƒž ๏„z= yC ๏‚ด ๏ฅ = 3/4 ๏‚ด ๏ฅ
La vitamine A pas dโ€™effet sur le coût, B un peu dโ€™effet, C 10 fois plus dโ€™effet
17
Algorithmes primal et dual du simplexe
18
Algorithmes primal et dual du simplexe
Problème (P) sous forme standard
(contraintes =)
Problème (D) dual de (P)
min ๐‘๐‘ฅ s.c. ๐ด๐‘ฅ = ๐‘
๐‘ฅโ‰ฅ0
max ๐‘ฆ๐‘ s.c. ๐‘ฆ๐ด โ‰ค ๐‘
๐‘ฆ
Attention pas de condition de signe sur y
19
Algorithmes primal et dual du simplexe
Base
Quitte à déplacer les colonnes de A,
on partitionne A en une matrice carrée B inversible et une matrice N
A= ๐ต
๐‘
On partitionne de façon identique le vecteur x et le vecteur c
๐‘๐‘ฅ = ๐‘๐ต
๐‘๐‘
๐‘ฅ๐ต
๐‘ฅ๐‘ = ๐‘๐ต ๐‘ฅ๐ต + ๐‘๐‘ ๐‘ฅ๐‘
๐‘๐ต est le vecteur extrait de ๐‘ , correspondant aux colonnes de la matrice ๐ต
๐‘๐‘ est le vecteur extrait de ๐‘ , correspondant aux colonnes de la matrice ๐ต&
Même chose pour le vecteur ๐‘ฅ
20
Algorithmes primal et dual du simplexe
Solution de base de (P)
๐ด๐‘ฅ = ๐‘ โ†” ๐ต
๐‘
๐‘ฅ๐ต
๐‘ฅ๐‘ = ๐ต๐‘ฅ๐ต + ๐‘๐‘ฅ๐‘ = ๐‘
La solution de base (associée à B) est la solution du système particulière suivante:
๐‘ฅ๐‘ = 0,&๐‘ฅ๐ต = ๐ต โˆ’1 ๐‘
Le coût de cette solution est ๐‘๐‘ฅ = ๐‘๐ต ๐ตโˆ’1 ๐‘
On pose
On constate alors que:
๐‘ฆ = ๐‘๐ต ๐ตโˆ’1
๐‘๐‘ฅ = ๐‘ฆ๐‘
Égalité entre lโ€™objectif de (P) et (D)
Maintenant si x satisfait les contraintes de (P) et y les contraintes de (D)
Alors x et y sont solutions (optimales) de (P) et (D) respectivement.
Voir le théorème de dualité et son corollaire
21
Algorithmes primal et dual du simplexe
Coûts réduits
๐‘๐‘ฅ = ๐‘๐ต ๐‘ฅ๐ต + ๐‘๐‘ ๐‘ฅ๐‘
๐ด๐‘ฅ = ๐‘& &๐ต๐‘ฅ๐ต + ๐‘๐‘ฅ๐‘ = ๐‘& &๐‘ฅ๐ต + ๐ต โˆ’1 ๐‘๐‘ฅ๐‘ = ๐ต โˆ’1 ๐‘
๐‘๐‘ฅ = ๐‘๐ต ๐‘ฅ๐ต + ๐‘๐‘ ๐‘ฅ๐‘ = ๐‘๐ต ๐ตโˆ’1 ๐‘ + (๐‘๐‘ โˆ’ ๐‘๐ต ๐ตโˆ’1 ๐‘)๐‘ฅ๐‘
Lโ€™objectif de (P) est exprimé en fonction de ๐‘ฅ๐‘ (variables hors-base) uniquement
Les coefficients de ๐‘ฅ๐‘ &sont les coûts réduits : ๐‘๐‘ โˆ’ ๐‘๐ต ๐ตโˆ’1 ๐‘
22
Algorithmes primal et dual du simplexe
Solution duale réalisable
๐‘ฆ๐ด โ‰ค ๐‘
โ†’
๐‘ฆ๐ต โ‰ค ๐‘๐ต
๐‘ฆ๐‘ โ‰ค ๐‘๐‘
En prenant ๐‘ฆ = ๐‘๐ต
๐ตโˆ’1 ,
๐‘๐ต ๐ตโˆ’1 ๐ต โ‰ค ๐‘๐ต
on obtient:
๐‘๐ต ๐ตโˆ’1 ๐‘ โ‰ค ๐‘๐‘
La première condition est toujours trivialement vérifiée.
La seconde est vérifiée si et seulement si&&๐‘๐‘ โˆ’ ๐‘๐ต ๐ตโˆ’1 ๐‘ โ‰ฅ 0
La solution y est duale réalisable si et seulement si les coûts réduits sont positifs ou nuls
23
Algorithmes primal et dual du simplexe
Résumé
1- La matrice B induit une solution dite de base : ๐‘ฅ๐ต = ๐ต โˆ’1 ๐‘, &๐‘ฅ๐‘ = 0
La solution de base est primale réalisable (๐‘ฅ โ‰ฅ 0) si et seulement si&&๐ต โˆ’1 ๐‘ โ‰ฅ 0
2- La matrice B induit une solution ๐‘ฆ = ๐‘๐ต ๐ตโˆ’1 duale réalisable
si et seulement si ๐‘๐‘ โˆ’ ๐‘๐ต ๐ตโˆ’1 ๐‘ โ‰ฅ 0 (coûts réduits โ‰ฅ 0)
3- Pour cette solution de base et cette solution y,
les objectifs du primal et du dual ont la même valeur = ๐‘๐ต ๐ตโˆ’1 ๐‘
24
Algorithmes primal et dual du simplexe
Algorithme primal
On passe de solution de base primale réalisable en solution de base primale réalisable
Et on stoppe dès que lโ€™on a atteint une base B qui est duale réalisable (coûts réduits โ‰ฅ 0)
Algorithme dual
On passe de base duale réalisable en base duale réalisable
Et on stoppe dès que lโ€™on a atteint une solution de base primale réalisable (๐ต โˆ’1 ๐‘ โ‰ฅ 0)
25
Algorithmes primal et dual du simplexe
Bโ€™ et B adjacentes = ne diffèrent que dโ€™une colonne
26
Algorithmes primal et dual du simplexe
Ecriture canonique de (P) relativement à une matrice de base B
min&& ๐‘ง = ๐‘๐ต ๐ตโˆ’1 ๐‘ + ๐‘๐‘ โˆ’ ๐‘๐ต ๐ตโˆ’1 ๐‘ ๐‘ฅ๐‘
๐‘ฅ๐ต + ๐ต โˆ’1 ๐‘๐‘ฅ๐‘ = ๐ต โˆ’1 ๐‘
๐‘ฅ๐ต โ‰ฅ 0,&&&๐‘ฅ๐‘ โ‰ฅ 0
que lโ€™on peut noter:
min&& ๐‘ง = ๐‘๐ต ๐ตโˆ’1 ๐‘ +
โˆ†๐‘— ๐‘ฅ๐‘—
๐‘—&โ„Ž๐‘œ๐‘Ÿ๐‘ โˆ’๐‘๐‘Ž๐‘ ๐‘’
๐‘ฅ๐‘– +
๐‘Ž๐‘–๐‘— ๐‘ฅ๐‘— = ๐‘๐‘– &&&&โˆ€๐‘–&๐‘’๐‘›&๐‘๐‘Ž๐‘ ๐‘’
๐‘—&โ„Ž๐‘œ๐‘Ÿ๐‘ โˆ’๐‘๐‘Ž๐‘ ๐‘’
๐‘ฅ๐ต โ‰ฅ 0,&&&๐‘ฅ๐‘ โ‰ฅ 0
27
Algorithmes primal et dual du simplexe
Règles de pivotage (pour passer dโ€™une base B à une base Bโ€™ adjacente)
Algorithme primal
Variable entrant dans la base
- Variable entrant dans la base : ๐‘ฅ๐‘’ &๐‘ก๐‘’๐‘™&๐‘ž๐‘ข๐‘’&โˆ†๐‘’ < 0 et le plus petit
Variable sortant de la base
- Si tous les ๐‘Ž๐‘–๐‘’ โ‰ค 0 (dans la colonne e) alors minimum non borné (-๏‚ฅ)
(on peut augmenter indéfiniment la variable ๐‘ฅ๐‘’ &)
Sinon variable ๐‘ฅ๐‘  sortant de la base où ๐‘  = argmin
๐‘–
๐‘๐‘–
: โˆ€๐‘–&&๐‘ก. ๐‘ž.&๐‘Ž๐‘–๐‘’
๐‘Ž๐‘–๐‘’
> 0&
(cette règle permet de maintenir le second membre ๐‘โ‰ฅ0)
28
Algorithmes primal et dual du simplexe
Règles de pivotage (pour passer dโ€™une base B à une base Bโ€™ adjacente)
Algorithme dual
Variable sortant de la base
- Variable sortant de la base : ๐‘ฅ๐‘  &๐‘ก๐‘’๐‘™&๐‘ž๐‘ข๐‘’&๐‘๐‘  < 0 et le plus petit
Variable entrant dans la base
- Si tous les ๐‘Ž๐‘ ๐‘— โ‰ฅ 0 (dans la ligne s) alors primal non réalisable
(en ligne s, on a une équation avec membre gauche๏‚ณ0 et membre droit <0)
Sinon variable ๐‘ฅ๐‘’ entrant dans la base où ๐‘’ = argmax
๐‘—
โˆ†๐‘—
๐‘Ž๐‘ ๐‘—
:&โˆ€๐‘—&๐‘ก. ๐‘ž. ๐‘Ž๐‘ ๐‘— < 0
(cette règle permet de maintenir les coûts réduits โ‰ฅ0)
29
Exercice
min ๐‘ง = 2๐‘ฅ1 + 3๐‘ฅ2
4๐‘ฅ1 + ๐‘ฅ2 โ‰ฅ 8
๐‘ฅ1 + 4๐‘ฅ2 โ‰ฅ 8
s.c
7๐‘ฅ1 + 10๐‘ฅ2 โ‰ฅ 47
๐‘ฅ1 โ‰ฅ 0, ๐‘ฅ2 โ‰ฅ 0
1-Mettre ce problème sous forme standard
2-Trouver une base duale réalisable évidente
3-Partant de cette base, résoudre le problème par lโ€™algorithme dual du simplexe
30