You are on page 1of 32

Moez Kilani

Notes de Cours

Programmation Lineaire
3`eme annee Finance

Institut Superieur de Gestion de Sousse ISG

Table des mati`


eres
1 Formulation
1.1 Un probl`eme de production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Un probl`eme de finance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 R
esolution graphique
2.1 Introduction . . . . . .

2.2 Etude
dun exemple .
2.3 Cas particuliers . . . .
2.4 Analyse de sensibilite .
2.5 Probl`eme parametre .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

3 La m
ethode du simplexe I
3.1 Notation . . . . . . . . . . . . . . . .
3.2 Tableau de simplexe . . . . . . . . .
3.3 Crit`ere doptimalite . . . . . . . . .
3.4 Pivotages et solution optimale . . . .
3.5 Interpretation graphique du simplexe

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

5
5
7

.
.
.
.
.

8
8
8
9
10
12

.
.
.
.
.

15
15
16
17
18
20

4 La m
ethode du simplexe II
21
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 La methode du grand M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 La methode en deux phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5 Analyse post-optimale
23
5.1 Coefficient dans la fonction objective (param`etre cj ) . . . . . . . . . . . . . . . . . . 23
5.2 Disponibilite en mati`ere premi`ere (param`etre bi ) . . . . . . . . . . . . . . . . . . . . 24
6 Probl`
eme du transport
6.1 La representation dun probl`eme de transport
6.2 Solution initiale . . . . . . . . . . . . . . . . .
6.2.1 La methode du coin Nord-Ouest . . .
6.2.2 La methode du co
ut minimum . . . .
6.3 Solution optimale . . . . . . . . . . . . . . . .
6.4 Cas particuliers . . . . . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

26
26
27
27
28
29
30

Avant-propos
Lobjectif de ce document est de fournir un support de reference pour relatif aux elements
de base du cours. Il sagit de la premi`er edition, et beaucoups de details manquent encore !
Il ne faut pas donc considerer ce document comme un manuel de cours.
Le contenu de ce document sera dispense pendant six semaines. Ensuite trois semaines
seront consacrees `a des exercices et des applications. La deuxi`eme partie du cours (la theorie
des graphes) qui nest pas abordee dans ce document sera dispensee pendant les semaines
restantes du semestre.
Pour les commentaires, corrections et suggestions (fort appreciees) merci dutiliser ladresse
electronique : moez.kilani@isgs.rnu.tn

Introduction
Un programme mathematique contient deux parties : une fonction objective `a maximiser
ou `a minimiser et un ensemble de contraintes `a satisfaire. Un programme lineaire est un
programme mathematique dont la fonction objective ainsi que toutes les contraintes sont
ecrites sous forme lineaire.
Les programmes linaires sont beaucoup plus simples `a resoudre que les pragrammes nonlineaires. En effet, des techniques de resolution assez faciles `a mettre en oeuvre sont disponibles. Lalgorithme du simplexe est une bonne illustration de ces techniques. Beaucoups de
probl`emes pratiques peuvent etre formules comme des programmes lineaires. Labbreviation
PL pour programme lineaire sera largement dans ce document.

Chapitre 1
Formulation
La formulation est letape qui consiste `a passer de lennoce dun probl`eme `a son ecriture
sous forme mathematique en respectant la linearite. La formulation est certainement letape
la plus importante pour deux raisons au moins. Dabord, cest linterface entre les professionnels et les specialistes de la recherche operationnelle ou encore entre la forme reelle est
la forme mathematique dun probl`eme donne. Ensuite, une fois la formulation achevee, la
resolution peut etre de mani`ere systematique. Cette tache est rendue facile par lexistence de
nombreux outils informatiques specialises. Neomoins, une connaissance minimale des algorithmes de resolution reste utile afin de comprendre et dinterpreter comprendre loutput des
logiciels. Ce chapitre illustre la formulation de PL `a travers un certains nombre dexemples.

1.1

Un probl`
eme de production
Une firme produit deux biens A et B. Une unite de A procure `a la la firme un
gain de quatre unites monetaires et une unite de B lui procure un gain de cinq
unites monetaires. Trois mati`eres premi`eres M1, M2 et M3 sont utilisees pour la
production. Chaque unite de A necessite trois unites de M1 et une unites de M2.
Chaque unite de B necessite une unite de M1, deux unites de M2 et une unite de
M3. Quelles quantites de A et B faut-il produire afin de maximiser le profit de
cette firme.

Afin de repondre `a la question posee, il est preferable de proceder dune mani`ere systematique. Je sugg`ere la demarche suivante :
1. Clarifier et resumer le texte dans des tableaux
2. Comprendre lobjectif du probl`eme et les contraintes pour atteindre cet objectif
3. Fixer les variables du probl`eme
4. Formuler la fonction objective et toutes les contraintes du probl`eme en fonction des
variables fixees
Dans ce probl`eme il est clair que lobjectif consiste `a maximiser le profit. Les consommations de mati`eres premi`eres peuvent etre resumees dans le tableau suivant :
5

MP1
MP2
MP3

4
3
1
0

5
1
2
1

15
10
4

Le choix des variables est souvent la tache la plus delicates. Si on est sur le bon chemin il
ny a presque aucune raison pour ne pas achever la formulation. Dans ce cas encore il ny a
pas de r`egles magiques `a appliquer. Il est utile de sapprocher du probl`eme en se demandant
ce que signifie la solution. Supposons, que le reponsable de cette usine vous pose la question ?
Quest ce que vous allez lui repondre ? Il semble claire que dans ce probl`eme la reponse `a
fournir au directeur est de type : afin de maximiser le produit il faut produire un certain
nombre de A et un certain nombre de B.
Si on est daccord sur ce point il devient naturel de poser les variables dans ce sens. Soit
x1 la quantite `a produire de A et soit x2 la quantite `a produire de B.1 La fonction objective
correspond donc au profit, quon notera z, de lusine. A partir des taux de profit unitaires
on a z = 4x1 + 5x2 . On cherche `a maximiser le profit, et donc la fonction objective secrit :
max z = 4x1 + 5x2 .
Ensuite, la quantite disponible de chaque mati`ere premi`ere est limitee. Pour la mati`ere
premi`ere, tout ce qui est utilise pour A (3 x2 ) et tout ce qui utilise pour B (1 x2 ) ne doit
depasser 15 unites. Ainsi la contraintes secrits :
3x1 + x2 15.
Le meme raisonnement pour les deux autres mati`eres premi`eres donne les contraintes
x1 + 2x2 10
et
x2 4,
respectivement. Ensuite, il est clair que les quantites produites sont toujours positives. Ces
contraintes sont dites contraintes de non-negativite des variables. Il est utile dinserer ces
contraintes dans le programme. En resume, le programme mathematique (lineaire) relatif `a
ce probl`eme secrit de la mani`ere suivante : ce programme peut etre resume de la mani`ere
suivante :

max z = 4x1 + 5x2

3x1 + x2 15

x1 + 2x2 10
(1.1)
(P )

x2 4

x1 , x2 0
Remarquer que toutes les contraintes, ainsi que la fonction objective, sont des fonctions
lineaires de x1 et x2 .
1

Il est peut etre plus claire de poser xA et xB les quantites respectives `a produire de A et B.

