• Aucun résultat trouvé

1 Programmation linéaire (PL) Exemple d’un modèle de PL (suite) 2. Programmation linéairea. modélisation Exemple d’un modèle de PL

N/A
N/A
Protected

Academic year: 2022

Partager "1 Programmation linéaire (PL) Exemple d’un modèle de PL (suite) 2. Programmation linéairea. modélisation Exemple d’un modèle de PL"

Copied!
11
0
0

Texte intégral

(1)

IFT1575 Modèles de recherche opérationnelle (RO)

2. Programmation linéaire a. modélisation

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(x1, x2, …, xn) = c1 x1 + c2x2+ … + cnxn

Programme linéaire = Programme mathématique dans lequel toutes les fonctions sont linéaires

Programmation linéaire, modélisation 3

IFT 1575 Professeur B. Jaumard

Exemple d’un modèle de PL

Données du problème (Wyndor Glass, sec. 3.1 H&L):

Deux types de produits (produit 1, produit 2)

Trois usines (usine 1, usine 2, usine 3)

Capacité de production pour chaque usine (par semaine)

Profit par lot (20 unités) de chaque produit

5000 3000

Profit($)/lot

18 2

3 Usine 3

12 2

0 Usine 2

4 0

1 Usine 1

Capacité de production (h) Produit 2 (tps

de production, h/lot) Produit 1 (tps de production,

h/lot)

Exemple d’un modèle de PL (suite)

Chaque lot du produit 1 (2) est le résultat combiné de la production aux usines 1 et 3 (2 et 3)

É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:

x1 = nombre de lots du produit 1

x2 = nombre de lots du produit 2

Fonction objectif:

z = profit total

z= 3 x1+ 5 x2 (profit total en milliers de $)

Maximiser z

(2)

Programmation linéaire, modélisation 5 IFT 1575

Professeur B. Jaumard

Exemple d’un modèle de PL (suite)

Contraintes de capacité de production

x1≤ 4 (usine 1)

2 x2≤ 12 (usine 2)

3 x1+ 2 x2≤ 18 (usine 3)

Contraintes de non négativité

x1≥ 0, x2≥ 0 (nombre d’unités produites ≥ 0)

Exemple d’un modèle de PL (suite)

Maximiser z = 3 x

1

+ 5 x

2

sous les contraintes:

x1 ≤≤≤≤ 4 (usine 1)

2 x1 ≤≤≤≤ 12 (usine 2) 3 x1+ 2 x2≤≤≤≤ 18 (usine 3)

x1≥ 0, x2≥ 0 (contraintes de non négativité)

Programmation linéaire, modélisation 7

IFT 1575 Professeur B. Jaumard

Résolution graphique

Résolution graphique (suite)

(3)

Programmation linéaire, modélisation 9 IFT 1575

Professeur B. Jaumard

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 = 3x1+ 5x2 x2= -(3/5) x1 + (1/5) z

Ordonnée à l’origine (dépend de la valeur de z): (1/5) z

Pente: -3/5

Maximiser: augmenter z

Faire cet exemple avec le IOR Tutorial

Méthode graphique (suite)

Autre exemple dans le OR Tutor

