Vous êtes sur la page 1sur 25

2-656 MDRO - SANCE 3

INTRODUCTION LA PROGRAMMATION
LINAIRE

Dans cette sance nous introduirons un des outils les plus puissants et les plus utiliss
de la recherche oprationnelle: la programmation linaire.
l'aide de deux exemples nous verrons:

Comment modliser un programme linaire dans Excel

Les principes de base de la programmation linaire et comment crire le modle


mathmatique correspondant un programme linaire

Comment rsoudre graphiquement un programme linaire 2 variables

Comment rsoudre un programme linaire l'aide du Solveur d'Excel

1 - INTRODUCTION LA MODLISATION D'UN PROGRAMME


LINAIRE L'AIDE D'EXCEL
(cf. Exemple 3.1 Choix de production chez Monets, W&A Sec. 3.3, pp.69-78)

Cie Monet produit 4 types de cadres (pour photos ou posters) cods 1, 2, 3 et 4

Les 4 modles diffrent en taille, forme et types de matriaux utiliss

Chaque modle requiert pour sa fabrication certaines quantits des 3 types de ressources
suivantes :

Main duvre

Mtal

Verre

Types de cadres
Heures de main
d'uvre
Qt de mtal (oz/
cadre)
Qt de verre
(oz/cadre)
Prix de vente unitaire

6
$28,50

2
$12,50

1
$29,25

2
$21,50

La consommation de chacune de ces ressources implique des cots

Salaire horaire
Cot du mtal ($/oz)
Cot du verre ($/oz)

$8,00
$0,50
$0,75

Prix de vente pour chaque type de cadre


Profit unitaire pour chacun
P.ex. Cadre type 1 Profit unitaire = prix cot des ressources
= 28,50 ( 2h * 8 $/h + 4 oz * 0,50 $/oz + 6 oz * 0,75 $/oz)
=6$

La demande pour chacun des types de cadres est limite

Ventes maximales

1000

2000

500

1000

Question :
Quelle quantit de chaque type de cadre devrait-on produire afin de maximiser les
profits ?

Construisons le modle Excel de Monet


Conseil :
Pour faciliter la construction, linterprtation et le dbuggage dun modle Excel
suivre une convention de prsentation cohrente et systmatique, par exemple :

Colonnes dcisions (variables)

Lignes activits de production ou

ex. : quantits produire de chaque type de cadre


ressources consommes

(c.f. fig. 3.1, p.73, et fichier Monet.xls sur le site)


Pour construire le modle Excel de Monet on procdera comme suit:
1. Dfinir les variables du modle (les dcisions sur lesquelles on peut agir !)
Qt produite de chaque type de cadre Plan de production
2. Calculer les consquences physiques:
Utilisation des ressources = Somme ( Qts produites Besoins unitaires du produit)
Truc Excel : Fonction SOMMEPROD

produit scalaire pour matrices/vecteurs de tailles compatibles

multiplie entre eux les lments correspondants des vecteurs puis additionne ces
produits !

renvoie un nombre

Rem : Faire rfrence globale pour cellules des Qts ( en utilisant la fonction F4)
Copier et coller plus facile pour chaque type de pices
3. Calculer les consquences conomiques pour obtenir les Profits
Revenus = Somme ( Qts Prix de vente unitaire )
Cots

main duvre, mtal, verre

Profits = Revenus Somme (Cots)

Question : Quelle sera la 1re ressource manquer ?


Truc : Utiliser loutil Valeur Cible (Goal Seek en anglais)
Rem : tester par essai et erreur tous les plans de productions possibles ne serai vraiment
pas efficace mieux vaut utiliser la puissance de calcul de lordinateur pour effectuer ces
essais bref, utiliser le SOLVEUR dExcel du coup on aura la GARANTIE davoir
obtenu la solution OPTIMALE au problme.

2 PROGRAMMATION LINAIRE
Dans lexemple de Monet on a vu que certains plans de production navaient aucun sens, par
exemple ceux qui utilisaient plus de ressources que disponible. Pour viter a on va formuler des
Programmes Linaires avec nos variables de dcisions