1.2

Un probl`
eme de finance

Une banque dispose dun capital C=2 000 000DT quelle peut octroyer durant lannee
en cours comme credit `a ses clients. Il y a trois types de credits : (C1) credit personnel ; (2)
credit voiture ; et (3) credit maison. La banque peroit des interets sur les credits. Ces derniers
sont de 14%, 12% et 8%, respectivement pour les credits de type (C1), (C2) et (C3). Par
ailleurs la banque doit respecter certaines r`egles : (R1) les credits personnels ne doivent pas
depasser 30% du montant total des credits ; (R2) le montant total des credits voiture ne doit
pas depasser la moitie du montant total des credits maison. (R3) le taux dinteret moyen
sur tous les credits ne doit pas depasser 11%. Formuler ce prol`eme comme un programme
lineaire.

Chapitre 2
R
esolution graphique
2.1

Introduction

Considerons le probl`eme de production formule dans le chapitre precedent. Ce programme contient deux variables. Dans ce cas, il est possible de representer graphiquement les
contraintes ainsi que la fonction objective. Les etapes `a suivre pour la resolution graphique
sont les suivantes :
1. tracer les axes pour les deux variables ;
2. tracer les contraintes du probl`eme ;
3. determiner la region realisable ;
4. tracer la fonction objective pour quelques valeurs ;
5. conclure pour la solution optimale.
Nous illustrons cette procedure pour le probl`eme de production discute dans la section 1.1.

2.2

Etude
dun exemple

Le programme (1.1) secrit :

max z = 4x1 + 5x2

3x1 + x2

x1 + 2x2
(P )

x2

x1 , x2

15
10
4
0

En appliquant la procedure indiquee ci-haut, on aboutit a` un graphique similaire `a la


Figure 2.1. Remarquer quon tient compte des contraintes de non-negativite des variables du
probl`eme. Pour ce probl`eme la solution optimale se situe au niveau du point C de coordonnees
(4, 3). Ainsi, la reponse `a fournir est de type : afin de maximiser le profit il faut produire
quatre unites de A et trois unites de B.
8

x2

z = 31
Region realisable

z=0

x1

Fig. 2.1 Solution graphique.


Une remarque simpose : la region realisable est un ensemble convexe. Ceci etant le
cas dans tous les programmes lineaires, car lintersection de demi-(hyper)plans est toujours
un convexe (sinon lensemble vide). Cest principalement a` cause de cette propriete que la
resolution des programmes lineaires est beaucoup plus simple que celle des programmes nonlineaires. En arrivant au point C, on est s
ure quil ny aurait pas dautres points de meme
1
nature (pour z plus grand).

2.3

Cas particuliers

Le probl`eme discute plus haut a une solution optimale et cette solution est unique. Il est
possible de rencontrer des situations differentes. Les trois cas particuliers les plus importants
sont les suivants :
solutions multiples
solution non-bornee
pas de solutions realisables
Ces configurations peuvent etre identifiees facilement sur un graphique.
1

Ce point sera discute avec plus de detail pendant une seance de cours.

x2

x1

Fig. 2.2 Solution optimale multiple.


Considerons le programme suivant :

max z = 3x1 + 4x2

3x1 + x2

x1 + 2x2
(P )

x2

x1 , x2

15
10
4
0

La solution graphique correspondant `a ce programme est illustree sur la Figure 2.2. Ainsi,
tous les points sur le segment [B, C] correspondent `a une solution optimale. Remarquons que
la fontion objective a la meme pente que la deuxi`eme contrainte du probl`eme.
Deux autres cas particuliers peuvent etre facilement illustres sur le graphique. En ajoutant
la contrainte x1 +x2 10 le programme donne dans (1.1) nadmet plus de solution realisable,
et donc plus de solution optimale. En retirant la premi`ere et la deuxi`eme contrainte du
programme (P) on obtient un PL qui nadmet pas de solution bornee (verifier ces deux
points graphiquement).

2.4

Analyse de sensibilit
e

La solution dun probl`eme est utile. Le comportement de la solution en fonction des