Voir aussi Worked Exampleschap. 3 (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 Glassavec Excel Solver

Programmation linéaire, modélisation 11

IFT 1575 Professeur B. Jaumard

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. 3.6 (H&L) et chap. 21 (CD)

Modèle général de PL

mressources (3 usines)

nactivités (2 produits)

Niveau de l’activitéj(taux de production du produit j): xj

Mesure de performance globale (profit total): z

Accroissement de zrésultant de l’augmentation d’une unité du niveau de l’activitéj: cj

Quantité disponible de la ressource i: bi

Quantité de ressource iconsommée par l’activitéj: aij

(4)

Programmation linéaire, modélisation 13 IFT 1575

Professeur B. Jaumard

Modèle général de PL (suite)

Objectif

Maximiser z = c1 x1 + c2x2+ … + cnxn

Contraintes fonctionnelles

a11x1+ a12x2 + … + a1nxn ≤ b1 a21x1+ a22x2 + … + a2nxn ≤ b2

am1x1+ am2x2 + … + amnxn ≤ bm

Contraintes de non négativité x1≥ 0, x2≥ 0, …, xn≥ 0

Modèle général de PL (suite)

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 ≤ -2 0 ≤ x + 10 ≤ 8 définir y = x + 10, y ≥ 0

Programmation linéaire, modélisation 15

IFT 1575 Professeur B. Jaumard

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

Domaine réalisable vide

(5)

Programmation linéaire, modélisation 17 IFT 1575

Professeur B. Jaumard

Objectif non borné

Infinité de solutions optimales

Programmation linéaire, modélisation 19

IFT 1575 Professeur B. Jaumard

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

Points extrêmes

(6)

Programmation linéaire, modélisation 21 IFT 1575

Professeur B. Jaumard

Hypothèses du modèle de PL

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

Coût fixe initial

Programmation linéaire, modélisation 23

IFT 1575 Professeur B. Jaumard

Profit marginal croissant

Profit marginal décroissant

(7)

Programmation linéaire, modélisation 25 IFT 1575

Professeur B. Jaumard

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 x1x2

La proportionnalité interdisait déjà les termes de la forme xLL>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)

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)

Programmation linéaire, modélisation 27

IFT 1575 Professeur B. Jaumard

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)

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 travailde 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 ?

(8)

Programmation linéaire, modélisation 29 IFT 1575

Professeur B. Jaumard

Exemple 1: données du problème

195 180 175 160 170 Salaire

15

× 0-6

52

×

× 22-24

43

× 20-22

82

×

× 18-20

73

×

× 16-18

64

×

× 14-16

87

×

×

× 12-14

65

×

× 10-12

79

×

× 8-10

48

× 6-8

MinEmp Quart 5 Quart 4 Quart 3 Quart 2 Quart 1 Période

Exemple 1: modèle

xj= nombre d’employés affectés au quart j

Objectif:

Minimiser z = 170 x1+ 160 x2 + 175 x3+ 180 x4+ 195 x5

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:

X2+ x3≥ 64

Programmation linéaire, modélisation 31

IFT 1575 Professeur B. Jaumard

Exemple 1: modèle détaillé

5 , 4 , 3 , 2 , 1 , 0

15 52 43

82 73 64 87 65 79 48

195 180 175 160 170 Minimiser

5 5 4

4 4 3

4 3

3 2

3 2 1

2 1

2 1

1

5 4 3 2 1

=

+

+

+

+

+ +

+

+

+ + + +

=

j x

x x x

x x x

x x

x x

x x x

x x

x x

x

x x x x x Z

j

Exemple 1: conclusions

x1+ x2 ≥ 79 x1+ x2 ≥ 65 : cette dernière contrainte est donc redondanteet peut être éliminée

x3+ x4 ≥ 82 ⇒ x3+ x4 ≥ 73 : même observation avec cette contrainte

x1≥ 0, x4≥ 0, x5≥ 0 sont aussi redondantes mais il n’y a aucun intérêt à les éliminer

Solution optimale (obtenue par Excel Solver, voir Spreadsheets\Chapter 3\Union Airways.xls):

(x1, x2, x3, x4, x5) = (48, 31, 39, 43, 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 particuliersoit entière)

(9)

Programmation linéaire, modélisation 33 IFT 1575

Professeur B. Jaumard

Exemple 2: réseau de distribution

Deux usines (U1,U2)

Un centre de distribution (CD)

Deux entrepôts (E1,E2)

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 2: données du problème

Programmation linéaire, modélisation 35

IFT 1575 Professeur B. Jaumard

Exemple 2: modèle

xi,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 = 2 xU1,U2+ 4 xU1,CD+ 9 xU1,E1+ 3 xU2,CD+ xCD,E2+ 3 xE1,E2+ 2 xE2,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 (U1,U2):xU1,U2≤ 10

Contraintes de non négativité

Exemple 2 : modèle détaillé

Minimiser z = 2 x

U1,U2

+ 4 x

U1,CD

+ 9 x

U1,E1

+ 3 x

U2,CD

+ x

CD,E2

