Unité d Enseignement RCP0 : Recherche Opérationnelle et Aide à la Décision Cours 4 Programmation linéaire Conservatoire National des Arts et Métiers E. Soutil et F. Badran
UE RCP0 Recherche Opérationnelle et Aide à la Décision Plan du cours Partie - Eléments de Théorie des Graphes Généralités, fermeture transitive et conneité Chemins de longueur optimale Partie Ordonnancement Méthode PERT Méthode MPM Partie 3 Programmation linéaire Modélisation Méthode du simplee Dualité Partie 4 : Processus de Markov et files d attente Partie 5 : Optimisation multicritères RCP0 Partie 3 Programmation linéaire
Plan de la partie 3 Programmation linéaire (PL) 3. Introduction à la programmation linéaire. Modélisation de problèmes 3. Première utilisation d un solveur 4. Résolution graphique : un problème à deu variables 5. Méthode des tableau du simplee 6. Dualité en programmation linéaire RCP0 Partie 3 Programmation linéaire
4. Introduction à la Programmation Linéaire Un problème central en Recherche Opérationnelle Problème classique de planification : affecter des ressources limitées à plusieurs activités concurrentes Programme = Plan (solution de ce problème) Programmation RO Programmation informatique Fonction linéaire : fonction dans laquelle chaque variable évolue linéairement f (,,, n) c c c n n Programme linéaire = Programme mathématique où toutes les fonctions sont linéaires RCP0 Partie 3 Programmation linéaire - Introduction
Eemple d un modèle de PL 5 Données du problème (Entreprise Clotûres Martin) Deu types de produits (produit, produit ) Trois usines (usine, usine, usine 3) Capacité limitée de production de chaque usine (par semaine) Profit par lot (0 unités de chaque produit) Tps de production (h / lot) Produit Produit Capacité de production (h) Usine 0 4 Usine 0 Usine 3 3 8 Profit ( ) / lot 3000 5000 RCP0 Partie 3 Programmation linéaire - Introduction
Eemple d un modèle de PL (suite) 6 Chaque lot du produit () est le résultat combiné de la production au usines et 3 ( et 3) Énoncé du problème : déterminer le tau de production pour chaque produit (nombre lots par semaine) de façon à maimiser le profit total Fonction objectif : Variables de décision : : nombre de lots du produit : nombre de lots du produit Z = profit total Z = 3 + 5 (profit total en milliers d euros) Maimiser Z RCP0 Partie 3 Programmation linéaire - Introduction
Eemple d un modèle de PL (suite) 7 Contraintes de capacité de production 4 (usine ) (usine ) 3 + 8 (usine 3) Contraintes de non-négativité : 0, 0 (nombre d unités produites 0) RCP0 Partie 3 Programmation linéaire - Introduction
Eemple d un modèle de PL (fin) 8 RCP0 Partie 3 Programmation linéaire - Introduction
Terminologie de base en PL 9 Solution réalisable (admissible) : solution pour laquelle toutes les contraintes sont satisfaites (appartient au domaine réalisable) Solution non réalisable : solution pour laquelle au moins une contrainte n est pas satisfaite (n appartient pas au domaine réalisable) Solution optimale : solution ayant la meilleure valeur possible de l objectif Modèle n ayant aucune solution optimale : Domaine réalisable vide Objectif non borné Modèle ayant une infinité de solutions optimales RCP0 Partie 3 Programmation linéaire - Introduction
Terminologie de base en PL (suite) 0 Pas de solution maimiser Z 3 4 s. c. 5 0, 0 5 Une infinité de solutions optimales Objectif non borné maimiser Z 3 4 5 s. c. 0, 0 5 maimiser Z 4 s. c. 0, 0 RCP0 Partie 3 Programmation linéaire - Introduction
. Modélisation de problèmes Eemple : horaire de personnel Chaque jour est divisé en périodes On a pu estimer un nombre minimum d employés (MinEmp) devant être affectés durant chaque période Chaque jour est divisé en quarts de travail de 8 heures Plusieurs quarts partagent une même période Chaque quart de travail eige un salaire particulier Combien d employés doit-on affecter à chaque quart de travail de façon à minimiser le total des salaires versés, en respectant le nombre minimum d employés pour chaque période? RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : données du problème RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : modèle 3 j : nombre d employés affectés au quart j Objectif : Minimiser Z = 70 + 60 + 75 3 + 80 4 + 95 5 Pour chaque période, le nombre d employés affectés au différents quarts doit couvrir le minimum d employés requis pour cette période Eemple, période de 4h à 6h : + 3 64 RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : modèle détaillé 87 65 79 48 95 80 75 60 70 minimiser 3 5 4 3 Z 4,,3,4,5 0, 5 5 8 43 73 64 87 c. s. 5 5 4 4 4 3 4 3 3 3 j j RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : modèle 5 79 65 Cette dernière contrainte est donc redondante et peut être enlevée 3 4 8 3 4 73 Même observation avec cette contrainte sont aussi redondantes mais il n y a aucun intérêt à 0, 4 0, 5 0 les éliminer : prise en compte implicite dans le processus de résolution Solution optimale (obtenue par le solveur d Ecel) : ( 5,, 3, 4, ) (48,3,39,43,5) Problème : le nombre d employés doit toujours être entier, donc l hypothèse de non-divisibilité n est pas prise en compte dans le modèle (bien que la solution optimale dans ce cas particulier soit entière) (cf. PLNE) RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : un réseau de distribution 6 Deu usines (U, U) Un centre de distribution (CD) Deu entrepôts (E, E) Chaque usine confectionne un certain nombre d unités d un même produit (offre) Chaque entrepôt requiert un certain nombre d unités de ce même produit (demande) Sur chaque lien (arc) du réseau, il y a un coût de transport par unité de produit (coût unitaire) Sur certains arcs, il y a une capacité sur le nombre d unités transportées Objectif : minimiser le coût de transport total RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : données du problème 7 50 unités produites U 900 /unité E 30 unités requises 400 /unité 00 /unité [0] CD 00 /unité 300 /unité 300 /unité 00 /unité [80] 40 unités produites U E 60 unités requises RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : modèle 8 i,j = nombre d unités du produit transportées sur l arc (i, j) (entre les sommets i et j) Objectif (en centaines d ) : Minimiser Z Z 4 9 3 3 U, U U,CD U,E U,CD CD,E E,E Conservation du flot : en chaque sommet du réseau, é flot sortant = flot entrant Nombre d unités produites (usines) = Nombre d unités requises (entrepôt) Capacité (sur certains arcs) Eemple, pour l arc (U,U) : U,U 0 E,E Contraintes de non-négativité RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : modèle détaillé 9 minimiser Z U,U U,U s.c. U,U 0, U,U U,CD U,CD U,CD 4 U,CD 0, U,E U,E U,E 9 0, U,E U,CD U,CD U,CD 3 U,CD 0, CD,E CD,E CD,E CD,E 0, 3 E,E E,E E,E E,E 0, E,E E,E E,E E,E 50 40 0 30 60 0 RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple : conclusions 0 C est un problème de flot à coût minimum (ou problème de transport) Solution optimale : ( E U, U, U,CD, U,E, U,CD, CD,E, E,E, E, ) (0,40,0,40,80,0,0) Le nombre d unités transportées doit toujours être une valeur entière, donc l hypothèse de non-divisibilité semble ne pas être satisfaite dans ce modèle mais : Pour un problème de flot à coût minimum (dont les paramètres sont entiers), il eiste toujours une solution optimale entière (on peut le prouver) Confirmation de ce résultat dans ce cas particulier RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Eemple 3 : Composition d aliments pour le bétail (eercice) On désire déterminer la composition, à coût minimal, d un aliment pour bétail qui est obtenu en mélangeant au plus trois produits bruts : orge, arachide, sésame. L aliment ainsi conditionné devra comporter au moins % de protéines et 3,6% de graisses, pour se conformer au eigences de la clientèle. On a indiqué ci-dessous les pourcentages de protéines et de graisses contenus, respectivement, dans l orge, les arachides et le sésame, ainsi que le coût par tonne de chacun des produits bruts : Produit brut j= j= j=3 Pourcentage ORGE ARACHIDES SESAME requis Pourcentage de protéines % 5% 4% % Pourcentage de graisses % % 0% 3,60% Coût par tonne 5 4 39 On notera j (j =,,3) la fraction de tonne de produit brut j contenu dans une tonne d aliment. Formuler le problème algébriquement. Montrer qu il est possible de réduire la dimension du problème en éliminant. Résoudre graphiquement ce problème. RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Modèle général de PL m ressources (3 usines) n activités ( produits) j : niveau de l activité j (tau de production du produit j) Mesure de performance globale (profit total) : Z Accroissement de Z résultant de l augmentation d une unité du niveau de l activité j : c j Quantité disponible de la ressource i : b i Quantité de ressource i consommée par l activité j : a ij RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
Modèle général de PL (suite) Contraintes fonctionnelles Maimiser Objectif n n n n b a a a c c c Z 3 0, 0, 0, Contraintes de non négativité n m n mn m m n n n n b a a a b a a a b a a a RCP0 Partie 3 Programmation linéaire Modélisation de problèmes
3. Première utilisation d un solveur 4 Résoudre le PL servant d eemple à l aide du solveur d Ecel Bouton Office (rond), Options Ecel, Compléments, Complément Solveur, puis cocher solver dans le menu Gérer complément ecel, enfin le solver se trouve dans le menu général Données) Maimiser Z 3 5 4 sous les contrainte s 3 0, 8 0 RCP0 Partie 3 Programmation linéaire Utilisation d un solveur
4. Résolution graphique : un problème à deu variables 4 5 3 Maimiser Z 5 0 0, 8 3 c. s. RCP0 Partie 3 Programmation linéaire Résolution graphique
Résolution graphique (suite) 6 RCP0 Partie 3 Programmation linéaire Résolution graphique
Méthode graphique (résumé) 7 Tracer les droites correspondant au contraintes Déterminer le domaine réalisable en vérifiant le sens des inégalités pour chaque contrainte Tracer les droites correspondant à la variation de l objectif 3 Dans l eemple : Z 5 5 Ordonnée à l origine (dépend de la valeur de Z) : Z Pente (coeff. directeur) : 3 5 5 Maimiser correspond donc à augmenter Z 3 On balaie le domaine réalisable (région admissible) à l aide de la famille de droites parallèle, toutes de pente -3/5, de sorte à maimiser (ou minimiser selon le cas) l ordonnée à l origine. On s arrête au dernier point etrême du domaine réalisable ayant une intersection non vide avec l une des droites de la famille, il s agit de l optimum du problème. Mais : uniquement pour les modèles à deu variables Plus de deu variables : méthode du simplee 5 Z RCP0 Partie 3 Programmation linéaire Résolution graphique