La dualité en programmation linéaire • Motivation : recherche de bornes • Dual d’un problème canonique • Règles de dualisation • Théorèmes de dualité faible et forte • Théorèmes des écarts complémentaires • Interprétation économique des variables duales à l’optimum • Lemme de Farkas J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 97 Rappels sur les inéquations • Toute combinaison conique (c.-à-d. à coefficients non négatifs) d’inéquations du même type fournit une inéquation valide. 2x1 + x2 ≤ 3 5x1 − 3x2 ≤ 5 11x1 ≤ 14 × 3 × 1 • Toute combinaison linéaire d’équations fournit une équation valide. • On peut combiner des inéquations et des équations pour obtenir une inéquation valide. x1 3x1 x1 −x1 J.-F. Hêche, ROSO-EPFL + 2x2 − x2 + x2 + 7x2 ≤ = ≥ ≤ 3 5 2 3 Recherche opérationnelle SC & PH × 4 × −1 × −2 98 Comment borner la valeur optimale d’un PL ? Soit le PL canonique x2 Max z = s.c. x1 + 4x2 x1 − x2 2x1 + x2 x2 x2 x1 , ≤ ≤ ≤ ≥ 2 5 3 0 (x1 = 1, x2 = 3) z = 13 x1 de solution optimale x∗1 = 1, x∗2 = 3 et z ∗ = 13. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 99 Considérons l’inéquation valide obtenue en multipliant par 4 la deuxième contrainte. 8x1 + 4x2 ≤ 20 Pour tout couple de valeurs (x1, x2) non négatives on a x1 + 4x2 ≤ 8x1 + 4x2 et pour toute solution admissible du PL on a donc z = x1 + 4x2 ≤ 8x1 + 4x2 ≤ 20. En particulier, pour la solution optimale du PL, on a z ∗ ≤ 20. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 100 Peut-on faire mieux ? L’inéquation valide obtenue en additionnant la première contrainte et 5 fois la troisième est × 1 x1 − x2 ≤ 2 x2 ≤ 3 × 5 x1 + 4x2 ≤ 17 Ainsi, pour toute solution admissible du PL, on a z = x1 + 4x2 ≤ 17 et, en particulier, z ∗ ≤ 17. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 101 Peut-on faire encore mieux ? En additionnant 1/2 fois la deuxième contrainte et 7/2 fois la troisième, on obtient × 1/2 2x1 + x2 ≤ 5 x2 ≤ 3 × 7/2 x1 + 4x2 ≤ 13 et, pour toute solution admissible du PL, on a z = x1 + 4x2 ≤ 13. La solution admissible x1 = 1, x2 = 3 ayant valeur 13, l’inéquation valide précédente fournit un certificat d’optimalité de cette solution. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 102 Généralisation Toute combinaison conique des contraintes d’un PL canonique est valide, c.-à-d. vérifiée par toute solution du système de contraintes : a11x1 ... am1x1 !m i=1(yi ai1)x1 + ... + ... + ... + + ... + a1nxn ... amnxn !m i=1(yi ain)xn ≤ ≤ ≤ de plus, pour tout x1 ≥ 0, . . . , xn ≥ 0, on a z = c1x1 + . . . + cnxn ≤ si c1 ≤ !m i=1 yi ai1 , J.-F. Hêche, ROSO-EPFL m " (yiai1)x1 + . . . + i=1 . . ., cn ≤ !m m " i=1 !m b1 ... bm × y1 ≥ 0 × ym ≥ 0 i=1 yi bi (yiain)xn ≤ m " yibi i=1 i=1 yi ain. Recherche opérationnelle SC & PH 103 Pour trouver la meilleure borne supérieure, c.-à-d. la plus petite, il faut donc résoudre le programme linéaire Min w = s.c. m " yibi i=1 m " yiai1 m " yiain i=1 ≥ c1 ... i=1 y1, . . . , ym ≥ cn ≥ 0 Ce problème est appelé programme linéaire dual du PL canonique de départ. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 104 Programme dual d’un PL canonique À tout PL canonique Max z = cx s.c. Ax ≤ b x ≥ 0 Problème primal (PLP) on associe un programme dual Min w = yb s.c. yA ≥ c y ≥ 0 J.-F. Hêche, ROSO-EPFL Problème dual (PLD) Recherche opérationnelle SC & PH 105 Exemple Le problème dual du programme Max z = s.c. est J.-F. Hêche, ROSO-EPFL Min w = s.c. x1 + 4x2 x1 − x2 2x1 + x2 x2 x2 x1 , ≤ ≤ ≤ ≥ 2 5 3 0 2y1 + 5y2 + 3y3 y1 + 2y2 ≥ 1 −y1 + y2 + y3 ≥ 4 y2 , y3 ≥ 0 y1 , Recherche opérationnelle SC & PH 106 Théorème de dualité faible Théorème 3. Soit x une solution admissible d’un PL canonique et y une solution admissible de son dual, alors cx ≤ yb. Preuve. On a d’une part cx ≤ (yA)x car x ≥ 0 et c ≤ yA y(Ax) ≤ yb car y ≥ 0 et Ax ≤ b. et d’autre part Corollaire 4. Soit x une solution admissible de (PLP) de valeur z et y une solution admissible de (PLD) de valeur w. Si z = w alors les solutions x et y sont optimales pour leur problème respectif. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 107 Dual d’un PL général (maximisation) Comme dans le cas canonique, on cherche une combinaison légale des contraintes du problème afin d’obtenir une nouvelle contrainte valide majorant terme à terme la fonction objectif du programme. Multiplicateurs légaux : ai1x1 + . . . + ainxn ≤ bi ak1x1 + . . . + aknxn = bk ar1x1 + . . . + arnxn ≥ br × yi × yk × yr (yi ≥ 0) (yk ∈ R) (yr ≤ 0) Majoration terme à terme : !m !m • si xj ≥ 0, cj xj ≤ ( i=1 yiaij ) xj pour i=1 yiaij ≥ cj !m !m • si xj ∈ R, cj xj = ( i=1 yiaij ) xj pour i=1 yiaij = cj !m !m • si xj ≤ 0, cj xj ≤ ( i=1 yiaij ) xj pour i=1 yiaij ≤ cj J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 108 Règles de dualisation Problème de maximisation Variable xj ≥ 0 ←→ Problème de minimisation ←→ j e contrainte de type ≥ j e contrainte de type = Variable xj ≤ 0 ←→ ←→ j e contrainte de type ≤ ie contrainte de type ≤ ←→ Variable yi ≥ 0 ←→ Variable yi ∈ R Variable xj ∈ R ie contrainte de type = ie contrainte de type ≥ J.-F. Hêche, ROSO-EPFL ←→ Variable yi ≤ 0 Recherche opérationnelle SC & PH 109 Exemple Max z = s.c. x1 + 3x2 x1 − x2 2x1 + x2 x2 x1 x2 Min w = s.c. 2y1 + 5y2 + 3y3 y1 + 2y2 −y1 + y2 + y3 , y3 y1 y2 (PLP) (PLD) J.-F. Hêche, ROSO-EPFL ≤ 2 = 5 ≤ 3 ∈ R ≥ 0 ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ Minimisation y1 ≥ 0 y2 ∈ R y3 ≥ 0 1re contrainte du type = 2e contrainte du type ≥ = 1 ≥ 3 ≥ 0 ∈ R Recherche opérationnelle SC & PH 110 Récapitulatif • Le sens d’optimisation est toujours inversé entre un PL et son dual. • Si un PL a n variables et m contraintes, son dual a m variables et n contraintes. • Chaque variable du dual correspond à une contrainte du problème de départ, et réciproquement, chaque contrainte du dual est associée à une variable du problème de départ. • La dualisation est une opération involutive (le dual du dual est le problème de départ) (exercice). J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 111 Solutions basiques primale et duale À toute base B de la matrice (A | I) du système de contraintes d’un PL standard on a associé une solution particulière appelée solution basique. Chacune de ces bases définit également, et de manière univoque, une base du système de contraintes du problème dual (sous forme standard). De plus, la solution basique associée à cette base duale se lit dans la dernière ligne du tableau TB . TB = J.-F. Hêche, ROSO-EPFL xD xE z B −1A B −1 0 β −γD yE −γE yD 1 ζ Recherche opérationnelle SC & PH 112 Afin de montrer que le vecteur y = (yD | yE ) = (−γE | −γD ) est une solution du système de contraintes du problème dual rappelons que −γD = cB B −1A − cD et − γE = cB B −1. D’autre part, les contraintes duales étant yD A ≥ cD , sous forme standard, elles s’écrivent −yD A + yE I = −cD . Remplaçant yD et yE par les expressions de −γE et −γD , il vient −yD A + yE I = γE A − γD = −cB B −1A + cB B −1A − cD = −cD ce qui prouve que y = (yD | yE ) = (−γE | −γD ) est une solution du problème dual standard. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 113 Il reste encore à montrer qu’il#s’agit bien d’une solution basique. Notons $ premièrement que la matrice −AT | I du système de contraintes du problème dual standard est de taille n × (m + n) et de rang n. Ainsi toute base duale possède n variables basiques et m variables hors base. De plus, les m variables basiques primales ayant des coûts marginaux nuls, le vecteur y a au moins m composantes nulles. Ces m composantes nulles identifient les m variables hors base de la solution duale. Les n variables basiques duales sont celles associées aux n variables hors base primales et, réciproquement, les m variables hors base duales sont celles associées aux m variables basiques primales. Remarquons finalement que la valeur de la solution basique duale y est w = yD b = cB B −1b = ζ, soit la même que celle de la solution primale. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 114 Théorème de dualité forte Théorème 5. Si un programme linéaire standard possède une solution # $ ∗ ∗ z = c x optimale x∗ = x∗D | x∗E de valeur D D alors son dual possède # $ ∗ ∗ | yE . De plus la valeur de cette aussi une solution optimale y ∗ = yD ∗ b = z ∗. solution est w ∗ = yD Preuve. Considérons le tableau optimal fournit par l’algorithme du simplexe à deux phases. TB = J.-F. Hêche, ROSO-EPFL xD xE z B −1A B −1 0 β −γD yE −γE yD 1 ζ Recherche opérationnelle SC & PH 115 Ce tableau étant optimal, on a −γD ≥ 0 et − γE ≥ 0 et la solution basique duale y = (yD | yE ) = (−γE | −γD ) est admissible. Cette solution ayant même valeur que la solution basique primale, il suffit d’invoquer le corollaire du théorème de dualité faible pour prouver son optimalité. ! Ainsi si un PL possède une solution optimale finie, il en est toujours de même pour son dual. En revanche, s’il ne possède pas d’optimum fini, son dual ne peut possèder de solutions admissibles sans contredire le théorème de dualité faible. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 116 Relations possibles entre les solutions d’une paire de programmes linéaires duaux Problème dual Problème primal Optimum fini Optimum fini Optimum non borné Dualité forte Optimum non borné Sans solution admissible J.-F. Hêche, ROSO-EPFL Sans solution admissible Dualité faible Dualité faible Recherche opérationnelle SC & PH Exemples 117 Théorème des écarts complémentaires Théorème 6. Soit x = (xD | xE ) une solution admissible d’un PL standard et y = (yD | yE ) une solution admissible de son dual. Ces solutions sont optimales pour leur problème respectif si et seulement si yE xD = 0 et yD xE = 0. Preuve. Par définition, on a xE = b − AxD et yE = yD A − cD . De plus, x et y étant admissibles, on a z = cD xD ≤ (yD A)xD = yD (AxD ) ≤ yD b = w. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 118 Si x et y sont optimales, on doit avoir z = w et les inégalités précédentes sont toutes des égalités. En particulier cD xD = (yD A)xD ou encore (yD A − cD )xD = 0 et yE xD = 0. De même yD (AxD ) = yD b ou encore yD (AxD − b) = 0 et yD xE = 0. Réciproquement, si les conditions d’orthogonalité yE xD = 0 et yD xE = 0 sont vérifiées, on a yE xD = (yD A − cD )xD = 0 J.-F. Hêche, ROSO-EPFL ⇐⇒ Recherche opérationnelle SC & PH (yD A)xD = cD xD 119 et yD xE = yD (AxD − b) = 0 ⇐⇒ yD (AxD ) = yD b. Ainsi z = cD xD = (yD A)xD = yD (AxD ) = yD b = w ! et les solutions x et y sont optimales. Remarque. Les solutions x et y étant admissibles, elles sont non négatives et ⇐⇒ ym+j xj = 0 ∀ j = 1, . . . , n yE xD = 0 et yD xE = 0 J.-F. Hêche, ROSO-EPFL ⇐⇒ yixn+i = 0 Recherche opérationnelle SC & PH ∀ i = 1, . . . , m. 120 Récapitulatif • À tout tableau est associé non seulement une base primale et sa solution basique mais également une base duale et sa solution basique. • Les valeurs de la solution basique duale se lisent dans la dernière ligne du tableau. Les valeurs des variables basiques primales se lisent dans la dernière colonne du tableau. • La paire de solutions basiques (primale et duale) associées à un tableau ont même valeur et vérifient les conditions d’orthogonalité des écarts complémentaires. • Dans l’algorithme du simplexe à deux phases, la solution basique primale est toujours admissible. Dès qu’une solution basique duale admissible est rencontrée, l’optimum est atteint. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 121 Interprétation des variables duales à l’optimum Si un PL (standard) admet un optimum fini, il en est de même de son dual et on a n m " " cj x∗j = yi∗bi = w∗. z∗ = j=1 i=1 Si la solution optimale primale est non dégénérée, l’expression de w ∗ est unique et ∂ ∗ z = yi∗. ∂bi La valeur optimale de la variable duale yi (associée à la variable d’écart xn+i et à la ie contrainte) représente donc le prix marginal de la ressource i à l’optimum. Exprimé autrement, yi∗ repésente l’augmentation potentielle de la valeur optimale du problème si la ressource i, actuellement limitée à bi, se voit augmentée d’une unité. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 122 Le lemme de Farkas Lemme 3. De deux choses l’une • soit le système Ax = b possède des solutions non négatives, • soit ∃ y tel que yA ≤ 0 et yb > 0. Preuve. Considérons la paire de programmes linéaires duaux Max z = yb (PLP) s.c. yA ≤ 0 y ∈ Rm Min w = 0x (PLD) s.c Ax = b x ≥ 0 Le système Ax = b possède des solutions non négatives ⇐⇒ (PLD) admet des solutions admissibles ⇐⇒ (PLD) possède un optimum de valeur nulle ⇐⇒ (PLP) possède un optimum de valeur nulle ⇐⇒ ∗ ! y t.q. yA ≤ 0 et yb > 0. ! ∗ (PLP) admet toujours des solutions admissibles, par exemple y = 0. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 123 Objectifs • Être capable de formuler le dual de n’importe quel programme linéaire. • Connaı̂tre les théorèmes de dualité et pouvoir les utiliser pour justifier les relations possibles entre les solutions admissibles ou optimales d’une paire de programmes duaux. • Savoir lire la solution duale associée à un tableau. • Connaı̂tre les hypothèses et les conditions du théorème des écarts complémentaires. • Savoir interpréter les valeurs optimales des variables duales. • Connaı̂tre le lemme de Farkas et pouvoir l’utiliser pour justifier de la compatibilité ou non d’un système d’équations ou d’inéquations linéaires. J.-F. Hêche, ROSO-EPFL Recherche opérationnelle SC & PH 124