La Programmation Linéaire : Cours, Exercices corrigés et Etude de cas Adil Bellabdaoui [email protected] www.decision.ma/ensias/ 20 novembre 2016 2 96 Chapitre 9 Méthode de simplexe 9.1 SÉRIE 15 : Exo. 15.1 ? forme d’un programme linéaire Montrez que chaque programme linéaire en forme standart s’écrit en forme canonique et inversement. Exo. 15.2 Solutions de base admissible 1. Soit le polygone suivant, défini par l’ensemble des points x tels que : x1 +x2 ≤ 5 x2 +x3 ≤ 4 x3 ≤ 3 x1 , x2 , x3 ≥ 0 La solution de base associée à la base (x1 ; x2 ; x3 ) est-elle admissible ? Exo. 15.3 1. Soit le polygone suivant, défini par l’ensemble des points x tels que : x +2y ≤ 2 y ≤ 3 x, y ≥ 0 La solution de base associée à la base (x1 ; x2 ) est-elle admissible ? 2. Lister toutes les solutions de base admissibles du programme linéaire précédent. Laquelle est optimale pour la fonction objectif max x1 + x2 ? Et pour la fonction objectif min x1 + x2 ? Exo. 15.4 Enumération de solutions de base Soit le programme linéaire suivant : Max z = 2x +3y s.c. 3x +2y ≤ 18 4x +3y ≤ 24 x, y ≥ 0 1. Ecrire ce PL sous forme standard. 97 98 CHAPITRE 9. MÉTHODE DE SIMPLEXE 2. Enumérer toutes les solutions de base en indiquant, pour chaque solution, les variables qui sont dans la base, celles qui sont hors base, et si la solution est réalisable ou non. On déterminera également, pour chaque solution de base réalisable, la valeur de la fonction objectif. 3. Quelle solution optimise la fonction objectif ? 4. Tracer les contraintes et déterminer la région des solutions réalisables. Indiquer sur le graphique où sont situées les solutions de base. Exo. 15.5 Solutions de base d’un PL Soit le programme linéaire suivant en forme standard : Max z = 5x1 +3x2 +4x3 s.c. 4x1 +2x2 +4x3 +x4 = 80 2x1 +2x2 +3x3 +x5 = 50 x1 +3x2 +2x3 +x6 = 40 x1 , x2 , x3 , x4 , x5 , x6 ≥ 0 La solution S = (19 ; 2 ; 0 ; 0 ; 8 ; 15) est-elle admissible ? est-ce une solution de base ? Exo. 15.6 ? Algorithme du simplexe pour un PL à 2 variables Résoudre le programme linéaire suivant avec l’algorithme du simplexe : Max z = 36x +24y s.c. 3x ≤ 16 x +y ≤ 27 2x ≤ 10 x, y ≥ 0 A chaque itération, on fera entrer en base la variable candidate de plus grand coût réduit. Vérifier ensuite graphiquement. Exo. 15.7 Algorithme du simplexe (cas favorable) Soit le programme linéaire (P) suivant : Max z = x +2y s.c. x −y ≤ 1 y −x ≤ 1 x, y ≥ 0 1. Résoudre (P) à l’aide de l’algorithme du simplexe : à chaque itération, on fera entrer en base la variable candidate de plus petit indice. 2. Résoudre (P) à l’aide de l’algorithme du simplexe : à chaque itération, on fera entrer en base la variable candidate de plus grand coût réduit. 3. Vérifier ensuite graphiquement. Exo. 15.8 Algorithme du simplexe (cas favorable) Résoudre le programme linéaire suivant avec l’algorithme du simplexe : 9.1. SÉRIE 15 : Min z = s.c. −4x1 x1 99 −12x2 +3x3 x2 3x1 x1 ≥ 0, +6x2 x2 ≥ 0, x3 −2x3 x3 ≤ 0 ≤ 1000 ≤ 500 ≥ −1500 ≤ 6750 A chaque itération, on fera entrer en base la variable candidate de plus grand coût réduit. Exo. 15.9 Max z = 5x1 +4x2 s.c. 2x1 +3x2 4x1 +x2 Soit le programme linéaire suivant à résoudre : 3x1 +4x2 x1 , x2 , +3x3 +3x3 +2x3 +2x3 x3 ≤ 5 ≤ 11 ≤ 8 ≥ 0 1. Ecrivez le programme sous forme canonique. 2. Donnez une solution triviale réalisable du problème. 3. Trouvez une solution meilleure que la précédente si cela est possible. 4. Trouvez une solution optimale. Exo. 15.10 Trois machines M1 , M2 , M3 peuvent produire chacune deux types de pièces P1 et P2 . Le temps de fabrication d’une pièce Pi sur la machine Mj est reporté dans le tableau suivant (temps en heures) : Pièce 1 Pièce 2 M1 3 4 M2 4 6 M3 4 5 On veut fabriquer au moindre coût 6 pièces P1 et 8 pièces P2 . La machine M1 est disponible 14 heures, les deux autres machines sont disponibles 24 heures. Le coût horaire de M1 est 7, celui de M2 est 5 et celui de M3 , 6. 1. Ecrire le programme linéaire associé. 2. Résoudre ce problème en énumérant toutes les solutions entières possibles. 100 CHAPITRE 9. MÉTHODE DE SIMPLEXE 9.2 SÉRIE 16 : Exo. 16.9 Algorithme du simplexe (méthode des 2 phases Résoudre le programme linéaire suivant avec la méthode des 2 phases de l’algorithme du simplexe : Max z = x +2y s.c. x ≤ 1 x +y ≥ 6 −x +y = 3 x, y ≥ 0 Vérfier ensuite en résolvant directement le PL algébriquement (sans simplexe ni résolution graphique). Que se passe-t-il si on cherche à mimimiser la fonction objectif ? Exo. 16.10 ? Résoudre les problèmes de programmation linéaire suivants à l’aide de l’algorithme du simplexe. Effectuer l’interprétation graphique du déroulement du simplexe. Max z = 3/2x +y s.c. 2x −y ≥ 4 −x +y ≥ 1 −x +2y ≤ 4 2x +y ≤ 12 x, y ≥ 0 Max z = s.c. 2x +y 2x −y −x +y −x +2y 2x +y x, y ≥ 4 ≥ 1 ≤ 4 ≤ 12 ≥ 0 Max z = −x +2y s.c. 2x −y −x +y −x +2y 2x +y x, y ≥ 4 ≥ 1 ≤ 4 ≤ 12 ≥ 0 Exo. 11.2 ? ? Résoudre les problèmes de programmation linéaire suivants à l’aide de l’algorithme du simplexe (en introduisant si nécessaire des variables artificielles). Max z = 2x −y s.c. x +y ≥ 2 y ≤ 2 x +y ≥ 4 x, y ≥ 0 9.2. SÉRIE 16 : 101 Max w = s.c. x +y +z x +y +2z x −y y +z x, y, z Min w = s.c. x +y x +y −x +y y x, y +z +2z +z = 5 = 1 = 2 ≥ 0 ≥ ≤ ≥ ≥ 5 −1 2 0 102 CHAPITRE 9. MÉTHODE DE SIMPLEXE 9.3 SÉRIE 17 : Exo. ? ? Résoudre sans utiliser de variable artificielles le problème suivant : Max w = −2x −3y s.c. 2x +y −z ≥ 4 3x −y +5z ≥ 5 x, y, z ≥ 0 En déduire la solution optimale du problème dual associé. Exo. 11. ? ? Charge de cargos Un capitaine peut charger ses bâtiments avec différents types de caissons dont les poids, les volumes et es rapports distincts sont les suivants : A B C D Poids 10 2 4 12 Volume 14 2,5 6 12 rapport 18 4 10 18 1. Le volume du premier cargo étant de 108 et la charge maximale de 112, comment le charger pour obtenir le meilleur rapport ? Indication : pour commencer, ne considéer qu’une seule des deux contraintes pour le choix du pivot. 2. Le second cargo a un volume de 170 et une charge maximal de 82. Comment charger ce second navire pour obtenir le meilleur rapport ? Exo. 11.5? L’agriculteur intensif Un agriculteur veut répandre sur ses prairies un engrais ayant une teneur maximale en azote (N). Les trois engrais dont il dispose contiennent également du phosphore (P) et du potassium (K). La teneur en potassium doit être limitée à 44 unités par hectare et celle en phosphore à 66 unités par hectare. Le tableau suivant donne la quantité de N, P, K par engrais : N K P Engrais 1 3 2 5 Engrais 2 4 3 2 Engrais 3 6 4 5 1. Comment doit-il faire son mélange pour que la quantité d’azote soit maximale ? Exprimer le problème sous forme d’un problème de Programmation Linéaire. 2. Calculer le problème dual. Résoudre le graphiquement. 3. Ecrire les conditions du théorème des écarts complémentaire et en déduire la valeur d’une des variables x1 , x2 , x3 . En déduire la solution du problème initial. Exo. 11.6 ? On considère le problème : 9.3. SÉRIE 17 : Max z = 3x +2y s.c. 3x +2y 3x +4y y x, y 103 ≤ 15 ≤ 21 ≤ 3 ≥ 0 1. Calculer le dual de ce problème. 2. Représenter graphiquement l’ensemble des solutions admissibles du dual. 3. En supposant que le dual a une solution optimale unique, trouver celle-ci à partir de la représentation graphique. Vérifier alors que c’est bien une solution optimale. 4. En utilisant la valeur trouvée pour l’optimum, montrer que le primal a au moins une solution optimale (raisonner graphiquement sur l’ensemble des solutions admissibles). En a-t-il plusieurs ? Exo. 11.7 ? On considère le problème : Min w = 15y1 +21y2 +3y3 s.c. 3y1 +3y2 2y1 +4y2 +y3 y1 , y2 , y3 ≥ 2 ≥ 2 ≥ 0 1. Calculer le dual de ce problème. 2. Représenter graphiquement l’ensemble des solutions admissibles du dual. 3. En utilisant le fait que l’ensemble des solutions admissibles du dual est un polytope, en déduire l’optimum. 4. En utilisant la valeur trouvée pour l’optimum du dual, montrer que le primal a au moins une solution optimale (raisonner graphiquement sur l’ensemble des solutions admissibles). En a-t-il plusieurs ? Exo. 16.8 Ecart complémentaire Une compagnie fabrique deux types de sauces : une sauce tomate et une sauce aux légumes. Chacune est obtenue en mélangeant des légumes et du concentré de tomates. Le concentré de tomates doit représenter au moins la moitié de la composition de la sauce tomate. Les légumes doivent représenter au moins le tiers de la composition de la sauce aux légumes. Chaque jour la compagnie peut acheter jusqu’à 4 tonnes de légumes à 50 dirhams le kg, et 3 tonnes de concentré de tomates à 30 dirhams le kg. La compagnie vend un kg de sauce tomate à 80 dirhams, et un kg de sauce aux légumes à 70 dirhams. La capacité d’absorption du marché est illimitée. La compagnie cherche à réaliser le plus grand bénéfice possible. 1. Modéliser le problème en un probl‘eme de programmation linéaire (pas plus de 4 variables. On le note (P). 2. Ecrire le problème (Q) dual de (P). 3. Trouver des bornes inférieures strictement positives pour deux des variables duales. (On rappelle que les variables duales sont positives ou nulles). 4. En utilisant le théorème des écarts complémentaires, résoudre (P). Exo. 11.9 ? On considère le problème de programmation linèaire (P) suivant : 104 CHAPITRE 9. MÉTHODE DE SIMPLEXE Max z = 3x1 +4x2 +8x3 s.c. x1 +2x2 +3x3 x1 −x3 x1 , x2 , x3 ≤ ≤ ≥ 15 −1 0 1. Mettre ce problème en forme standart en introduisant des variables d’écarts. 2. Introduire une variable artificielle pour avoir une base admissible de départ. 3. Résoudre le problème auxiliaire et le problème initial (P). On donnera la valeur optimale de z et les valeurs de x1 , x2 et x3 correspondantes. Exo. 11.10 ? On considère le problème : Min z = 12x +5y s.c. 2x +y ≥ 4 3x +y ≥ 5 x +y ≥ 0 x, y ∈ IR 1. Calculer le problème dual (ne pas oublier que le dual du dual est le primal). 2. Résoudre le probléme dual par le simplexe. 3. Que vaut la fonction objectif du problème initial à l’optimum ? Pour quelles valeurs cet optimum est-il atteint (utiliser les conditions d’optimalité primaldual) ? Exo. 11.11 ? On considère le problème : Minz = −3x +2y s.c. −x −y +e1 2x +y x +y x, y ≤0 = 4 ≤ 6 ≤ 0 e1 ≥ 0 1. Transformer le problème en un problème en forme standard. 2. Résoudre le problème en forme standard par l’algorithme du simplexe. 0 3. En considérant que la variable e1 = - e1 est une variable d’écart rajoutée à un problème en forme canonique, donner le problème canonique de départ et le résoudre graphiquement. 4. Calculer le dual et en donner une solution. Est-elle unique ? Exo. 11.16 Algorithme du simplexe (méthode des 2 phases) Résoudre le programme linéaire suivant avec la méthode des 2 phases de l’algorithme du simplexe : Minz = x +2y s.c. 2x +3y ≥ 3 3x +y ≤ 4 x, y ≥ 0 A chaque itération, on fera entrer en base la variable candidate de plus grand coût réduit. Vérifier ensuite graphiquement. 9.3. SÉRIE 17 : 105 Exo. 11.17 Algorithme du simplexe (méthode des 2 phases) Résoudre le PL suivant (en forme standard) avec la méthode des 2 phases de l’algorithme du simplexe : Max z = x1 +x2 +x3 +x4 s.c. +2x2 +x3 = 2 x1 +x2 +5x3 = 12 x1 +2x2 +6x3 +x4 = 13 x1 , x2 , x3 , x4 ≥ 0 On introduira le moins de variables artificielles possible. De plus, à chaque itération, on fera entrer en base la variable candidate de plus petit indice, et on fera sortir en priorité les variables artificielles de la base (lors de la phase 1). Que peut-on observer ? Exo. 16.7 Théorème des écarts complémentaires 1. Donner le PL dual du PL suivant : Min z = 2x +7y s.c. x −y = 3 x +5y = 6 4x +2y = 15 x, y ≥ 0 2. A l’aide du théorème des écarts complémentaires, trouver une solution optimale au PL dual. Exo. 11.22 Dualité et résolution graphique Min z = s.c. Résoudre le programme linéaire suivant graphiquement : 4x1 +5x2 +x3 +6x4 x1 +3x2 +2x3 −4x4 2x1 +x2 −3x3 +5x4 4x1 +2x2 x1 , x2 , x3 , x4 , Exo. 11.23 Dualité et modfications de contraintes Soit le programme linéaire suivant : Max z = 2x +y s.c. 3x +2y ≥ 9 y ≤ 3 3x −y ≤ 12 x, y ≥ 0 1. Calculer le tableau optimal du simplexe pour ce PL en le résolvant graphiquement, puis en calculant algébriquement l’expression des variables de base en fonction des variables hors-base. 2. La solution optimale obtenue reste-t-elle optimale si on modifie la fonction objectif en max 3x1 + 5x2 ? 3. Résoudre le programme linéaire suivant : ≥ ≥ = ≥ 5 7 15 0 106 Min z = s.c. CHAPITRE 9. MÉTHODE DE SIMPLEXE 9x1 +3x2 3x1 −2x1 +x2 x1 , x2 +12x3 +3x3 ≥ 2 −x3 ≥ 1 x3 ≥ 0 4. Que se passe-t-il si on remplace les valeurs 2 et 1 du second membre de ce PL par 3 et 5 respectivement ?