+ 3 x

E1,E2

+ 2x

E2,E1

sous les contraintes:

xU1,U2+ xU1,CD+ xU1,E1 = 50

-xU1,U2 + xU2,CD = 40

- xU1,CD - xU2,CD+ xCD,E2 = 0

- xU1,E1 + xE1,E2- xE2,E1 = - 30

- xCD,E2 - xE1,E2+ xE2,E1 = - 60 xU1,U2 ≤ 10, xCD,E2≤ 80

xU1,U2 ≥ 0, xU1,CD≥ 0, xU1,E1≥ 0, xU2,CD≥ 0, xCD,E2≥ 0 xE1,E2≥ 0, xE2,E1 ≥ 0

(10)

Programmation linéaire, modélisation 37 IFT 1575

Professeur B. Jaumard

Exemple 2: conclusions

Modéliser et résoudre avec Excel Solver

C’est un problème de flot à coût minimum(voir Section 3;

autre exemple: Worked Exampleschap. 3)

Solution optimale:

(xU1,U2, xU1,CD, xU1, E1, xU2, CD, xCD, E2, xE1, E2, xE2, E1) = (0,40,10,40,80,0,20)

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 3: problème de mélange

Quatre matériaux de base (1,2,3,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 2; 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 = 30 000 $/semaine Objectif: maximiser le profit total/semaine

Programmation linéaire, modélisation 39

IFT 1575 Professeur B. Jaumard

Exemple 3: premier modèle

yi= nombre de livres/semaine du type de mélange i

zij= proportion du matériauj 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 jpar semaine:

zAjyA+ zBjyB+ zCjyj

Limite de 3 000 livres du matériau 1 par semaine:

zAjyA+ zBjyB+ zCjyj ≤ 3000

Problème : fonction non linéaire (hypothèse d’additivité violée)

Exemple 3: 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

j2

+ x

j3

+ x

j4

Proportion du matériau j dans le mélange i : x

ij

/ (x

ji

+ x

j2

+ x

j3

+ x

j4

)

Cette fonction aussi est non linéaire! Que

(11)

Programmation linéaire, modélisation 41 IFT 1575

Professeur B. Jaumard

Exemple 3: deuxième modèle (suite)

Pas plus de 50% du matériau 1 dans le mélange B:

xB1/ (xB1+ xB2+ xB3+ xB4) ≤ 0.5

Il est facile de rendre cette contrainte linéaire:

xB1≤ 0.5 (xB1+ xB2+ xB3+ xB4)

Ou encore:

0.5 xB1- 0.5 xB2 - 0.5 xB3 - 0.5 xB4 ≤ 0

Voir l’exemple complet p. 52-56 H&L

Voir aussi la résolution par Excel Solver (Spreadsheets\Chapter 3\Save-It.xls)

Autre exemple de problème de mélange dans les Worked Exampleschap. 3

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 toutesles 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. 3.4 H&L (Spreadsheets\Chapter 3)

Références

Documents relatifs

[r]

– la valeur de chaque colonne du Select doit être stockée dans une variable réceptrice définie dans la partie Declare du bloc/. FETCH nomcurseur INTO liste_variables

Programmation en nombres entiers = Programmation linéaire avec certaines variables contraintes à prendre des valeurs entières?. Programmation non linéaire en nombres entiers =

Afin de déterminer si la solution est optimale, et dans la négative l’arc qui entrera dans la base, les variations de l’objectif sont calculées pour chaque arc hors-base :.. L’arc

Supposons toutefois que l'on possède l'information supplémentaire que, tel facteur parmi ceux qui sont définis par un paramètre quanti- tatif, a, pour chacun de ses

* Example base sur Baptiste Wicht, <b>"Implémentation du pattern MVC"</b>, * 24 Avril 2007 (derniere visite le 29 Janvier 2009)}. *

Informatiquement, on utilise donc la notion de liste ; l'objet à construire, appelé dans cet algorithme « classe » est déclaré à la ligne 3 dans la catégorie « liste » et,

Excel Solver permet deux types de contraintes particulières pour modéliser les variables entières :. bin : pour représenter les