(Modles mathmatiques)

Quest-ce que la programmation linaire ?

Outil mathmatique qui sert trouver la solution optimale dun problme compte tenu
dun ensemble de conditions contraignantes.

Applications:

dterminer le nombre optimal de machines.

tablir lhoraire de dpart des avions, trains,

dvelopper des plans financiers

trouver la meilleure combinaison de matires premires afin de respecter des


exigences sur le produit fini.

Programme linaire (PL) comprend :

Variables de dcision : reprsentent les dcisions prendre, ce sont les aspects du


problme rel sur lesquelles on peut agir directement (ex. qts produire, etc)

Contraintes

Relations liant les variables de dcision entre elles

Elles restreignent les V.Dcision prendre uniquement des valeurs qui ont du sens par
rapport au problme rel tudi

Elles peuvent tre nombreuses

Elles doivent tre linaires

Utilisation/consommation de Mtal Quantit disponible

Ex :

Si on avait eu un contrat avec un distributeur pour lui fournir au moins 1000 cadres du
type 2 alors on aurait eu la contrainte suivante
Qt type 2 1000

Fonction objectif (cest une fonction des variables de dcision)

Mesure de performance choisie pour dterminer la meilleure solution

On va maximiser ou minimiser cette fonction (selon ce quelle mesure)

1 seule dans un modle PL


Ex :

PL

Max Profits

ou

Min Cots

allouer des ressources limites (c--d. en respectant des ``contraintes)


afin doptimiser une certaine fonction objectif.

Pourquoi les modles linaires sont ils importants?

Une grande varit de problmes sont naturellement modliss avec la formulation


linaire et dautres peuvent facilement tre approxims par cette structure.

Il existe des techniques trs efficaces de rsolution pour ces modles (algorithme du
simplexe)

Les rsultats obtenus aprs rsolution du modle fournissent des informations sur la
sensibilit de la solution optimale par rapport des changements dans les paramtres ou
les coefficients du problme.

Conditions pour avoir un Programme Linaire (PL) :


1) Une fonction objectif Maximiser ou Minimiser
2) La fonction objectif et les contraintes sont des sommes de termes linaires:
i) pas de produits ou divisions entre variables
ii) pas de fonctions mathmatiques, c--d. exposants, valeurs absolues, logarithmes,
etc)
iii) pas de conditions logiques, fonctions SI
3) Contraintes de Non Ngativit pour chaque variable de dcision
4) Il ny a aucune ingalit stricte (pas de < ou de > )

Remarque : sil y a des cots fixes mais quils ne sont pas influencs par les dcisions alors il ne
sert rien de les inclure dans le modle en tenir compte uniquement pour le calcul final de la
valeur de la fonction objectif

2.1 Formulons le PL de Monet (W&A p.70)

1. Dfinir les variables de dcision :


X1, X2, X3, X4 : quantit produite de cadres de type 1, 2, 3 et 4 respectivement
2. Contraintes :
Ressources
X2 + 3 X3 + 2 X4 4000

Main duvre

2 X1 +

Mtal

4 X1 + 2 X2 + X3 + 2 X4 6000

Verre

6 X1 + 2 X2 + X3 + 2 X4 10000

Demande
Nb Max cadres type 1

X1 1000

Nb Max cadres type 2

X2 2000

Nb Max cadres type 3

X3

Nb Max cadres type 4

X4 1000

500

Rem. :
A. Dans une contrainte toutes les variables sont places du ct GAUCHE de la relation
(convention dcriture)
B. Le ct DROIT est souvent appel Membre de droite ou ``Right Hand Side (RHS) en
anglais. Il contient

un nombre qui est un paramtre du modle (connu lavance et sur lequel on


na pas vraiment de contrle direct)

reprsente la limite de la ressource correspondant cette contrainte

ne pas y inscrire une formule utilisant les variables de dcision car alors il y
aura des problmes d'interprtation avec les rapports que fournit le Solveur

ET si ncessaire
3. Contraintes de non ngativit
X1 0,
4.

X2 0,

X3 0,

X4 0