param`etres du param`etres est meme plus importante. Dans lexemple de production discute
plus haut, on peut se demander : que serait la solution si la disponilite dune mati`ere premi`ere

varie, ou si la rentabilite dun des deux produits nest plus la meme. Ce type de probl`eme
fait partie de lanalyse de sensibilite.
Que devient la solution optimale si la rentabilite du produit A passe de 4 `a 5 (um) ? Le
point optimal change-t-il ? la valeur de la foncion optimal reste-t-elle la meme ? Le graphique
permet de voir rapidement la reponse `a ces questions. En effet, il suffit de remarquer que
dans ce cas la region realisable reste inchangee et que la pente de la fonction objective passe
de 4/5 `a 1. Ainsi, le changement peut etre illuste sur le graphique comme le montre
la Figure 2.3, o`
u les deux lignes rouges indiques les courbes diso-profit correspondant aux
nouveaux coeficients de la fonction objective.
x2

z = 22

B
z = 35

Region realisable

z=0

x1

Fig. 2.3 Variation dans un param`etre de la fonction objective.


Il est donc claire que dans ce cas la solution optimale reste au meme point C. Dune
mani`ere generale, une petite variation dans les coefficient de la fonction objective laisse le
point optimal inchange. Toutefois, la valeur de la fonction objective nest plus la meme. Dans
ce cas elle passe de z = 31 `a z = 35.
Une variation importante dans les coefficients de la fonction objective entraine un deplacement de la solution optimale vers un autre point angulaire. Les lignes bleues correspondent
aux courbes diso-profit lorsque le gain unitaire relatif au produit A devient egal `a 1. La pente
relative `a la fonction objective de vient assez plate, et la solution optimale se situe plutot
sur le B.
Le deuxi`eme type de probl`eme qui peut etre representer sur le graphique concerne les
disponibilites en mati`eres premi`eres : que devient la solution optimale si la mati`ere premi`ere
est disponible en 12 unites seulement (et 15 unites) ? Le point optimal reste-t-il inchange ?

La Figure 2.4 refl`ete limpact de la variation en disponibilite de la mati`ere premi`ere 1.


x2

B
C
C

Region realisable

z=0

x1

Fig. 2.4 Variation dans la disponibilite de la mati`ere premi`ere 1.


Remarquer que dans ce cas la region region realisable nest plus la meme `a cause du
deplacement de la droite (C, D). La solution optimale se trouve au niveau du point C . On
a note ce point de sorte `a garder la relation avec le point C. En effet, dune certaine mani`ere
le point optimale reste le meme mais se deplace. Les deux points C et C sont toujours
lintersection de la premi`ere et de la deuxi`eme contrainte. Il sagit donc structurellement du
meme point. La solution garde la meme structure mais change de valeur.

2.5

Probl`
eme param
etr
e

Certains probl`emes sont poses avec un param`etre dont la valeur nest pas connue `a priori.
On peut par exemple demander la resolution du programme suivant

max z = x1 + 5x2

3x1 + x2 15

(P )
x1 + 2x2 10

x2 4

x1 , x2 0

pour toutes les valeurs du param`etre . Toujours, dans le cas dun programme `a deux variables, la question peut etre discutee sur la base du graphique. Le graphique sur la figure

2.1, peut etre utilise, car il nous donne dej`a une partie de la solution : pour = 4. Pour
repondre `a la question on proc`ede de la mani`ere suivante :
1. Remarque : les variations de la valeur de entrainent sur le graphique des variations
dans la pente de la fonction objective.
2. Pour quelles autres valeurs de le point C reste-t-il optimal ? La reponse serait ici un
intervalle dans R.
3. Pour une valeur leg`erement `a lexterieur de cet interval, le point B ou le point D serait
optimal. Tout dependra du sens de variation de la pente de la fonction objective. On
determine donc ce point et lintervalle pour lequel ce point est optimal.
4. On poursuit cette procedure jusqu`a couvrir tout R.
Essayons dappliquer cette procedure au probl`eme donne. La pente de la courbe disoprofit est = /5. Considerons dabord le cas o`
u > 0, et donc une pente negative. Le
point B serait optimal si et seulement si 1/2 < /5 < 0 ou encore 0 < < 5/2. De
meme, le point C serait optimal si et seulement si 3 < /5 < 1/2 ce qui implique
5/2 < < 15. Ensuite pour tout < 3 (ou encore > 15), il est clair que la solution
optimale se situe au point D.
Que devient la solution si est negatif ? Dans ce cas, une simple remarque nous permet
didentifier la solution optimale : Une quantite positive dans la fonction objective penalise
celle-ci et afin datteindre un niveau maximum, il faut chercher `a minimiser la production
de A et `a maximiser celle de B (qui contribue positivement au profit). Sur le graphique, il
apparat que le point optimal est A. Nous pouvons ainsi donner le point optimal pour toutes
les valeurs de .

(, 0)
(0, 5/2)
(5/2, 15)
(15, )

Point optimal solution optimale


A
x1 = 0 et x2 = 4
B
x1 = 2 et x2 = 4
C
x1 = 4 et x2 = 3
D
x1 = 5 et x2 = 0

Considerons ensuite le PL suivant :

max z = 4x1 + 5x2

3x1 + x2

x1 + 2x2
(P )

x2

x1 , x2

15

4
0

avec un reel donne. Comme pour le programme (P ), on peut considerer la solution du


programme (P ) comme solution de depart. Sur le graphique une variation de la valeur du
param`etre induira un deplacement de la droite qui passe par B et C. Une augmentation
de deplace la droite vers le haut et une diminution de deplace la droite vers le bas. Une
construction preliminaire de la solution est illustre sur la figure 2.6.

