Académique Documents
Professionnel Documents
Culture Documents
n,
i,
MN
ij
V. Exemples de formulations
Limit au dpart aux problmes industriels et militaires, de nos jours plusieurs
problmes de divers domaines sont reprsents ou approxims par des modles
de PL. Lutilisation de ces techniques de modlisation sest renforce encore
aprs avoir construit des algorithmes et des logiciels capables de rsoudre de
plus larges problmes avec autant de variables de dcision que de contraintes.
La tche de formulation demande gnralement une certaine expertise et
connaissance du problme pour pouvoir relever facilement les diffrentes
composantes du problme et ainsi donner un programme qui modlise au mieux
la situation relle. Dans ce qui suit, on prsentera quelques exemples de
formulation en programme linaire lis diffrents problmes de dcision :
Exemple 1 : Problme dagriculture
Un agriculteur veut allouer 150 hectares de surface irrigable entre culture de
tomates et celles de piments. Il dispose de 480 heures de main duvre et de 440
m deau. Un hectare de tomates demande 1 heure de main duvre, 4 m deau
et donne un bnfice net de 100 dinars. Un hectare de piments demande 4 heures
de main duvre, 2 m deau et donne un bnfice net de 200 dinars.
3
Le bureau du primtre irrigu veut protger le prix des tomates et ne lui permet
pas de cultiver plus de 90 hectares de tomates. Quelle est la meilleure allocation
de ses ressources ?
Formulation du problme en un PL :
Etape 1 : Identification des variables de dcision. Les deux activits que
lagriculteur doit dterminer sont les surfaces allouer pour la culture de
tomates et de piments :
pour la machine M1
pour la machine M2
pour la machine M3
A:
B:
C:
D:
des A
10
10
80
4.1
C D E
10
30
60
4.3
40
50
10
5.8
60
30
10
6
30
30
40
7.6
Alliage
fabriquer
30
40
30
7.5
30
20
50
7.3
50
40
10
6.9
20
30
50
7.3
30
30
40
.
Les contraintes relatives au problme sont :
La fonction objectif dans cet exemple reprsente le cot dachat des diffrents
alliages A, B, C, D, E, F, G, H et I. Donc lexpression de la fonction objectif est
la suivante :
Le programme linaire qui modlise ce problme mlange s'crit :
Exemple 6 :
Slection de Mdias
Tlvision
Locale
Par
satellite
40 DT
75 DT
400
300
900
400
Radio Journaux
30
DT
500
200
15 DT
200
100
Pour la campagne, on prvoit de ne pas payer plus que 800DT pour toute la
campagne et on demande que ces objectifs soient atteints :
1.
2.
3.
4.
Formulation en un PL :
Les variables de dcision du problme sont
x
x
x
x
1
2
3
4
: le
: le
: le
: le
Contraintes de la tlvision :
,
et
Contraintes sur le nombre de publicits dans la radio et dans les journaux
et
.
CHAPITRE 2
Un bon choix se base sur une lecture des diffrents paramtres du programme
linaire. Dans notre cas, on ne peut qualifier de bon, le choix de 20 comme
unit dans les deux axes.
Pour lexemple, on peut choisir le systme daxes suivant :
.
Lensemble des solutions qui vrifient cette ingalit est le mme que celui qui
vrifie
et
Lensemble des solutions qui correspond lquation est lensemble des points
de la droite l dfinie par
. Cette droite admet une valeur de la
pente gale 2 et intercepte laxe des ordonnes en 12 (voir figure cidessus).
Lingalit
Pour ce faire, il suffit de prendre un point de lun des demi-plans (cest dire
nappartenant pas la droite
Si on fait de mme pour les deux autres contraintes du problme (voir figures
ci-dessous), on obtient les deux autres demi-plans et relatifs aux solutions
2
et
Pour z=6, cest dire que le nombre de pilules prescrire est gale 6 pilules.
La fonction objectif est reprsente comme suit :
Chaque point du segment qui relie les points (6,0) (0,6) reprsente des
solutions qui engendrent une prescription avec 6 pilules des deux tailles.
On peut tracer une infinit de droites qui reprsentent les diffrentes valeurs
de la fonction objectif, toutes ces droites ont le mme coefficient directeur (-1).
Par suite elles sont parallles entre elles. De plus on peut diminuer la valeur de
z indfiniment dans le sens indiqu dans la figure ci-dessous.
Dans le problme de mdecine, lensemble des solutions ralisables de base prsente 4 points
extrmes A(0,12), B(2,8), C(23/11,126/11) et D(24,0). La valeur de la fonction objectif associe
respectivement A, B, C et D est 12, 10, 149/11 et 24. On vrifie bien que B est la solution optimale
du problme avec une valeur optimale gale 10.
VI. Exemples
Dans cette section on donne quelques exemples de rsolution graphique de problmes linaires
relatifs au diffrents cas possibles :
Problme de maximisation
Problme impossible
Lespace des solutions ralisables est vide, il est lintersection des deux zones
grises de la figure ci-dessus
Lensemble des points dcrit par le segment [AB] reprsente les solutions
optimales du problme linaire
Problme de dgnerescence
Rponse :
Rponse :
CHAPITRE 3
La Mthode de Simplexe
I. Introduction
On a prsent dans le chapitre prcdent une procdure graphique pour rsoudre
un programme linaire deux variables. Par contre, dans la plupart des
problmes rels, on a plus que deux variables dterminer. Une procdure
algbrique pour rsoudre les programmes linaires avec plus que deux variables
fera lobjet de ce chapitre. C'est la mthode de simplexe.
Une implmentation de cette procdure permis de rsoudre des programmes
avec un peu plus de quelques milliers de variables. Le programme Lindo quon
prsentera dans le chapitre 7 (en version pour tudiant) supporte au plus 200
variables et 100 contraintes.
Dans ce chapitre la mthode de simplexe est prsente pour les problmes
et en utilisant le problme de lagriculteur :
100x + 200x
(3.1)
x + x + S = 150
(3.2)
4x + 2x + S = 440 (3.3)
x + 4x + S = 480 (3.4)
x + S = 90
(3.5)
x , x2, S , S , S , S 0 (3.6)
1
L'impact de ces variables d'cart sur la fonction objectif est nulle. Ceci explique
le fait que leur existence soit tout simplement lie une mise en forme du
programme linaire initial. Ces variables d'cart peuvent prendre des valeurs
nonnegatives. Le fait de donner la valeur des variables d'cart a l'optimum donne
une ide du nombre des ressources non utilises.
1
2
3
4
Alors une solution ralisable de base est obtenue en annulant les (n-m) variables
de dcision et la valeur des variables d'cart est directement donne par le
second membre. La deuxime proprit assure la satisfaction des contraintes de
nonngativit des variables d'cart.
Dans notre exemple, la forme standard du programme linaire vrifie ces deux
proprits.
a. Tableau de simplexe initial
Aprs avoir mis le programme linaire sous une forme qui vrifie les deux
proprits P1 et P2, ltape suivante est de tracer le tableau de simplexe initial.
Le modle gnral des tableaux de simplexe est :
0 S 440 4 2 0 1 0 0
0 S 480 1 4 0 0 1 0
0 S 90 1 0 0 0 0 1
On remarque quon a plac en premire ligne les contributions unitaires de
toutes les variables de dcision x ,..., S dans la fonction objectif. Dans la
troisime ligne, on retrouve la premire contrainte x + x + S = 150. La valeur
150 reprsente ici la valeur de S relative la solution ralisable de base initiale.
Dans la premire colonne on trouve les contributions nulles des variables d'cart
qui forment la solution de base initiale.
2
3
4
Exemple :
Question : Quelles sont les contraintes et la fonction objectif du programme
linaire dcrit par le tableau de simplexe suivant :
6
x
0 S 150 4
0 S 440 1
1
2
7
x
2
5
0
S
1
0
0
S
0
1
Remarque : Les variables qui figurent dans la deuxime colonne sont dites
variables de base. A chacune de ces variables, on associe la valeur 1
lintersection de la ligne et de la colonne relative cette variable et dans le reste
de la colonne on trouve des zros.
Jusqu ici on a vu comment retrouver une solution ralisable de base et
comment prsenter le tableau de simplexe initial. Dans la section suivante, on
examinera la procdure lie la mthode de simplexe qui permet de passer de
cette solution ralisable de base initiale une autre solution ralisable de base
qui donne une meilleure valeur de la fonction objectif.
b. Amlioration de la solution
Pour amliorer la solution il faut gnrer une autre solution de base (point
extrme) qui augmente la valeur de la fonction objectif. Cest dire, quon doit
slectionner une variable hors base et une variable de base et les permuter de
telle faon que la nouvelle solution donne une plus grande valeur de la fonction
objectif.
Pour savoir si on peut amliorer notre solution ralisable de base initiale nous
allons introduire deux nouvelles lignes au-dessus du tableau de simplexe.
La premire ligne, note z , reprsente la variation de la valeur de la fonction
objectif qui rsulte du fait quune unit de la variable correspondante la j
colonne de la matrice A est amene dans la base. Par exemple z reprsente la
diminution du profit qui rsulte de lajout dune unit la valeur de x .
En effet, si on produit un hectare supplmentaire de x , la valeur de quelques
variables de base vont changer vu quon a :
x + S = 150
4x + S = 440
x + S = 480
x + S = 90
Donc, une augmentation de x de 0 vers 1 va tre accompagne d'une diminution
des variables de base S , S , S , S respectivement de 1, 4, 1 et 1.
Leffet de cette diminution sur la fonction objectif est nul car les coefficients des
variables dcarts dans cette fonction sont nulles
z = 0 S + 0 S + 0 S + 0 S =0 1 + 0 4 + 0 1 + 0 1 = 0
La valeur z est calcule en multipliant les coefficients de la premire colonne de
la matrice A relatifs la variable x par les coefficients c de la premire colonne.
Gnralement, on a :
j
me
z =
La deuxime ligne, note c - z , reprsente leffet net de laugmentation dune
unit de la j variable.
Dans notre exemple, leffet net sur la fonction objectif engendr par
laugmentation dune unit dans la valeur de x est
c - z = 100 - 0 = 100
j
me
0
0
0
0
S 150
S 440
S 480
S 90
z
c -z
1
2
3
4
200
x
1
2
2
0
0
200
2
0
S
1
0
0
0
0
0
0
S
0
1
0
0
0
0
0
S
0
0
1
0
0
0
0
S
0
0
0
1
0
0
2.
Cette augmentation ne peut pas se faire infiniment, sous lhypothse que x reste
nulle. On a
x + S = 150
2x + S = 440
4x + S = 480
x + S = 90
On peut voir que x peut prendre comme valeur maximale la valeur de 100 (il ne
faut pas oublier que les S i=1, 2, 3, 4 sont des variables positives). Cette valeur
est obtenue en choisissant la plus petite valeur positive des divisions de 100/1,
440/2, 480/4 et 90/0 (on suppose que 90/0 est gale linfini ).
1
i,
me
100 200 0 0 0 0
x
x S S S S
1
0
0
200
0
S
S
x
S
1
2
2
4
0
0
200
0
S
S
x 120 1/4
S
0
S
0
S
1
2
0 0 -1/4 0
2.
A chacune des variables de base, on associe la valeur 1 lintersection de
la ligne et de la colonne relative cette mme variable et dans le reste de la
colonne on trouve des zros.
100 200 0
x
x S
0 S
0 1
0 S
0 0
200 x 120 1/4 1 0
0 S
0 0
1
1
2
0 0 0
S S S
0
0
1
0
0 -1/4 0
0
1
2
3.
Pour calculer le reste des valeurs du tableau, on opre des combinaisons
linaires dans le prcdent tableau de simplexe. Par exemple pour calculer la
100
x
3/4
7/2
1/4
1
1
0
0
200
0
S
S
S
S
1
2
3
4
30
200
120
90
200
x
0
0
1
0
2
0
S
1
0
0
0
0 0 0
S S S
0 -1/4 0
1 -1/2 0
0 -1/4 0
0 0 1
2
Remarques:
a.
On vrifie toujours que les colonnes de la matrice relative chacune des
variables de base sont formes par des zros sauf 1 dans lintersection avec la
ligne relative aux mmes variables de base.
b. On peut vrifier aussi que lensemble des solutions ralisables, induit par
les contraintes dcrites dans le dernier tableau de simplexe, est le mme
que celui reprsent par les contraintes initiales. La rgle de pivot est une
combinaison linaire des contraintes du programme linaire donc elle ne
change pas lensemble des solutions ralisables.
1
2
3
4
me
i1
11
100 200 0 0 0 0
x
x
S S S S
100 x 40 1 0 4/3 0 -1/3 0
1
0 S 60 0 0 -14/3 1 2/3 0
200 x 110 0 1 -1/3 0 1/3 0
0 S 50 0 0 -4/3 0 1/3 1
Cette nouvelle solution
x = 40
x = 120
S = 0
S = 60
S = 0
S = 50
correspond au point B qui est, daprs les rsultats retrouve par la mthode
graphique, la solution optimale du problme. Ainsi, il faut sattendre ce que la
mthode de simplexe reconnaisse cette solution comme tant la solution
optimale.
2
1
2
1
2
3
4
100
0
200
0
x
S
x
S
1
2
2
4
40
60
110
50
200
x
0
0
1
0
200
0
2
0
S
4/3
14/3
-1/3
-4/3
200/3
-100/3
1
0
0
0
S
S
S
0 -1/3 0
1 2/3 0
0 1/3 0
0 1/3 1
0 100/3 0
0 -100/3 0
2
Leffet net associ aux variables hors base S et S est ngatif. Ceci nous oblige
dire que faire entrer une de ces deux variables dans la base va engendrer une
diminution dans la valeur de la fonction objectif. Donc il ny a pas une autre
solution ralisable de base qui peut engendrer un profit meilleur. Par suite cette
dernire solution est la solution optimale. Ce dernier tableau de simplexe est
donc dit tableau optimal.
1
Etapes
1. Formuler un programme
linaire pour le problme rel.
2. Vrifier que le second membre
du programme linaire est positif
3. Ecrire le programme linaire
sous une forme standard
4. Construire le premier tableau de
simplexe
5. Choisir comme variable
entrante dans la base celle qui
admet le plus grand effet net
positif c -z .
6. Choisir la variable sortante de la
base celle qui admet le plus petit
ratio suprieur zro.
j
Justification
Pour
obtenir
une
reprsentation
mathmatique du problme
Ceci est ncessaire pour obtenir comme
variable de base initiale lorigine
Mettre toutes les contraintes sous forme
dgalit
Ce tableau correspond la solution initiale
de base
La valeur de c -z indique la quantit
daugmentation de la fonction objectif si on
augmente la valeur de x dune unit.
ij
VI. Exemple
Rsoudre le programme linaire suivant en utilisant la mthode de simplexe.
Max 3x + 2x
SC
- x + 2x 4
3x + 2x 14
x +x 3
x 0 x 0
La forme standard du programme linaire s'crit comme suit :
Max 3x + 2x
SC
- x + 2x + S = 4
3x + 2x + S = 4
x - x +S = 3
1
x , x S , S , S 0
1
2,
La variable entrante est x puisquelle prsente le plus grand effet net positif. La
variable sortante est S car elle correspond au plus petit quotient positif.
1
2me itration
3me itration
3
x
0 S 6 0
2 x 1 0
3 x 4 1
3
0
2
1
2
x
0
1
0
2
0
0
S
1
0
0
0
0
0
S
-1/5
1/5
1/5
1
-10
2
0
S
8/5
-3/5
2/5
0
0
3
1
2
1
2
3
0 S 15/4
2 x 13/4
3 x 5/2
3
2
1
Le tableau
x = 5/2
x = 13/4
S =0
S =0
S = 15/4
La valeur de la fonction objectif est 14.
1
2
1
2
3
CHAPITRE 4
S.c -x + x 4
1
5x + 3x = 60
1
x 5
2
x 0,x 0
1
S.c -x + x + S = 4
1
5x + 3x = 60
1
x -S =5
2
x 0 , x 0, S 0, S 0
1
Pour arriver cette fin, on doit ressortir une astuce mathmatique qui se
rsume lintroduction de nouvelles variables, dite variables artificielles A et
A.
1
Ces variables nont aucune interprtation, comme leur nom lindique, ils sont
conus artificiellement pour nous aider utiliser la procdure de simplexe et
formuler le tableau initial partir de l'origine.
me
me
Max 5x + 6x +...
1
S.c -x + x + S = 4
1
5x + 3x + A = 60
1
x -S + A = 5
2
x 0, x 0, S 0, S 0 , a 0, a 0
1
x =0
2
S =4
1
S =0
2
A = 60
1
A = 5
2
Cette solution nest pas ralisable puisque x nest pas suprieur 50. Ainsi, il
est important de distinguer entre une solution rellement ralisable et une
solution du programme linaire rcrit pour la procdure du simplexe. Certes,
une solution ralisable du problme rel reste toujours une solution ralisable
pour le programme linaire transform, le contraire nest pas toujours vrai.
2
On peut conclure que tant que les variables artificielles restent dans la base, la
solution demeure non ralisable rellement pour notre programme.
Une manire pour garantir que ces variables artificielles sortent de la base
avant datteindre la solution optimale est de leur associe un grand cot -M
dans la fonction objectif. Ainsi, si ces variables restent dans la base ils vont
causer une diminution importante de la valeur de la fonction objectif. Ce qui
nous contraignent les faire sortir le plutt possible de la base.
La fonction objectif scrit donc :
Max z = 5x + 6x - M A - M A
1
5 6 0 0 -M -M
x X S S A
1
0 S
4 -1 1 1 0
-M A 60 (5) 3 0 0
0 1 0 -1 0
-M A 5
2
5 6
x x
0 S 5 0 0 5/8 1
2
5 x 6 1 0 -3/8 0
1
6 x 10 0 1 5/8 0
2
5 6 15/8 0
0 0 -15/8 0
Le tableau ci-dessus est optimal car tous les effets nets sont ngatifs ou nuls.
Donc la solution optimale est :
x = 6
1
x = 10
2
S = 0
1
S = 5
2
Exercice :
Rcrire convenablement ces contraintes:
(1) x + 3x - 5x = - 20
1
(2) -x + 3x - 5
1
(3) 5x - 2x - 10
1
Sc 2x + x 12
1
5x + 8x 74
1
x + 6x 24
1
x 0,x 0
1
Sc 2x + x - S + A = 12
1
5x + 8x - S + A = 74
1
x + 6x - S + A = 24
1
x ,x ,S ,S ,S ,A ,A 0
1
x x
1 x 8 1 0 -8/11 1/11 0
1
0 S 26 0 0
3
-1
1 x 2 0 1 5/11 -2/11 0
2
1 1 -3/11 -1/11 0
0 0 3/11 1/11 0
x = 2
2
S = 0
1
S = 0
2
S = 26
3
Z = 10
Aprs avoir vrifier que le second membre des contraintes est positif, le
tableau suivant rsume les transformations faire subir notre programme
linaire avant de le rsoudre par la mthode de simplexe :
I.
de type
Ajouter
dcart
une
Minimisation
variable
IIde
type
Ajouter
une -M pour variable
M pour la variable
variable
dcart
et artificielle
artificielle
une
variable
artificielle
III- de type
Attribuer un coefficient
nul pour la variable
Ajouter
une
variable
artificielle et une variable dcart et un coefficient
- M pour variable
dcart avec un signe "-"
Attribuer un coefficient
nul pour la variable
dcart et un coefficient
M pour variable
artificielle
artificielle
Etape
1
Maximisation
Minimisation
S.c. 2x + x 12
1
5x + 8x 74
1
x + 6x 24
1
x ,x 0
1
Exemple:
Vrifions laide de la mthode de simplexe, que le problme suivant est
rellement impossible :
Max 4 x + 3x
1
Sc x + x 2
1
3x + x 10
1
x ,x 0
1
Sc
x +x - S =2
1
3x + x - S + a = 10
1
x ,x ,S ,S ,A 0
1
0 -M
4 x 2 1
1
-M a 5 0
-2
-3
-1 1
4 4+2M 1+3M M -M
0 -1-2M -1-3M -M 0
Le tableau de simplexe ci-dessus est optimal avec une variable artificielle dans
la base.
lhypothse que le second membre b est positif). Ceci est d au fait que lors de
la rsolution de ce genre de programme par la mthode de simplexe on
n'utilise pas des variables artificielles. Donc il est impossible de les retrouver
dans la solution optimale.
b.Les problmes solutions multiples
ijo
Exemple
Max x + 2x
1
Sc x + x 2
1
x 3
2
x ,x
1
Sc
x +x - S +a =2
1
x +S =3
2
x ,x ,S ,S ,a 0
1
1 2 0 0
x x S S
1
x 3 0 1 0 1
2
2
0
S 1 -1 0 1 1 -1
1
0 2 0 2
1 0 0 -2
Exemple
Max z = 2x + 0 x + 3/2 x
1
s.c.
x -x 2
1
2x + x 4
1
x +x +x 3
1
x,x,x 0
1
x =0
2
x =2
3
z =5
Sc
x -x + S =2
1
2x + x + S = 4
1
x +x +x +S = 3
1
x1, x , x , S , S S 0
2
2,
x =0
2
x= 1
3
S =2
1
S =0
2
S =0
3
Le problme est quun des ratios est nul ce qui indique quon ne peut pas
augmenter la valeur de x puisque la valeur de la fonction objectif ne va pas
augmenter et reste gale 4.
2
2 0 3/2 0
x x
2 x 2 1 0 1/2 0 1/2 0 4
1
0 x 0 0 1 1/2 -1 1/2 0 0
2
0 S 1 0 0 0
3
2 0 0
1 -1 1
0
0 0 1/2 0 -1 0
On peut facilement vrifier que nous somme en train de cycler sans atteindre la
solution optimale. Ce genre de cyclage dans la mthode de simplexe est
dangereux et on doit lidentifier avant de commencer rsoudre le problme,
sinon on passera un temps norme sans atteindre la solution optimale.
Pour terminer cette section, il faut noter que ce n'est pas tout problme de
dgnrescence qui peut conduire un cyclage.
Exemple
Max
10 x + 9x
1
Sc 7/10x + x 630
1
x + 2/3x 708
1
x ,x 0
1 ,
CHAPITRE 5
Dualit et analyse de sensibilit
I. Introduction
Dans ce chapitre, on va tudier des notions relatives au programmes linaires tels
que le programme dual, les cots marginaux ainsi que des techniques de validation
de la solution dun programme linaire, cest dire lanalyse de sensibilit.
Nous allons commencer ce chapitre par donner quelques termes cls du jargon
utilis pour interprter conomiquement les diffrents rsultats du programme
linaire.
Le cot marginal li
est
Le cot marginal li
est 0 et l'optimum
de la
=0
on a dj
deau de plus donc si on ajoute
ca ne va pas changer la
solution optimale ni la valeur de la fonction conomique
Le systme de contraintes dans le programme linaire relatif au tableau de simplexe
optimal du problme de lagriculteur est
Si on exprime en fonction de
dquation ci dessus on a
et
,
On trouve que la valeur optimale va augmenter de 200 dinars est devient 26 200
dinars.
Exercice : Expliquer graphiquement que si on ajoute des
amplification dans la fonction objectif.
,
La valeur optimale du programme linaire ci-dessus est de 26 875,14 donc le
revenu na pas augment de 2000 dinars comme prvu.
II. Dualit
a. Dfinition
La forme dun programme linaire de type maximisation est
avec
, des vecteurs de dimensions respectives
dimension
On appelle programme dual de
et , et A une matrice de
avec
un vecteur de dimension
Le programme
et
la transpose de la matrice
,
Donc le programme dual est
le prix dun
deau
,
Donc le problme du client peut tre modlis par le programme dual.
480
150
y3
y1
100/3
200/3
150
y1
0
1
150
0
440
y2
-2/3
14/3
380
60
480
y3
1
0
480
0
90
y4
-1/3
4/3
40
50
0
L1
1/3
-4/3
-40
40
0
L2
1/3
1/3
-110
110
Avec L1 et L2, les variables dcart la 1re et la 2me contrainte du programme dual.
On remarque que la solution optimale du dual peut tre dduite du primal de la
manire suivante :
y1 = 200/3 C3 - z3 = - 200/3
y2 = 0 C2 - z4 = 0
y3 = 100/3 C5 - z5 = - 100/3
y4 = 0 C6 - z6 = 0
L1 = 0 C1 - z1 = 0
L2 = 0 C2 - z2 = 0
C1 - z1 = 0 S1 = 0
C2- z2= 60 S2 = 60
C3- z3 = 0 S3 = 0
C4 - z4= 50 S4 = 50
C5 - z5= 40 x1 = 40
C6 - z6= 110 x2 = 110
w = 26000 z = 260000
Primal (Max)
Variables de dcision
Dual (Min)
variables dcart
xj = 0 C j - z j < 0
Li = | Cj - zj | 0 Cj - zj = 0
xj > 0 C j - z j = 0
variables dcart
Li = 0 Cj - zj = xj
Variables de dcision
Sj = 0 Cj - zj 0
yi = | Ci - zj | 0 Cj - zj = 0
Sj > 0 Cj - zj = 0
yi = 0 et Cj zj = Sj
Max
Matrice des contraintes (m, n)
Min
- Transpose de la matrice des
contraintes (n, m)
Exemples
Primal
Dual
Max x1 + x2
S.c x1 + x2 3
S.c y1 - y2 + y3
- x1 + x 2 1
y1 + y2 1
x1 2
y1 0, y2 0, y3 0
x1 0, x2 0
Min - x1 + x2
S.c 2x1 - x2 2
S.c 2y1 - y2 + y3 -1
- x1 + 2x2 -2
- y1 + 2y2 + y3 1
x1 + x 2 5
y1 0, y2 0, y3 0
x1 0, x2 0
Max 2x1 - x2
Min 3 y1+ 4 y2
S.c x1 - x2 = 3
S.c y1+ 2 y2 2
x1 4
- y1 -1
x1 0, x2 0
Max 2x1 - x2
y1 IR, y2 0
Min - 2y1 + 6y2 - 5y3
S.c x1 - 2x2 2
S.c y1 + y2 = 2
x1 + x 2 = 6
- 2y1 + y2+ y3 = -1
x2 5
y1 0, y2 IR, y3 0
x1 IR, x2 IR
100+
0
200
0
x1
S2
x2
S4
40
60
110
50
100+
x1
1
0
0
0
100+
0
200
x2
0
0
1
0
200
0
0
S1
4/3
-14/3
-1/3
-4/3
(200+4 )/3
-(200+4 )/3
0
S2
0
1
0
0
0
0
0
S3
-1/3
2/3
1/3
1/3
(100- )/3
-100/3
0
S4
0
0
0
1
0
0
Donc la solution optimale est stable et prend la mme valeur (x1,x2)=(40,110) tant
que
50 C1 200
Exercice : Supposons que le coefficient Cj d'une variable hors base dans la solution
optimale, est modifi. Dans quel intervalle, Cj peut-il varier sans que la base
optimale soit modifie ?
(Aide : diffrencier le cas dun programme de maximisation et le cas dun
programme de minimisation).
Solution :
- < Cj zj cas dun programme de maximisation
zj Cj < - cas dun programme de minimisation
b. Analyse de sensibilit sur les bj
Dterminer lintervalle pour lequel, la solution optimale reste stable, pour une
variation du second membre de la i me contrainte bi .
Considrons une variation de b1 de 150 150 + .
Sachant que dans le premier tableau de simplexe b1 nest prsent que dans la
premire contrainte. On obtient ainsi une correspondance entre la colonne des
quantits Qi et la colonne de S1.
0
0
0
0
S1
S2
S2
S4
150+1
440+0
480+0
90+0
0+1
100
x1
1
4
1
1
0
100
200
x2
1
2
4
0
0
100
0
S1
1
0
0
0
0
0
0
S2
0
1
0
0
0
0
0
S3
0
0
1
0
0
0
0
S4
0
0
0
1
0
0
100
0
200
0
x1
S2
x2
S4
40+4/3
60-14/3
110-1/3
50-4/3
26000+200
/3
100
x1
1
0
0
0
100
200
x2
0
0
1
0
200
0
S1
4/3
-14/3
-1/3
-4/3
200/3
0
S2
0
1
0
0
0
0
S3
-1/3
2/3
1/3
1/3
100/3
0
S4
0
0
0
1
0
-200/3
-100/3
- 30 90/7
Donc tant que 120 b1 160,85 la base demeure la mme et la solution optimale
est stable mais elle change en valeur (exemple: pour = 3 le vecteur de solutions
optimale est (x1,x2,S1,S2,S3,S4)=(44,109,0,46,0,46))
Remarque : Daprs le rsultat ci-dessus on peut conclure que le cot marginal de
200/3 par hectare de la premire ressource nest valide que si la solution de base
demeure stable. Donc si et seulement si 120 b1 160,85. Ceci est appel le
domaine de validit du cot marginal.
Exercice 1:
Sans faire de calcul, de combien peut-on modifier la quantit de m3 deau sans
nuire la solution optimale ? confirmez votre rsultat a l'aide de la mthode
d'analyse de sensibilit expos ci-dessus ?
Exercice 2 :
Dterminer lintervalle dans lequel peut varier b1 et b3 (les ressources en surface et
en main duvre) sans que la base optimale change.
Rponse 2 :
et
.
Si 0 , alors on a un excdent de la 3me ressource (S3 0), ce qui nous
contraint changer la base (la solution optimale nest plus stable).
puisque
iii) Si xj est une variable hors base (xj = 0). Ceci implique quon ne va pas produire
le produit j
S.c x1 + x2 + x3 150
4x1 + 2x2 +3x3 440
x1 + 4x2 + 2x3 480
x1 90
x1, x2, x3 0
On peut dterminer si lagriculteur a un intrt introduire la production ou pas.
En dautres termes, sil na pas intrt le faire, la solution optimale du programme
linaire ci-dessus donne x3 = 0. Ce qui revient dire, que pour lagriculteur
lutilisation dun hectare de terrain, de 3 mtres cube deau et de deux heures de
travail lui procurent plus de gain sils va les mettre au service de la production de
tomates et/ou de piments plutt que dans la production de pommes de terre. Ceci
est quivalent au fait que la contrainte suivante:
satisfaite (avec
agriculteur).
nest pas
On a :
, donc :
Si C3 < 200/3, lagriculteur na pas intrt introduire la nouvelle activit
Si C3 > 200/3, lagriculteur a intrt introduire cette nouvelle activit, la
solution optimale va changer et la valeur de la fonction objectif augmentera
Si C3 = 200/3, lagriculteur est indiffrent envers lintroduction de cette
nouvelle activit.
CHAPITRE 7
Introduction la Programmation
Dynamique
I. Introduction
La programmation dynamique est une technique mathmatique qui a pour objet
daider prendre des dcisions squentielles indpendantes les unes des autres.
Contrairement la programmation linaire, il ny a pas un formalisme
mathmatique standard. Cest une approche de rsolution o les quations doivent
tre spcifies selon le problme rsoudre.
Notre expos se base essentiellement sur de nombreux exemples qui illustrent cette
technique.
Le chemin le moins dangereux est celui qui admet la plus petite valeur de la police
dassurance vie
Exemple : Si le voyageur empreinte le trajet 1 2 6 9 10 , le cot total de
la police dassurance est 13
Soit xn (n=1, ..., 4) les variables de dcisions relatives chacune des 4 tapes. Le
chemin suivre par le voyageur est 1 x1 x2 x3 x4 avec x4 = 10.
Soit fn (S, xn) le cot total de la police dassurance vie pour le reste des tapes
sachant que nous somme ltat S de ltape n et que la destination choisie est xn.
Etant donn S et n, soit
(S)= fn (S,
(S) la
)).
(s) et enfin
(s),
(1).
A chaque tape, on va essayer dvaluer pour chaque tat s, la valeur de f (S, xn)
pour chaque destination xn possible, puis de retrouver la meilleure destination
(celle qui correspond au plus petit cot f(S, xn)) et aussi la valeur de
Etape 4
x4
f4(S, x4))
(s),
S
8
9
3
4
3
4
10
10
(s).
Etape 3
f3(S, x3)=Csx3+
(x3)
x3
5
6
7
4(=1+3)
9
6
8(=4+4)
7
7
(s)
S
4
7
6
8
9
8
Etape 2
f2(S, x2)=Csx2+
(x2)
x2
2
3
4
11
7
8
11
9
8
12
10
11
(s)
S
11
7
8
5 ou 6
5
5 ou 6
Etape 1
f1(S, x1)=Csx1+
x1 S
1
La valeur de
( x1)
13
11
112
(1)
11
3 ou 4
= 3 ou
(vi) Une relation de rcurrence identifie la stratgie optimale dans chaque tat de
ltape n partir de la stratgie optimale dans chaque tat de ltape n+1.
Dans notre exemple la relation est
(S)=
{Csxn +
(xn)}
La stratgie optimale tant donn que nous sommes ltat S de ltape n, ncessite
de retrouver la valeur de xn qui minimise lexpression ci-dessus.
La relation de rcurrence toujours cette forme
(S)=
ou
{fn(S,xn)},
(-)
(vii) Utilisant cette relation de rcurrence, lalgorithme procde reculons tape par
tape. Il dtermine la stratgie optimale pour chaque tat de chaque tape.
Dans tout problme de programmation dynamique, on peut construire chaque
tape un tableau analogue au suivant.
Etape n
x1
fn(S, x1)
tats n+1
(s)
S
tats n
le cot ou la
distance
La longueur du
Le meilleur
chemin optimal tat de ltape
partir de S
n+1 le long du
jusqu ltat final
chemin
optimal final
Il faut aussi dterminer la nature de lensemble des tats dans chacune des tapes.
Ces tats Sn peuvent tre reprsents par des variables discrtes ou par des variables
continues ou dans certains cas par un vecteur .
tape n tape n+1
Etape 8
f8(S, B)
x8 S
B
1
2
(S)
3
2
3
2
B
B
Etape 7
f7(S, x7) = Csx7+ f8( x7)
x7
S
1
2
3
7
5
-
6
6
(s)
7
5
6
1
1
2
Etape 6
f6(S, x6) = Csx6+ f7( x7)
x6
1
2
3
4
12
9
-
8
7
-
11
7
(s)
S
12
8
7
7
1
2
2
3
Etape 5
f5(s, x5) = Csx5+
(x6)
x5
1
2
3
4
5
16
16
-
11
12
-
8
10
-
11
15
(s)
S
16
11
8
10
15
1
2
3
3
4
Etape 4
f4(s, x4) = Csx4+
(x4)
x4
1
2
3
4
20
-
16
14
-
10
11
-
11
16
20
(x3)
(s)
S
16
10
11
16
2
3
3,4
4
Etape 3
x3
1
2
3
12
-
12
12
-
16
13
17
(s)
S
12
12
13
2
2
3
Etape 2
f2(s, x2) = Csx2+
(x3)
x2
1
2
15
2
15
16
14
(s)
S
15
14
1,2
3
Etape 1
f1(s, x1) = Csx1+
(x1)
x1
20
18
(s)
S
18
1
A
A
2
2
2
3
3
3
4
3
3
5
3
4
6
3
3
7
2
2
8
1
1
9
B
B
Probabilit dchec
Groupes
0
1
2
0,6
0,4
0,2
0,8
0,5
0,3
(S) =
fn(S, xn) n = 1, 2, 3
(S, xn), pn(xn) est la contribution de la dcision xn
(s) =1.
S pn(xn) S- xn
fn(S, xn) = pn(xn)
(S- xn)
Etape 3
x3
(S)
S
0
1
2
0,8
0,8
0,8
0,5
0,5
0,3
0,8
0,5
0,3
0
1
2
Etape 2
f2(S, x2) = p2(x2)
(x3)
x2
0
1
2
0,48
0,3
0,18
0,32
0,2
0,16
(S)
S
0,48
0,3
0,16
0
0
2
Etape 1
x1
0,064
(x1)
2
(S)
S
0,06
= 1,
0,072
= 0 et
0,06
= 1.
Mois
Octobre
Novembre
Dcembre
Janvier
Fvrier
Mars
Demande
40
20
30
40
30
20
Le magasin achte ces chaussures par lots de 10, 20, 30, 40 ou 50 paires avec un
cot de 4$ par paire et des rductions sur les prix dachat.
Quantit
10
20
30
40
50
Solde
4%
5%
10%
20%
25%
Pour n = 1,...,5,
(S)=0
(S)=
{ (xn) +0,2(S+xn-Dn)+
(S+xn-Dn)} avec
Etape 6
A la dernire tape le stock restant est nulle donc les tats possibles de cette tape
sont 0, 10, 20.
(s)
S6
0
10
20
86
84
0
20
10
0
Etape 5
S6 = S5 + x5 30
f5(s, x5)= (x5) +0,2(S+x5-30)+
0
10
f5(s, x5)
20 30
(S+x5-30)
100
50
(s)
S5
0
10
20
30
40
164
142
122
86
50
50
40
30
0
0
Etape 4
S5 = S4 + x4 - 40
f4(s, x4)= (x4)+0,2(S+x5-30)+
0
10
f4(s, x4)
20 30
(S+x5-30)
40
50
(s)
S4
0
10
20
30
- 282
- 250 262
212 230 244
302
282
264
230
304
286
252
218
302
282
250
218
40
30,40
20
10
40
164
Etape 3
S4 = S3 + x3 - 30
f3(s, x3)= (x3)+2/3+1/3-30)
0
10 20 30 40
(s4)
50
(s)
S
0
10
20
30
40
302
284
350
332
302
388
370
340
310
420
402
372
342
290
422
392
362
310
-
414
384
323
-
414
384
323
302
284
50
50
50
0
0
Etape 2
S3 = S2 + x3 - 20
f2(s, x2)= (x2)+0,2+ (S2 + x2-20)
0
10
20
30
40
(s3)
50
414
386
336
467
452
-
(s)
S
0
10
20
30
40
462
434
384
356
500
472
422
394
378
504
454
426
410
-
474
446
430
-
468
446
414
384
336
50
40
0
10
0
Etape 1
S2 = S1 + x1 40
f1(s, x1)= (x1)+0,2+ (S1 + x1-40)
(s2)
0
10
20
30
40
50
(s)
S
0
606
608
606
la politique optimale est 40, 50, 0, 40, 50, 0. Le cot est 606.
40
avec
(R1,R2) =
(R1,R2)=0
Etape 2
A l'tape 2, si on considre toutes les combinaisons possibles des valeurs de R1 et
R2 alors on aura considrer un nombre d'tat total gale 99 tats. Or tous ces
tats ne sont pas ralisables dans le sens qu'on n'aura jamais par exemple dans
l'tape 2 l'tat (10,8). Ainsi, pour dterminer l'ensemble des tats ralisables dans la
deuxime tape, il suffit de considrer toutes les valeurs possible de x1 (0,1 et 2), et
avoir par consquence les tats suivant: (9,11), (6,7) et (3,3).
f2((R1,R2), x2) = 5 x2
1
2
(s)
0
S
9,11
6,7
3,3
0
0
0
5
5
-
10
-
10
5
0
2
1
0
Etape 1
On a : f1((R1,R2), x1) == 3 x1 +
((R1- 3 x1 , R2- 4 x1 ))
f1((R1,R2), x1)
1
2
(s)
S
9,11
10
3+5=8
10
S.c 8 x1 + 5 x2 24
2 x1 + 5 x2 13
x1 IN , x2 IN
La solution optimale est (x1,x2)=(1,2).
o
Max x1 + 2 x2 + x3
S.c 3 x1 + 2 x2 5
3 x2 + 2 x 3 7
x1 IN , x2 IN , x3 IN
La solution optimale est (x1,x2,x3)=(1,1,2).