Académique Documents
Professionnel Documents
Culture Documents
Par
Louis SUMBA CHENGE
Professeur ordinaire
OBJECTIFS PEDAGOGIQUES
Objectif général
A la fin de ce cours de méthodes quantitatives en gestion orienté vers les méthodes de la
programmation dynamique, l’apprenant doit être capable :
de procéder à la division en phases ou périodes des systèmes économiques et de leur
appliquer des méthodes d’optimisation séquentielle adaptées afin de chercher la politique
ou la stratégie optimale ;
de représenter les systèmes à optimiser séquentiellement à l’aide des graphes.
Objectifs spécifiques
Pour réaliser l’objectif global ci-dessus défini l’étudiant sera progressivement
capable
De définir le théorème d’optimalité de Richard Bellman à la base des méthodes de
programmation dynamique ;
D’expliquer la notion d’horizon économique d’un problème ;
D’expliquer la démarche mathématique générale d’optimisation des systèmes en
programmation dynamique dans le cas déterministe et de l’appliquer à la résolution
séquentielle de certains problèmes économiques types (construction d’une autoroute,
répartition d’investissement, problème d’achat) ;
D’expliquer les processus D.H et H.D et de les représenter à l’aide des graphes ;
D’expliquer la démarche générale d’optimisation des processus markoviens, D.H ou H.D
et de l’appliquer à certains problèmes types en avenir aléatoire (problème de
réapprovisionnement, remplacement d’un ensemble d’équipement, etc.) ;
De faire des analyses relatives à l’évaluation du risque pour une stratégie optimale ;
3 Programmation dynamique
CONTENU DU COURS
Introduction générale
Chapitre 1 : Programmation dynamique dans le cas déterministe
1.1 Formules d’optimisation séquentielle
1.1.1 Fonction séparable en phases
1.1.2 Politique et sous-politiques
1.1.3 Optimisation séquentielle
1.2 Application aux problèmes économiques
1.2.1 Optimisation des systèmes à variables discrètes
1.2.2 Optimisation des systèmes à variables continues
Chapitre 2 : Programmation dynamique dans le cas aléatoire
2.1 Théorème d’optimalité dans le cas aléatoire (systèmes discrets)
2.2 Processus D.H et H.D
2.3 Quelques exemples de programme dynamique en avenir aléatoire
2.4 Evaluation du risque pour une stratégie optimale
Références bibliographiques
4 Programmation dynamique
INTRODUCTION GENERALE
D’une manière générale, les problèmes qui se posent en sciences de gestion nécessitent
la prise des décisions. Le gestionnaire est souvent placé en face d’un choix à faire entre plusieurs
actions possibles, c’est-à-dire devant une « situation décisionnelle » qui requiert l’intervention
d’une décision. En effet, l’économie et les affaires sont fortement influencées par la
concurrence d’un côté, la technologie et la science d’un autre côté. La concurrence exige de la
part des entreprises de grands efforts pour produire à un moindre coût, économiser les moyens,
perfectionner la qualité des produits, intéresser la clientèle et rentabiliser chaque produit vendu.
P. Colomb corrobore ce fait en disant : « Dans le monde moderne, une entreprise, quelle que
soit sa finalité, élaboration des produits ou prestation des services, ne peut vivre, ou même
quelquefois tout simplement survivre, que si elle a une compétitivité suffisante. Une bonne
compétitivité est toujours le corollaire d’une bonne gestion ». Justement, pour être compétitive
sur le marché concurrentiel, l’entreprise doit être gérée sur base des décisions rationnelles issues
de l’analyse des observations objectives et systématiques, le plus souvent chiffrées.
Le cours des méthodes quantitatives en gestion devrait permettre, tant soit peu, à fournir
des outils d’ordre quantitatif pour orienter le gestionnaire à prendre les meilleures décisions
possibles dans un contexte managérial donné et à partir d’informations adéquates. C’est
pourquoi, le contenu donné à ce cours est consacré aux méthodes de programmation
dynamique qu’on utilise pour optimiser séquentiellement la gestion des problèmes qui se
posent à l’entreprise.
La programmation dynamique est une branche de la recherche opérationnelle ayant pour
objet l’optimisation séquentielle des systèmes ou de leur représentation mathématique, c’est-à-
dire une optimisation au cours de laquelle on opère par phases ou séquences. Le point de départ
des méthodes de programmation dynamique est le théorème d’optimalité présenté par le
mathématicien américain Richard Bellman. En bref, ce théorème s’exprime comme suit :
« Toute politique optimale ne peut être formée que des sous-politiques optimales ». N’est-il
pas, pour ainsi dire, évident que tout chemin optimal est constitué des portions de chemin, elles-
mêmes optimales ? S’il n’en était pas ainsi pour une portion quelconque, il en existerait une
autre meilleure, qui, complétée par la partie restante du chemin considéré, permettrait
d’améliorer celui-ci, ce qui serait contraire à l’hypothèse.
L’importance de ce théorème d’optimalité et l’efficacité des méthodes d’optimisation
séquentielles auxquelles il a donné naissance s’accentuent au fur et à mesure que l’on s’aperçoit
que la vraie nature de nombreux problèmes est séquentielle, c’est-à-dire autorise leur
5 Programmation dynamique
décomposition en phases, chacune ne dépendant que de ses voisines les plus proches et souvent,
dans les cas favorables, seulement de l’antérieure ou de la postérieure.
On considère généralement que la programmation dynamique concerne l’évolution dans
le temps d’un système économique, celle-ci étant à chaque phase partiellement aléatoire
(intervention du hasard) et partiellement contrôlée (intervention de l’homme). On peut
distinguer les évolutions de première et seconde espèce selon que à chaque phase, l’intervention
du hasard précède la décision humaine (processus H.D) ou, au contraire, la suit (processus D.H).
Evidemment, les cas limites sont ceux opposés :
- Le cas déterministe où le hasard disparaît ;
- Le cas des processus stochastiques où la décision humaine ne se manifeste pas.
Les plus intéressants des processus stochastiques sont les chaînes de Markov. Dans tous
les cas, certains caractères de la programmation dynamique, comme la division séquentielle du
problème, sont conservés, même dans certains cas déterministes où l’évolution temporelle
n’intervient pas.
En programmation dynamique, les problèmes à optimiser séquentiellement et de caractère
économique comportent des phases temporelles ou « périodes ». L’ensemble de toutes les
périodes est appelé « horizon économique » du problème
On peut regrouper à trois les différents horizons, à savoir :
- Les horizons fermés à gauche et à droite ou horizons fermés dans les deux sens : ici le
nombre N des périodes est fini ;
- Les horizons fermés à gauche et ouvert à droite, c’est-à-dire partant d’une certaine date vers
un futur non limité ;
- Les horizons ouverts dans les deux sens, à gauche et à droite, et les horizons ouverts à
gauche et fermés à droite. Ce groupe d’horizons est sans intérêt car le plus lointain passé
n’importe pas.
Le cas le plus important économiquement parlant et qui sera examiné dans ce cours est celui
d’un horizon fermé dans les deux sens.
Les variables qui interviennent en programmation dynamique sont soit discrètes, soit
continues. On les appelle variables de décision, ou variables de position ou encore variables
d’état.
Les applications économiques de la programmation dynamique sont nombreuses et
diversifiées. Ses méthodes interviennent notamment dans la résolution des problèmes
d’investissement, de réapprovisionnement, de gestion de stocks, de remplacement des
équipements, de jeux, etc.
6 Programmation dynamique
La programmation dynamique dans le cas déterministe concerne les problèmes dont les
phases sont entièrement assujetties par l’intervention de l’homme grâce à une suite de décisions
séquentielles. Considérons un système pouvant changer d’état à chaque phase k par une
décision, les états possibles dans chaque phase k (k = 0, 1, 2, …, N) étant en nombre fini ou
non, mais dénombrables. On appelle « politique » une certaine succession de décisions de k =
0 à k = N. On appelle « sous-politique » une suite de décisions jointives faisant partie d’une
politique. Alors si l’on se donne une fonction de valeur relative à ces changements d’état et
qu’on se propose d’optimiser cette fonction, le théorème d’optimalité s’énonce comme suit :
« Une politique optimale ne peut être formée que de sous-politiques optimales ». En effet,
considérons une sous-politique extraite d’une politique optimale. Si cette sous-politique n’était
pas optimale, il en existerait une autre meilleure qui, complétée par la partie restante de la
politique considérée, permettrait d’améliorer celle-ci, ce qui serait contraire à l’hypothèse.
Dans cette expression (3), 𝑥1 ∈ 𝑋1 (𝑥0 , 𝑥2 ) signifie que 𝑥1 appartient à un ensemble des valeurs
𝑋1 qui dépend seulement de 𝑥0 et 𝑥2 . La valeur ou les valeurs de 𝑥1 qui optimisent
𝑣1 (𝑥0 , 𝑥1 ) + 𝑣2 (𝑥1 , 𝑥2 ) définiront la ou les sous-politiques optimales pour les phases 1 et 2 et
pour le couple 𝑥0 et 𝑥2 considéré.
Maintenant prenons les phases 1, 2 et 3 ensembles et appelons 𝑓0,3 (𝑥0 , 𝑥3 ) la valeur
optimale de la somme 𝑣1 (𝑥0 , 𝑥1 ) + 𝑣2 (𝑥1 , 𝑥2 ) + 𝑣3 (𝑥2 , 𝑥3 ) lorsqu’on fait varier 𝑥1 et 𝑥2 dans
leurs domaines respectifs. D’après le théorème d’optimalité on a :
𝑓0,3 (𝑥0 , 𝑥3 ) = max [𝑓0,2 (𝑥0 , 𝑥2 ) + 𝑣3 (𝑥2 , 𝑥3 )] (4)
𝑥2 ∈𝑋2 (𝑥0 , 𝑥3 )
Ceci permet de calculer les sous-politiques optimales successives pour les phases 1 et 2
ensembles, puis 1, 2 et 3 ensembles, …, et enfin pour les phases 1, 2, …, N – 1, N ensemble,
c’est-à-dire la ou les politiques optimales de valeur
𝐹 ∗ (𝑥0 , 𝑥𝑁 ) = max [𝑓0,𝑁−1 (𝑥0 , 𝑥𝑁−1 ) + 𝑣𝑁 (𝑥𝑁−1 , 𝑥𝑁 )]
𝑥𝑁−1 ∈𝑋𝑁−1 (𝑥0 , 𝑥𝑁 )
Remarques
L’optimisation a été réalisée dans le sens 𝑛 = 0 à 𝑛 = 𝑁. Elle peut tout aussi bien être
réalisée dans le sens 𝑛 = 𝑁 à 𝑛 = 0.
Dans le cas où 𝑥𝑁 n’est pas donné, mais seulement son domaine de variation, alors il
convient de chercher 𝐹 ∗ (𝑥0 ) = max 𝐹 ∗ (𝑥0 , 𝑥𝑁 ) (6)
𝑥𝑁 ∈𝑋𝑁
En supposant que pour les calculs on parte de A vers N on a fléché les arrêtes dans le même
sens. Mais on pourrait tout aussi bien partir de N vers A en fléchant en sens inverse. On se
propose de trouver le chemin de coût minimal entre A et N.
𝑥0 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5
H 13
B 9
5 11 3
5 E 10 8 15 L
C 8 2 I 3 4 N
A0 2 2 12 7 19
4 F 11 6 M 3
3 9 6 5 J 11 8 18 6
D 3 6 9
6 13 5
G 9 4 K
I II III IV V
Figure 1
f I ( B ) v I ( A, B ) 5 ;
f I (C ) v I ( A, C ) 2 ;
f I ( D) v I ( A, D) 3.
Appelons maintenant f I , II ( x2 ) le coût minimal pour les tronçons I et II à la fois, et ceci
Ainsi, pour les tronçons I, II, III ensemble, le chemin le moins coûteux est :
ACEH si l’on s’arrête en H ; coût = 13 ;
ACEI si l’on s’arrête en I ; coût = 12 ;
ACFJ si l’on s’arrête en J ; coût = 11 ;
ADGK si l’on s’arrête en K ; coût = 13 ;
En appelant f I , II , III , IV ( x4 ) le coût minimal pour les tronçons I, II, III et IV ensemble, on
a : f I , II , III , IV ( x4 ) Min
x3 H , I , J , K
f I , II , III ( x3 ) v IV ( x3 , x4 )
11 Programmation dynamique
Ainsi
f I , II , III , IV ( L) Min
x3 H , I , J , K
f I , II , III ( x3 ) v IV ( x3 , L) Min13 9, 12 3, 11 7, 13 15 avec x3 I
Ainsi, pour les tronçons I, II, III et IV ensemble le chemin le moins coûteux est :
ACEIL si l’on s’arrête en L ; coût = 15 ;
ACEIM ou ADGKM si l’on s’arrête en M ; coût = 18.
Enfin, en appelant 𝑓 le minimum de F ( x0 , x1 , x2 , x3 , x4 , x5 ) , on a :
= 𝑚𝑖𝑛[15 + 4, 18 + 3] = 19 avec 𝑥4 = 𝐿.
Le chemin de coût minimal est donc ACEILN avec un coût de 19.
Remarques
1. L’optimisation a été réalisée de A vers N. Nous pouvons aussi optimiser en allant de N à A.
Les arcs de la figure 1 sont alors fléchés dans le sens de N à A. Nous reprenons les calculs ci-
dessous pour bien montrer le mécanisme de l’optimisation séquentielle de droite à gauche.
f V ( L) vV ( L, N ) 4 ; f V ( M ) vV ( M , N ) 3.
f III , IV ,V ( E ) Min
x3 H , I , J , K
f IV ,V ( x3 ) v III ( E, x3 ) Min13 3, 7 2,11 , 8 9 avec x3 I
f III , IV ,V ( F ) Min
x3 H , I , J , K
f IV ,V ( x3 ) v III ( F , x3 ) Min13 8, 7 11, 11 5, 8 9 16 avec x3 J
12 Programmation dynamique
f III , IV , V (G)
x
Min
H, I, J, K
f IV , V ( x 3 ) v III (G, x 3 ) Min13 , 7 , 11 , 8 4 12
3
avec x3 K
Ainsi, en partant de N le chemin le moins coûteux est :
- NLIE si l’on s’arrête en E avec comme coût = 9
- NLJF ou NMJF si l’on s’arrête en F avec comme coût = 16
- NMKG si l’on s’arrête en G avec comme coût = 12
f II , III , IV ,V ( x1 ) Min f III , IV ,V ( x2 ) v II ( x1 , x2
x2 E , F ,G
II
A I
III
IV
Figure 2
14 Programmation dynamique
0 0 0 0 0
1 0.28 0.25 0.15 0.20
2 0.45 0.41 0.25 0.33
3 0.65 0.55 0.40 0.42
4 0.78 0.65 0.50 0.48
5 0.90 0.75 0.62 0.53
6 1.02 0.80 0.73 0.56
7 1.13 0.85 0.82 0.58
8 1.23 0.88 0.90 0.60
9 1.32 0.90 0.96 0.60
10 1.38 0.90 1.00 0.60
1,40
𝑓1 (𝑥1 )
1,20
Profits en dizaines de millions
1,00 𝑓3 (𝑥2 )
𝑓2 (𝑥3 )
0,80
0,60 𝑓4 (𝑥4 )
0,40
0,20
0,00
0 1 2 3 4 5 6 7 8 9 10
Un tel problème est de caractère combinatoire et pourrait être résolu par énumération,
mais il faudrait évaluer un nombre considérable de politiques (286 exactement) ; ce serait
encore supportable, mais si l’unité indivisible choisie était le million alors le nombre de
politiques possibles serait trop grand.
Cherchons quelle politique de répartition des investissements donne le maximum du
profit total. Nous utiliserons le théorème d’optimalité Richard Bellman. Notons que l’ordre
dans lequel les phases sont considérées est complètement indifférent : il s’agit d’un système
non ordonné.
Traitement séquentiel
Soient 𝑥1 , 𝑥2 , 𝑥3 et 𝑥4 les investissements en dizaines de millions (unités indivisibles)
dans les zones I, II, III et IV. Appelons 𝑣1 (𝑥1 ), 𝑣2 (𝑥2 ), 𝑣3 (𝑥3 ) et 𝑣4 (𝑥4 ) les profits dans les
régions correspondantes, 𝐹(𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) le profit total. On doit avoir :
𝐹(𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = 𝑣1 (𝑥1 ) + 𝑣2 (𝑥2 ) + 𝑣3 (𝑥3 ) + 𝑣4 (𝑥4 ) avec une restriction ou contrainte :
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 = 10. Sachant que ces quatre variables ne peuvent prendre que les valeurs
entières 0, 1, 2, …, 10 posons :
𝑥1 + 𝑥2 = 𝑢1 (2.1')
𝑢1 + 𝑥3 = 𝑢2 (2.2')
𝑢2 + 𝑥4 = 𝐴 (2.3')
Avec 𝑢1 ≤ 𝐴 et 𝑢2 ≤ 𝐴.
Le montant A prenant successivement les valeurs 0, 1, 2, …, 10, alors le profit total peut
s’écrire : F ( x1 , u1 , u 2 , A) v1 ( x1 ) v2 (u1 x1 ) v3 (u 2 u1 ) v4 ( A u 2 ) (2.4' )
Nous calculons successivement :
f1, 2 (u1 ) Max
x1 0,1, 2, ..., u1
v1 (x1 ) v2 (u1 x1 ) (2.5')
f1, 2, 3 (u 2 ) Max
u1 0,1, 2, ..., u2
f 1, 2 (u1 ) v3 (u 2 u1 ) (2.6')
Passons au calcul numérique. Nous commençons par le calcul de f1, 2 (u1 ) . Les résultats
de calcul sont consignés dans le tableau 1.2 où les colonnes (2) et (3) reproduisent la partie du
tableau 1.1 qui nous intéresse. Les colonnes (4) et (5) sont remplies avec les résultats des calculs
suivants :
f1, 2 (0) Max v1 (x1 ) v 2 (0 x1 ) = 𝑣1 (0) + 𝑣2 (0)
16 Programmation dynamique
f1, 2 (1) Max v1 (x 1 ) v 2 (1 x1 ) Max v1 (0) v 2 (1) ; v1 (1) v 2 (0)
x1 0,1 x1 0,1
f1, 2 (2) Max v1 (x 1 ) v 2 (2 x1 ) Max v1 (0) v 2 (2) ; v1 (1) v 2 (1) ; v1 (2) v 2 (0)
x1 0,1, 2 x1 0,1, 2
f1, 2 (3) max v1 (x1 ) v 2 (3 x 1 ) max 0 0,55 ; 0,28 0,41 ; 0,45 0,25 ; 0,65 0
x1 0,1, 2, 3 x1 0,1, 2, 3
Max 0,85 ; 1,08 ; 1,2 ; 1,3 ; 1,33 ; 1,31 ; 1,27 ; 1,13 1,33
Max 0,88 ; 1,13 ; 1,25 ; 1,40 ; 1,43 ; 1,45 ; 1,43 ; 1,38 ; 1,23 1,45
Max 0,90 ; 1,16 ; 1,30 ; 1,45 ; 1,53 ; 1,55 ; 1,57 ; 1,54 ; 1,48 ; 1,32 1,57
Max 0,90 ; 1,18 ; 1,33 ; 1,50 ; 1,58 ; 1,65 ; 1,67 ; 1,68 ; 1,64 ; 1,57 ; 1,38 1,68
Ainsi, lorsqu’on dispose de 5 dizaines de millions à investir dans la région I et II, la sous-
politique optimale est d’investir respectivement les montants 𝑥1 = 3 et 𝑥2 = 2. Lorsqu’on
17 Programmation dynamique
A l’aide de la formule (2.6’) et des résultats du tableau 1.2, on obtient le tableau 1.3 de la manière
suivante :
f1, 2, 3 (0) Max f1, 2 (u1 ) v3 (0 u1 ) f1, 2 (0) v0 (0) 0 0 0
u1 0
f1, 2, 3 (2) Max f1, 2 (u1 ) v3 (2 u1 ) Max0 0,25 ; 0,28 0,15 ; 0,53 0 0,53
u1 0,1, 2
Max 0 0,62 ; 0,28 0,50 ; 0,53 0,40 ; 0,70 0,25 ; 0,90 0,15 ; 1,06 0
Max 0 0,73 ; 0,28 0,62 ; 0,53 0,50 ; 0,70 0,40 ; 0,90 0,25 ; 1,06 0,15 ; 1,20 0
Max 0 0,82 ; 0,28 0,73 ; 0,53 0,62 ; 0,70 0,50 ; 0,90 0,40 ;1,06 0,25 ;1,20 0,15 ;1,33 0
Max 0,82 ; 1,01 ; 1,15 ; 1,20 ; 1,30 ; 1,31 ; 1,35 ; 1,33 1,35
0 0,90 ; 0,28 0,82 ; 0,53 0,73 ; 0,70 0,62 ; 0,90 0,50 ; 1,06 0,40 ;
Max
1,20 0,25 ; 1,33 0,15 ; 1,45 0
Max 0,90 ; 1,10 ; 1, 26 ; 1,32 ; 1,40 ; 1,46 ; 1,45 ; 1,48 ; 1,45 1,48
0 0,96 ; 0,28 0,90 ; 0,53 0,82 ; 0,70 0,73 ; 0,90 0,62 ; 1,06 0,50 ;
Max
1,20 0,40 ; 1,33 0,25 ; 1,45 0,15 ; 1,57 0
19 Programmation dynamique
Max 0,96 ; 1,18 ; 1,35 ; 1,43 ; 1,52 ; 1,56 ; 1,60 ; 1,58 ; 1,60 ; 1,57 1,60
0 1 ; 0,28 0,96 ; 0,53 0,90 ; 0,70 0,82 ; 0,90 0,73 ; 1,06 0,62 ;
Max
1,20 0,50 ; 1,33 0,40 ; 1,45 0,25 ; 1,57 0,15 ; 1,68 0
Max 1 ; 1,24 ; 1, 43 ; 1,52 ; 1,63 ; 1,68 ; 1,70 ; 1,73 ; 1,70 ; 1,72 ; 1,68 1,73
Les résultats des calculs ci-dessus sont
consignés dans le tableau 1.3 ci-après.
Tableau 1.3
𝑢1 , 𝑥3 , 𝑢2 𝑓1,2 (𝑢1 ) 𝑣3 (𝑥3 ) 𝑓1,2,3 (𝑢2 ) Sous-politiques Sous-politiques optimales
optimales pour I et II pour I, II et III
0 0,00 0,00 0,00 (0, 0) (0, 0, 0)
1 0,28 0,15 0,28 (1, 0) (1, 0, 0)
2 0,53 0,25 0,53 (1, 1) (1, 1, 0)
3 0,70 0,40 0,70 (2, 1) (2, 1, 0)
4 0,90 0,50 0,90 (3, 1) (3, 1, 0)
5 1,06 0,62 1,06 (3, 2) (3, 2, 0)
6 1,20 0,73 1,21 (3, 3) (3, 2, 1)
7 1,33 0,82 1,35 (4, 3) (3, 3, 1)
8 1,45 0,90 1,48 (5, 3) (4, 3, 1)
9 1,57 0,96 1,60 (6, 3) (3, 3, 3) ou (5, 3, 1)
10 1,68 1,00 1,73 (7, 3) (4, 3, 3)
A l’aide de la formule (2.7’) et des résultats du tableau 1.3. on obtient le tableau 1.4 ci-dessous
de la manière suivante :
f1, 2, 3, 4 (0) Max f1, 2, 3 (u 2 ) v 4 (0 u 2 ) f1, 2,3 (0) v4 (0) 0 0 0
u2 0
f1, 2, 3, 4 (2) Max f1, 2, 3 (u 2 ) v 4 (2 u 2 ) Max 0 0,33 ; 0,28 0,20 ; 0,53 0 0,53
u2 0,1, 2
Max 0 0,53 ; 0,28 0,48 ; 0,53 0,42 ; 0,70 0,33 ; 0,90 0,20 ; 1,06 0
0 0,56 ; 0,28 0,53 ; 0,53 0,48 ; 0,70 0,42 ; 0,90 0,33 ; 1,06 0,20 ;
Max
1,21 0
Max 0,56 ; 0,81 ; 1,01 ; 1,12 ; 1,23 ; 1,26 ; 1,21 1,26
0 0,58 ; 0,28 0,56 ; 0,53 0,53 ; 0,70 0,48 ; 0,90 0,42 ; 1,06 0,33 ;
Max
1,21 0,20 ; 1,35 0
Max 0,58 ; 0,84 ; 1,06 ; 1,18 ; 1,32 ; 1,39 ; 1,41 ; 1,35 1,41
0 0,60 ; 0,28 0,58 ; 0,53 0,56 ; 0,70 0,53 ; 0,90 0,48 ; 1,06 0,42 ;
Max
1,21 0,33 ; 1,35 0,20 ; 1,48 0
Max 0,60 ; 0,86 ; 1,09 ; 1,23 ; 1,38 ; 1,48 ; 1,54 ; 1,55 ; 1,48 1,55
0 0,60 ; 0,28 0,60 ; 0,53 0,58 ; 0,70 0,56 ; 0,90 0,53 ; 1,06 0,48 ;
Max
1,21 0,42 ; 1,35 0,33 ; 1,48 0,20 ; 1,60 0
Max 0,60 ; 0,88 ; 1,11 ; 1,26 ; 1,43 ; 1,54 ; 1,63 ; 1,68 ; 1,68 ; 1,60 1,68
0 0,60 ; 0,28 0,60 ; 0,53 0,60 ; 0,70 0,58 ; 0,90 0,56 ; 1,06 0,53 ;
Max
1,21 0,48 ; 1,35 0,42 ; 1,48 0,33 ; 1,60 0,20 ; 1,73 0
Max 0,60 ; 0,88 ; 1,13 ; 1,28 ; 1,46 ; 1,59 ; 1,69 ; 1,77 ; 1,81 ; 1,80 ; 1,73 1,81
21 Programmation dynamique
Les résultats de ces calculs sont placés dans le tableau 1.4 qui suit :
Tableau 1.4
𝑢2 , 𝑥4 , A 𝑓1,2,3 (𝑢3 ) 𝑣4 (𝑥4 ) 𝑓1,2,3,4 (𝐴) Sous-politiques Politiques optimales
optimales pour I, II
et III
0 0,00 0,00 0,00 (0, 0, 0) (0, 0, 0, 0)
1 0,28 0,20 0,28 (1, 0, 0) (1, 0, 0, 0)
2 0,53 0,33 0,53 (1, 1, 0) (1, 1, 0, 0)
3 0,70 0,42 0,73 (2, 1, 0) (1, 1, 0, 1)
4 0,90 0,48 0,90 (3, 1, 0) (2, 1, 0, 1) ou (3, 1, 0, 0)
5 1,06 0,53 1,10 (3, 2, 0) (3, 1, 0, 1)
6 1,21 0,56 1,26 (3, 2, 1) (3, 2, 0, 1)
7 1,35 0,58 1,41 (3, 3, 1) (3, 2, 1, 1)
8 1,48 0,60 1,55 (4, 3, 1) (3, 3, 1, 1)
9 1,60 0,60 1,68 (3, 3, 3) ou (5, 3, 1) (3, 3, 1, 2) ou (4, 3, 1, 1)
10 1,73 0,60 1,81 (4, 3, 3) (4, 3, 1, 2)
On peut vérifier que toutes les sous-politiques de la politique optimale (4, 3, 1, 2) sont
optimales. Par exemple, en considérant I, II, III seulement, x 1 4 , x 2 3 , x 3 1 est bien une
* * *
Notons une fois de plus que dans ce problème l’ordre dans lequel on peut optimiser est
arbitraire. Nous avons choisi l’ordre dans le sens I, II, III et IV ; mais nous aurions pu prendre
par exemple le sens III, I, IV, II ou toute autre permutation.
22 Programmation dynamique
Dans le présent exemple, les grandeurs considérées peuvent varier d’une façon continue.
Ce problème a un caractère séquentiel évident. L’ordre dans lequel les phases doivent être
considérées intervient, mais l’optimisation peut se faire dans un sens ou dans un autre.
Le service des achats d’une entreprise doit, pour permettre la réalisation du programme
des fabrications, approvisionner tous les deux mois en quantités connues d’une certaine matière
première. Le prix d’achat 𝑃𝑖 (𝑖 = 1, 2, … , 6) et la demande 𝑑𝑖 (𝑖 = 1, 2, … , 6) sont données pour
les 6 périodes de deux mois à venir dans le tableau 1.5
Tableau 1.5
Période 𝑖 1 2 3 4 5 6
Demande 𝑑𝑖 8 5 3 2 7 4
Prix d’achat 𝑃𝑖 11 18 13 17 20 10
La capacité de stockage étant limitée, le stock ne doit jamais dépasser une certaine valeur S.
Le stock initial est égal à 2 et le stock final doit être nul. On veut déterminer les quantités à
acheter au début de chaque période de telle sorte que le coût total d’achat soit minimal.
Appelons :
𝑆𝑖 : le stock à la date 𝑖 (fin de la période 𝑖 − 1, début de la période i) avant l’achat 𝑎𝑖 ;
𝑎𝑖 : la quantité achetée à la date 𝑖 ;
𝑥𝑖 : le stock à la date 𝑖 après l’achat 𝑎𝑖 .
La figure 4 donne un exemple d’une solution quelconque.
𝑥4
𝑥5
𝑥1 𝑑4 𝑎
5
𝑥2 𝑆5
𝑥3 𝑎4
𝑑3 𝑑5
𝑎1 𝑑1 𝑑2 𝑎3
𝑎2 𝑆4 𝑥6
𝑆1 𝑎6
𝑆3 𝑑6
a1
𝑆6
0 𝑆2 𝑆7
Date 1 Date 2 Date 3 Date 4 Date 5 Date 6 Date 7
Figure 4
23 Programmation dynamique
+ 10𝑥5 + 10𝑥6
Min Z = 348 – 7𝑥1 + 5𝑥2 – 4𝑥3 – 3𝑥4 + 10𝑥5 + 10𝑥6
Sous les contraintes :
𝑥1 ≥ 8
𝑥1 ≥ 9
𝑥1 + 𝑥2 ≥ 8
𝑥2 ≥ 5
𝑥2 ≥ 9
𝑥2 + 𝑥3 ≥ 5
𝑥3 ≥ 3
𝑥3 ≥ 9
𝑥3 + 𝑥4 ≥ 3
−𝑥4 ≥ 2
𝑥4 ≥ 9
𝑥4 + 𝑥5 ≥ 2
𝑥5 ≥ 7
𝑥5 ≥ 9
𝑥5 + 𝑥6 ≥ 7
𝑥6 ≥ 4
𝑥6 ≥ 9
1 ou encore, par exemple, optimiser les phases 1, 2, 3, 4 d’une part, puis les phases 5 et 6 d’autre
part, et ensuite chercher la politique optimale pour l’ensemble des phases. Tout découpage en
ensembles jointifs des phases conviendrait aussi bien.
𝐹(𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 , 𝑥6 ) = 𝑣1 (𝑥0 , 𝑥1 ) + 𝑣2 (𝑥1 , 𝑥2 ) + 𝑣3 (𝑥2, 𝑥3 ) + 𝑣4 (𝑥3, 𝑥4 ) + 𝑣5 (𝑥4 , 𝑥5 ) + 𝑣6 (𝑥5 , 𝑥6 )
où la quantité 𝑣𝑖 représente la dépense de la période 𝑖. On prendra 𝑥0 = 2.
Période 6 : Le stock final est nul, c’est-à-dire 𝑆7 = 0.
D’après la relation (3.5) on a 𝑆𝑖+1 = 𝑥𝑖 − 𝑑𝑖 𝑥6 − 𝑑6 = 𝑆7 , 𝑠𝑜𝑖𝑡 𝑥6 − 𝑑6 = 0
𝑥6 − 4 = 0 𝑥6 = 𝑑6 = 4. On a donc obligatoirement x *6 = 4
La dépense réalisée pour la période 6 a pour valeur :
v6 ( x5 , x6 ) P6 a6 P6 x6 S 6 P6 x6 ( x5 d 5 ) 10x6 x5 7 110 10 x5
Calculons les bornes de 𝑥5 pour l’optimisation des périodes 6 et 5. D’après la relation (3.12) et
sachant que 𝑆 = 9, 𝑥6 = 4, 𝑑5 = 7, 𝑑4 = 2, on a : 𝑚𝑎𝑥[𝑑5 , 𝑥4 − 𝑑4 ] ≤ 𝑥5 ≤ 𝑚𝑖𝑛[𝑆, 𝑥6 + 𝑑5 ],
soit 𝑚𝑎𝑥[7, 𝑥4 − 2] ≤ 𝑥5 ≤ 𝑚𝑖𝑛[9, 11] ⇒ 𝑚𝑎𝑥[7, 𝑥4 − 2] ≤ 𝑥5 ≤ 𝑚𝑖𝑛[9, 11]
⇒ 𝑚𝑎𝑥[7, 𝑥4 − 2] ≤ 𝑥5 ≤ 9
Les 𝑥𝑖 dans le problème sont toujours inférieurs ou égaux à 9, 𝑚𝑎𝑥[7, 𝑥4 − 2] = 7.
D’où 7 ≤ 𝒙𝟓 ≤ 9
Périodes 6 et 5 réunies : Posons 𝑓6,5 (𝑥4 ) = min [𝑣5 (𝑥4 , 𝑥5 ) + 𝑣6 (𝑥5 , 𝑥6 ]. Or
7≤𝑥5 ≤9
v5 ( x4 , x5 ) v6 ( x5 , x6 ) 40 20 x5 20 x4 110 10 x5 150 10 x5 20 x4
Alors
𝑓6,5 (𝑥4 ) = min [150 + 10𝑥5 − 20𝑥4 ]
7≤𝑥5 ≤9
La fonction 150 + 10𝑥5 – 20𝑥4 est monotone (1) croissante de 𝑥5 . Il faut donc prendre la borne
*
inférieure de 𝑥5 comme valeur de 𝑥5 afin de rendre minimum f 6,5 ( x4 ) ; donc x 5 = 7
………………………………………………
(1) Rappelons qu’une fonction est monotone dans un intervalle quand sa variation ne change pas de signe dans cet
intervalle.
26 Programmation dynamique
𝑣4 (𝑥3 , 𝑥4 + 𝑓6,5 (𝑥4 ) = 17𝑥4 − 17𝑥3 + 51+220 −20𝑥4 = 271 − 3𝑥4 − 17𝑥3
𝑓6,5,4 (𝑥3 ) = min [271 − 3𝑥4 − 17𝑥3 ]
𝑚𝑎𝑥[2,𝑥3 −3]≤𝑥4 ≤9
Comme 271 – 3𝑥4 – 17𝑥3 est une fonction monotone décroissante de 𝑥4 , il faut prendre la borne
supérieure de 𝑥4 comme sa valeur afin de rendre maximum la valeur de la fonction f 6,5, 4 ( x3 ) ;
d’où x *4 = 9 S5 x 4 d 4 = 9 – 2 = 7 et a 5 x 5 S5 = 7 – 7 = 0
* * * * *
* * *
On a donc x 4 = 9, S 5 = 7 et a 5 = 0
𝑣3 (𝑥2 , 𝑥3 ) + 𝑓6,5,4 (𝑥3 ) = 65 + 13𝑥3 − 13𝑥2 + 244 − 17𝑥3 = 309 −4𝑥3 − 13𝑥2
f 6, 5, 4, 3 (x 2 ) Min 309 4x 3 13x 2
max 3 ; x 2 5 x3 9
Comme 309 – 4𝑥3 – 13𝑥2 est une fonction monotone décroissante de 𝑥3 , il faut prendre la borne
supérieure de 𝑥3 comme valeur de 𝑥3 afin de pouvoir rendre minimum la valeur de la fonction
*
f 6,5, 4,3 ( x2 ) ; d’où x 3 = 9
S*4 x *3 d 3 = 9 – 3 = 6 et a *4 x *4 S*4 = 9 – 6 = 3
* * *
On a donc x 3 = 9, S 4 = 6 et a 4 = 3
Or v 2 ( x1 , x 2 ) P2 a 2 P2 x 2 S 2 P2 x 2 x1 d1 18x 2 x1 8 144 18 x 2 18 x1
La fonction 417 + 5𝑥2 − 18𝑥1 est une fonction monotone croissante de 𝑥2 , il faut donc prendre
la borne inférieure de 𝑥2 comme valeur de 𝑥2 afin de minimiser la fonction 𝑓6,5,4,3,2 (𝑥1 ) ; c’est-
On a donc x *2 = 5, S*3 = 0 et a *3 = 9
Comme 420 – 7𝑥1 est une fonction monotone décroissante de 𝑥1 , il faut prendre la borne
supérieure de 𝑥1 comme sa valeur afin de rendre minimum la valeur de la fonction 𝐹 ∗ ; donc
Enfin a 1 x 1 S1 = 9 – 2 = 7.
* *
a * a 1* , a *2 , a *3 , a *4 , a *5 , a *6 7, 4, 9, 3, 0, 4
Le coût d’achat minimal ou la dépense minimale pour les 6 périodes est donc F* = 357.
La politique optimale est reprise sur la figure 5 ci-après :
x 1* x *3 x *4
S*5 x *5
* S*4
x 2
x *6
S1*
S*2
S*3 S*6 S*7
1 2 3 4 5 6 7
Figure 5
Exercice : Reprendre le même exercice avec S = 20
Réponse : x* = [20, 12, 12, 9, 7, 4] ou a* = [18, 0, 5, 0, 0, 4]
La dépense minimale est F* = 303.
29 Programmation dynamique
état 𝐸𝑖 à un état 𝐸𝑗 lorsque la décision est r, le nombre de décisions possibles état fini ou non
A tout changement d’état 𝐸𝑖 → 𝐸𝑗 et pour toute décision r, on attache une valeur R ij(r) qui
(1)
Face au hasard, il convient de remplacer le mot « politique » par le mot « stratégie ».
30 Programmation dynamique
E 1 E 1 E 1 E 1
E1 E1
E1
E 2 E 2 E 2 E 2
E2
E2 E2
E m '1
E m '1 Em "1
Em
Em
Em Em '1
E m '
E m ' E m ' E m '
D H D H .… D H D H
Date 1 date 1' date 2 date 2' date (n – 1)' date n date n'
Figure 2.1: Processus séquentiel type D.H
A chaque date n, le système peut se trouver dans un état E i E ; une décision le fait
passer de l’état 𝐸𝑖 à un état E r D (E i ) à une date n’ telle que n < n' < n + 1. A toute décision
E i Er est attachée une valeur 𝑎𝑖𝑗 . A la date n' le hasard intervient et le système retourne à
l’un des états E j H Er E avec la probabilité 𝑃𝑟𝑗 . A cette transition est attachée une valeur
𝑖 = 1, 2, …, M ; n = 1, 2, …, N
31 Programmation dynamique
A chaque date n considérée, le système peut se trouver dans un état Er E : à cette date
le hasard intervient et le système passe dans un état E j H Er avec une probabilité 𝑃𝑟𝑗 et
une valeur 𝐶𝑟𝑗 . A la date n' telle que n < n' < n + 1 une décision intervient et permet de retourner
à l’un des états Es E , tel que Es D (E j ) et ceci avec une valeur 𝑑𝑟𝑗 . Les dates et phases
E 1 E 1 E 1
E1 E1 E1
E1
E 2 E 2
E 2
E2
E2 E2 E2
Em
Em Em Em
E m '
E m ' E m '
H D H D … H D H D
Figure 3.2 : Processus séquentiel type D.H
32 Programmation dynamique
Quantités données
Un système dans lequel, à chaque phase, un effet aléatoire précède une décision sera
appelé « processus H.D »
Dans le cas d’un processus non stationnaire avec des notations analogues à celles utilisées
pour un processus D.H on aura :
(n) (n)
g r ( N n, N) Prj C rj opt
jS g S ( N n 1, N)
d (n) (20)
E j (n) H(n) Er (n) ES (n) D(n) E j (n)
n = 1, 2, …, N et r = 1, 2, …, M’
avec g r ( N, N) g 0, r (21), quantités données.
Remarques
1. Processus plus généraux
On peut considérer des processus tels que, à l’intérieur d’une phase, on ait une succession
de décisions et d’effets du hasard, par exemple H1D1D2H2H3 avec des applications données
de chaque ensemble d’états dans le suivant. Il est alors possible de généraliser les formules
(14), (16), (18) et (20). Ces formules généralisées deviennent compliquées mais pas difficile
à reconstituer si nécessaire pour un processus donné.
2. Réduction à une chaîne de Markov avec décision
Les processus discrets tels que ce qui se passe à la date n ne dépend que de l’état considéré
à la date n – 1 sont markoviens. Ils peuvent former des chaînes de Markov multiples s’ils
sont stationnaires. Toutefois, les processus DH, HD et leur généralisation, lorsque les phases
sont décomposables en une succession de décisions et d’effets du hasard, conviennent tout
aussi bien aux cas non stationnaires qu’aux cas stationnaires. Ils sont donc beaucoup plus
pratiques.
33 Programmation dynamique
A B
C D
Figure 2.3
Le jeu se décompose en 1 phase préalable suivie de 3 phases. On donne au joueur un jeton à
placer dans une case.
Phase 0 : Le joueur indique dans quelle case son jeton se trouve initialement.
Phase I : Etant initialement dans une certaine case, le joueur peut se déplacer selon les flèches
pointillées indiquées sur la figure 3.4. Ainsi, étant initialement en B il peut aller en A, en B ou
en D. Ce mouvement étant réalisé, le hasard intervient, une roue de loterie appropriée renvoie
le jeton dans une autre case selon les différentes lois de probabilité indiquées dans la colonne
« hasard » de la phase 1. Ainsi, après la décision, le jeton étant en D, les trois évènements
suivants peuvent se produire : il va en A avec un gain de 3 et une probabilité de 0,5 ; en C avec
un gain de 2 et une probabilité de 0,3 ou en D avec un gain de 1 et une probabilité de 0,2.
Phase II : Même processus, mais l’ensemble des décisions autorisées est différent ainsi que les
gains et lois de probabilité.
Phase III : Encore le même processus, mais avec un ensemble de décisions autorisées, de gains
et probabilités différent.
Le jeu se termine en phase III et on calcule le gain total pour les 3 phases. On se propose
de déterminer l’espérance mathématique optimale du gain, c’est-à-dire la stratégie ou les
stratégies rendant l’espérance mathématique du gain maximale.
34 Programmation dynamique
x1 y1 x2 y2 x3 y3 x4
Figure 2.4 : Graphe du jeu et recherche des stratégies optimales
en :
*
𝑥1 = A, Fmax(A) = 9,848 avec y1 = A ;
*
𝑥1 = B, Fmax(B) = 12,312 avec y1 = B ;
*
𝑥1 = C, Fmax(C) = 12,312 avec y1 = B ;
*
𝑥1 = D, Fmax(D) = 8,690 avec y1 = C.
Stratégies optimales
En phase I, si :
𝑥1 = A, prendre 𝑦1 = A ;
𝑥1 = B, prendre 𝑦1 = B ;
𝑥1 = C, prendre 𝑦1 = B ;
𝑥1 = D, prendre 𝑦1 = C
En phase II, si :
𝑥2 = A, prendre 𝑦2 = B ;
36 Programmation dynamique
𝑥2 = B, prendre 𝑦2 = D ;
𝑥2 = C, prendre 𝑦2 = B ;
𝑥2 = D, prendre 𝑦2 = C.
En phase III, si :
𝑥3 = A, prendre 𝑦3 = B ;
𝑥3 = B, prendre 𝑦3 = B ;
𝑥3 = C, prendre 𝑦3 = C ;
𝑥3 = D, prendre 𝑦3 = C.
Ainsi en répétant le jeu un nombre de fois suffisant on obtiendrait les valeurs maximales
obtenues comme valeurs moyennes si on appliquait les stratégies optimales définies ci-dessus.
On pourrait admettre que pour 100 parties les valeurs moyennes obtenues seront peu écartées
de celles correspondant au calcul. Nous présentons sur la figure 3.5 les stratégies optimales
trouvées ci-dessus.
7,96 3,6
6,80
B 12 ,312 12 ,312 3,6 0
x1 y1 x2 y2 x3 y3 x4
Figure 2.5 : Présentation des stratégies optimales
2. Un problème de réapprovisionnement
Un article est réapprovisionné tous les trois mois et on se préoccupe de la gestion
annuelle. Le stock initial est nul. La demande trimestrielle 𝑢𝑖 pour un trimestre i (i = 1, 2, 3, 4)
est aléatoire et sa loi de probabilité (ui ) est la même pour chacun des quatre trimestres. Le
coût de stockage d’un article par trimestre est C1. Lorsque le stock est insuffisant pour faire face
37 Programmation dynamique
A chaque trimestre deux situations sont possibles et représentées par les figures 3.6 a et 3.6 b
ci-après.
𝜎𝑖 i
𝑎𝑖 𝑢𝑖 𝑎𝑖 𝑢𝑖
𝑆𝑖 𝑆𝑖+1 = 𝜎𝑖 − 𝑢𝑖 Si
Si 0 0 𝑆𝑖+1 = 0
𝑢𝑖 – 𝜎𝑖
Situation (a) : pas de pénurie 𝝈𝒊 ≥ 𝒖𝒊
(1)
On ne sait pas à l’avance à quelle date du trimestre les articles seront demandés, et on suppose que la probabilité
d’une demande un certain jour j de ce trimestre est la même que pour tout autre jour.
38 Programmation dynamique
u
Le coût moyen pour le trimestre i est donc C1 i i (4.2)
2
si la demande est ui .
1 i2
Le coût moyen pour le trimestre i est C1 C 2 (ui i ) (4.4)
2 ui
si la demande est ui .
Le problème est représenté pour les 4 trimestres de l’année par le graphe de la figure 2.7.
Il s’agit d’un processus D.H stationnaire tant du point de vue des probabilités de transition 𝑝𝑖𝑗
qu’en ce qui concerne les valeurs de transition 𝑅𝑖𝑗 représentant les coûts moyens de stockage
et de pénurie. Ces coûts sont déterminés sur la figure 3.7 à l’aide des formules (4.2) et (4.4).
Les contraintes suivantes interviennent :
Si i S (4.5)
Soit S i ai S i S (4.6)
Ou encore 0 ai S S i (4.7)
Représentation du problème par un graphe
S1 σ1 S2 σ2 a S3 σ3 S4 σ4
3 29,29 22,80 22,80 16,22 16,22
29,29 9,20
b
σ i 1
u 1 σ i2
Z(σ i ) C1 σ i i u i C1 C 2 u i σ i u i (4.8)
u 0
i
2 u σ
i i 2 ui
Nous allons évaluer successivement l’optimum pour le trimestre 4, puis pour les
trimestres 4 et 3 ensemble, puis 4, 3, 2 et enfin 4, 3, 2 et 1 ensemble. Rappelons que dans le cas
aléatoire l’optimisation doit obligatoirement remonter le temps (c’est-à-dire doit aller du futur
au passé).
Avec les valeurs numériques précisées ci-dessus et en tenant compte du fait que tous les
trimestres ont la même loi de probabilité vis-à-vis des demandes, on posera :
σ i 1
u 3
σ i2
Z(σ i ) 4 σ i i u i 2 12 u i σ i u i (4.9)
u 0
i
2 u σ
i i ui
Résolution
Trimestre 4 : Appelons f 4 (S4 ) le coût minimal pour le trimestre 4 en tenant compte du fait
On a successivement :
3
Z(0) 12u u . 12(1)(0.3) (2)(0.4) (3)(0.1) 16.8
u4 0
4 4
3
2
Z(1) 4 0 12u 4 1. u 4 (4)(0.2) (2)(0.3) (13)(0.4) ( )(0.1) 9.07
74
ui 1 u 4 3
40 Programmation dynamique
1
u 3
8
Z(2) 4 2 4 u 4 12u 4 2 u 4 (8)(0.2) (6)(0.3) (4)(0.4)
u4 0 2 u 4 2 u 4
44
( )(0.1) 6.47
3
2
u 3
18
Z(3) 4 3 4 u 4 12u 4 3 u 4
u4 0 2 u 4 3 u 4
(12)(0.2) (10)(0.3) (8)(0.4) (6)(0.1) 9.20
A partir des valeurs Z(0) , Z(1) , Z(2) et Z(3) ci-dessus, on évalue f4(0), f4(1), f4(2) et f4(3)
de la manière suivante :
f4(0) = Min Z(σ 4 ) = Min [ Z(0) , Z(1) , Z(2) , Z(3) ] = Z(2) = 6,47
0 σ4 3
3 u 3 si u 3 3
S4
0 si u 3 3
S 4 max 3 u3 , 0 (4.10)
3
v4 ( 3 ) f
u3 0
4 ( S ) (u )
4 3 (4.11)
S 4 max 3 u3 , 0
3
v4 ( 3 0) f 4 ( S ) (u ) f 4 (0) (0) (1) (2) (3) 6.47 1 6.47
4 3
u3 0
S 4 max0 u3 , 0
3
v4 ( 3 1) f 4 ( S 4 ) (u3 ) f 4 (1) (0) f 4 (0) (1) (2) (3)
u3 0
S 4 max1u3 , 0
3
v 4 ( 3 3) f
u3 0
4 ( S ) (u ) f 4 (3) (0) f 4 (2) (1) f 4 (1) (2) f 4 (0) (3)
4 3
S 4 max3u3 , 0
Etant donné qu’il s’agit d’un processus stationnaire : Z(σ i ) Z(σ j ) i j, alors :
v 4, 3 (σ 2 1) f 4,3 (1) (0) f 4,3 (0) (1) (2) (3) (12.94)(0.2) (12.94)(0.8) 12.94
v 4, 3 (σ 2 2) f 4,3 (2) (0) f 4,3 (1) (1) f 4,3 (0) (2) (3)
(12.94)(0.2) (12.94)(0.3) (12.94)(0.5) 12.94
v 4, 3 (σ3 3) f 4,3 (3) (0) f 4,3 (2) (1) f 4,3 (1) (2) f 4,3 (0) (3)
(16.22)(0.2) (12.94)(0.8) 13.60
On a : f 4, 3, 2 (S 2 ) Min Z(σ 2 ) v 4, 3 (σ 2 )
S2 σ 2 3
v 4, 3, 2 (σ1 0) f 4,3,2 (0) (0) (1) (2) (3) f 4,3,2 (0) 19.41
v 4, 3, 2 (σ 2 1) f 4,3,2 (1) (0) f 4,3,2 (0) (1) (2) (3) (19.41)(0.2) (19.41)(0.8) 19.41
v4,3,2 ( 1 3) f 4,3,2 (3) (0) f 4,3,2 (2) (1) f 4,3,2 (1) (2) f 4,3,2 (0) (3)
(22.80)(0.2) (19.41)(0.8) 20.09
Trimestres 4, 3, 2 et 1 ensemble : Appelons f 4, 3, 2,1 (S1 ) le coût minimal pour les trimestres 4,
3, 2 et 1 ensemble. On a : f 4, 3, 2,1 (S1 ) Min Z(σ1 ) v 4, 3, 2 (σ1 )
S1 σ1 3
Alors :
Trimestre 1 : S1 = 0, σ1 = 2, a 1 = 2
* *
Si S2 = 1, prendre σ 2 = 2, d’où a 2 = 1
* *
Si S2 = 2, prendre σ 2 = 2, d’où a 2 = 0
* *
Si S2 = 3, prendre σ 2 = 3, d’où a 2 = 0
* *
Si S3 = 1, prendre σ 3 = 2, d’où a 3 = 1
* *
Si S3 = 2, prendre σ 3 = 2, d’où a 3 = 0
* *
Si S3 = 3, prendre σ 3 = 3, d’où a 3 = 0
* *
Si S4 = 1, prendre σ 4 = 2, d’où a 4 = 1
* *
Si S4 = 2, prendre σ 4 = 2, d’où a 4 = 0
* *
Si S4 = 3, prendre σ 4 = 3, d’où a 4 = 0
* *
3
1 2 3 S4 4
2
1 S5
S2
S1 0 S3
Figure 2.8
2 2 2 2
Si 0
Si 1
𝑤 ∗ = si
1 1 1 1
0 0 0 0 Si 2
0 0 0 0 Si 3
signalée dans la théorie. Il est recommandé de tracer le graphe des changements d’état en vue
de l’établissement du modèle mathématique séquentiel dont le graphe lui-même donne la
structure.
En fait, la représentation à l’aide d’un graphe, lorsqu’elle est matériellement possible,
s’avère particulièrement commode pour mener les calculs et traduire de manière concrète les
formules (14), (15), (16), (17), (18), (19), (20) et (21) vues dans la théorie de ce chapitre. Il
suffit de ramener en chaque point l’espérance mathématique des valeurs totales ultérieures s’il
s’agit d’un point de hasard et la valeur optimale s’il s’agit d’un point de décision. On commence
par porter sur les arcs du hasard les valeurs de transition et les probabilités qui leur sont
associées, ceci pour toutes les hypothèses intervenant dans le problème. On porte également sur
les arcs de décision les valeurs de transition qui les concernent. Le présent problème ne contient
pas de telles valeurs. Mais on pourrait imaginer des coûts de transport proportionnels au nombre
d’unités approvisionnées. On porte ensuite sur les sommets de la fin de la dernière phase les
valeurs terminales. Dans le présent problème elles sont nulles ; le stock est supposé être cédé
gratuitement, mais on pouvait le revendre dans un autre problème.
Une présentation de la (ou des) stratégies(s) optimales(s) en traits renforcés sur le même
graphe ou graphe identique (figure 2.9 ci-dessous) est, en général, intéressante à observer.
S 1 σ1 S2 σ2 S3 σ3 S4
3 29,29 29,29 22,80 22,80 16,22 16,22 9,20
Les nombres placés dans les colonnes i donnent les espérances mathématiques ramenées à la
période pour la valeur de i décidée. Les nombres placés dans les colonnes Si donnent les valeurs
optimales ramenées pour chaque valeur de Si. Sur la figure 2.7 les nombres placés sur les arcs du
hasard donnent dans l’ordre : la demande, la variation du coût et la probabilité de transition.
1 1,0 0
2 0,8 1/5
3 0,5 3/8 0,5
4 0,2 3/5
5 0,1 1/2
≥6 0,0 1 n
0 1 2 3 4 5
Figure 2.10
La colonne (2) du tableau 3.10 exprime la probabilité qu’un équipement soit encore en
état de fonctionner après la date n. La colonne (3) indique la probabilité conditionnelle d’avarie
(taux d’avarie) dans l’intervalle n – 1 à n, cette avarie entraînant nécessairement le
remplacement à la fin de la période.
Le tableau 3.3 ci-dessous donne le coût d’entretien et la valeur de l’équipement à chaque
date n.
47 Programmation dynamique
100 + 75,6
42 ,9 5 28 60
0 = 175,6 100
1 40 1 40
1 1 1
40 40
60 + 105,58
71,6 38 ,9 1 32
1 = 165,58 75 ,6 42 ,9 5 28 60
4/5 60 4/5 60 4/5 60 4/5 60 4/5
40 + 124,15 70 70
86,25 53,25 70 20,625 70 18,75
2 = 164,15 40
96,25 63,25 30,625 8,75
5/8 5/8 5/8 5/8 5/8
17 17 17
80 80 80 80
30 + 134,9
1/ 5 97 1/ 5 64 1/ 5 32 1/ 5 17 8 1/ 5
3 = 164,9
112 ,9 75 42 9
30
3/8 2/5 26 3/8 2/5 26 3/8 2/5 26 3/8 2/5 3/8 2/5
90 90 90 90
20 + 137,9
100 67 35 26 5
4 = 157,9 3 / 5 3/ 5 85 3/ 5 3/ 5 3/ 5 20
122 ,9 52 20
1/ 2 38 1/ 2 38 1/ 2 38 1/ 2 1/ 2
100 100 100 100
10 + 142,9
5 = 152,9 1 / 2 105 1 / 2 72 1 / 2 40 1 / 2 38 0 1/ 2
10
132 ,9 95 62 30
1 1 1 1 1
Après calculs menés directement sur le graphe on constate que la stratégie optimale est la
suivante :
Cette stratégie optimale est représentée en traits renforcés (rouge) sur le graphe de la
figure 2.11 dans les colonnes de décision.
Remarques
1. L’âge 6 correspond à un équipement avarié et remplacé par un équipement neuf ou à un
équipement ayant atteint l’âge 5 et par conséquent remplacé par un équipement neuf.
2. Après 5 années d’exploitation les équipements sont revendus à leurs valeurs données dans
le tableau 3.3. Ces valeurs sont considérées négativement car on étudie le coût des
équipements. Mais à la date 0 ces valeurs sont considérées positivement car elles fournissent
le coût de leur acquisition.
3. On voit qu’à partir de la date 3 en remontant vers la date 0 une stratégie permanente apparaît.
2.15), puis la valeur maximale (résultat le plus défavorable possible de la stratégie optimale,
figure 2.16).
Les valeurs indiquées sur la figure 2.15 à la date 0 aux différents états des équipements
constituent les coûts les moins élevés possibles si à cette date on utilise un équipement ayant
l’un des âges indiqués par ces états. De même, les valeurs indiquées sur la figure 2.16 à la date
0 aux différents états des équipements constituent les coûts les plus élevés possibles si à cette
date on utilise un équipement ayant l’un des âges indiqués par ces états.
51 Programmation dynamique
100 + 48
11 16 36 60
0 = 148
60 + 64
4 44 4 7 4 20 4 40
1 = 124
48 11 16 36 60
40 + 81 70
10 54 10 70 34 10 70 3 10 30
2 = 121
44 20 40
64 7
80 80 80 80
30 + 91
17 20
3 = 121
81 54 34 3 30
20 + 101 90 90 90 90
10
4 = 121
44 20 20
91 64
6 111 84 64 40 0
HASARD DECISION HASARD DECISION HASARD DECISION HASARD DECISION HASARD
100 + 148
108 44 D 60
0 = 248 A 0 2 A 3 4 E 4
1 1 1 1 1
60 + 208 D3
A1 4 144 4 104 4 40 D 4 0A 4
1 = 268 148 A 1 108 44
3
4 60
E5
A4
4/5 4/5 4/5 4/5 4/5
40 + 208 70
10 144 10 70 104 10 70 40 D 4 10 0
2 = 248
A 2 40
154 115 50 10 D 4 A5
A2
5/8 5/8 5/8 5/8 5/8
80 80 80 80
30 + 208 74 17 0
3 = 238 1/ 5 178 1/ 5 1/ 5 A3 1/ 5 17 1/ 5 30
D5
2/5 2/5 2/5 2/5 2/5
20 + 208 3/8 90 3/8 90 3/8 90 3/8 90 3/8
4 = 228
3/5 3/5 3/5 3/5 3/5 20
188
1/ 2 100 1/ 2 1/ 2 1/ 2 1/ 2
10 + 208 100 100 100
1/ 2 1/ 2 1/ 2 1/ 2 1/ 2
5 = 218
198 10
1 1 1 1 1
D2 C3 E4
6 208 144 104 40 B5 0
HASARD DECISION HASARD DECISION HASARD DECISION HASARD DECISION HASARD
Considérons un équipement neuf à la date 0 et décelons tous les chemins partant de cet
équipement neuf à la date 0 jusqu’à la date 5. Déterminons ensuite le coût de chaque chemin et
la probabilité correspondante. Celle-ci est, d’après le théorème de multiplication, le produit des
probabilités attachées à chaque arc « hasard » faisant partie du chemin. S’il y a plusieurs
chemins de même coût partant de cette même origine on fera la somme des probabilités de ces
chemins.
Sur la figure 2.16 nous avons désigné par des lettres indicées tous les sommets se trouvant
sur les différents chemins partant de l’origine « équipement neuf » à la date 0. Ainsi dans le
tableau ci-dessous nous indiquons ces chemins, leurs coûts et probabilités correspondants.
Tableau 2.6
Chemins Coûts Probabilités
A0 – A1 – A 1 – A2 – A 2 – A3 – A 3 100 + 4 + 10 + 70 + 4 – 40 = 1x
4 5 4 4
x x 1 x = 0,4
5 8 5 10
– A4 – A 4 – A5 148
A0 – A1 – A 1 – A2 – A 2 – A3 – A 3 100 + 4 + 10 + 70 + 4 – 00 = 1x
4 5 1 1
x x 1 x = 0,1
5 8 5 10
– A4 – A 4 – B5 188
A0 – A1 – A 1 – A2 – A 2 – C3 – A 3 4 3 4 6
x x1x
100 + 4 + 10 + 100 + 4 – 40 1x =
5 8 5 25
– A4 – A 4 – A5 = 178
0,24
A0 – A1 – A 1 – A2 – A 2 – C3 – A 3 4 3 1 3
x x1x =
100 + 4 + 10 + 100 + 4 + 0 = 1x
5 8 5 50
– A4 – A 4 – B5 218
0,06
A0 – A1 – A 1 – D2 – D 2 – D3 – D 3 100 + 4 + 100 + 4 + 10 – 30 1x
1 4 5 1
x1x x = 0,10
5 5 8 10
– D4 – D 4 – D5 = 188
A0 – A1 – A 1 – D2 – D 2 – D3 – D 3 1 4 3 3
x1x x =
100 + 4 + 100 + 4 + 10 + 0 = 1x
5 5 8 50
– D4 – D 4 – B5 218
0,06
A0 – A1 – A 1 – D2 – D 2 – D3 – D 3 100 + 4 + 100 + 4 + 100 – 1x
1 1
x1x x1
1
= 0,04
5 5 25
– E4 – E 4 – E5 60 = 248
Ainsi la distribution des probabilités des coûts pour un équipement neuf à la date 0 est
reprise dans le tableau ci-après :
54 Programmation dynamique
Tableau 2.7
On peut trouver comme ci-dessus la distribution des probabilités pour chacun des états de
l’équipement à la date 0. Pour un équipement neuf à la date 0 la probabilité d’obtenir un coût
supérieur à 188 est de 0,16.
En utilisant les lois de distribution pour les divers états initiaux considérés, on peut être
conduit à ne pas nécessairement accepter de débuter avec un matériel dont l’âge correspond à
l’optimum optimorum (optimum des espérances mathématiques des états initiaux, figure 2.11),
mais à tenir compte du risque de dépassement d’un coût critique.
55 Programmation dynamique
Références bibliographies
1. Colomb P., « Gestion des stocks et des pièces de rechange », Editions Eyrolles, Paris,
1948.
2. Desbazeille G., « Exercices et problèmes de recherche opérationnelle », Dunod, Paris,
1976.
3. Gavaut L. ; Lauret A., « Techniques et pratique de la gestion des stocks », 3ème édition,
1985.
4. Janssen J., « Théorie des équipements », notes de cours.
5. Kaufmann A., « Méthodes et modèles de la recherche opérationnelle », Tome 1, Dunod,
Paris, 1972.
6. Kaufmann A., « Méthodes et modèles de la recherche opérationnelle », Tome II, Dunod,
Paris, 1968