Contraintes dintgralit (si besoin pour forcer les variables ne prendre que des
valeurs entires !)

5. Fonction objectif :
Max Z = Profits = 6 X1 + 2 X2 + 4 X3 + 3 X4
Note : les coefficients correspondent au profit unitaire de chaque type de cadre
Cadre 1 Prix de vente = 28,50$

Cot de MO = 2h x 8$/h = 16$


Cot du Mtal = 4oz x 0,50$/oz = 2$
Cot du Verre = 6oz x 0,75$/oz = 4,50$

Profit unitaire = Prix de vente Somme des cots = 28,50 ( 16 + 2 + 4,50) = 6 $


Etc.

2.2 Autre exemple le cas de PROTRAC (EGSMW pp.69-72)


Contexte :

Fabricant de machinerie lourde

Usine produit 2 modles de tracteurs

E9 travaux de construction
F9 exploitation forestire

E9

Profits unitaires

5000$

F9 4000$

Fabrication comporte 2 tapes


E9

F9

Atelier A

10h

15h

150h

Atelier B

20h

10h

160h

Tests vhicules

E9

Total Disponible

F9 10h

30h

Entente syndicale : le nombre dheures de tests ne peut baisser plus que 10% en dessous
de 150h

Politique de production : au moins un F9 de produit pour chaque trois E9 (ratio de


production minimum permis de 1/3)
On veut donc que le nombre minimum de F9 construits soit li au nombre de E9 produits.
Soit Nb E9 produits

Nb minimum de F9 permis 0

Ratio

1 /1

1/2

1/3

2/4

2/5

2/6

3/7

F/E

0/0

Commandes reues : au moins 5 vhicules (nimporte quelle combinaison de E9 et F9)


doivent tre produits pour respecter les ententes existantes.

Formulons le PL associ au problme de ProTrac


1. Dfinir les variables de dcision :
E : quantit de tracteurs E-9 produits
F : quantit de tracteurs F-9 produits
2. Contraintes :
Atelier A

10 E + 15 F 150

Atelier B

20 E + 10 F 160

Test

30 E + 10 F 135

Ratio E / F 3 E 3 F E 3 F 0
Commandes E + F 5
3. Contraintes de non ngativit
E 0 et F 0
4.

Contraintes dintgralit (si besoin pour forcer les variables ne prendre que des
valeurs entires !)

E et F entiers
5. Fonction objectif :
Max Z = Profits = 5000 E + 4000 F
ou crit en 1000$

Max Z = 5 E + 4 F

Modle PROTRAC
Max
s.l.c.

Z = 5000 E + 4000 F
s.l.c. = sous les contraintes

10 E + 15 F 150
20 E + 10 F 160
30 E + 10 F 135
E - 3F 0

Souvent appeles
contraintes technologiques

E + F 5
E, F 0 et entiers

contraintes de non ngativit


et intgralit

3 RSOLUTION D'UN PROGRAMME LINAIRE L'AIDE DU


SOLVEUR

Utilisation du Solveur dExcel (algorithme du Simplexe)

Exemple Monet

On procde comme suit:


1.

Aller dans le menu "Outils" et cliquer sur la rubrique "Solveur". Vous obtiendrez la fentre
suivante:

2.

Indiquer dans cette fentre la cellule contenant le calcul du profit (B39) et cliquer sur
Max.

3.

Indiquer les cellules contenant les variables du modle (B21:E21).

4.

Spcifier les cellules o se trouvent le membre gauche et droit de chaque contrainte de


mme que la relation entre les deux (<=, >=, =), cf. voir figure ci-dessous.

5.

Cliquer sur le bouton "Option". Vous obtiendrais alors la fentre suivante. Remplissez-l
en cochant les cases:
i) "Modle suppos linaire" pour indiquer au Solveur qu'il peut utiliser l'algorithme du
Simplexe
ii) "Suppos non-ngatif" pour indiquer au Solveur que toutes les variables doivent tre
non ngatives. Noter qu'avec ceci, il n'y a pas besoin de les inclure dans les contraintes
explicites du modle (cf. item 4 ci-dessus).
iii) "chelle automatique" afin que le Solveur ajuste les units des diffrentes valeurs
numriques (donnes du problme) de manire rduire les chances d'avoir des
problmes d'instabilit numrique (situation qui peut facilement se produire si parmi
les donnes du problme on retrouve de trs grandes valeurs en mme temps que des
trs petites.