x2

B
(0)
(-1/2)

Region realisable
(-3)

x1

Fig. 2.5 Probl`eme param`etre.

x2

B
(0)

C
(-1/2)

C
C

Region realisable
(-3)

Fig. 2.6 Param`etre dans une contrainte.

x1

Chapitre 3
La m
ethode du simplexe I
Dans ce chapitre on introduit lalgorithme du simplexe. Cette technique fut mise au point
par Dantzig pendant les annees cinquantes du vingti`eme si`ecle. Elle a ete `a lorigine de la
popularite de la programmation lineaire.

3.1

Notation

Un PL est dit ecrit sous forme standard si


1. toutes les contraintes sont de type egalite ;
2. toutes les variables sont positives.
En effet tout PL peut etre ecrit sous forme standard, et inversement. Toute contrainte de type
egalite peut etre recrite de mani`ere equivalent comme une egalite en ajoutant une variable
decart. Par exemple,
x1 + 2x2 6 x1 + 2x2 + x3 = 6,
o`
u x3 une variable positive. Inversement toute contrainte egalite peut etre ecrite de mani`ere
equivalente comme un ensemble de deux contraintes de type inegalite. Par exemple,
(
x1 x2 3
x1 x2 = 3
x1 x2 3.
Une variable negative peut etre remplace par sont oppose et en multipliant les coefficients
correspondants par 1. Une variable sans signe peut etre remplacee par la difference de de
variables positives. En effet, x R ils existent x1 , x2 0 tel que x = x1 x2 . La conclusion
de tous ces details est que tout PL, independament de sa forme initiale, peut etre reecrit de
mani`ere equivalent sous forme standard.
Un programme est dit ecrit sous forme canonique par rapport `a une base realisable si les
conditions suivantes sont realisees :
1. toutes les variables du programme sont positives.
2. toutes les contraintes sont de type egalite.
15

3. toutes les elements `a droite de chaque contraintes sont positifs.


4. toutes les colonnes de la matrice identite aparaissent (`a une permutation pr`es) dans
le syst`eme lineaire forme par lensemble des contraintes (la dimension de la matrice
identite est egale au nombre de contrainte).
5. les coefficients des variables faisant apparatre les colonnes de la matrice identite sont
nuls dans la fonction objective.
` un programme lineaire
Ces proprietes seront faciles `a voir dans lexemple ci-dessous. A
ecrit sous forme canonique par rapport `a une base donnee, on associe un tableau de simplexe.
Il sagit dune representation qui facilite la resolution dun programme lineaire.
Tout programme qui admet une solution realisable secrit necessairement sous forme
canonique par rapport `a une base realisable donnee. Parfois, cette ecriture est facile `a trouver,
mais parfois il faut passer par une etape preliminaire afin de lobtenir. Ce chapitre sinteresse
aux probl`emes pour lesquels la forme canonique est facile a` trouver. Le chapitre suivant traite
le deuxi`eme cas.1
Pour le programme (P ), quon utilise depuis les chapitres precedents, peut secrire de la
mani`ere suivante :

max z = 4x1 + 5x2

= 15
3x1 + x2 + x3

x1 + 2x2
+ x4
= 10
(Pc )

x2
+ x5 = 4

x1 , x2 , x3 , x4 , x5 0
Remarquons que (P ) et (Pc ) sont equivalents : il sagit du meme programme lineaire.

3.2

Tableau de simplexe

Dans le programme (Pc ), on peux distinguer trois blocs. Dabord la fonction objective sur
la premi`ere ligne. Ensuite, un syst`eme dequations lineaires (de type Ax = b) correspondant
`a lensemble des contraintes du programme. Finalement, les contraintes de non-negativite des
variables. Remarquer ensuite que le variables sont indexees de 1 `a 5 et quon a mis chacune
sur une colonne. Ainsi, on peut garder uniquement le coeficient et la colonne sans mentionne
la variable sur chaque ligne. On obtient ainsi le tableau de simplexe correspondant suivant :
T0
0
0
0

x3
x4
x5
cj
z j cj

4
x1
3
1
0
0
4

5
x2
1
2
1
0
5

0
x3
1
0
0
0
0

0
x4
0
1
0
0
0

0
x5
0
0
1
0
0

Il faut faire attention au fait que cette que cette terminologie nest pas universelle.

15
10
4
0

