A H LA B D E BL I D A Cours de Programmation Linéaire donné par le Dr. Ali DERBALA D D Cours 05 : Initialisation de SA A l'algorithme du simplexe. U N IV ER SI TE Méthode des deux phases Cours 05 : Initialisation de l'algorithme du simplexe. 49 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Dans ce cours 05, nous supposons que pour notre problème de P.L nous ne disposons pas d'une solution de base réalisable de départ. Considérons un problème de la programmation linéaire sous forme standard E BL m min ψ = ∑ Vi i =1 (m) Associons à ce problème, le problème linéaire auxiliaire, (P.A) A.x + I V = b Z − c.x = 0 x ≥ 0, V ≥ 0 A . Supposons aussi que tous les bi ≥ 0. ID min z = c.x ( P.L) Ax = b x≥0 D I(m) étant la matrice unité m x m et les Vi sont des variables dites " artificielles ". forment une base de départ et on peut appliquer à (P.A) l'algorithme B i= 1,…,m LA Les (Vi) du simplexe et on obtiendra une solution optimale finie (en supposons qu'il n'existe H pas de solution de base dégénérée). D A En effet si ψ = V1 + V2 +…+ Vm , Vi ≥ 0, il est impossible que minψ = + ∞. A D Lemme 1 : Soit V* une solution optimale de (P.A). Le problème initial (P.L) ne m SA possède pas de solutions réalisables si ψ ( v*) = ∑ v *i > 0 . i =1 Preuve : Supposons le contraire. Soit x une solution réalisable du (P.L) alors (x,V0) TE avec V0 = 0 = (0, 0,…, 0) sera une solution de (P.A) et m D' où ψ ( v) > ψ ( v 0 ). Ce qui contredit ER i =1 SI ψ = ψ ( v) = ∑ vi et ψ ( v0 ) = 0. l'hypothèse. Si V ≠ 0 est une solution optimale de (PA), ceci implique que (PL) n'a IV pas de solution optimale. Supposons que ψ(V*) = 0. Deux cas sont possibles. U N 1. Aucune des variables artificielles vi n'est dans la base optimale de (P.A). Cette base ne comprend que les variables xi. z joue le rôle d'une variable quelconque non astreinte et on considère z - c.x = 0 comme une contrainte. La forme diagonale par rapport à cette base optimale pour (PA) est une forme diagonale par rapport à la base réalisable pour (PL). On peut lui appliquer l'algorithme du simplexe. Cours 05 : Initialisation de l'algorithme du simplexe. 50 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA 2. Au moins une variable vi est dans la base optimale, par exemple une vr, alors l'équation contenant vr s'écrit : αr x + crV = br (1) Avec αr = (ar1, ar2,…, arm) , cr = (0,…,0,1(rang r),0,…0), Vr = 0, br = 0 et m Min ψ = ∑ v i = 0. S'il existe un certain coefficient ars ≠ 0 dans l'équation (1) alors on i =1 base et faire sortir xs. L'opération de pivotage ne changera pas la valeur de la fonction BL I D objectif (puisque br = vr = 0) mais elle changera la base. Cette opération est possible A peut effectuer une opération de pivotage autour de lui. On peut faire rentrer xr dans la que si ars soit strictement positif ou strictement négatif. D E Lemme 2 : Si arj = 0 ∀j = 1, …, n (la ligne r de A) alors la contrainte correspondante au PL est redondante. LA B La relation (1) peut être obtenue par succession d'opérations de pivotage (opérations élémentaires). Il s'ensuit que la r-ième équation αr x + crV = br, peut être considérée H comme une combinaison linéaire des équations du système Ax + I(m)V = b. A La même combinaison linéaire du système A x = b donne l'équation 0 x = 0 (une D équation redondante). Après avoir examiné toutes les variables de base artificielles vi D qui sont encore dans la base optimale de (PA), les avoir éliminer de la base si c'est A possible. On aboutit au problème qui peut servir à initialiser l'algorithme du simplexe SA au problème (PL). Ces opérations constituent la phase (1) du simplexe. L'application de la méthode du simplexe constituent la seconde phase de la méthode du simplexe. IV ER SI TE Exemple 1 : Soit à résoudre le programme linéaire (PL) suivant : Minz = - x1 + 2 x2 - 2 x3 2 x1 + 3 x2 + x3 4 x1 + = 12 x2 + 2 x3 = 14 x1 ≥ 0,…, x3 ≥ 0. N Nous ne disposons pas de solutions de base de départ. U Associons à ce (PL) le problème auxiliaire (PA) : Min ψ = v1 + v2 = - 6 x1 - 4 x2 - 3 x3 + 26 2 x1 + 3 x2 + x3 + v1 = 12 ⇒ v1 = 12 - 2 x1 - 3 x2 - x3 4 x1 + x2 + 2 x3 + v2 = 14 ⇒ v2 = 14 - 4 x1 - x2 - 2 x3 Z + x1 - 2 x2 + 2 x3 = 0 xi ≥ 0, i =1, 2, 3 et vj ≥ 0, j = 1, 2. Cours 05 : Initialisation de l'algorithme du simplexe. 51 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Dressons un tableau du simplexe. Variables 1 x1 x2 x3 v1 V2 -ψ -26 -6 -4 -3 0 0 v1 12 2 3 1 1 0 v2 14 4 1 2 0 1 -Z 0 1 -2 2 0 0 -ψ -5 0 -5/2 0 0 v1 5 0 5/2 0 1 x1 7/2 1 1/4 1/2 0 -Z -7/2 0 -9/4 3/2 -ψ 0 0 0 0 x2 2 0 1 x1 3 1 0 -Z -1 0 0 D E D B 0 H LA Itération2 BL I Itération1 A de base 1/2 -3/2 A D D A 0 SA Comme min ψ = 0, alors la solution optimale de (PA) X = (3, 2, 0) constituera une solution de base réalisable du problème initial (PL) de départ. X = (3, 2, 0) n'est pas ER SI TE optimale car c3 < 0. Il faut qu'on effectue un autre changement de base. Itération3 -Z -1 0 0 - 3/2 2 0 1 0 3 1 0 1/2 -Z 8 3 0 0 x2 2 0 1 0 x3 6 2 0 1 IV x2 N x1 U Itération4 X* = x = (0, 2, 6) est optimale et minz = -8. Cours 05 : Initialisation de l'algorithme du simplexe. 52 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Remarques : 1. Dans la phase I, il n'est pas indispensable de s'occuper de l'équation c x -Z = 0. En effet si l'on aura trouvé une base réalisable pour l'ensemble des contraintes A.x = b, b ≥0, il suffira de retrancher une combinaison linéaire correspondante des équations de ce système aux deux membres de la fonction objectif Z = c.x A pour une forme diagonale complète. ID Exemple 2 : Soit le (PL) suivant : Minz = 2 x1 - x2 - 3 x3 x 2 + 4 x3 = 8 E x1 - =6 BL x1 + 2 x2 - x3 D x1 ≥ 0,…, x3 ≥ 0. B Le problème auxiliaire (PA) est : x1 + 2 x2 - x3 + v1 =6 H x1 - x2 + 4 x3 + v2 = 8 LA Min ψ = v1 + v2 = - 2 x1 - x2 - 3 x3 + 14 D A x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, v1 ≥ 0, v2 ≥ 0. x2 x3 v1 v2 -2 -1 -3 0 0 1 2 -1 1 0 1 -1 4 0 1 -8 -7/4 0 0 1 x1 A Variables D Dressons le tableau du simplexe sans la ligne de - z. v1 6 v2 8 Itération1 8 5/4 7/4 0 1 x3 2 1/4 -1/4 1 0 -ψ 0 0 0 0 x2 32/7 5/7 1 0 x1 22/7 3/7 0 1 N IV - 5/4 v1 ER -ψ TE -14 SI -ψ SA de base U Itération2 Cours 05 : Initialisation de l'algorithme du simplexe. 53 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Tous les cj = 0 alors x = (0, 32/7, 22/7) est optimale pour le problème auxiliaire (PA) et minψ = 0. La base optimale de (PA) constituera une base réalisable du problème initial (PL). On peut appliquer la méthode de simplexe au problème (PL) avec cette base réalisable. A En interprétant le dernier tableau ci dessus, on aura : BL I D 5/7 x1 + x2 = 32/7 ⇒ x2 = 32/7 - 5/7 x1. + x3 = 22/7 ⇒ x3 = 22/7 - 3/7 x1 . 3/7 x1 D On applique maintenant l'algorithme du simplexe. Comme c1 ≥ 0, alors E La fonction objectif deviendra alors : - Z + 2 x1 - x2 - 3 x3 = 0 ⇔ -Z + 4 x1 = 14 B x = (0, 32/7, 22/7) n'est pas optimale pour le problème auxiliaire (PL). Il faut au LA moins une itération de l'algorithme du simplexe. A faire par l'étudiant! 2. Si dans le (PL) une variable xr soit contenue dans une seule équation et si ars et br H ont même signe, il n'est pas nécessaire d'introduire une variable artificielle. Il est A avantageux d'introduire un minimum de variables artificielles. D 3. Le but de la phase I est d'éliminer si cela est possible les variables artificielles de D la base. Tout vecteur artificiel sorti de la base ne doit être jamais candidat à SA A l'entrée dans la base. Cette méthode est appelée " Méthode des deux phases ". Exemple 3 : Soit à résoudre le (PL) suivant : TE Minz = x1 + x2 - x3 - ER SI x1 + 2 x2 2 x5 - x4 =3 x3 - 2 x4 =2 3 x2 - x4 + x5 ≤ 5 + x5 ≥ 3 IV x2 N x1 ≥ 0,…, x5 ≥ 0. U Sous sa forme standard, le problème devient : Minz = x1 + x2 - x3 x1 + 2 x2 3 x2 x2 2 x5 - x4 =3 x3 - 2 x4 =2 - x4 + x5 + x6 + x5 = 5 - x7 = 3 x1 ≥ 0,…, x7 ≥ 0. Cours 05 : Initialisation de l'algorithme du simplexe. 54 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA x7 ne peut pas être prise pour une variable de base car elle est précédée d'un signe moins. On ne va introduire qu'une seule variable artificielle v1 dans le (PA). Le problème auxiliaire est : Min ψ = v1 = 3 - x2 - x5 + x7 Minz = 1 - x2 - 3 x4 - 2 x5 - x4 =3 x3 - 2 x4 =2 + x5 x2 = 5 A - x4 + x5 + x6 3 x2 - x7 + v1 = 3 ID x1 + 2 x2 x3 x4 x5 x6 -ψ -3 0 -1 0 0 -1 0 x1 3 1 2 0 1 0 x3 2 0 0 1 -2 x6 5 0 3 0 -1 v1 3 0 1 0 -Z -1 0 -1 0 -ψ 0 0 x1 3 x3 2 x6 2 x5 3 0 0 0 0 0 0 0 1 1 0 0 0 1 0 -1 1 -3 -2 0 0 0 SA A D LA B 0 D 1 0 0 0 0 0 0 7 0 0 0 0 -2 IV ER SI TE Itération1 -Z v1 H de base x7 BL x2 E x1 Variables D 1 A x1 ≥ 0,…, x7 ≥ 0, V1≥ 0. 5 3 N minψ = 0, la base optimale de (PA) constitue une base réalisable de (PL). U On appliquera l'algorithme du simplexe. A faire par l'étudiant! Convergence de la méthode du simplexe Si à chaque itération la solution de base est non dégénérée, l'algorithme du simplexe conduit à une solution optimale en un nombre fini d'étapes. Cours 05 : Initialisation de l'algorithme du simplexe. 55 Cours de Programmation Linéaire donné par le Dr. Ali DERBALA Mais en cas de dégénérescence une base peut être répétée ce qui peut conduire à un cycle, on retrouve la même base de départ. Dans ce cas, on n'obtiendra jamais une solution optimale en utilisant la méthode du simplexe. Hoffman et Beale (1953) ont construit des exemples dans lesquels le phénomène de cyclage se produit. Exemple 4 : Montrer que le phénomène de cyclage se produit dans le (PL) suivant: a. Minz = - 3/4x4 + 20 x5 - 1/2 x6 + 6 x7 1/4 x4 - 8 x5 - 6 x6 - 9 x7 = 0 A x1 + =1 BL + x6 x3 ID x2 + 1/2x4 -12 x5 - 1/2 x6 + 3 x7 = 2 D E xi ≥ 0, i = 1, .., 7. b. Maxz = 3/4x1-150 x2 + 1/50 x3 - 6 x4 =0 + x7 = 1 H x3 + x6 LA 1/2 x1 - 90 x2 -1/50 x3 + 3 x4 = 0 B x1- 60 x2 - 1/25 x3 + 9 x4 + x5 A xi ≥ 0, i = 1, .., 7. U N IV ER SI TE SA A D D Plusieurs méthodes évitent le cyclage : méthode lexicographique et des perturbations. Cours 05 : Initialisation de l'algorithme du simplexe. 56