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