T0 est une appelation quon a donne qu tableau (pour indiquer que cest le tableau initial).
En premi`ere colonne on a ajoute les variables x3 , x4 et x5 ainsi que leur coefficients dans la
fonction objective. Dans le bloc principal (le syst`eme Ax = b) apparait la matrice identite
dordre 3 (notons I3 ). La premi`ere colonne de I3 est situee sur la colonne de x3 , les deuxi`eme
et troisi`eme colonnes de I3 se situent sur les colonnes de x4 et x5 , respectivement. Comme
on a precise ci-haut, les trois colonnes de la matrice I3 doivent apparatre dans tout tableau
de simplexe, mais pas necessairement dans cet ordre.
On dit que x3 , x4 et x5 sont les variables de base, et on note J = {3, 4, 5}. Les variables
x1 et x2 sont des variables hors base, et on note J = {1, 2}. Au tableau T0 correspond la
solution de base x3 = 15, x4 = 10 et x5 = 4. Dans une solution de base les variables hors
base sont nulles. Ici, x1 = x2 = 0.
Afin de poursuivre notre discussion, quelques elements de notation seront utiles. Ax = b
etant le syst`eme lineaire forme par les contraintes du programme. A etant une m n matrice
(m lignes et n colonnes). b etant un nvecteur colonne. x un mvecteur colonne. Dans le
programme (P ), m designe le nombre de variables et n designe le nombre de contraintes.
Notons Ai la ligne i de la matrice A, et Aj la colonne j de la matrice A. Aji fait reference `a
lelement de la matrice A qui se trouve sur la ligne i et la colonne j. Dans la meme logique,
z j fait reference au coefficient de la variable j dans la fonction objective.
P k(j) j
Le calcul des elements de la ligne cj se font de la mani`ere suivante. On a cj =
z A,
o`
u k(j) designe le coefficient dans la fonction objective de la j`eme variable de base. Ces
valeurs sont inscrites dans le tableau de simplexe en premi`ere colonne afin de sy referer
facilement. Ainsi,.
c1 = 0 3 + 0 1 + 0 0 = 0
..
..
.
.
c5 = 0 0 + 0 0 + 0 1 = 0.
Dans le premier tableau il est clair que tous les cj sont positifs. Lelement qui se trouve dans
le coin en bas `a droite du tableau est calcule de la meme mani`ere que les cj mais en utilisant
le vecteur b au lieu de la colonne Aj . Cet element refl`ete la valeur de la fonction objective
relative `a la solution de base donnee par le tableau.

3.3

Crit`
ere doptimalit
e

Les valeurs sur la ligne z j cj ont la signification utile. Dans le tableau T0 on a x1 = 0


et x2 = 0. La valeur 4 de z 1 c1 indique que si on introduit la variable x1 dans la base en
augmentant sa valeur, alors chaque unite de x1 augmentera la fonction objective par 4 unies.
De meme, si on introduit x2 dans la base, alors chaque unite de x2 augmentera la fonction
objective par 5 unites. Puisquil est possible daugmenter les valeurs de la fonction objective,
alors la solution donnee par T0 nest pas optimale. On appelera tableau optimal, un tableau
de simplexe pour lequel la solution correspondante est optimale. De mani`ere generale, on a
le crit`ere doptimalite suivant.

Pour un probl`eme de maximisation, un tableau est optimal si tous les elements de


la ligne z j cj sont negatifs ou nuls. Tant quun element au moins est strictement
positif, le tableau nest pas optimal.
Le tableau T0 discute ci-haut nest pas optimal. En effet, la ligne z j cj de ce tableau
contient des valeurs strictement positives. De mani`ere similaire, le crit`ere doptimalite pour
un programme de minimisation est le suivant :
Pour un probl`eme de minimisation, un tableau est optimal si tous les elements de
la ligne z j cj sont positifs ou nuls. Tant quun element au moins est strictement
negatif, le tableau nest pas optimal.

3.4

Pivotages et solution optimale

Le tableau T0 nest pas optimal. On peut dire aussi que la base dans ce tableau nest
pas optimale. La recherche dune solution optimale revient en fait `a la recherche dune base
optimale. Lidee de lalgorithme du simplexe est de remplacer cette base par une autre qui
soit meilleure jusqu`a lobtention dune solution (base) quon ne peut plus ameliorer. Les
operations de pivotage permettent le passage dune base `a une autre.
Chaque operation de pivotage consiste `a remplacer une variable de la base par une variable
hors-base et `a recrire le programme sous forme canonique par rapport `a la nouvelle base. En
pratique, une operation de pivotage consiste `a :
Choisir une variable entrante Celle-ci doit etre initialement hors base et ayant un coefficient z j cj strictement positif. Generalement, on choisit celle qui a le coefficient
positif le plus eleve.
D
eterminer la variable sortante Une fois la variable entrante est choisie on determine
la variable sortante de la mini`ere suivante. Supposons que la variable xq est entrante.
On calcul les rapports bi /Aqi pour les lignes i tel que Aqi est strictement positif. La
variable sortante serait celle pour laquelle ce rapport est le plus petit. Supposons que
cette variable se trouve sur la ligne p. Le pivot est situe sur la ligne p et la colonne q
de la matrice A
Pivotage Loperation de pivotage proprement dite, consiste `a faire les deux changements :
1. Ap Ap /Aqp : diviser la ligne du pivot par la valeur du pivot.
2. pour tout i {1, . . . , m} et i 6= p, faire Ai Ai (Aqi /Aqp ) Ap : pour toute les
lignes, sauf celle du pivot, effectuer loperation li li lpivot , avec choisit de
sorte que Api sannule.
Finir recalculer les lignes cj et z j cj comme precedement, ainsi que la nouvelle valeur de
la fonction objective.
En appliquant cette procedure au tableau T0 , on trouve :
1. La variable qui a le co
ut marginal (positif) le plus eleve est x2 . Ainsi, x2 est la variable
entrante.

2. La variable sortante est x5 .


3. Le pivot est donc lelement qui se trouve sur troisi`eme ligne et deuxi`eme colonne (de
la matrice A), comme indique par le tableau T0 .

T0
0
0
0

x3
x4
x5
cj
z j cj

4
x1
3
1
0
0
4

5
x2
1
2
1
0
5

0
x3
1
0
0
0
0

0
x4
0
1
0
0
0

0
x5
0
0
1
0
0

15
10
4
0

15/1
10/2
4/1

Le resultat de lopertion de pivotage est donne dans le tableau T1 . Ce dernier ne correspond pas encore `a la solution optimale, mais donne une meilleure solution. En effet, le profit
avec cette nouvelle solution est de 20 (um).

T1
0
0
5

x3
x4
x2
cj
z j cj

4
x1
3
1
0
0
4

