Professional Documents
Culture Documents
Notes de Cours
Programmation Lineaire
3`eme annee Finance
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 :
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
3x1 + x2
x1 + 2x2
(P )
x2
x1 , x2
15
10
4
0
x2
z = 31
Region realisable
z=0
x1
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
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
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
B
C
C
Region realisable
z=0
x1
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, )
3x1 + x2
x1 + 2x2
(P )
x2
x1 , x2
15
4
0
x2
B
(0)
(-1/2)
Region realisable
(-3)
x1
x2
B
(0)
C
(-1/2)
C
C
Region realisable
(-3)
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
= 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
3.4
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.
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
A
T1
T2
C
T3
z = 31
z=0
T0
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
3x1 + x2 + x3
x1 + 2x2
+ x4
(PS )
x
+ x5
x1 + x2
x6
x1 , x2 , x3 , x4 , x5 , x6
= 15
= 10
=4
=3
0
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
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
4.3
La m
ethode en deux phases
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
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 +
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 :
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
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
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
6.2
Solution initiale
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
6.2.2
La m
ethode du co
ut minimum
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
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
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
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
-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
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