Exemple d un modèle de PL IFT1575 Modèles de recherche opérationnelle (RO). Programmation linéaire a. modélisation Données du problème (Wyndor Glass, sec..1 H&L): Deux types de produits (produit 1, produit ) Trois usines (usine 1, usine, usine ) Capacité de production pour chaque usine (par semaine) Profit par lot (0 unités) de chaque produit Usine 1 Usine Usine Profit($)/lot Produit 1 (tps de production, h/lot) 1 0 000 Produit (tps de production, h/lot) 0 5000 Capacité de production (h) Programmation linéaire, modélisation 4 1 18 Programmation linéaire (PL) Problème classique de planification : affecter des ressources limitées à plusieurs activités concurrentes Programme = Plan (solution de ce problème) Programmation mathématique (RO) Programmation informatique Fonction linéaire: fonction dans laquelle chaque variable évolue linéairement f(x 1, x,, x n ) = c 1 x 1 + c x + + c n x n Programme linéaire = Programme mathématique dans lequel toutes les fonctions sont linéaires Exemple d un modèle de PL (suite) Chaque lot du produit 1 () est le résultat combiné de la production aux usines 1 et ( et ) Énoncé du problème: Déterminer le taux de production pour chaque produit (nombre de lots/semaine) de façon à maximiser le profit total Variables de décision: x 1 = nombre de lots du produit 1 x = nombre de lots du produit Fonction objectif: z = profit total z = x 1 + 5 x (profit total en milliers de $) Maximiser z Programmation linéaire, modélisation Programmation linéaire, modélisation 4 1
Exemple d un modèle de PL (suite) Résolution graphique Contraintes de capacité de production x 1 4 (usine 1) x 1 (usine ) x 1 + x 18 (usine ) Contraintes de non négativité x 1 0, x 0 (nombre d unités produites 0) Programmation linéaire, modélisation 5 Programmation linéaire, modélisation 7 Exemple d un modèle de PL (suite) Résolution graphique (suite) Maximiser z = x 1 + 5 x sous les contraintes: x 1 4 (usine 1) x 1 1 (usine ) x 1 + x 18 (usine ) x 1 0, x 0 (contraintes de non négativité) Programmation linéaire, modélisation 6 Programmation linéaire, modélisation 8
Méthode graphique Tracer les droites correspondant aux 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 Dans l exemple: z = x 1 + 5x x = -(/5) x 1 + (1/5) z Ordonnée à l origine (dépend de la valeur de z): (1/5) z Pente: - /5 Maximiser: augmenter z Faire cet exemple avec le IOR Tutorial Excel Solver: conseils d utilisation Entrer d abord les données Les identifier clairement avec des noms d intervalles Entrer chaque donnée dans une seule cellule (ne pas répéter la même donnée dans plusieurs formules) Utiliser des couleurs et des bordures pour distinguer les différents types de cellules: Cellules données Cellules variables Cellules résultats Cellule cible (objectif) Lire sec..6 (H&L) et chap. 1 (CD) Programmation linéaire, modélisation 9 Programmation linéaire, modélisation 11 Méthode graphique (suite) Autre exemple dans le OR Tutor Voir aussi Worked Examples chap. (CD) Uniquement pour les modèles à deux variables Plus de deux variables: méthode du simplexe Logiciels proposant la méthode du simplexe: Excel Solver LINDO (CD) CPLEX (CD) Problème Wyndor Glass avec Excel Solver Modèle général de PL m ressources ( usines) n activités ( produits) Niveau de l activité j (taux de production du produit j): x 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 Programmation linéaire, modélisation 10 Programmation linéaire, modélisation 1
Modèle général de PL (suite) Objectif Maximiser z = c 1 x 1 + c x + + c n x n Contraintes fonctionnelles a 11 x 1 + a 1 x + + a 1n x n b 1 a 1 x 1 + a x + + a n x n b a m1 x 1 + a m x + + a mn x n b m Contraintes de non négativité x 1 0, x 0,, x n 0 Terminologie de base en PL Solution réalisable: solution pour laquelle toutes les contraintes sont satisfaites: domaine réalisable Solution non réalisable: solution pour laquelle au moins une contrainte est violée: 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 Programmation linéaire, modélisation 1 Programmation linéaire, modélisation 15 Modèle général de PL (suite) Domaine réalisable vide On appelle ce modèle forme standard D autres formes sont possibles et définissent aussi des modèles de PL Minimiser au lieu de Maximiser: min f(x) = - max f(x), = dans certaines contraintes fonctionnelles au lieu de Certaines variables peuvent ne pas être forcées à être 0 x -4 x + 4 0 définir y = x + 4, y 0-10 x - 0 x + 10 8 définir y = x + 10, y 0 Programmation linéaire, modélisation 14 Programmation linéaire, modélisation 16 4
Objectif non borné Interprétation géométrique Point extrême du domaine réalisable : solution réalisable correspondant à un coin du domaine réalisable En deux dimensions, un coin est la rencontre de deux droites (ou plus) définies par les frontières des contraintes Théorème: Supposons qu un modèle de PL a un domaine réalisable non vide et borné; alors il existe au moins une solution optimale correspondant à un point extrême du domaine réalisable Programmation linéaire, modélisation 17 Programmation linéaire, modélisation 19 Infinité de solutions optimales Points extrêmes Programmation linéaire, modélisation 18 Programmation linéaire, modélisation 0 5
Hypothèses du modèle de PL Profit marginal croissant Proportionnalité : La contribution de chaque activité (variable) à la valeur de la fonction objectif est proportionnelle au niveau de cette activité (à la valeur de cette variable) La contribution de chaque activité au terme de gauche de chaque contrainte fonctionnelle est proportionnelle au niveau de cette activité Cas où cette hypothèse n est pas satisfaite: Coût fixe initial Profit marginal (profit par unité) croissant Profit marginal (profit par unité) décroissant Programmation linéaire, modélisation 1 Programmation linéaire, modélisation Coût fixe initial Profit marginal décroissant Programmation linéaire, modélisation Programmation linéaire, modélisation 4 6
Hypothèses du modèle de PL (suite) Additivité : La fonction objectif est composée de la somme des contributions individuelles de chaque activité Le terme de gauche de chaque contrainte fonctionnelle est composé de la somme des contributions individuelles de chaque activité L additivité interdit les termes de la forme x 1 x La proportionnalité interdisait déjà les termes de la forme x L L>1 Dans ces deux cas, nous avons un modèle de programmation non linéaire (voir Section 7) Hypothèses du modèle de PL (suite) Certitude : les valeurs affectées à chaque paramètre sont des constantes connues avec certitude Rappelons que le modèle est une représentation idéalisée du problème: cette hypothèse peut être fort éloignée de la réalité! Que faire dans ce cas? Analyse de sensibilité : vérifier la sensibilité du modèle à des changements de valeurs des paramètres Introduction de variables aléatoires (voir Section 5) Programmation linéaire, modélisation 5 Programmation linéaire, modélisation 7 Hypothèses du modèle de PL (suite) Divisibilité : chaque variable de décision peut prendre des valeurs non entières Dans l exemple Wyndor Glass, chaque variable représente un nombre de lots de chaque produit et nous admettons des fractions de lots Si nous imposons des variables à valeurs entières, nous obtenons un modèle de programmation en nombres entiers (voir Section 4) Exemple 1: 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 exige 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? Programmation linéaire, modélisation 6 Programmation linéaire, modélisation 8 7
Exemple 1: données du problème Exemple 1: modèle détaillé Période 6-8 8-10 10-1 1-14 14-16 16-18 18-0 0- -4 0-6 Salaire Quart 1 170 Quart 160 Quart 175 Quart 4 180 Quart 5 195 MinEmp 48 79 65 87 64 7 8 4 5 15 Minimiser Z = 170 x 1 + 160 x x + x 1 1 4 x + x x 1 + x x 1 48 + x x + x x + x x + x x + x 5 4 4 + 175 x 79 65 87 64 7 8 x 4 4 5 x 5 15 x j 0, j = 1,,,4,5 + 180 x 4 + 195 x 5 Programmation linéaire, modélisation 9 Programmation linéaire, modélisation 1 Exemple 1: modèle x j = nombre d employés affectés au quart j Objectif: Minimiser z = 170 x 1 + 160 x + 175 x + 180 x 4 + 195 x 5 Pour chaque période, le nombre d employés affectés aux différents quarts doit couvrir le minimum d employés requis pour cette période Exemple, période de 14h à 16h: X + x 64 Exemple 1: conclusions x 1 + x 79 x 1 + x 65 : cette dernière contrainte est donc redondante et peut être éliminée x + x 4 8 x + x 4 7 : même observation avec cette contrainte x 1 0, x 4 0, x 5 0 sont aussi redondantes mais il n y a aucun intérêt à les éliminer Solution optimale (obtenue par Excel Solver, voir Spreadsheets\Chapter \Union Airways.xls): (x 1, x, x, x 4, x 5 ) = (48, 1, 9, 4, 15) Problème: le nombre d employés doit toujours être entier, donc l hypothèse de divisibilité n est pas satisfaite dans le modèle (bien que la solution optimale dans ce cas particulier soit entière) Programmation linéaire, modélisation 0 Programmation linéaire, modélisation 8
Exemple : réseau de distribution Deux usines (U1,U) Un centre de distribution (CD) Deux entrepôts (E1,E) Chaque usine manufacture 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 Exemple : modèle x i,j = nombre d unités du produit transportées sur l arc (i,j) (entre les sommets i et j) Objectif (en centaines de $): Minimiser z = x U1,U + 4 x U1,CD + 9 x U1,E1 + x U,CD + x CD,E + x E1,E + x E,E1 Conservation du flot: en chaque sommet du réseau, flot sortant flot entrant = nombre d unités produites (usine) -nombre d unités requises (entrepôt) 0 (CD) Capacité (sur certains arcs) Exemple, pour l arc (U 1,U ): x U1,U 10 Contraintes de non négativité Programmation linéaire, modélisation Programmation linéaire, modélisation 5 Exemple : données du problème Exemple : modèle détaillé Minimiser z = x U1,U + 4 x U1,CD + 9 x U1,E1 + x U,CD + x CD,E + x E1,E + x E,E1 sous les contraintes: x U1,U + x U1,CD + x U1,E1 = 50 -x U1,U + x U,CD = 40 - x U1,CD - x U,CD + x CD,E = 0 - x U1,E1 + x E1,E - x E,E1 = - 0 - x CD,E - x E1,E + x E,E1 = - 60 x U1,U 10, x CD,E 80 x U1,U 0, x U1,CD 0, x U1,E1 0, x U,CD 0, x CD,E 0 x E1,E 0, x E,E1 0 Programmation linéaire, modélisation 4 Programmation linéaire, modélisation 6 9
Exemple : conclusions Modéliser et résoudre avec Excel Solver C est un problème de flot à coût minimum (voir Section ; autre exemple: Worked Examples chap. ) Solution optimale: (x U1,U, x U1,CD, x U1, E1, x U, CD, x CD, E, x E1, E, x E, E1 ) = (0,40,10,40,80,0,0) Le nombre d unités transportées doit toujours être une valeur entière, donc l hypothèse de divisibilité n est pas satisfaite dans ce modèle Dans ce cas particulier, la solution est entière Pour un problème de flot à coût minimum (avec paramètres à valeurs entières), il existe toujours une solution optimale entière Exemple : premier modèle y i = nombre de livres/semaine du type de mélange i z ij = proportion du matériau j dans le mélange i Avec ces variables, il est facile de modéliser l objectif et les contraintes de composition Mais qu en est-il des contraintes de limite sur le nombre de livres disponibles de chaque matériau? Nombre de livres du matériau j par semaine: z Aj y A + z Bj y B + z Cj y j Limite de 000 livres du matériau 1 par semaine: z Aj y A + z Bj y B + z Cj y j 000 Problème : fonction non linéaire (hypothèse d additivité violée) Programmation linéaire, modélisation 7 Programmation linéaire, modélisation 9 Exemple : problème de mélange Quatre matériaux de base (1,,,4) Trois types de mélange (A,B,C) Pour chaque type de mélange: Profit/livre = prix de vente/livre - coût de production/livre Contraintes de composition (exemple, dans le mélange B: pas plus de 50% du matériau 1; pas moins de 10% de matériau ; exactement 10% du matériau 4) Pour chaque matériau: Limite sur le nombre de livres disponibles/semaine Coût de traitement/livre Au moins la moitié de la limite disponible doit être traitée Coût de traitement total = 0 000 $/semaine Objectif: maximiser le profit total/semaine Programmation linéaire, modélisation 8 Exemple : deuxième modèle x ij = nombre de livres/semaine du matériau j entrant dans la composition du type de mélange i Nombre de livres du matériau j par semaine: x Aj + x Bj + x Cj Nombre de livres du mélange i par semaine: x ji + x j + x j + x j4 Proportion du matériau j dans le mélange i : x ij / (x ji + x j + x j + x j4 ) Cette fonction aussi est non linéaire! Que faire?... Programmation linéaire, modélisation 40 10
Exemple : deuxième modèle (suite) Pas plus de 50% du matériau 1 dans le mélange B: x B1 / (x B1 + x B + x B + x B4 ) 0.5 Il est facile de rendre cette contrainte linéaire: x B1 0.5 (x B1 + x B + x B + x B4 ) Ou encore: 0.5 x B1-0.5 x B - 0.5 x B - 0.5 x B4 0 Voir l exemple complet p. 5-56 H&L Voir aussi la résolution par Excel Solver (Spreadsheets\Chapter \Save-It.xls) Autre exemple de problème de mélange dans les Worked Examples chap. Programmation linéaire, modélisation 41 Modélisation en PL: conclusions Bien lire l énoncé du problème: Identifier clairement les données Attention aux unités de mesure! Définir les variables: Vérifier que l objectif et toutes les contraintes peuvent être représentées avec ces variables Vérifier que l objectif et les termes de gauche des contraintes fonctionnelles sont bien linéaires (proportionnalité et additivité) Définir l objectif et toutes les contraintes (fonctionnelles et de non négativité); possibilité d éliminer les contraintes fonctionnelles redondantes Voir sec..4 H&L (Spreadsheets\Chapter ) Programmation linéaire, modélisation 4 11