5
x2
0
0
1
5
0

0
x3
1
0
0
0
0

0
x4
0
1
0
0
0

0
x5
-1
-2
1
5
-5

11
2
4
20

Afin de trouver la solution optimale, il suffit de continuer `a effectuer des pivotage jusqu`a
obtenir un tableau avec des co
uts marginaux qui soient tous negatifs ou nuls. Dans ce PL on
obtient les tableaux T2 et T3 suivants. Selon le crit`ere doptimalite ennoce ci-haut, le tableau
T3 est optimal.

T2
0
0
5

x3
x1
x2
cj
z j cj

4
x1
0
1
0
0
0

5
x2
0
0
1
0
0

0
x3
1
0
0
0
0

0
x4
-3
1
0
4
-4

0
x5
5
-2
1
-3
3

5
2
4
28

4
x1
0
1
0
4
0

T3
0
4
5

x4
x1
x2
cj
z j cj

3.5

5
x2
0
0
1
5
0

0
x3
1/5
2/5
-1/5
3/5
-3/5

0
x4
-3/5
-1/5
3/5
11/5
-11/5

0
x5
1
0
0
0
0

1
4
3
31

Interpretation graphique du simplexe

Comme le montre la figure 3.1, chaque operation de pivotage correspond `a un deplacement


dun sommet, dans la region realisable, `a un sommet adjacent. Les deplacements se font
toujours en ameliorant la fonction objective.
x2

A
T1

T2

C
T3
z = 31

z=0
T0

Fig. 3.1 Interpretation graphique du simplexe.

x1

Chapitre 4
La m
ethode du simplexe II
4.1

Introduction

Considerons le PL suivant :

max z = 4x1

3x1

x1
(P )

x1

x1

+ 5x2
+ x2
+ 2x2
x2
+ x2
, x2

15
10
4
3
0

En passant `a la forme standard, on obtient :

max z = 4x1 + 5x2

3x1 + x2 + x3

x1 + 2x2
+ x4
(PS )
x
+ x5

x1 + x2
x6

x1 , x2 , x3 , x4 , x5 , x6

= 15
= 10
=4
=3
0

Deux methodes sont souvent utilisees pour resoudre ce probl`eme.1

4.2

La m
ethode du grand M

Ldiee ici est de remplacer le programme (P ) par un autre qui a la meme solution.
Pratiquement il sagit de faire deux choses :
creer la base artificiellement en ajoutant les colonnes manquantes de la matrice identite ;
cel`a revient `a introduire des variables supplementaires, appelees variables artificielles;
1

En fait, il de la meme methode mais mise en pratique de deux mani`eres differentes.

21

modifier la fonction objective de sorte que les variables artificielles quittent la base au
fur et `a mesure des iterations.
Pour le methode du grand M on introduits les variables artificielles dans la fonction objective
avec avec un coefficient negatif tr`es grand (note M). Ainsi, la maximisation de la fonction
objective passe necessairement par lannulation des variables de base. Pour lexemple donne
plus haut, le programme associe, note M, est le suivant.

max z = 4x1

3x1

x1
(PM )

x1

x1

+ 5x2
Mx7
+ x2 + x3
+ 2x2
+ x4
x2
+ x5
+ x2
x6 +
x7
, x2 , x3 , x4 , x5 , x6 ,
x7

= 15
= 10
=4
=3
0

Le programme (PM ) est ecrit sous forme canonique par rapport `a la base realisable
J = {3, 4, 5, 7}. Remarquons que (PM ) est nest pas equivalent `a (P ). Toutefois, la resolution
de (PM ) conduit en meme temps `a la resolution de (P ).
Le tableau de simplexe initial associe `a (PM ) est le suivant.

T0
0
0
0
M

x3
x4
x5
x7

cj
z j cj

4
x1
3
1
0
1
M
4+M

5
x2
1
2
1
1
M
5+M

0
x3
1
0
0
0
0
0

0
x4
0
1
0
0
0
0

0
x5
0
0
1
0
0
0

0
x6
0
0
0
-1
0
0

La procedure de calcul classique peut-etre appliquee `a ce tableau.

4.3

La m
ethode en deux phases

Ne sera pas etudiee cette annee.

M
x7
0
0
0
1
M
M

15
10
4
3
3M

Chapitre 5
Analyse post-optimale
La resolution dun PL par la methode du simplexe permet deffectuer une analyse de
sensibilite assez facilement, lorsquil sagit des coefficients de la fonction objective ou des
param`etre `a droite dans les contraintes.

5.1

Coefficient dans la fonction objective (param`


etre
cj )

Considerons le probl`eme (P) de la page . . .et sa solution donnee `a la page . . .Un exemple
de questions que lon peut se poser :
Si le profit relatif `a chaque unite de A devient 6 au lieu de 4 (um). La solution optimale
reste-t-elle la meme ?
pour quelles autres valeur du profit relatif au produit A la solution optimale reste-t-elle
inchangee ?
Pour repondre `a ce type de question, on a besoins du dernier tableau de simplexe seulement.
1. Dans ce tableau, on remplace le coefficient 4 par 4 + .
2. On re-calcule les lignes cj et z j cj .
3. On determine pour quelles valeurs de , le crit`ere doptimalite reste valable.
On a le tableau suivant :

T3
0
4+
5
cj
z j cj

x4
x1
x2

4+
x1
0
1
0
4+
0

5
x2
0
0
1
5
0

0
x3
1/5
2/5
-1/5
3/5 + 2/5
3/5 2/5
23

0
x4
-3/5
-1/5
3/5
11/5 1/5
11/5 + 1/5

0
x5
1
0
0
0
0

1
4
3
31 +

Le tableau T3 optimal si et seulement si :


(
3
52 0
5
11
15 0
5

5.2

5
4 + 15
2

Disponibilit
e en mati`
ere premi`
ere (param`
etre bi)