6.

Cliquer ensuite sur le bouton "OK" puis dans la fentre prcdente sur le bouton
"Rsoudre".

7.

Aprs la rsolution du problme, le Solveur affiche le message suivant.

8.

On clique alors sur les rapports "Rponses" et "Sensibilit" afin que le Solveur les
imprime (voir fichier Excel de l'exemple Monet).

4 RSOLUTION GRAPHIQUE

(W&A Section 3.6, pp. 86-88)

Pour modles linaires 2 variables

Illustration sur lexemple de PROTRAC

On reprsentera le problme dans un plan cartsien

A chaque couple de valeurs des variables correspond un point dans la plan


Une SOLUTION

On trace les contraintes laide de droites associes


Remplacer lingalit par une galit

On dtermine ensuite le ct admissible de chaque droite (i.e. l o la contrainte est


respecte)

demi espace admissible !

cause des contraintes de non ngativit, seul le premier quadrant du plan est admissible

Dfinitions :

Rgion admissible (RA) : intersection des parties admissibles correspondant toutes les
contraintes
Zone o toutes les contraintes du problme sont satisfaites

Point admissible point (solution) qui est dans la rgion admissible

La construction de la RA se fait manuellement


(ou laide dun outil graphique comme GLP, cf. livre EGSMW )

Remarques :
1.

Les points sur les frontires de la RA (i.e. sur les droites associes) sont admissibles !

2.

En un point situ sur une des frontires de la RA (i.e. sur une des droites associes)
la contrainte associe est satisfaite galit
on dira quelle est active

3.

Les contraintes qui ne sont pas actives en un point donn sont dites inactives

4. Si une contrainte ne touche pas la RA ou y touche mais sans liminer de solutions admissibles
alors elle ne sert rien on dira quelle est redondante !

Recherche de la solution optimale :


0.

Tracer la Rgion admissible

1.

Tracer une courbe de niveau arbitraire pour la fonction objectif


droite associe fonction objectif = valeur donne

2.

Tracer une 2e courbe de niveau pour dterminer le sens de variation de la fonction objectif

3.

Reprer visuellement le point optimal

4.

Calculer les coordonnes du point optimal


rsoudre systme 2 quations 2 inconnues avec droites associes aux contraintes
actives en ce point

5. Calculer la valeur de la fonction objectif en ce point.


Exemple PROTRAC :

F
10

P a y o f f : 5 0 0 0 .0 E + 4 0 0 0 .0 F = 5 0 5 0 0 .0

9
8
3 : 3 0 .0 E + 1 0 .0 F = 1 3 5 .0

1 : 1 0 .0 E + 1 5 .0 F = 1 5 0 .0

6
5
2 : 2 0 .0 E + 1 0 .0 F = 1 6 0 .0

4
3
5:

1 .0 E +

1 .0 F =

5 .0
4:

1 .0 E -

3 .0 F =

0 .0

0
0

1 : 1 0 .0 E + 1 5 .0 F < = 1 5 0 .0
2 : 2 0 .0 E + 1 0 .0 F < = 1 6 0 .0
3 : 3 0 .0 E + 1 0 .0 F > = 1 3 5 .0
4 : 1 .0 E - 3 .0 F < = 0 .0
5:

1 .0 E +

1 .0 F > =

5 .0

Dfinitions :

Point intrieur : point admissible qui est strictement lintrieur de la RA (i.e. il ne


satisfait aucune contrainte galit)

Point frontire : point admissible satisfaisant une contrainte galit (i.e. il est sur la
frontire de la RA)

Point extrme : point admissible situ lintersection de 2 droites associes (ou plus)
satisfait 2 contraintes (ou plus) galit
coin de la RA

Thorme fondamental de la programmation linaire :


Sil existe au moins un point optimal (solution optimale) alors il existe un point extrme qui
est optimal aussi.

Illustration de l'algorithme du simplexe (pour la programmation linaire) :


En bref, l'algorithme du Simplexe exploite le thorme fondamental nonc ci-dessus. Il cherche
la solution optimale du problme linaire rsoudre en n'examinant que les points extrmes (les
coins de la rgion admissible.
1.

Il trouve d'abord une premire solution de coin, gnralement le point o les variables de
dcision sont toutes 0 (s'il est admissible).

2.

Puis il identifie quelle variable actuellement ayant une valeur de 0 donnera la plus grande
amlioration de la fonction objectif.

3.

Il se dplace le long de la frontire de la rgion admissible ainsi identifie jusqu'


atteindre le prochain coin de la rgion admissible (i.e. jusqu' ce qu'une des variables
actuellement strictement positives devienne gale 0).

4.

Il retourne en 2 pour trouver une nouvelle variable actuellement gale 0 qu'il serait
avantageux d'augmenter. S'il n'y en a pas, on s'arr

Remarque: l'efficacit du Simplexe vient du fait qu'on examine seulement les solutions de coin,
qui sont peu nombreuses par rapport l'ensemble de toutes les solutions admissibles. Pour une
illustration du parcours de l'algorithme du simplexe voir le fichier SimplexeA01.doc .

Changements dun membre de droite dune contrainte (RHS):


Si on change le membre de droite dune contrainte alors :

La frontire de la rgion admissible correspondant cette contrainte se dplace

Les coordonnes du point optimal changent en consquence

Attention, il se peut que le changement du membre de droite soit tel que la contrainte ne
soit plus active loptimum. Il faudra alors identifier quelle est la contrainte qui devient
active sa place avant de calculer les coordonnes de la nouvelle solution optimale.

F
10

P a y o f f : 5 0 0 0 .0 E + 4 0 0 0 .0 F = 6 3 3 3 3 .3

9
8
3 : 3 0 .0 E + 1 0 .0 F = 1 3 5 .0

1 : 1 0 .0 E + 1 5 .0 F = 1 5 0 .0

6
5
2 : 2 0 .0 E + 1 0 .0 F = 2 4 3 .2

4
3
5:

1 .0 E +

1 .0 F =

5 .0
4:

1 .0 E -

3 .0 F =

0 .0

0
0

1 : 1 0 .0 E
2 : 2 0 .0 E
3 : 3 0 .0 E
4 : 1 .0 E
5:

+ 1 5 .0 F
+ 1 0 .0 F
+ 1 0 .0 F
- 3 .0 F <

1 .0 E +

< = 1 5 0 .0
< = 2 4 3 .2
> = 1 3 5 .0
= 0 .0

1 .0 F > =

5 .0

Changements dans la fonction objectif:


Si on change un coefficient dans la fonction objectif, la Rgion Admissible reste pareille, mais la
pente des courbes de niveau change (et peut-tre aussi son sens de variation) !
la solution optimale peut changer dendroit (autre point extrme) !
Ex : on augmente de 4000 a 10000 le coefficient de F dans PROTRAC
F
10

P a y o f f : 5 0 0 0 .0 E + 1 0 0 0 0 .0 F = 9 7 5 0 0 .0

9
8
3 : 3 0 .0 E + 1 0 .0 F = 1 3 5 .0

1 : 1 0 .0 E + 1 5 .0 F = 1 5 0 .0

6
5
2 : 2 0 .0 E + 1 0 .0 F = 1 6 0 .0

4
3
5:

1 .0 E +

1 .0 F =

5 .0
4:

1 .0 E -

3 .0 F =

0 .0

0
0

1 : 1 0 .0 E + 1 5 .0 F < = 1 5 0 .0
2 : 2 0 .0 E + 1 0 .0 F < = 1 6 0 .0
3 : 3 0 .0 E + 1 0 .0 F > = 1 3 5 .0
4 : 1 .0 E - 3 .0 F < = 0 .0
5:

1 .0 E +

1 .0 F > =

5 .0

Ex : On change le coefficient de F a 7500


F
10

P a y o f f : 5 0 0 0 .0 E + 7 5 0 0 .0 F = 7 5 0 0 0 .0

9
8
3 : 3 0 .0 E + 1 0 .0 F = 1 3 5 .0

1 : 1 0 .0 E + 1 5 .0 F = 1 5 0 .0

6
5
2 : 2 0 .0 E + 1 0 .0 F = 1 6 0 .0

4
3
5:

1 .0 E +

1 .0 F =

5 .0
4:

1 .0 E -

3 .0 F =

0 .0

0
0

O p t im a l D e c is io n s ( E ,F ) : ( 4 .5 , 7 .0 ) ( 1 .5 , 9 .0 )
1 : 1 0 .0 E + 1 5 .0 F < = 1 5 0 .0
2 : 2 0 .0 E + 1 0 .0 F < = 1 6 0 .0
3 : 3 0 .0 E + 1 0 .0 F > = 1 3 5 .0
4 : 1 .0 E - 3 .0 F < = 0 .0
5:

1 .0 E +

1 .0 F > =

5 .0

Remarque : La droite associe la fonction objectif est parallle un des cts de la Rgion
admissible. Tous les points qui sont sur cette frontire ont donc la mme valeur de fonction
objectif il y a donc une infinit de solutions optimales !!!

Problme non ralisable:


Il se peut aussi que les contraintes du problme soient telles quil nexiste aucune solution
ralisable, on dira alors que la rgion admissible est vide et que le problme est non ralisable.
Ex :

E + F 5

Protrac o on chang la contrainte

E + F 5

par

F
10

P a y o f f : 5 0 0 0 .0 E + 1 0 0 0 0 .0 F = 9 7 5 0 0 .0

9
8
3 : 3 0 .0 E + 1 0 .0 F = 1 3 5 .0

1 : 1 0 .0 E + 1 5 .0 F = 1 5 0 .0

6
5
2 : 2 0 .0 E + 1 0 .0 F = 1 6 0 .0

4
3
5:

1 .0 E +

1 .0 F =

5 .0
4:

1 .0 E -

3 .0 F =

0 .0

0
0

1 : 1 0 .0 E + 1 5 .0 F < = 1 5 0 .0
2 : 2 0 .0 E + 1 0 .0 F < = 1 6 0 .0
3 : 3 0 .0 E + 1 0 .0 F > = 1 3 5 .0
4 : 1 .0 E - 3 .0 F < = 0 .0
5:

1 .0 E +

1 .0 F < =

5 .0

Problme non born:


Dans certains cas, les contraintes du modle font en sorte quon peut trouver des solutions
ralisables ayant une valeur de la fonction objectif arbitrairement grande (quand on
maximise ou petite quand on minimise). Un tel problme na pas de solution optimale.
On dira quil est non born.
Ex :

Protrac o on a oubli les 2 premires contraintes (Atelier A et B)

F
10

P a y o f f : 5 0 0 0 .0 E + 1 0 0 0 0 .0 F = 9 2 5 0 0 .0

9
8
3 : 3 0 .0 E + 1 0 .0 F = 1 3 5 .0

7
6
5
4
3

5:

1 .0 E +

1 .0 F =

5 .0
4:

1 .0 E -

3 .0 F =

0 .0

0
0

3 : 3 0 .0 E + 1 0 .0 F > = 1 3 5 .0
4 : 1 .0 E - 3 .0 F < = 0 .0
5:

1 .0 E +

1 .0 F > =

5 .0

Remarque :

Attention, le fait que la Rgion Admissible ne soit pas borne, ne signifie pas
obligatoirement quil ny a pas de solution optimale au problme.

Ex : Dans lexemple prcdent, si on Minimise plutt que maximiser, il y a une solution


optimale !

Gnralement, quand un problme est non born ou non ralisable cest quil est mal
spcifi : on a mis trop ou pas assez de contraintes dans le modle mathmatique pour
reprsenter adquatement le VRAI problme ou encore, on a fait une erreur en spcifiant les
contraintes au logiciel (GLP ou EXCEL)