La Dualité et l’Analyse sensitive et post-optimale en PL Chapitre 3 La Dualité et l’Analyse sensitive et post-optimale en PL
Introduction et généralités La dualité est l’un des concepts essentiel en programmation mathématique Elle joue un rôle important dans la résolution de programmes et dans l’analyse sensitive et post-optimale La dualité a une interprétation économique importante. De plus, d’importantes relations mathématiques relient le primal et le dual
Introduction et généralités Définition: Considérons le programme linéaire (appelé primal) P suivant: Min = c1 x1+ c2 x2 + ….+ cnxn a11 x1 + …..+ a1n xn b1 u1 0 . ah1 x1 + …..+ ahn xn bh uh 0 a (h+1)1 x1 + …..+ a(h+1)n xn = bh+1 uh+1 qcq am1 x1 + …..+ amn xn = bm um qcq xj 0 j=1,…,k xj R, j=k+1, …, n On associe à chaque contrainte I (i=1, …, m) une variable ui appelée variable duale
Introduction et généralités Le programme dual (D) associé au programme primal est: D) P) Max = b1 u1+ b2 u2 + ….+ bm um a11 u1 + …..+ am1 um c1 . a1k u1 + …..+ amk um ck a 1(k+1) u1 + …..+ am(k+1) um = ck+1 a1n u1 + …..+ amn um = cn ui 0 i=1,…,h ui R, i=h+1, …, m Min = c1 x1+ c2 x2 + ….+ cnxn a11 x1 + …..+ a1n xn b1 . ah1 x1 + …..+ ahn xn bh a (h+1)1 x1 + …..+ a(h+1)n xn = bh+1 am1 x1 + …..+ amn xn = bm xj 0 j=1,…,k xj R, j=k+1, …, n
Introduction et généralités Propriétés: Cette transformation est involutive (le dual du dual est le primal). Une variable primale non négative correspond à une contrainte inégalité dans le dual et inversement. Une variable primale non astreinte correspond à une égalité dans le dual et inversement. La matrice des contraintes du dual est la transposée du primal. Les coefficients de la fonction objectif du primal sont les seconds membres du dual et inversement. Un problème de minimisation du primal devient un problème de maximisation du dual et inversement.
Exemples 1) Max Z= x1 + 2 x2 - x1+ x2 = 1 x1 - x2 = 0 x1 , x2 0 1*) Min W= 1 u1 + 0 u2 - u1 + u2 1 u1 – u2 2 u1, u2 R 2) Max Z= 4x1 + 6x2 + 20 x3+ 17 x4 x1+ x3 +2 x4 10 x2 + 2 x3 + x4 = 4 x1 , x2 0 x3, x4 R 2*) Min W= 10 u1 + 4 u2 u1 4 u2 6 u1 + 2 u2 = 20 2 u1 + u2 = 17 u1 0 u2 R 3) Min Z= 2 x1 + x3 x1 + x2 - x3 5 x1 -2 x2 +4 x3 8 x1 , x2 , x3 0 3*) Max W= 5 u1 + 8 u2 u1 + u2 2 u1 - 2 u2 0 - u1 + 4 u2 1 u1, u2 0
Propriétés fondamentales de la Dualité (1/5) Lemme 1: Soient le programme linéaire P et son dual D: Si x’ est solution réalisable de (P) et u’ solution réalisable de (D) alors on aura: Z(x’)= c x’ W(u’) =u’ b E n effet, soient x’ solution réalisable de (P) et u’ solution réalisable de (D) alors A x’ = b , x’ 0…..(1) et u’A c, u qcq ….(2) En multipliant à gauche de (1) par u’ et à droite de (2) par x’ on obtient: u’ A x’ = u’b et u’ A x’ c x’ d’où u’ b c x’
Propriétés fondamentales de la Dualité (2/5) Lemme 2: Si x* est solution réalisable du primal (P) et u* est solution du dual (D) vérifiant u* b = c x* alors x * et u* sont optimales respectivement de (P) et (D). En effet, Posons P= {x/ A x = b et x 0} et D= { u/ u A c } Soient x* est solution réalisable du primal (P) et u* est solution du dual (D) vérifiant u* b = c x* alors x P on a: c x u* b = c x* x* est optimale pour (P) u D on a: u b c x*= u*b u* est solution optimale de (D) Théorème fort des écarts complémentaires: Si la solution optimale du primal (P) existe et est finie alors celle du dual (D) u* existe aussi et est finie et on a: u* b = c x* Si la solution optimale du primal est infinie positive alors le dual n’a pas de solution. La réciproque est fausse
Propriétés fondamentales de la Dualité (3/5) Preuve du théorème fort des Ecs Posons A = (B, N) c= (cB, cN) Le programme primal (P) se réécrit: Min Z = cB xB + cN xN B xB + N xN =b x 0 xB = B-1 b – B-1 N xN Z= cB B-1 b + (cN - cB B-1 N ) xN A l’optimum on doit avoir: j J j = (cN - cB B-1 N )j 0 où J est l’ensemble des variables hors base. De plus, x*B = B-1 b et Z* = cB B-1 b Posons u*= cB B-1 et montrons que (c-u*A ) 0. En effet, c-u*A = (cB – u*B) + (cN - u* N )= (cB –cB ; cN – u* N)= (0, ) 0 où : coefficients des variables hors base dans la fonction objectif Il s’ensuit que: u*A c. Comme u*b = cB B-1 b= cB x*B = Z* u b u D Donc u* est solution optimale de D. Par ailleurs, u*b = cB B-1 b= cB x*B = c x* car à l’optimum x*N=0 Donc à l’optimum on doit avoir: u*b = c x*. Si le problème primal (P) ne possède pas de solution optimale finie alors Min Z=-, il s’ensuivra d’après le Lemme 1 que c x* u*b u*b =-; ce qui est impossible
Propriétés fondamentales de la Dualité (4/5) Théorème faible des Ecarts Complémentaires Une condition nécessaire et suffisante pour que les solutions de base réalisables x* du primal et u* du dual soient optimale et qu’elles vérifient les conditions suivantes: Condition nécessaire: Soient x* et u* solutions optimales de (P) et (D) respectivement. On a: A x*-b = 0 et x* 0 ii) c- u*A 0 En multipliant à gauche de i) par u* et à droite de ii) par x* on obtient: 1 = u*A x*- u*b = 0 et 2= c x*- u*A x* 0 Or 1 + 2 = c x* - u*b = 0 (par hypothèse) Donc nécessairement 1 = 2 = 0. D’où le résultat. Condition suffisante: Supposons que x* et u* vérifient les conditions du système (*) alors: u*(A x* -b) =0 et (c-u*A) x* = 0 c x* = u*b x* et u* sont optimales d’après le Lemme 2
Propriétés fondamentales de la Dualité (5/5) Remarques importantes La démonstration reste valable pour le cas d’un primal mis sous une forme générale car une contrainte inégalité peut être transformée en contraintes égalités. La traduction pratique de ce théorème est: - Si une contrainte i primale n’est pas serrée alors la variable duale correspondante ui est nulle. - Si une variable primale est strictement positive alors la contrainte correspondante du dual est serrée. Une contrainte est dite serrée si sa variable d’écart correspondante est nulle
Exemple 4 Soient les programmes primal P et dual D suivants: Vérifier que x*=(1,0,0)t et u*=(0,1/2, 0) sont solutions optimales respectivement de (P) et (D). Min Z= x1 + 3x2 + 2 x3 - x1 + 5 x2 - 7 x3 -8 P) 2x1 - 4 x2 +2 x3 2 - x1 + 3 x2 - 2x3 -2 x1 , x2 , x3 0 Max W= -8 u1 + 2 u2 – 2 u3 -u1 + 2 u2 – u3 1 D) 5 u1 - 4 u2 +3 u3 3 -7u1 + 2 u2 – 2 u3 2 u1, u2, u3 0
Algorithme dual du simplexe - En pratique, il existe des programmes linéaires dont la résolution nécessite un temps machine et un espace mémoire considérable en raison du nombre important de variables et contraintes du type « ». - L’introduction de variables artificielles au PL complique d’avantage sa résolution L’algorithme dual permet d’éviter ces situations. Principe: Démarrer d’une solution de base non réalisable mais optimale et améliorer d’itérations en itérations l’infaisabilité de la solution tout en gardant valide le critère d’optimalité. Avantage Outre la résolution du problème primal (P) il résout également le programme dual (D). En d’autres termes, les calculs se font sur le programme primal (P) mais les mêmes raisonnements se font aussi sur le programme dual (D).
Algorithme dual du simplexe (0) Démarrer d’une solution de base B du primal optimale Tester si x*B= B-1 b 0 Si oui, terminer la solution est optimale. Sinon, aller en 2) (2) Soit I1 I l’ensemble des indices des variables tel que xi < 0 Tester si a’ij 0 i I1, j J Si oui, le primal n’a pas de solution Si non, j J tel que i I1, a’ij <0 Critère de sortie: La variable sortante de la base est telle que: xs= Min{xi/ i I1} Critère d’entrée: La variable à entrer en base est telle que: r/ a’sr= Min { j / a’sj / a’sj <0} (3) Renouveler le tableau par les formules usuelles de la méthode du simplexe et aller en 1)
Exemple 5 Min Z= 2 x1 + x3 Max W= 5 u1 + 8 u2 x1 + x2 - x3 5 u1 + u2 2 (P) x1 -2 x2 +4 x3 8 (D) u1 - 2 u2 0 x1 , x2 , x3 0 - u1 + 4 u2 1 u1, u2 0 La forme standard de (P) est: Max(- Z)= -2 x1 - x3 x1 + x2 - x3 - e1 = 5 - x1 - x2 + x3 + e1 = -5 x1 -2 x2 +4 x3 - e2 = 8 - x1 +2 x2 -4 x3 + e2 =- 8 x1 , x2 , x3 , e1, e2 0 x1 , x2 , x3 , e1, e2 0 La solution de base non réalisable optimale est : x1 = x2 =x3 =0 e1 = -5 e2 =- 8 Z= 0
Exemple 5 1ière itération 2ième itération 3ième itération Base b x1 x2 x3 e1 e2 e1 e2 -5 -8 -1 -1 1 1 0 -1 2 -4 0 1 -2 0 -1 0 0 Base b x1 x2 x3 e1 e2 e1 x3 -7 2 -5/4 -1/2 0 1 ¼ ¼ -1/2 1 0 -1/4 -7/4 -1/2 0 0 -1/4 Base b x1 x2 x3 e1 e2 x2 x3 14 9 5/2 1 0 -2 -1/2 3/2 0 1 1 -1/2 -1/2 0 0 -1 -1/2 Terminer la solution est de base réalisable optimale.
Analyse sensitive et post-optimale Souvent, certaines données d’un PL sont obtenues par estimation et sont sujettes à modification. Il s’agit d’étudier la sensibilité de la solution (analyse sensitive) et de déterminer le nouvel optimum (analyse post-optimale) aux changements de certains données du PL. Nous nous intéressons aux changements d’un ou plusieurs second membres, d’un ou plusieurs coefficients dans la fonction objectif et l’adjonction d’une nouvelle contrainte. Reprenons le PL1 et soit le dernier tableau su simplexe La traduction algébrique du tableau optimale Z = 280- 5.33 e1 - 3.33 e2 x1 – 1.33 e1 + 3.33 e2 = 80 e3 – 2.13 e1 + 1.33 e2 = 8 x2 + 2.67 e1 - 1.67 e2 = 40 Base b x1 x2 e1 e2 e3 x1 e3 x2 80 8 40 1 0 -1,33 3,33 0 0 0 -2,13 1,33 1 0 1 2,67 -1,67 0 -280 0 0 -5,33 -1,67 0
Analyse sensitive et post-optimale Changement d’un second membre d’une contrainte Cas d’une contrainte non serrée Dans ce cas un petit changement ne dépassant pas la valeur de la variable d’écart correspondante ne produit aucun changement sur la solution optimale et sur l’optimum Comme dans l’exemple e3*=8, la solution optimale et l’optimum restent inchangé pour b3=40-8=32. ii) Cas d’une contrainte serrée Un changement du second membre peut produire un changement dans la solution optimale et l’optimum. Dans l’exemple 1, e1*= e2*=0 Supposons que l’on souhaite augmenter la disponibilité de la machine M1 d’une quantité égale à (b1= b1+ ) . Ceci est équivalent à poser e1*=- . En gardant e2=0, on obtient: x1 – 1.33 (- ) = 80 x1 = 80– 1.33 0 60 e3 – 2.13 (- ) = 8 e3 = 8 – 2.13 0 3.75 x2 + 2.67 (- ) = 40 x2 = 40 + 2.67 0 -15 Pour -15 3.75 la solution optimale contient les mêmes variables de base mais change en valeur
Analyse sensitive et post-optimale La nouvelle solution devient: x1 = 80 - 1,33 e3 = 8 - 2,13 x2 = 40 + 2,67 Z= 280 + 5,33 ainsi l’optimum change à un taux de 5,33 que l’on appelle profit marginal. Changement dans plusieurs contraintes Supposons que l’on désire augmenter la disponibilité des machines M1 et M2 d’une quantité respectivement de et . Ceci est équivalent à poser e1= - et e2=- En remplaçant dans le système on obtient: 80 – 1,33 + 3,33 0 8 – 2,13 + 1,33 0 40 + 2,67 6 1,67 0 Z= 280 +5,33 + 1,67 Pour un profit supplémentaire de 20 unités on aura: 5,33 + 1,67 =20 D’où =12 – 3,2 et on obtient -2,5 3,75 et 0 20 La solution optimale contient les mêmes variables de base mais change en valeur et l’optimum change.
Analyse sensitive et post-optimale Changement d’un coefficient d’une variable de base Solution 1: Passer au dual et on se retrouve dans le cas précédent Solution 2: Supposons que l’on désire changer le coefficient de la variable x1 à 2+ . En d’autres termes, Z= (2+ ) x1 + 3 x2 En remplaçant les valeurs de x1 et x2 à l’optimum on obtient: Z= (280 + 80 ) + (-5,33 + 1,33 ) e1 + (-1,67 – 3,33 ) e2 Cette solution reste optimale si 5,33 + 1,33 0 -1,67 – 3,33 0 [ -0,5; 4 ] La solution reste inchangée mais l’optimum change. Ajout d’une nouvelle contrainte Supposons que l’on souhaite ajouter une nouvelle contrainte au PL1 x1 +2 x2 100 x1 +2 x2 + e4 =100 80 + 1.33 e1 - 3.33 e2 + 2 ( 40 -2.67 e1 + 1.67 e2 ) + e4 = 100 -4.01 e1 + 0,01 e2 + e4 = - 60 On introduit cette contrainte dans le dernier tableau et on résout par l’algorithme dual du simplexe
Déduction du dernier tableau du simplexe du dual La correspondance existante entre les variables primales et celles du dual est: Pour déduire le dernier tableau du dual: Etablir d’abord les correspondances entre les variables primales et variables duales. Les coefficients marginaux des variables hors base du primal est la solution du dual à un signe près. Identifier les variables hors base et de base du dual Effectuer une lecture dans le sens adéquat en inversant les signes du dernier tableau du primal variables Principales D’écarts Problème Primal Dual x1 … xs v1 … vs e1 .. ep u1 … up principales
Déduction du dernier tableau du simplexe du dual Reprendre le PL1 et son dual D Max Z= 2 x1 + 3 x2 Min W= 40 u1 + 40 u2 + 40 u3 0,25x1+0,5 x2 40 0,25 u1 + 0,4 u2 2 0,4 x1 +0,2 x2 40 0,5 u1 + 0,2 u2 + 0,8 u3 3 0,8 x2 40 u1, u2, u3 0 x1 , x2 0 u1= 5,33 u2= 1,67 u3=v1=v2=0 u1= 5,33 + 1,33 v1 + 2,13 u3 -2,67 v2 u2= 1,67 - 3,33 v1 - 1,33 u3 + 1,67 v2 v1 v2 u1 u2 u3 Base b x1 x2 e1 e2 e3 v1 u3 v2 x1 e3 x2 80 8 40 1 0 -1,33 3,33 0 0 0 -2,13 1,33 1 0 1 2,67 -1,67 0 -280 0 0 -5,33 -1,67 0 Base b u1 u2 u3 v1 v2 u1 u2 5,3 3 1,67 1 0 2,13 1,33 -2,67 0 1 -1,33 -3,33 1,67 280 0 0 -8 - 80 -40
Exercice récapitulatif Soit le programme linéaire P suivant et son dernier tableau du simplexe Max Z= 30 x1 + 40 x2 + 35 x3 6 x1 + 7x2 + 10 x3 90 2 x1 + x2 + 2 x3 54 x1 + 3x2 + 2 x3 93 x1 , x2 , x3 0 On modifie c1 de 30 à 43. Discuter l’effet d’un tel changement Quelle serait la valeur de c2 pour que la solution courante ne soit plus optimale? Discuter l’effet d’un changement du second membre de la première contrainte de 90 à 94? De la seconde contrainte de 54 à 58? Et la troisième de 93 à 95? Ecrire le programme dual D associé au programme P? Déduire le dernier tableau de D Résoudre D par l’algorithme dual du simplexe. Base b x1 x2 x3 e1 e2 e3 x1 x3 e3 6,5 1,75 3,75 0,75 0 0,5 0,25 0 0 0,125 1 0,25 -0,125 0 0 0,125 0 -0,75 -0,125 1 -17,75 0 -1,125 0 -1,25 -0,875 0