Supposons que la mati`ere premi`ere I nest pas disponible en 15 unites exactement, mais
plutot en 15 + unites. Que devient la solutions ? Pour quelles valeurs de la solution
optimale reste proche de la solution optimale ?
Pour repondre `a ces questions on a besoins du premier est du dernier tableau de simplexe.
Remarquons dabord que le programme initial secrit dans ce cas comme :

max z = 4x1 + 5x2

3x1 + x2 + x3
= 15 +

(Pc )
x1 + 2x2
+ x4
= 10

x
+
x

2
5 = 4

x1 , x2 , x3 , x4 , x5 0
On peut construire le tableau de simplexe correspondant `a ce programme en associant
un colonne pour .
4
x1
3
1
0
0
4

T0
0
0
0

x3
x4
x5
cj
z j cj

5
x2
1
2
1
0
5

0
x3
1
0
0
0
0

0
x4
0
1
0
0
0

0
x5
0
0
1
0
0

15
10
4
0

1
0
0

La colonne de est identique `a la colonne relative `a la variable x 3. Comme les


operations de pivotage seront identiques pour les deux colonnes, les deux derni`eres resteront
identiques pour tous les tableaux. En particulier le tableau optimal serait de la forme suivante.

T3
0
4
5

x4
x1
x2
cj
z j cj

4
x1
0
1
0
4
0

5
x2
0
0
1
5
0

0
x3
1/5
2/5
-1/5
3/5
-3/5

0
x4
-3/5
-1/5
3/5
11/5
-11/5

0
x5
1
0
0
0
0

1
4
3
31

1/5
2/5
-1/5

Ce tableau serait optimal si et seulement si les variables de bases sont optimales :

x4 = 1 + 5 0
x1 = 4 + 52 0 = 5 15 = 10 15 + 30

x2 = 3 51 0

Chapitre 6
Probl`
eme du transport
Le probl`eme du transport est un programme lineaire qui a une structure particuli`ere.
Cette classe de PLs englobe les probl`emes qui sennoncent dans une forme approximative `a
celle-ci :Il ya m origines et n destinations. Dans chaque origine on dispose dune certaine
quantite (de mati`ere premi`ere ou produit donne), et dans chaque destination on demande
une certaine quantite de ce produit. Le co
ut de transport est different pour chaque couple
origine-destination. On cherche un plan de transport optimal dans le sens quil minimise le
co
ut total de transport.
Lusage des tableaux de simplexe dans le cas des probl`emes de transport est bien entendu
possible. Toutefois, cette alternative ne presente pas un reel interet pratique, car les probl`emes
de transport aboutissent generalement `a un grand nombre de variables et de contraintes.1
Heureusement, une representation intuitive et permettant un tratement facile des probl`emes
de transport existe : il sagit du tableau de transport.

6.1

La repr
esentation dun probl`
eme de transport

La structure dun tableau de transport est assez intuitive comme le montre lexemple
de la Figure 6.1. Dans ce probl`eme, on a trois origines et quatres destinations. Les offres
des origines sont inscrites sur la derni`ere colonne, et les quantites disponibles dans les differentes destinations sont inscrites sur la derni`ere lignes. Les chiffres inscrits en petite taille
dans chaque case indiquent les co
uts de transport unitaires entre chaque origine et chaque
destination. Par exemple, chaque unite transportee de lorigine 2 vers la destination 3 induit
un co
ut de transport de 4(um). Remarquons que dans ce tableau loffre totale est egale `a
la demande totale. On dit que ce probl`eme est equilibre. Si le probl`eme nest pas equilibre,
on doit effectuer un certains changements avant de pouvoir proceder `a la recherche de la
solution.
1

Pour m origines et n destinations on a m n variables (sans les variables decarts qui sont au meme
nombre que les contraintes) et m + n contraintes.

26

500
6

10

300
200
7

300

300

11

300

12

100

Fig. 6.1 Un tableau de transport.

6.2

Solution initiale

Une solution de base pour un probl`eme de transport avec m origines et n destinations


doit contenir exactement m + n 1 variables de bases. Dans lexemple discute ci-haut on
doit donc avoir dans tous les tableaux correspondants sept variables de base. Il y a plusieurs
mani`eres pour remplir un tableau de simplexe. Nous presentons les deux methodes les plus
frequement frequemments utilisees.

6.2.1

La m
ethode du coin Nord-Ouest

Il sagit dune methode assez simple `a mettre en uvre. Les differentes etapes relatives `a
cette procedure sont les suivantes :
1. commencer `a la case (i = 1, j = 1) ;
2. effectuer le test
si Oi < Dj alors
qij = Oi
Dj D j O i
j j+1
sinon
qij = Dj
O i O i Dj
i i+1
fin
3. reprendre `a letape 2 tant que i < m ou j < n.
Lapplication au probl`eme discute plus haut aboutit au tableau suivant : Le co
ut total correspondant `a cette solution est de 6700(um). Lavantage principal de la methode du coin

300

500

200
6

100
10

300

200
8

100
7

300

300

11

300

100

200

12

100

Fig. 6.2 Solution initiale : methode du coin Nord-Ouest.


nord-ouest est principalment la facilite de mise en uvre. Linconvenient majeur de cette
methode est quelle ne tient pas compte de la structure de co
ut. Generalement, elle aboutit
`a un co
ut total initial assez eleve.

6.2.2

La m
ethode du co
ut minimum

Lidee consiste `a exploiter les cases ayant des co


