Unité d Enseignement RCP101 : Recherche Opérationnelle et Aide à la Décision Cours 5 Programmation linéaire (suite) Conservatoire National des Arts et Métiers E. Soutil
2 UE RCP101 Recherche Opérationnelle et Aide à la Décision Plan du cours Partie 1- Eléments de Théorie des Graphes Généralités, fermeture transitive et connexité Chemins de longueur optimale Partie 2 Ordonnancement Méthode PERT Méthode MPM Partie 3 Programmation linéaire Modélisation Méthode du simplexe Dualité Partie 4 : Processus de Markov et files d attente Partie 5 : Optimisation multicritères RCP101 Partie 3 Programmation linéaire
Plan de la partie 3 Programmation linéaire (PL) 3 1. Introduction à la programmation linéaire 2. Modélisation de problèmes 3. Première utilisation d un solveur 4. Résolution graphique : un problème à deux variables 5. Méthode des tableaux du simplexe 6. Dualité en programmation linéaire RCP101 Partie 3 Programmation linéaire
5. Méthode des tableaux du simplexe 5.1) Forme générale, canonique et standard d un P.L. 4 Forme générale. La forme générale d un P.L. est la suivante : économique), notée souvent est appelée fonction objectif (ou fonction
5.1) Forme générale, canonique et standard d un P.L. 5 Forme canonique : Forme standard : NB : A est une matrice m n, x et c sont deux vecteurs colonnes de n composantes, b est un vecteurs à m composantes.
5.1) Forme générale, canonique et standard d un P.L. 6 Remarque : A est une matrice m n, x et c sont deux vecteurs colonnes de n composantes, b est un vecteurs à m composantes.
5.1) Forme générale, canonique et standard d un P.L. 7 Remarque : maximiser revient à minimiser : Résoudre : revient donc à résoudre Les solutions optimales sont les mêmes, les valeurs optimales sont opposées.
5.1) Forme générale, canonique et standard d un P.L. 8 Passage de la forme générale à la forme canonique :
5.2) Polyèdre des solutions et représentation graphique 9 L ensemble est appelé polytope des solutions associé à un P.L. Il s agit d un polytope convexe. S il est borné, on parle de polyèdre convexe. Pour des problèmes à deux ou trois variables (cas d école), on peut représenter le polyèdre des solutions. Un vecteur x X est dit solution réalisable ou admissible du P.L. considéré
5.2) Polyèdre des solutions et représentation graphique 10 Exemple : polyèdre des solutions du PL suivant : L ensemble X des solutions réalisables est l ensemble des points situés à l intérieur du polyèdre (OABCDEFGHI).
5.3) Bases, solutions de base, géométrie des polyèdres 11 On considère un P.L. sous sa forme standard : On considère que le rang de la matrice A est m. rang(a) = dimension de la plus grande sous-matrice carrée régulière (c-à-d inversible, de déterminant 0) que l on peut extraire de A Remarque : On peut toujours le supposer : si rang(a) < m, une ou plusieurs lignes de A peuvent s exprimer comme combinaisons linéaires des autres. Suivant la valeur des coefficients b i, les contraintes correspondantes sont soit redondantes (on peut alors les éliminer), soit incompatibles avec les autres (Ax = b n a alors pas de solution).
5.3) Bases, solutions de base, géométrie des polyèdres 12 Définition : On appelle matrice de base (ou encore, par un léger abus de langage, base) toute sous-matrice carrée inversible (m m) extraite de A (il en existe au moins une puisque rang(a) = m). Définition : On appelle base l ensemble des indices des colonnes qui constitue une matrice de base (on appellera également base l ensemble de variables correspondant à ces colonnes).
5.3) Bases, solutions de base, géométrie des polyèdres 13 Soit B une matrice de base. En permutant les colonnes, on peut mettre A sous la forme A=[B, N] où N est la sous-matrice des colonnes hors-base. De même, on peut écrire x sous la forme :
5.3) Bases, solutions de base, géométrie des polyèdres 14 L équation Ax = b s écrit alors : x B : variables de base x N : variables hors-base Définition : On appelle solution de base associée à la base B la solution particulière de (1) obtenue en posant x N = 0. x B est alors déterminé de façon unique par la résolution du système (de Cramer) : Bx B = b, c est-à-dire : x B = B -1 b. On notera le vecteur B -1 b. b Solution de base associée à la base B :
5.3) Bases, solutions de base, géométrie des polyèdres 15 Définition : Une solution de base est dite solution de base réalisable si x B 0, i.e. : b 0. (Rappel : les variables hors-base sont à la valeur zéro). Définition : Une base correspondant à une solution de base réalisable est appelée base réalisable. Définition : Une solution de base est dite dégénérée si le vecteur x B = b a une ou plusieurs composantes nulles. La dégénérescence est un phénomène fréquent dans certains problèmes (flots, transport, plus courts chemins). Définition : On appelle point extrême tout point x de qui ne peut pas s exprimer comme combinaison convexe d autres points y de X (y x) x ne peut pas s écrire :
5.4) Caractérisation algébrique des points extrêmes 16 Théorème 1 : L ensemble des points extrêmes de X correspond à l ensemble des solutions de base réalisables. Démonstration : a) solution de base réalisable point extrême En effet, on a = 1, 2,,, 0,, 0. Supposons que = + 1 0 < < 1,,,, avec : = 1, 2,,, +1,, = 1, 2,,, +1,, On doit alors avoir : + 1 = 0 + 1,,. Les m premières composantes de et sont déterminées de façon unique par la résolution du système de Cramer =, d où = = contradiction. b) point extrême solution de base réalisable démonstration non vue ici.
5.4) Caractérisation algébrique des points extrêmes 17 Corollaire 1 : Il y a un nombre fini de points extrêmes. (En effet, = n!/m!(n-m)! est le nombre de possibilités de choisir m colonnes de A parmi n et toutes les sous-matrices extraites de A ne sont pas inversibles et réalisables.) Corollaire 2 : Tout point de X est combinaison convexe des points extrêmes de X. (Démonstration non vue ici.)
5.4) Caractérisation algébrique des points extrêmes 18 Théorème 2 (Optimalité en un point extrême) : L optimum de z sur X est atteint en au moins un point extrême. S il est atteint en plusieurs points extrêmes, il est atteint en tout point combinaison convexe de ces points extrêmes. Démonstration : Soient 1, 2,, les points extrêmes de. Posons = = = =1 ). Montrons qu alors = max (). D après le corollaire 2, tout point de peut s écrire = 0 et =1 = 1. On a donc : max 1,, ( ) (avec =1 () = = =1 = =1 =1 =1 =1 = =1 avec =1 =
5.5) Caractérisation des solutions de base réalisables optimales 19 Théorème 3 : Soit B une base réalisable non dégénérée ( ). B est une base réalisable optimale si et seulement si :
5.5) Caractérisation des solutions de base réalisables optimales 20 Théorème 3 : B est une base réalisable optimale ssi jn, Démonstration : Soit x une solution quelconque de X (pas nécessairement de base). On a toujours : Pour ib on a donc : (On a ainsi exprimé les variables de base en fonction des variables hors-base) Ré-écrivons maintenant la fonction objectif en ne faisant apparaître que les variables hors-base :
5.5) Caractérisation des solutions de base réalisables optimales 21 Théorème 3 : B est une base réalisable optimale ssi jn, Démonstration (suite) : Ré-écriture de z en fonction des variables hors-base uniquement :
5.5) Caractérisation des solutions de base réalisables optimales 22 Théorème 3 : B est une base réalisable optimale ssi jn, Démonstration (suite) : Condition suffisante : ( j Δj 0) B base réalisable optimale
5.5) Caractérisation des solutions de base réalisables optimales 23 Théorème 3 : B est une base réalisable optimale ssi jn, Démonstration (suite) : Condition nécessaire : Montrons que s il existe s N tel que Δ s > 0, alors on peut construire une solution meilleure. On va alors augmenter la valeur de x s qui va passer de la valeur 0 à une valeur θ > 0. On considère la solution : étant positif, on peut toujours trouver θ > 0 suffisamment petit pour que x i soit positif ou nul :
5.5) Caractérisation des solutions de base réalisables optimales 24 Théorème 3 : B est une base réalisable optimale ssi jn, Démonstration (suite) : Remarque : si tous les sont négatifs ou nuls, on peut alors choisir θ aussi grand que l on veut et le problème de départ admet une solution infinie. La fonction objectif décroît alors strictement : (z croît strictement si la base B est non dégénérée et au sens large si B est dégénérée).
5.5) Caractérisation des solutions de base réalisables optimales 25 Propriété : Soit B une base réalisable et x 0 la solution de base associée. S il existe une variable hors-base x s telle que Δ s > 0, alors : 1. Ou bien on peut augmenter indéfiniment la valeur de x s sans sortir de l ensemble des solutions réalisables et l optimum du problème est z = + (c est le cas si 0 i) 2. Ou bien on met en évidence une autre base et une autre solution réalisable telle que z( ) > z(x 0 ) si B était non dégénérée z( ) z(x 0 ) si B était dégénérée On calcule dégénérée, et qui peut être nul si B était est défini comme dans la démonstration précédente.
5.5) Caractérisation des solutions de base réalisables optimales 26 Remarques : on passe de la base B à la base colonnes r et s. en échangeant les en cas de dégénérescence, un phénomène de cyclage peut se produite : on passe de bases en bases sans faire augmenter strictement la valeur de la solution de base courante. Il est alors possible, au bout d un certain nombre de changements de base, de retomber sur une base précédemment visitées. Toutefois, même si la dégénérescence est fréquente, le cyclage, lui, est un phénomène rarissime et dont il est possible de se prémunir théoriquement (utilisation des règles de Bland, non vues ici).
5.6) Algorithme du simplexe 27
5.6) Algorithme du simplexe 28 Géométriquement, cet algorithme correspond à un cheminement de point extrême en point extrême adjacent le long de la frontière de X. D un point de vue algébrique, il correspond à déterminer une suite de bases adjacentes B 0, B 1,, B q et donc de solutions de base x 0,, x q telles que z(x 0 ) z(x 1 ) z(x q ). Théorème 4 : L algorithme du simplexe converge. (Ce théorème n est pas démontré ici, sa preuve repose sur la finitude du nombre de bases et sur la possibilité de se prémunir du cyclage).
5.7) Base de départ 29 On s arrange toujours pour faire apparaître une matrice identité dont les colonnes vont former la base de départ initiale, au besoin en transformant le problème de départ par introduction de variables supplémentaires : Des variables d écart, qui permettent de transformer une inégalité de type en une égalité ; Si toutes les contraintes de départ sont des contraintes de type, les variables d écart forment une base de départ naturelle. Eventuellement des variables artificielles qui permettent de traiter des inégalités de type ou des égalités (cf cours 6).
5.7) Base de départ Cas où le problème initial est déjà sous forme canonique 30 Exemple 1 : On introduit deux variables d écart, et dans les deux premières contraintes pour les transformer en contraintes d égalité. La matrice identité apparaît alors et on peut considérer comme base de départ pour l algorithme du simplexe 0 0, 4 3 3 s.c. 2 maximiser ) ( 2 1 2 1 2 1 2 1 1 x x x x x x x x z P 0 0, 0, 0, 4 3 3 s.c. 2 maximiser 2 1 2 1 2 2 1 1 2 1 2 1 x x x x x x x x x x x x z 2 1,
5.8) Tableaux du simplexe 31
5.8) Tableaux du simplexe 32
5.8) Tableaux du simplexe 33
5.8) Tableaux du simplexe 34 Rappel : 1 er tableau Rappel :
5.8) Tableaux du simplexe 35 Rappel : 1 er tableau
5.8) Tableaux du simplexe 36 Rappel : 2 ème tableau
5.8) Tableaux du simplexe 37 Rappel : 3 ème tableau
5.8) Tableaux du simplexe 38 Sol. de base associée : Rappel : 3 ème tableau Cette nouvelle base n est toujours pas optimale car n est pas. On effectue donc une nouvelle itération de l algorithme du simplexe : base. entre en base (plus grand coût réduit), obtenu pour la ligne de : sort de la
5.8) Tableaux du simplexe 39 Rappel : 3 ème tableau
5.9) Recherche d une base de départ : méthode des deux phases du simplexe 40 Nous avons vu comment trouver une base de départ lorsque les contraintes du problème sont toutes de type : les variables d écart constituent alors une base de départ naturelle, leurs colonnes formant à une permutation près une matrice identité. En pratique il est fréquent que le PL comporte également des contraintes de type ou de type =. Dans ce cas, nous n avons plus de base de départ évidente, il faut en chercher une. Ce sera la première phase de la méthode du simplexe. La méthode du simplexe consiste donc en deux phases : Phase 1 : recherche d une base de départ par la résolution par l algorithme du simplexe du programme auxiliaire (défini plus loin) ou mise en évidence que le problème de départ n admet aucune solution admissible Phase 2 : application de l algorithme du simplexe au problème de départ cette fois, en partant de la base mise en évidence à la fin de la phase 1 RCP101 Partie 3 Programmation linéaire
5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 1 41 On commence par écrire le programme auxiliaire (PA) associé au problème de départ (P) : On s assure que les membres de droite b i sont tous positifs ou nuls, quitte à multiplier la contrainte correspondante par -1 si son membre de droite est négatif (sinon on aboutirait à des solutions de base non réalisables); On introduit une variable d écart pour chaque contrainte i de type, affectée d un signe + dans la contrainte ré-écrite, comme on le faisait jusqu à présent; On introduit aussi une variable d écart pour chaque contrainte i de type, mais affectée d un signe - dans la contrainte ré-écrite : l écart qu elle mesure est en effet négatif ou nul, mais la variable d écart doit rester positive ou nulle; Le problème ne comporte plus que des contraintes d égalité, mais seules les variables d écart associées aux contraintes initiales de type forment des colonnes de la matrice identité. Pour chacune des autres contraintes (c est-à-dire les contraintes initiales ré-écrites avec une variable d écart affectée d un signe, et les contraintes initiales =), on introduit une variable artificielle positive ou nulle de la même façon qu on introduisait les variables d écart. La fonction objectif de (PA) est alors la somme des variables artificielles. On cherche à la minimiser (en fait à l annuler). RCP101 Partie 3 Programmation linéaire
5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 1 42 Exemple : maximiser = 4 + 2 3 + 2 12 (1) s.c. + 2 4 (2) 3 (3) et 0 Var. d écart s.c. maximiser = 4 + 2 3 +2 + = 12 (1) +2 = 4 (2) + = 3 (3),,, et 0 Var. artif. + nouvel objectif () minimiser = = + 3 +2 + = 12 1 s.c. +2 + = 4 2 + = 3 3,,,, et 0 En pratique, nous allons résoudre le problème de maximisation (PA ) qui lui est associé. RCP101 Partie 3 Programmation linéaire
5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 1 43 Exemple (suite) : () minimiser = = + 3 +2 + = 12 1 s.c. +2 + = 4 2 + = 3 3,,,, et 0 Problème de maximisation (PA ) qui lui est associé : ( ) maximiser = = = + + 3 +2 + = 12 1 s.c. +2 + = 4 2 + = 3 3,,,, et 0 Avec : min(pa) = -max(pa ) : (PA) et (PA ) ont la même solution optimale et leurs valeurs optimales sont opposées. RCP101 Partie 3 Programmation linéaire
5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 1 44 Exemple - suite : résolution de (PA ) : les coûts réduits sont calculés en remplaçant dans chaque variable artificielle par son expression en fonction des variables x : ( ) maximiser = = = + + 3 +2 + = 12 1 s.c. +2 + = 4 2 + = 3 3,,,, et 0 entre en base (plus grand coût réduit) min (12/2,4/2)=4/2 : sort de la base df Δ 0 : on est à l optimum de (PA ) Et = max = = RCP101 Partie 3 Programmation linéaire
45 5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 1 (PA) admet toujours une base de départ réalisable formée des variables d écart des contraintes initiales et des variables artificielles associées aux autres contraintes et l optimum de (PA) est borné inférieurement par 0. (PA) admet donc toujours une solution optimale que l algorithme du simplexe va trouver. Si min(pa) (qui est égal à -max(pa )) vaut 0, alors (P) admet au moins une solution réalisable : celle obtenue à partir de la solution optimale de valeur nulle de (PA), dans laquelle toutes les variables artificielles sont nécessairement nulles (somme nulle de termes positifs ou nuls), en ne gardant que les variables x de départ à leur valeur dans la solution de (PA). À l inverse, si min(pa) > 0, (P) n admet aucune solution admissible : si tel était le cas, la solution de (PA) construite à partir de l hypothétique solution admissible de (P) en gardant les mêmes valeurs pour les variables x (et les éventuelles variables d écart) et en mettant à 0 les variables artificielles serait admissible et de valeur nulle pour PA. On a donc la propriété suivante : (P) admet une solution admissible si et seulement si min(pa) = 0. Enfin, remarquons que si lors de la résolution de (PA) ou (PA ) une ligne (contrainte) voit tous ses coefficients des variables x ( et ) s annuler, cela signifie que la ligne en question était, dans le problème initial obtenu après introduction des variables d écart, combinaison linéaire d autres lignes : elle peut être éliminée. RCP101 Partie 3 Programmation linéaire
46 5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 2 A l issue de la phase 1, on a soit prouvé que le problème de départ (P) n admettait aucune solution admissible (il n y a donc rien à faire dans ce cas), soit mis en évidence la solution de base optimale réalisable de (PA). Dans la suite on suppose que (P) admet une solution admissible (min(pa) = -max(pa ) = 0). Attention, la solution de base réalisable optimale pour (PA) ne l est pas nécessairement pour (P), pour deux raisons : (P) comporte moins de variables que (PA) et les objectifs dans les deux problèmes ne sont pas les mêmes. On va maintenant construire une base réalisable pour (P), calculer ses coûts réduits et la valeur de la solution de base, à partir de la solution optimale de (PA). RCP101 Partie 3 Programmation linéaire
47 5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 2 (suite) On se sert de la solution de base réalisable optimale de (PA) pour construire une solution de base réalisable pour (P) de façon suivante : Si une variable artificielle est présente parmi les variables de base dans la solution optimale de (PA), on l en fait sortir artificiellement, sans changer la valeur (nulle) de la fonction objectif, en pivotant autour d une variable initiale ayant un coefficient non nul dans la ligne associée à (s il n y en a pas, c est que la contrainte correspondante était redondante car combinaison linéaire des autres lignes). La valeur de la fonction objectif reste alors nulle car la variables artificielle valait nécessairement 0 et la solution correspondante était dégénérée; Les variables de la base optimale de (PA) deviennent les variables de la base initiale de (P) Dans le dernier tableau du simplexe de la résolution de (PA ), on supprime purement et simplement les colonnes correspondant aux variables artificielles (ces variables sont nulles, on aboutit bien à une solution de (P) admissible); On écrit la ligne des coûts réduits du premier tableau du simplexe de (P) en calculant ces coûts réduits associés à la base mise en évidence et la valeur de la solution optimale : cf. ED ou application de la formule : Puis on applique l algorithme du simplexe à (P) cette fois, en partant de la solution de base ainsi construite. RCP101 Partie 3 Programmation linéaire
5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 2 48 Exemple (suite). A l issue de la phase 1, le dernier tableau obtenu était le suivant : Aucune variable artificielle n est en base, on conserve donc la base {,, } pour (P) cette fois. On supprime la colonne de et on calcule les coûts réduits de (P) en remplaçant dans chaque variable de base par son expression en fonction des variables hors-base qui se lit sur le tableau (Ex : = 2 +, obtenu par la deuxième ligne du tableau en isolant ). On ne remplace pas les variables hors-base, comme. On obtient alors le premier tableau du simplexe pour la résolution de (P) : = 4 + 2 = 4 + 2 2 1 2 + 1 2 = 4 + 3 + RCP101 Partie 3 Programmation linéaire
49 5.9) Recherche d une base de départ : méthode des deux phases du simplexe Phase 2 Exemple (suite) = 4 + 2 = 4 + 2 2 + = 4 + 3 + Premier tableau de la phase 2 (= premier tableau du simplexe de (P) et non plus de (PA )) : On constate que ce tableau n est pas optimal pour (P) : on n a pas Δ 0. Il faut donc ré-appliquer l algorithme du simplexe sur ce tableau (plusieurs itérations à venir) pour obtenir enfin l optimum de (P) (non traité ici). RCP101 Partie 3 Programmation linéaire