UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Réalisé par : Fatima-Ezzahra Essaai Rim Ouazine Encadré par : M. Mourad Nachaoui UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal INTRODUCTION ....................................................................................................................................... 3 Programmation linéaire .......................................................................................................................... 4 Introduction......................................................................................................................................... 5 1- Programmation linéaire : ............................................................................................................ 6 2- Les conditions de formulation d’un Programme Linéaire : ......................................................... 6 3- Les étapes de formulation d’un Programme Linéaire : ............................................................... 7 4- Présentation Théorique............................................................................................................... 7 4.1 Résolution graphique ................................................................................................................ 8 Méthode de simplexe et dualité ............................................................................................................. 9 1. Méthode de simplexe : .................................................................................................................. 10 1.1 Forme canonique d’un programme linéaire ..................................................................... 10 1.2 Forme standard d’un programme linéaire .............................................................................. 10 1.3 Algorithme du simplexe .......................................................................................................... 11 2- Méthode Big M.............................................................................................................................. 14 2.1 Définition des variables artificielles......................................................................................... 14 3- Dualité ........................................................................................................................................... 17 Résultats des tests réalisés.................................................................................................................... 19 Programme 1 : ................................................................................................................................... 20 Programme 3 : ................................................................................................................................... 22 Annexe :............................................................................................................................................. 24 conclusion.............................................................................................................................................. 34 UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal INTRODUCTION La recherche opérationnelle (aussi appelée aide à la décision) peut être définie comme l'ensemble des méthodes et techniques rationnelles orientées vers la recherche de la meilleure façon d’opérer des choix en vue d’aboutir au résultat visé ou au meilleur résultat possible. Elle fait partie des « aides à la décision » dans la mesure où elle propose des modèles conceptuels en vue d'analyser et de maitriser des situations complexes pour permettre aux décideurs de comprendre et d'évaluer les enjeux et d'arbitrer et/ou de faire les choix les plus efficaces. Le domaine fait largement appel au raisonnement mathématique (logique, probabilités, analyse de données) et à la modélisation des processus. Il est fortement lié à l'ingénierie des systèmes, ainsi qu'au management du système d'information. UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Programmation linéaire UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Introduction L’importance de l’optimisation et la nécessité d’un outil simple pour modéliser des problèmes de décision que soit économique, militaire ou autres on fait de la programmation linéaire un des champs de recherche les plus actifs au milieu du siècle précédent. Les premiers travaux (1947) sont celle de George B. Dantzig et ses associés du département des forces de l’air des Etats Unis d’Amérique. Les problèmes de programmations linéaires sont généralement liés à des problèmes d’allocations de ressources limitées, de la meilleure façon possible, afin de maximiser un profit ou de minimiser un coût. Le terme meilleur fait référence à la possibilité d’avoir un ensemble de décisions possibles qui réalisent la même satisfaction ou le même profit. Ces décisions sont en général le résultat d’un problème mathématique. UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal 1- Programmation linéaire : On appelle programmation linéaire, le problème mathématique qui consiste à optimiser (maximiser ou minimiser) une fonction linéaire de plusieurs variables qui sont reliées par des relations linéaires appelées contraintes. Les problèmes de programmations linéaires sont généralement liés à des problèmes d’allocations de ressources limitées, de la meilleure façon possible, afin de maximiser un profit ou de minimiser un coût. Le terme meilleur fait référence à la possibilité d’avoir un ensemble de décisions possibles qui réalisent la même satisfaction ou le même profit. Ces décisions sont en général le résultat d’un problème mathématique. La programmation linéaire est définie donc comme étant un cas particulier de la programmation mathématique pour laquelle la fonction objective et les contraintes sont linéaires. 2- Les conditions de formulation d’un Programme Linéaire : La programmation linéaire comme étant un modèle admet des hypothèses (des conditions) que le décideur doit valider avant de pouvoir les utiliser pour modéliser son problème. Ces hypothèses sont : 1) Les variables de décision du problème sont positives 2) Le critère de sélection de la meilleure décision est décrit par une fonction linéaire de ces variables, c’est à dire, que la fonction ne peut pas contenir par exemple un produit croisé de deux de ces variables. La fonction qui représente le critère de sélection est dite fonction objectif (ou fonction économique). 3) Les restrictions relatives aux variables de décision (exemple : limitations des ressources) peuvent être exprimées par un ensemble d’équations linéaires. Ces équations forment l’ensemble des contraintes. 4) Les paramètres du problème en dehors des variables de décisions ont une valeur connue avec certitude UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal 3- Les étapes de formulation d’un Programme Linéaire : Généralement il y a trois étapes à suivre pour pouvoir construire le modèle d'un programme linéaire : 1) Identifier les variables du problème à valeur non connues (variable de décision) et les représenter sous forme symbolique (ex : x1, y1). 2) Identifier les restrictions (les contraintes) du problème et les exprimer par un système d’équations linéaires. 3) Identifier l’objectif ou le critère de sélection et le représenter sous une forme linéaire en fonction des variables de décision. Spécifier si le critère de sélection est à maximiser ou à minimiser. 4- Présentation Théorique Un programme linéaire consiste à trouver le maximum ou le minimum d’une forme linéaire dite fonction objective en satisfaisant certaines équations et inégalités dites contraintes. En langage mathématique, on décrira de tels modèles de la manière suivante : Soient N variables de décision x1, x2,…, xn, l’hypothèse que les variables de décision sont positives implique que x1 0, x2 0, , x N 0 . La fonction objective est une forme linéaire en fonction des variables de décision de type : z = c1x1 + c2 x2 + + c N x N Où les coefficients c1,…,cN doivent avoir une valeur bien déterminée (avec certitude) et peuvent être positifs, négatifs ou nuls. Par exemple le coefficient ci peut représenter un profit unitaire lié à la production d’une unité supplémentaire du bien xi, ainsi la valeur de z est le profit total lié à la production des différents biens en quantités égales à x1 , x 2 , , x N . Supposons que ces variables de décision doivent vérifier un système d’équations linéaires définis par M inégalités a11 x1 + a12 x2 + + a1 N x N b1 a21 x1 + a22 x2 + + a2 N x N b2 a M 1 x1 + a M 2 x2 + + aMN x N bM UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Où les coefficients a1M,…, aMN et b1,…, bM doivent avoir une valeur bien déterminée (avec certitude) et peuvent être positifs, négatifs ou nuls. Le paramètre bj représente la quantité de matière première disponible dont le bien xi utilise une quantité égale à aij xi En suivant les étapes de formulation ci-dessus, on peut représenter le PL comme suit : Max c1 x1 + c2 x2 + + c N x N s.c a11 x1 + a12 x2 + + a1 N x N b1 a21 x1 + a22 x2 + + a2 N x N b2 a M 1 x1 + a M 2 x2 + + a MN x N bN x1 0, x2 0, , x N 0 4.1 Résolution graphique Parmi les solutions possibles d’un problème, il y a ceux qui vont satisfaire toutes les contraintes du programme, appelés solutions réalisables, et ceux qui vont satisfaire une partie ou aucune de ces contraintes, appelés solutions non réalisables. Une représentation graphique des inégalités (des contraintes) va nous permettre de déterminer l’ensemble des solutions réalisables. Une solution possible du problème est dite réalisable si et seulement si elle vérifie toutes les contraintes, c’est à dire si elle appartient aux trois demi-plans relatifs à chaque Contrainte du programme linéaire, en d’autres termes à 1 2 3. x2 Ensemble des solutions réalisables 12 3 6 12 24 x1 UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Méthode de simplexe et dualité UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal 1. Méthode de simplexe : 1.1 Forme canonique d’un programme linéaire Max z = c1 x1 + c2 x2 + ..…..+ cn xn a11 x1 + a12 x2 + .…….+ a1n xn b1 a21 x1 + a22 x2 +…......+ a2n xn b2 am1 x1 + am2 x2 + ... …..+ amn xn bm x1 0 ; x2 0 ; .........; xn 0 Si la fonction objective doit être maximisée et si toutes les contraintes sont des inéquations du type ≤, on dit que le programme linéaire se présente sous une forme canonique. 1.2 Forme standard d’un programme linéaire On transforme les inégalités des contraintes économiques en égalités par introduction de variables supplémentaires positives ou nulles appelées variables d'écart. ai1 x1 + ai2 x2 + .......... + ain xn bi Devient ai1 x1 + ai2 x2 + .......... + ain xn + ti = bi D’où la forme standard : Max z = c1 x1 + c2 x2 + ..........+ cn xn a11 x1 + a12 x2 + .......... + a1n xn + t1 = b1 a21 x1 + a22 x2 + .......... + a2n xn + t2 = b am1 x1 + am2 x2 + ………… + amn xn + tm = bm x1 0 ; x2 0 ; .........; xn 0 ; t1 0 ; t2 0 ; .........; tm 0 UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal 1.3 Algorithme du simplexe Étape 0 : On forme le tableau initial La base initiale de l’espace-colonne sera {xn+1, xn+2, . . . , xn+m}. Les autres variables seront égales à 0 ce qui correspond au point de départ x = (0, 0, . . . , 0). Étape 1 : On doit choisir la colonne de pivot. Pour cela, on choisit l’indice j tel quel cj = max {ci | ci > 0}. Si aucun choix est possible, on a atteint la solution optimale et l’algorithme se termine. Sinon, on passe à l’étape suivante. Pour un problème de minimisation, on modifie le critère en choisissant l’indice j tel que cj = min {ci | ci < 0}. Étape 2 : On doit choisir la ligne de pivot. Pour cela, on choisit l’indice i en utilisant le critère du quotient bi aij = min{ bk akj | akj > 0 k = 1, 2, . . . , m} où j est la colonne de pivot de l’étape 1. a) On applique la procédure d’élimination de Gauss-Jordan autour du pivot situé à l’intersection de la ligne i et de la colonne j. Ensuite, on divise la ligne i par le pivot pour le mettre égal à 1. b) On retourne à l’étape 1 et on recommence. Remarque : Expliquons le critère du quotient. A une certaine itération du simplexe, nous disposons d’une solution de base xB lié à un choix B de variables de base. Ensuite, il s’agit de pivoter vers une solution de base adjacente qui doit être admissible. Le critère du quotient assure que la nouvelle solution de base sera admissible. En effet, notons par j la colonne de pivot de l’étape 1 et par i un choix quelconque de la ligne de pivot. A ce choix de la ligne de pivot correspond une variable xji qui sortira de la base. Le critère du quotient impose que aij > 0. La nouvelle base s’écrira B˜ = B ∪ {xj} \ {xji } et on doit imposer que la solution de base associée à B˜ doit être admissible. On procède à UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal élimination de Gauss-Jordan autour du pivot aij . La ligne Lk du tableau du simplexe (à cette itération) est modifiée par : Ceci modifie la dernière colonne du tableau du simplexe par : qui doit être positif car sera la nouvelle solution de base. Si akj > 0, on obtient : Si akj = 0, on obtient : Donc, aucun changement. Si akj < 0, on a car aij > 0 et les bi , bk ≥ 0. Donc seulement les valeurs akj > 0 sont à considérer et, selon le calcul ci-dessus, on a que : UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Figure3.1 Résumé de l'algorithme UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal 2- Méthode Big M Dans la méthode dite de Grand M comme dans celle en deux étapes, les équations provenant des contraintes technologiques de signe ou =, on ajoute des variables dites artificielles qui initialement serviront de variables de base et on exige de ces mêmes variables qu’elles soient non négatives. Outre les variables artificielles introduites dans le modèle, on adjoint à la fonction économique Z un terme de pénalité à chaque variable artificielle et M est une constante positive dont la valeur sans être précisée dépasse largement tous les autres nombres présents dans le modèle. Le modèle à résoudre devient : 2.1 Définition des variables artificielles L’introduction de variables artificielles permet de résoudre le problème posé par les contraintes ≥. Quand un programme linéaire comporte une contrainte ≥, la contrainte de positivité liée à la variable d’écart n’est pas respectée pour la forme standard. Exemple : Soit la contrainte : 𝑥 + 2𝑦 + 𝑧 ≥ 16. Prenons une solution qui respecte la contrainte. Par exemple on donne 5+10+5=20. Dans la forme standard, la variable d’écart 𝑡1 qui permet l’égalité est telle que : 20 + 𝑡1 = 16, soit 𝑡1 = −4 ce qui ne respecte pas la contrainte 𝑡1 ≥ 0. La forme standard de la contrainte est donc : 𝑥 + 2𝑦 + 𝑧 − 𝑡1 = 16. La variable 𝑡1 est alors mise hors base et l’introduction dans la base d’une variable artificielle 𝑎1, positive ou nulle, affectée du coefficient 1 permet d’obtenir une solution de départ admissible 𝑥 + 2𝑦 + 𝑧 − 𝑡1 + 𝑎1 = 16. UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Les variables hors base sont : 𝑥 = 𝑦 = 𝑧 = 𝑡1 = 0 Et en base 𝑎1 = 16 ce qui respecte 𝑎1 ≥ 0. Règle : Il n'est nécessaire d'introduire de variable artificielle (toujours positive) que dans les cas où la contrainte est sous forme d'égalité (=) ou de supériorité (≥). Dans la nouvelle équation, la variable artificielle est affectée du signe du second membre. 1) Introduire une variable artificielle par contrainte ≥. La variable d’écart de la contrainte affectée du coefficient −1 est mise hors base. 2) Elles permettent simplement l’égalité dans la forme standard et ne sont pas une donnée du problème. En conséquence, elles doivent être nulles à l’optimum. Pour cela, il faut les faire sortir de la base en leur donnant un coefficient fortement pénalisant dans la fonction économique : a- S’il s’agit d’une maximisation, le coefficient affecté à la variable artificielle est très négatif : −𝑀 où M est une constante positive arbitrairement grande qui tend à réduirela fonction économique, tant que les variables artificielles sont dans la base. On dit qu'on pénalise la fonction objective, d'où le nom de la méthode dite méthode despénalités b- S’il s’agit d’une minimisation, le coefficient affecté à la variable artificielle est très positif : +𝑀 où M est une constante positive arbitrairement grande qui tend à augmenter la fonction économique, tant que les variables artificielles sont dans la base. On dit qu'on pénalise la fonction objectif d'où le nom de la méthode dite méthode des pénalités. UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Exemple : La forme standard associé a cette exemple : La M-problème auxiliaire associé est : UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal 3- Dualité La forme d’un programme linéaire de type maximisation est Max z = ct x S.C Ax b (PL1) x0 avec x, b , c des vecteurs de dimensions respectives n, m et n , et A une matrice de dimension (m, n) . On appelle programme dual de (PL1) , le programme linéaire suivant : Min w = bt y S.C t A.Y c y0 avec y un vecteur de dimension m et t A la transposée de la matrice A . Le programme (PL1) est appelé programme Primal. UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Pour passer du primal au dual, on remarque que : 1) Les termes du second membre deviennent les coefficients de la fonction objectif et réciproquement. 2) Le problème de maximisation devient un problème de minimisation. 3) Les inégalités " " deviennent des inégalités " " 4) La matrice A se transforme en sa transposée. On peut généraliser ce résultat dans le tableau suivant : Figure 3.2 Tableau de On remarque aussi qu’à l’optimum la valeur de la fonction objective du dual est égale à la valeur de la fonction objectif du primal. Figure 3.2 Règle de dualité UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Résultats des tests réalisés UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Programme 1 : Max (x1 + 2x2) 3 x1 - 2 x2 ≤ 7 - x1 + 4 x2 ≤ 9 -2 x1 + 3 x2 ≤ 6 x1 ≥ 0 et x2 ≥ 0 UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal • • • • • Le système transforme le problème en une maximisation en changeant le signe de la fonction objectif. Le système introduit ensuite les variables d’écart, ce qui nous donne le premier tableau du simplexe. Le pivot 1 2 correspond à la variable entrante X2 et la variable sortante X5. Le pivot 0 1 correspond à la variable entrante X1 et la variable sortante X4. Le dernier tableau correspond à l’optimum, On obtient donc comme solution : X1=0.60, X2=2.4, X3=10, X4=0, X5=0, min Z = 6.60 UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Programme 3 : Min (120 x1 +132 x2 + 60 x3) 6 x1 + 2 x2 + 2 x3 ≥ 120 2 x1 + 4 x2 + 2 x3 ≥ 90 x1, x2, x3 ≥ 0 UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal Annexe : UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal UNIVERSITE SULTAN MOULAY SLIMANE Faculté des Sciences et Techniques Béni Mellal conclusion Le but de ce projet était d’implémenter une application pour la résolution des programmes linéaires via la méthode de simplexe, ce projet a été sans doute une expérience très bénéfique, il nous a offert l’opportunité d’améliorer nos connaissances dans le domaine de programmation ainsi l’amélioration de notre esprit d’équipe.