uts de transport faibles et leur attribuer
les quantites maximales (dans la mesure du possible). On proc`ede de la mani`ere suivante :
1. reperer la case du tableau ayant le co
ut le plus faible ;
2. affecter `a cette case la quantite maximale possible ;
3. une colonne ou une ligne est saturee :
(a) si une colonne est saturee, leliminer du tableau, mettre `a jour la quantite dans la
ligne correspondante et reprendre au point 1 avec le nouveau tableau ;
(b) si une ligne est saturee, leliminer du tableau, mettre `a jour la quantite dans la
colonne correspondante et reprendre au point 1 avec le nouveau tableau ;
4. lorsque toutes les lignes et toute les colonnes sont saturees, alors le tableau doit contenir
exactement m + n 1 variables de base.2
Lapplication `a lexemple proposee plus haut nous donne le tableau represente dans la Figure 6.3. Le co
ut total correspondant `a cette solution initial est de 5500(um). En effet, de
mani`ere generale, la methode du co
ut minimum aboutit a` une meilleure solution initiale que
la methode du coin nord-ouest.
2

Dans certains cas, il se peut que cette condition ne soit pas satisfaite. Cette situation sera discutee dans
le cours.

100
6

100

300

100

500

200

10

300

200

200
7

300

300

11

300

12

100

Fig. 6.3 Solution initiale : methode du co


ut minimum.

6.3

Solution optimale

Afin de trouver le tableau optimal, on proc`ede comme dans le simplexe classique. Dabord,
il faut calculer les co
uts marginaux pour les variables de hors-base. Il sagit des cij comme
indique dans la fig. 6.4.
c11

100
6

100

300
5

3
c23

100

u1

1
c24

200

10

500
300

8
c32

4
c33

2
c34

11

12

200

u2

200
7

300

300

v1

v2

300
v3

u3

100
v4

Fig. 6.4 Les co


uts marginaux (1).
Ce calcul se fait en trois etapes :
1. pour chaque variable de base ecrire lequation cij = ui + vj ;
2. resoudre le syst`eme obtenu en fixant u1 = 0 ;
3. calculer les valeurs des co
uts marginaux `a partir de cij = cij ui vj .

Pour notre exemple on obtient le tableau donne par la Figure 6.5. Ce tableau contient
des co
uts marginaux strictement negatifs, et donc il ne sagit pas dune solution optimale.
Il faut effectuer un changement de base afin dameliorer la solution, et voir si elle devient
optimale ou non, . . .Ici, on peut prendre la variable x23 comme variable entrante.3 La valeur
de x23 doit etre augmentee mais tout en respectant les contraintes doffre et de demande,
ainsi que la non-negativite des autres variables. Sur le tableau de la figure 6.5, le cycle indique
les variations `a effectuer pour sauvegarder une solution de base. Un signe + indique une
augmentation de la quantite et un signe - indique une diminution de la quantite.4 En
valeur absolue, la variation est la meme pour toutes les cases sur le cycle. Dans notre cas :
x23 augmente par 200 unites, x22 diminue par 200 unites, x12 augmente par 200 unites et
enfin x13 diminue par 200 unites. On obtient ainsi le tableau donne par la figure 6.6, et pour
lequel on refait le meme travail, afin dobtenir la solution optimale donnee par le tableau 6.7.
-1 +

100
6

300
5
+

100

100

500

3
-2

1
+1

4
+8

2
+11

200

10

300

8
+4

200

200
7

300

300
7

11

300
5

12

100
3

Fig. 6.5 Le premier tableau de transport.

6.4

Cas particuliers

Offre sup
erieure `
a la demande. Afin de retrouver un probl`eme de transport correctement structure, on ajoute une demande fictive avec des co
ut unitaires nuls, et dont la
demande correspond `a lexcedent de loffre. Apr`es cette transformation, un tableau de
tranport peut etre construit et la resolution se fait de mani`ere classique.
Offre inf
erieure `
a la demande. Dans ce cas le probl`eme nadmet pas de solution realisable, et donc pas de solution optimale.
3

Notation : la variable xij fait reference `a lorigine i et `a la destination j.


Remarque : la structure du tableau de transport fait que le cycle est toujours determine de mani`ere
unique.
4

-3

300
6

100

100

5
+2 +

100

500

1
0

4
+10

2
+12

200

10

8
+6

300

200

200
7

300

300
9

11

300
5

12

-2

100
3

Fig. 6.6 Le deuxi`eme tableau de transport.


D
eg
en
er
escence. La Degenerescence peut appratre, soit au niveau de la recherche de la
solution initiale, soit au cours des iterations pour la recherche de la solution optimale.
Solution initiale : A chaque fois quon ajoute une quantite, soit une ligne soit une
colonne est saturee. Il se peut toutefois que, simultanement, une ligne et une
colonne soient saturees. Dans ce cas on obtiendra moins que m + n 1 variables
de base. Afin de completer la base, on ajoute une variable de base avec une quatite
nulle.
Pivotage En faisant entrer une variable dans la base, une seule variable doit quitter la
base. Dans certains cas, deux variables ayant la meme valeur se trouvent annulees.
Dans ce case on doit garder lune dentre elles avec une valeur nulle dans la case
correspondante.
Des exemples sur ces differents cas particuliers seront discutes dans les seances de cours.

100

300

6
+3

5
+2

10

8
+3

100

500

1
0

4
+7

2
+10

300

300

200

200
7

300

300
6

11

300
5

12

100
3

Fig. 6.7 Le troisi`eme tableau (optimal).

You might also like