Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Cours 10: Méthode du grand M (big M Method) Solution de base duale-réalisable de départ Pour appliquer l'algorithme dual du simplexe, il est nécessaire de posséder une base duale-réalisable, une solution tel que cj - zj ≥ 0, j ∈ J (l'ensemble des indices hors base). Considérons un programme linéaire : ID BL E D B On suppose que le rang de A, r(A) = r(A, d) = m. A n min z = ∑ c j x j j =1 n ∑ aij x j = d i , i = 1,..., m j =1 x j ≥ 0, j = 1,..., n LA Soit B = (a1,…, am) une base du système. Alors on peut diagonaliser ce problème qui devient : SA A D D A H min z = c0 + cm +1 xm +1 + ... + cn x n x a1m +1 xm +1 + ... + a1n x n = d1 1 + ... + x2 + ... + a 2 m +1 xm +1 + ... + a2n xn = d 2 ........ xm + amm +1 xm +1 + ... + amn xn = d m x j ≥ 0, j = 1,..., n. x = (xB, xN), c = (cB, cN) et A = (B, N) avec cB = (0,…,0) alors SI TE cj - zj = cj - cB . B-1.aj = cj , j ∈ J (l'ensemble des indices hors base). cj - zj ≥ 0 ⇔ cj ≥ 0, j ∈ J. ER La méthode duale du simplexe est applicable si cj ≥ 0, j ∈ J. Supposons que certains coefficients de la fonction objectif soient négatifs (cj < 0) et certaines IV composantes de x B = ( x 1,…, x m) soient négatives. N Soient J1 l'ensemble des indices de variables hors bases avec cj ≥ 0, U et J2 l'ensemble des indices de variables hors bases avec cj < 0. Alors J = J1 + J2. Cours 10 : Méthode du grand M (big M). 83 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Le problème devient : min z = ∑ c j x j + ∑ c j x j + c0 j ∈ J1 j∈ J 2 xi + ∑ aij x j + ∑ aij x j = d i , ∀i = 1,..., m j ∈ J1 j∈ J 2 x j ≥ 0, ∀j = 1,..., n ∑ x j ≤ M , M étant un nombre positif Considérons une contrainte artificielle de la forme j∈ J 2 aussi grand que l'on veut. L'équation devient en ajoutant une variable d'écart xn+1 non négative et affecté d'un coefficient ID x j + x n + 1 = M , avecx n + 1 ≥ 0 . BL ∑ j∈ J 2 A nul dans la forme linéaire à minimiser. min z = ∑ c j x j + ∑ c j x j + c0 j ∈ J1 j∈ J 2 (1) ∑ x j + x n +1 = M j∈ J 2 x j ≥ 0, (3) H A { } D Soit ct = min c j . j∈J 2 j ≠t SA A j ∈ J1 D min z = ∑ c j x j + ∑ c j x j + ct xt + c0 xi + ∑ aij x j + ∑ aij x j + ait xt = d i j∈ J1 j∈J 2 j ≠t TE ∑ c j x j + xt + xn +1 = M SI j∈ J 2 j ≠t IV ER (2) ∀j = 1,..., n Ce problème obtenu est appelé " Problème augmenté ". j∈ J 2 , ∀i = 1,..., m B j∈ J 2 LA j ∈ J1 D xi + ∑ aij x j + ∑ aij x j = d i E Le problème s'écrira : x j ≥ 0, (1' ) , ∀i = 1,..., m (2' ) (3' ) ∀j = 1,..., n De l'équation (3'), on a que xt = M − ∑ c j x j − x n +1 j∈ J 2 j ≠t (4) où M est un nombre positif U N assez grand. En remplaçant dans (1') et (2') la variable xt par (4) Cours 10 : Méthode du grand M (big M). 84 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA min z = ∑ c j x j + ∑ c j x j + ct − ∑ x j − xn +1 − M + c0 j∈ J 2 j∈ J 2 j ∈ J1 j ≠t j ≠t Le problème devient min z = ∑ c j x j + ∑ (c j − ct ) x j − ct xn +1 + ct .M + c0 j∈ J 2 j ≠t j ∈ J1 xi + ∑ aij x j + ∑ ( aij − ait ) x j − ait xn +1 = d i − ait .M , ∀i = 1,..., m j∈ J 2 j ≠t j∈ J1 ID ∀j = 1,..., n BL x j ≥ 0, A ∑ c j x j + xt + x n + 1 = M j∈ J 2 j ≠t Dans ce problème tous les coefficients de la fonction objectif sont positifs alors on peut lui D E appliquer l'algorithme dual du simplexe. LA L'algorithme conduit à l'une des trois situations suivantes. B Les variables de base sont x1, x2, …, xm, xt. 1. Le problème augmenté n'a pas de solutions finie (minz → - ∞ ) alors le problème initial H n'a pas de solutions. A 2. Le problème augmenté possède une solution finie et xn+1 est une variable hors base, alors D le problème initial n'a pas de solutions optimale finie ( à montrer!!!!). D 3. Le problème augmenté possède une solution optimale finie et xn+1 est une variable dans la SA A base optimale. Le problème initial possède une solution optimale finie qui est celle de l'augmenté. N IV ER SI TE Exemple : résoudre le problème suivant : Minz = - 2 x1 - x2 - x3 4 x1 + 6 x2 + 3 x3 ≤ 8 - x1 + 9 x2 - x3 ≥ 3 2 x1 + 3 x2 - 5 x3 ≥ 4 x1 ≥ 0, x2 ≥ 0 et x3 ≥ 0. U Considérons sa forme standard. Cours 10 : Méthode du grand M (big M). 85 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Minz = - 2 x1 - x2 - x3 4 x1 + 6 x2 + 3 x3 + x4 = 8 - x 1 + 9 x2 - x 3 = 3 - x5 2 x 1 + 3 x2 - 5 x 3 - x6 = 4 xi ≥ 0, i = 1, …, 6. Ce problème est équivalent à : 4 x1 + 6 x2 + 3 x3 + x4 = 8 x1 - 9 x2 + x3 = -3 + x5 + x6 = - 4 ID - 2 x1 - 3 x2 + 5 x3 A Minz = - 2 x1 - x2 - x3 BL xi ≥ 0, i = 1, …, 6. Dans ce problème c1 = - 2, c2 = - 1 et c3 = - 1. E On introduit dans le problème la contrainte artificielle: Minz = - 2 x1 - x2 - x3 + x5 + x6 = - 4 A - 2 x1 - 3 x2 + 5 x3 = -3 H x1 - 9 x2 + x3 = 8 LA 4 x1 + 6 x2 + 3 x3 + x4 B D x1+ x2 + x3 ≤ M qui est équivalente à x1+ x2 + x3 + x7 = M. D x1+ x2 + x3 + x7 = M D xi ≥ 0, i = 1, …, 7. SA A Déterminons le min { cj, cj < 0 } = -2 = c1. La variable x1 = M - x1- x2 - x3 - x7 sera remplacée dans le problème qui deviendra : Minz = - 2.M + x2 + x3 + 2 x7 TE 2 x2 - x3 + x4 - 4 x7 = 8 - 4M + x5 SI - 10 x2 IV ER - x2 + 7 x3 - x7 = - 3 - M + x6 + 2 x7 = - 4 + 2M x1 + x2 + x3 + x7 = M xi ≥ 0, i = 1, …, 7. N La solution de base de départ : x4 = 8 - 4M, x5 = - 3 - 3M, x6 = - 4 + 2M et x1 = M est une U solution duale-réalisable de base. Dressons le tableau représentant le problème et calculons le : min { xj , xj < 0} = min { 8 - 4M, - 3 -3M } = 8 - 4M. a4 sort de la base courante. Déterminons quelle variable rentrera dans la base. Cours 10 : Méthode du grand M (big M). 86 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Pour cela, calculons min { zj - cj, a4j < 0 } = min { -1/-1; -2/-4} = 2/4 = 1/2. a7 rentre dans la base. xB Di x1 x2 x3 x4 x5 x6 x7 0 x4 8 - 4M 0 2 -1 1 0 0 -4 0 x5 -3 -3M 0 -10 0 0 1 0 -1 0 x6 -4+2M 0 -1 7 0 0 0 2 0 x1 M 1 1 1 0 0 1 1 - 2M 0 -1 -1 0 0 0 -2 x1 x2 x3 x4 x5 2 x7 M-2 0 -1/2 1/4 -1/4 0 0 1 0 x5 -5 0 - 21/2 1/4 -1/4 1 0 0 0 x6 0 0 0 13/2 1/2 0 0 0 0 x1 2 1 3/2 3/4 1/4 0 1 0 -4 0 -2 -1/2 0 0 0 x3 x4 x5 x6 x7 5/21 -5/21 -1/21 0 1 -1/42 1/42 -2/21 0 0 0 13/2 1/2 0 1 0 0 11/14 3/14 1/7 0 0 0 -21/42 -19/42 -4/21 0 0 x2 2 x7 M- 37/21 0 0 1 x2 10/21 0 1 0 x6 0 0 0 x1 9/7 1 SA - 64/21 0 u1 u2 u3 ER SI TE Zj - cj H x1 A di D xB A D CB -1/2 E x7 D di Zj - cj x6 B xB LA CB BL I D Zj - cj A CB Le dernier tableau donne une solution optimale du problème augmenté ; x7 est dans la base IV optimale. La solution x* = ( 9/7, 10/21, 0, 0, 0, 0) est une solution optimale du problème initial et N min z = - 64/21. U La solution du dual du primal est donnée dans le tableau final ou optimal. u*= ( 19/42, 4/21, 0) et max w = -64/21. Cours 10 : Méthode du grand M (big M). 87 U N IV ER SI TE SA A D D A H LA B D E BL ID A Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Cours 10 : Méthode du grand M (big M). 88