Alea Online Supply Chain
Alea Online Supply Chain
Alea Online Supply Chain
26 juillet 2022
ii
Table des matières
1 Files d’attente 5
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Files d’attente simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Compléments bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 Revenue management 37
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Cas à deux classes tarifaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 Cas à N classes tarifaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.4 Les heuristiques EMSR-a et EMSR-b . . . . . . . . . . . . . . . . . . . . . . 42
4.5 Compléments bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Faire un chapitre à part sur Little, production rate, lead time, et raisonnement heuristique (avec exercices) ; que des
moyennes asymptotiques
TABLE DES MATIÈRES 2
Introduction
Avec les progrès récents de l’informatique et des nouvelles technologies (intelligence ar-
tificielle, apprentissage automatique, internet des objets, etc.) et l’arrivée du e-commerce,
les besoins de la Supply Chain en matière de maı̂trise des incertitudes et du temps réel ont
fortement cru ces dernières années. La complexité des problématiques qu’un consultant ou
ingénieur travaillant dans la Supply Chain peut rencontrer au quotidien ne cesse de gran-
dir et les interactions avec les dernières découvertes techniques ou scientifiques du monde
“digital” sont désormais constantes.
L’objectif principal du cours est de former les élèves à la manipulation des outils de la
recherche opérationnelle et des probabilités adaptés à une prise de décision optimisée dans la
Supply Chain, dans un contexte d’incertitudes et de temps réel. Un des fils conducteurs de ce
cours est donc la question : comment prendre des décisions optimisées dans la Supply Chain
lorsque les données ne sont pas parfaitement connues ? Un second objectif est d’accroı̂tre les
capacités des élèves à modéliser les problèmes de décision propres à la Supply Chain et à
prendre du recul quand il s’agit d’interpréter des résultats fournis par des algorithmes ou
des simulations numériques pour de tels problèmes.
Bien que résolument guidé par les applications, ce cours se veut scientifique. Le contenu
mathématique et informatique y est présenté de manière rigoureuse et précise, sous forme de
résultats formalisés (comme les théorèmes ou les propositions). C’est la forme la plus sûre
permettant la compréhension des conditions exactes d’applications de ces outils et la prise de
recul que l’on peut attendre de la part d’ingénieurs généralistes de haut niveau. Les preuves
de résultats mathématiques classiques et élémentaires seront en général omises ; de même,
les preuves s’appuyant sur des résultats trop avancés par rapport au niveau du cours seront
également omises. En revanche, les preuves accessibles de résultats moins standard seront
quasiment toujours données dans le détail. Elles permettront aux élèves qui le souhaitent
d’acquérir une meilleure compréhension des résultats, voire de pouvoir les étendre à des
situations différentes de celles abordées en cours.
TABLE DES MATIÈRES 4
CHAPITRE 1
Files d’attente
1.1 Introduction
Les files d’attente forment un domaine à la fois actif et difficile des probabilités théoriques.
En même temps, c’est un domaine dont les applications sont innombrables, dans les télécom-
munications, en informatique et en supply chain. Depuis les années 40, les files d’attente
sont utilisées pour dimensionner des services, des équipes d’entretien ou pour analyser des
systèmes logistiques. L’un des articles fondateurs du sujet, dû à Jackson, a d’ailleurs été
identifié en 2004 comme l’un des dix articles les plus influents de la revue Management
Science de ces 50 premières années.
Bien que reliées à des questions ardues de mathématiques, la théorie des files d’attente
fournit des outils directement applicables pour un ingénieur. Ce chapitre présente quelques
résultats fondamentaux dont la portée pratique est établie depuis longtemps. Comme par-
tout dans ce cours, seuls les aspects mathématiques incontournables seront évoqués, parfois
sous une forme simplifiée, mais toujours rigoureuse, pour éviter des discussions techniques
dépassant le cadre de ce cours.
Ce chapitre est partagé en deux sections. Une section, intitulée “Préliminaires”, traite
d’un résultat fondamental de la théorie des files d’attente, la loi de Little, qui a trouvé des
applications pratiques et théoriques variées. Cette section présente aussi l’un des concepts
fondamentaux pour la modélisation d’arrivées aléatoires et non concertées d’individus ou
d’événements : les processus de Poisson. La seconde section, intitulée “Files d’attente sim-
ples”, aborde les files d’attente les plus élémentaires—un seul serveur, pas de problème de
capacité—mais dont les applications sont déjà très nombreuses et permettent d’avoir un
premier aperçu des modèles et résultats de ce domaine.
1.2 Préliminaires
Informellement, cette loi stipule que le nombre moyen de clients dans le système est égal
à la fréquence moyenne d’arrivée fois le temps moyen passé dans le système. Cela peut
d’ailleurs sembler tellement évident que la nécessité d’une preuve peut paraı̂tre inutile. Il
suffit cependant d’essayer de formaliser cette propriété pour voir que la question n’est pas
si triviale que cela, et avant la preuve de Little, certains pensaient pouvoir construire des
exemples où elle ne serait pas satisfaite.
Les applications de cette loi sont extrêmement nombreuses. En pratique, elle peut par
exemple servir à dimensionner un magasin ou un entrepôt : connaissant l’intensité du flux
entrant et le temps passé en moyenne, on peut en déduire le nombre de clients ou d’unités
présents en moyenne. Elle sert aussi en théorie : elle peut par exemple être appliquées à
certains sous-systèmes d’une file d’attente ou d’un réseau bien choisi et permettre des calculs
bien plus simples que ceux qu’une approche directe aurait imposés.
La loi de Little existe désormais sous de nombreuses formes. Celle que l’on propose dans
cette section est l’une des plus générales et va être énoncée dans un contexte déterministe.
Nous verrons plus loin dans ce chapitre comment cette version déterministe implique une
version stochastique.
On considère donc un système vide à l’instant t = 0 dans lequel arrivent des clients.
Soit tn l’instant d’arrivée du n-ième client et on suppose que la suite des instants d’arrivée,
t1 , t2 , . . ., est une suite croissante de R+ (pas nécessairement strictement) tendant vers +∞.
On note Sn > 0 le temps passé par le n-ième client dans le système. Il convient de souligner
que les clients peuvent très bien sortir dans un ordre différent de celui des arrivées, ce qui
constitue un autre témoignage de la portée générale de cette loi. Dans la suite du chapitre,
les files d’attente considérées auront des règles plus strictes sur l’ordre des départs.
On pose
• Qt le nombre de clients dans le système à l’instant t, sans compter un éventuel client
le quittant précisément à cet instant.
• Nt le nombre de clients arrivés dans le système jusqu’à l’instant t inclus.
On peut donner une définition mathématique de ces quantités :
convergent pour t et n tendant vers +∞, on note leurs limites respectives par q̄, par λ̄ et
par s̄. Ces quantités peuvent être interprétées respectivement comme le nombre moyen de
clients, le fréquence moyenne d’arrivée et le temps de séjour moyen. Chacune de ces limites
peut exister indépendamment des autres, mais on a le résultat suivant.
Théorème 1.1 (Loi de Little). Si λ̄ et s̄ existent et sont finis, alors q̄ existe et on a q̄ = λ̄s̄.
7 CHAPITRE 1. FILES D’ATTENTE
Afin de démontrer ce théorème, nous établissons un petit lemme qui montre que, sous les
conditions de la loi de Little, le temps de séjour ne peut pas croı̂tre trop vite.
Sn Sn
Lemme 1.2. Si λ̄ et s̄ existent et sont finis, alors lim = lim = 0.
n→+∞ n n→+∞ tn
n n−1
1 1X n−1 1 X Sn
Démonstration. En écrivant Sn = Sk − Sk , on voit que limn→+∞ n = s̄ − s̄ = 0.
n n n n−1
k=1 k=1
n Ntn n Sn n Sn
Notons maintenant que tn 6 tn , ce qui implique que lim supn tn 6 λ̄. En écrivant tn = tn n , on
obtient limn→+∞ Stnn = 0.
Par conséquent, on a
X Z t X
Sn 6 Qs ds 6 Sn . (1.1)
n : tn +Sn 6t 0 n : tn 6t
Nt
1 t Nt 1 X 1 t
Z Z
En utilisant le membre de droite, on obtient Qs ds 6 Sn . On a donc lim sup Qs ds 6 λ̄s̄.
t 0 t Nt n=1 t t 0
Il reste donc à montrer un résultat semblable pour la limite inférieure, ce que l’on va faire en utilisant
le membre de gauche de (1.1). Soit ε > 0. D’après le lemme 1.2, il existe n0 tel que pour tout n > n0 , on a
Sn 6 εtn , ou encore tn + Sn 6 (1 + ε)tn . Cela implique que
N t
X X 1+ε
X 0 −1
nX
Sn > Sn = Sn − Sn .
n : tn +Sn 6t n : (1+ε)tn 6t n=1 n=1
n>n0
En divisant par t et en faisant tendre t vers +∞, on obtient, après un calcul en tout point semblable à celui
qui a permis d’obtenir la borne supérieure :
t
1 1
Z
lim inf Qs ds > λ̄s̄ .
t t 0 1+ε
Comme cette inégalité est vérifiée pour tout ε > 0, la conclusion suit.
Application 1.1. Le gérant d’un supermarché constate qu’il y a en moyenne 80 clients dans
son magasin et que la fréquence d’arrivée est de 120 personnes par heure. Il en conclut qu’en
moyenne, un client passe un temps de
q̄ 80
s̄ = = = 40 min
λ 120
dans son magasin.
CHAPITRE 1. FILES D’ATTENTE 8
Proposition 1.3. Une variable aléatoire continue X, à valeurs réelles positives, est sans
mémoire si et seulement si X suit une loi exponentielle.
Nous énonçons maintenant quelques propriétés des processus de Poisson, tous faciles à
montrer, et dont nous omettons également les preuves.
Le nom des processus de Poisson vient de la propriété suivante. La loi de Poisson de pa-
ramètre α est une distribution de probabilité discrète donnant au tirage k ∈ Z+ la probabilité
k
e−α αk! .
Par ailleurs, on a la propriété suivante, encore une fois très intuitive quand on voit des
processus de Poisson comme des arrivées non concertées.
Proposition 1.6. Conserver les arrivées d’un processus de Poisson d’intensité λ avec pro-
babilité p engendre un processus de Poisson d’intensité pλ.
Nous finissons cette section en rappelant quelques propriétés de la loi exponentielle dont
la preuve est immédiate.
9 CHAPITRE 1. FILES D’ATTENTE
Proposition 1.7. Soit X une variable aléatoire suivant une loi exponentielle de paramètre
λ. Alors
1 1
E[X] = et V[X] = 2 .
λ λ
La file d’attente possède un certain nombre de serveurs qui servent les clients. Lorsqu’un
client arrive dans la file, il se rend dans l’espace de d’attente. Dans ce cours, on supposera que
le processus de service suit la règle suivante (hypothèse FIFO) : Dès qu’un serveur est libre,
le client le plus ancien dans l’espace d’attente se rend dans l’espace de service et est servi
par un serveur libre, lequel devient alors occupé. Les durées de service sont les réalisations
de variables aléatoires. On note Un la durée de service du n-ième client.
On suppose dans ce cours que les variables aléatoires Tn sont iid, strictement positives
et d’espérance finie, et de même pour les variables Un . Les suites (Tn ) et (Un ) sont de plus
supposées indépendantes l’une de l’autre. On note λ1 l’espérance commune des Tn et µ1 celle
des Un .
Selon la convention de Kendall, une telle file d’attente est notée en général A/S/m/K,
où A donne la nature du processus d’arrivée, S donne celle du processus de service, m est
le nombre de serveurs et K est la capacité de la file d’attente. Lorsque K = +∞, on écrit
simplement A/S/m. Dans ce cours, on considéra pour A et S les processus suivants :
— M , pour markovien : les durées suivent des distributions exponentielles. Quand M
concerne les arrivées, cela signifie donc qu’elles forment un processus de Poisson.
— D, pour déterministe : les durées sont des quantités fixées une fois pour toute.
— G, pour général : les distributions sont quelconques.
Ce cours se concentrera principalement sur la file G/G/1 et certains cas particuliers,
comme M/G/1.
CHAPITRE 1. FILES D’ATTENTE 10
λ µ
Espace Espace
d’attente de service
Figure 1.1 – Une file d’attente G/G/1.
Étant donnée une file d’attente, différentes quantités peuvent présenter un intérêt. Les
principales sont les suivantes :
— le nombre Qt de clients dans la file d’attente à l’instant t (dans les espaces d’attente
et de service), sans compter un client partant à l’instant t.
— le nombre Nt de clients arrivés à l’instant t depuis l’instant 0, instant t inclus.
— le nombre Mt de clients ayant été servis à l’instant t depuis l’instant 0, instant t inclus.
— le temps d’attente Wn du n-ième client avant d’être servi.
— le temps de séjour Sn du n-ième client, défini comme la somme des temps d’attente et
de service : Sn = Wn + Un .
Noter que ce sont des variables aléatoires.
Nt p.s.
Proposition 1.8. On a toujours limt→+∞ t
= λ.
PNt PNt +1 1
PNt
Démonstration. On a k=1 Tk 6 t < k=1 Tk . En divisant par Nt , on obtient Nt k=1 Tk 6 t <
Nt +1 1 PNt +1
Nt Nt +1 k=1 Tk . Comme Nt tend presque sûrement vers +∞, on obtient par la loi forte des grands
p.s. p.s.
1 t 1
nombres : λ 6 Nt 6 λ.
Informellement, une file d’attente est stable si le nombre de clients dans la file d’attente
ne tend pas à devenir arbitrairement grand. Une définition formelle possible est la suivante
et que nous prendrons dans ce cours : une file d’attente eststable si, lorsque n tend vers
+∞, la suite (Wn )n converge en loi ou la suite n1 nk=1 Wk n converge presque sûrement
P
vers une valeur finie. Ces deux convergences ne sont pas équivalentes : on peut avoir l’une
sans l’autre. On choisit juste de dire que l’on a stabilité de la file si l’une au moins de ces
convergences se réalise.
λ
L’intensité d’une file G/G/1 est la quantité ρ = . Lorsque ρ < 1, la file est stable, et
µ
lorsque ρ > 1, la file ne l’est pas. Ce résultat, bien qu’intuitif, nécessite des outils plutôt
avancés pour être prouvé en toute généralité. Lorsque ρ = 1, les choses peuvent être plus
complexes, et le comportement dépend fortement des lois des processus d’arrivée et de service.
Concernant la stabilité de la file G/G/1, le résultat partiel suivant, qui montre qu’une file
n’est pas stable lorsque ρ > 1, admet une preuve simple.
11 CHAPITRE 1. FILES D’ATTENTE
Proposition 1.9. Considérons une file G/G/1 avec ρ > 1. Alors Qt tend presque sûrement
vers +∞ quand t tend vers +∞ et Wn tend presque sûrement vers +∞ quand n tend vers
+∞.
Pn
Démonstration. Prouvons d’abord la convergence presque sûre de Qt . Définissons An = k=1 Tk et Bn =
P n 1 1
k=1 Uk . La loi forte des grands nombres implique que n An converge presque sûrement vers λ quand n tend
vers +∞. Noter que t < ANt +1 pour tout t. La quantité Nt tend presque sûrement vers +∞. En divisant
p.s.
par Nt l’inégalité précédente, on obtient lim supt Ntt 6 λ1 . De manière semblable, on peut noter que n1 Bn
converge presque sûrement vers µ1 quand n tend vers +∞ et que BMt 6 t pour tout t. La quantité Mt
p.s.
tend presque sûrement vers +∞. En divisant par Mt l’inégalité précédente, on obtient lim inf t Mt t > µ1 . En
combinant les deux résultats de convergence presque sûre précédents et en notant que Qt = Nt − Mt , il vient
p.s.
lim inf t Qtt > λ − µ, ce qui permet de conclure car λ > µ. Pn
Prouvons maintenant celle de Wn . Posons Dn l’instant de départ du n-ième client. On a Dn > k=1 Uk
p.s.
Dn 1
et donc lim inf n n > µ. Par ailleurs,
n
!+ n
X X
Wn = Dn−1 − Tk > Dn−1 − Tk ,
k=1 k=1
p.s.
Wn 1 1
d’où l’on déduit que lim inf n n > µ − λ > 0.
Nous terminons la section par la définition d’une autre quantité, souvent pertinente :
l’utilisation de la file. Elle est définie comme la fraction du temps (asymptotiquement) où le
service est assuré. En notant ū l’utilisation d’une file d’attente, on a donc quand la limite
existe :
1 t
Z
ū = lim 1(Qs > 0) ds .
t→+∞ t 0
En régime permanent, on peut aussi voir que l’espérance du temps séparant deux départs
est égale à 1/λ : en effet, le temps séparant le départ du n-ième client de celui du (n−1)-ième
client est égal à Tn − Tn−1 + Wn − Wn−1 + Un − Un−1 , et, comme les lois sont indépendantes
de l’indice (pour les temps inter-arrivées et de service, c’est par définition ; pour les temps
d’attente, c’est parce qu’on est en régime permanent), on obtient la conclusion souhaitée.
On a le corollaire intéressant suivant, qui implique en particulier qu’en régime permanent
on a nécessairement ρ 6 1.
1. C’est une conséquence de la stationnarité et non une définition.
13 CHAPITRE 1. FILES D’ATTENTE
Corollaire 1.11. En régime permanent, l’utilisation est bien définie et est égale à l’intensité
de la file : ū = ρ.
Mt Mt
1X Mt 1 X
Démonstration. On a Un = Un . En passant à la limite quand t tend vers +∞, on obtient
t n=1 t Mt n=1
Mt
1X λ
lim Un = (le numérateur vient de la proposition 1.10 et le dénominateur de la loi forte des grands
t→+∞ t µ
n=1
nombres). L’encadrement
XMt Z t MX t +1
Un 6 1(Qs > 0) ds 6 Un
n=1 0 n=1
permet de conclure.
Enfin, la loi de Little prend une forme particulière pour une file en régime permanent.
La version donnée dans le théorème 1.1 devient une version presque sûre et, en utilisant la
proposition 1.8, on obtient
E[Q] = λE[S] . (1.2)
λE[U 2 ]
E[W ] = .
2(1 − ρ)
L’événement {Hn0 = h} ne dépend pas des Uk pour k > n − h, et donc E[Wn ] = E[Rn ] + E[Hn0 ] · E[Un ].
Introduisons maintenant la variable aléatoire Ht , définie comme le nombre de clients en attente dans la file
à l’instant t. En utilisant une propriété fondamentale des processus de Poisson—appelée “PASTA”—, le fait
qu’on soit en régime permanent implique qu’on a E[H 0 ] = E[H]. Cela peut se réécrire
1
E[W ] = E[R] + E[H] . (1.3)
µ
Par ailleurs, la loi de Little en régime permanent (1.2) implique, en prenant comme “système” la zone
d’attente de la file, la relation E[H] = λE[W ]. En substituant E[H] dans l’équation (1.3), on obtient
E[R]
E[W ] = . (1.4)
1−ρ
Il reste donc à calculer E[R]. On introduit la variable aléatoire Rt0 , définie comme la durée de service restant
à l’instant t pour le client en cours de service. On a
t M PMt
1 1Xt
1 2 1 Mt Uk2
Z
Rs0 ds = Uk = k=1
t 0 t 2 2 t Mt
k=1
pour tout instant t de départ d’un client. On est en régime permanent. En passant à la limite et en utilisant
la proposition 1.10, on obtient E[R0 ] = 21 λE[U 2 ]. En réutilisant “PASTA”, on obtient E[R] = 21 λE[U 2 ], ce
qui conduit à l’équation souhaitée, après substitution de E[R] dans (1.4).
La file M/M/1 est celle dont le comportement est le mieux compris. Elle forme le cas
particulier de la file M/G/1 pour laquelle les temps de service Un suivent une loi exponen-
tielle, tous comme les arrivées. De nombreuses situations peuvent être modélisées ainsi. Le
fait que les calculs sont possibles dans ce cas conduit aussi souvent à modéliser une file d’at-
tente réelle par une M/M/1 même si les temps de service ne suivent pas complètement des
exponentielles.
Le théorème suivant rassemble quelques-unes des nombreuses propriétés de la file M/M/1.
Noter que l’on a un résultat de convergence, avec l’expression de la distribution limite. Des
résultats sur la vitesse de convergence existent aussi.
Théorème 1.13. Supposons ρ < 1. Alors Qt converge en distribution vers une variable
aléatoire Q dont la distribution est donnée par
P(Q = k) = (1 − ρ)ρk .
ρ
En régime permanent, E[W ] = µ−λ
et les départs de la file suivent un processus de Poisson
d’intensité λ.
La valeur de E[W ] en régime permanent est une conséquence directe du théorème Pollaczek–
Khinchin (théorème 1.12). Le fait que l’intensité du processus des départs est égale à λ n’est
pas une surprise : c’est une conséquence de la proposition 1.10. Noter que les départs d’une
file M/G/1 en régime permanent ne suivent pas en général un processus de Poisson : il suffit
de considérer une file M/D/1 pour s’en convaincre.
Nous omettons la preuve du reste de ce théorème, laquelle requiert des outils sortant du
cadre de ce cours. Notons cependant que ces outils ne sont pas difficiles et que la preuve
s’appuie essentiellement sur le caractère “markovien” de la file.
15 CHAPITRE 1. FILES D’ATTENTE
2.1 Introduction
Traditionnellement, les modèles et méthodes de la recherche opérationnelle considèrent
que la totalité de l’instance d’un problème est connue lorsqu’il s’agit de le résoudre. En
pratique, il n’est cependant pas rare que des décisions doivent être prises avant que les
données du problème soient toutes disponibles. Lorsqu’il s’agit de résoudre un tel problème,
on parle d’optimisation en ligne. Un algorithme en ligne prend des décisions séquentielles,
en ne tenant compte que de la partie de l’instance qui a été révélée à l’instant courant. La
problématique pratique peut parfois être encore plus exigeante et imposer des bornes strictes
sur la durée maximale autorisée pour prendre une décision. Un algorithme temps réel est un
algorithme en ligne qui prend des décisions en des temps courts.
Dans l’industrie, les transports ou la supply chain, les problèmes en ligne ou temps réel
sont fréquents : affecter des objets à usiner aux machines d’un atelier sans connaı̂tre à l’avance
l’ensemble des pièces à usiner pour la journée, organiser des tournées de collecte alors que
l’ensemble des demandes n’est pas connue, faire fonctionner un entrepôt automatique, etc.
Contrairement à d’autres pans de l’optimisation, il y a toujours à ce jour une distance
assez grande entre les fondements théoriques de l’optimisation en ligne et temps réel et les ap-
plications pratiques. Cependant, ces fondements théoriques possèdent un certain nombre de
vertu—ils aident à formaliser les problèmes, à se poser la question de leur évaluation, etc.—et
un ingénieur généraliste ne peut que gagner à en connaı̂tre les éléments essentiels. L’objec-
tif de ce chapitre est donc double. D’une part, il vise à fournir certains outils théoriques
permettant d’appréhender et de discuter ce type de problèmes. D’autre part, il fait cer-
taines recommandations méthodologiques pour la conception et l’évaluation d’algorithmes
pratiques de résolution de tels problèmes.
ri+1 . L’objectif est de minimiser un coût global dépendant de l’ensemble des décisions prises.
Dans le modèle temporel, l’instance comporte également une séquence r1 , r2 , . . . de requêtes,
mais toute requête ri a un instant ti à laquelle elle arrive et est révélée (et l’instant ti lui-
même n’est pas connu en avance). Ces instants satisfont t1 6 t2 6 · · · . Un algorithme en
ligne peut choisir d’attendre, ce qui peut induire un coût supplémentaire, avant de prendre
une décision concernant la requête ri . L’objectif est encore de minimiser un coût global
dépendant de l’ensemble des décisions prises.
Lorsque l’algorithme est autorisé à connaı̂tre l’ensemble des requêtes pour prendre ses
décisions, on parle de version hors ligne du problème. Dans le modèle temporel, la version
hors ligne ne peut cependant satisfaire une requête avant son instant d’arrivée : le côté
dynamique, c’est-à-dire dépendant du temps, n’est pas gommé.
Dans ce chapitre, les problèmes hors ligne seront essentiellement considérés au titre de
comparaison, afin de mesurer à quel point devoir prendre les décisions sans connaı̂tre le futur
peut contribuer à détériorer le coût.
Donner une définition formelle de “temps réel” est plus difficile et les auteurs ne s’ac-
cordent pas toujours sur ce point. On peut proposer une définition du style : un algorithme
temps réel est un algorithme en ligne retournant une décision en des temps courts par rap-
port au “temps caractéristique” du système considéré (mais cela ne fait que repousser la
question terminologique).
Une façon d’évaluer théoriquement la qualité d’un algorithme en ligne passe par le ratio de
compétitivité.Considérons un algorithme ALG, résolvant un certain problème d’optimisation
en ligne. Notons par
• ALG(I) la valeur du coût obtenu lorsque cet algorithme est appliqué sur une instance
I.
• OPT(I) la valeur optimale du coût pour l’instance I, pour la version hors ligne du
problème.
Dans le cas d’un problème de minimisation, l’algorithme ALG est c-compétitif, avec c une
constante réelle s’il existe une constante a telle que, pour toute instance I, on a ALG(I) 6
c OPT(I) + a. Dans le cas d’un problème de maximisation, l’algorithme ALG est c-compétitif
s’il existe une constante a telle que, pour toute instance I, on a OPT(I) 6 c ALG(I) + a.
Dans les deux cas (minimisation, maximisation), le ratio de compétitivité de l’algorithme
ALG est l’infimum des c pour lequel il est c-compétitif.
Le ratio de compétitivité est l’outil standard pour évaluer les performances théoriques
d’un algorithme en ligne. Il convient de souligner que le temps de calcul n’est pas pris en
compte dans l’analyse de compétitivité : seule l’information est considérée comme la ressource
limitante.
Cette méthode d’évaluation des algorithmes en ligne s’appelle l’analyse de compétitivité.
19 CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL
2B − 1 = 2 − B1 B = 2 − B1 OPT(I).
ce qui montre que l’on ne peut trouver d’algorithme avec un meilleur ratio que celui donné
par le théorème 2.1.
Dans la discussion précédente, on a implicitement supposé que l’algorithme était déterministe :
sur une même instance, l’algorithme prend toujours les mêmes décisions. C’est ce qui permet
de construire une instance sur laquelle l’algorithme renvoie une solution de mauvaise qualité.
Cette supposition est parfois relâchée et on parle alors d’algorithme randomisé. Cela permet
souvent d’obtenir de meilleurs ratios de compétitivité (avec la définition adéquate, car l’aléa
rentre alors en jeu).
Ce type de raisonnement, permettant d’assurer l’“optimalité” de certains algorithmes
en ligne, est souvent présenté avec un adversaire malveillant et omniscient (un démon),
qui construit la pire instance possible, en utilisant les connaissances qu’il a de l’algorithme
proposé.
La première inégalité vient du fait que dans toute affectation des n tâches, l’une des charges de machine au
moins est supérieure à la moyenne des charges.
La charge de la machine j après affectation de la tâche i est donc majorée par OPT(I) + m−1 m OPT(I) =
1
(2 − m ) OPT(I). Cette inégalité est vérifiée pour toute machine dont la charge est mise à jour, et elle reste
donc vérifiée quand sa charge n’est pas mise à jour.
identiques. Chaque tâche doit être traitée par l’une quelconque des machines. L’objectif est
de minimiser la moyenne des temps d’achèvement des tâches, où le temps d’achèvement d’une
tâche est défini comme la différence entre l’instant d’achèvement et l’instant de révélation
de la tâche.
C’est un problème en ligne de nature temporelle : il peut d’ailleurs être bénéfique de
laisser parfois des machines inactives pour gagner de l’information sur les tâches futures.
Il peut être démontré [7, chapitre 24] qu’on ne peut avoir d’algorithme qui fasse mieux
que OPT(I) 6 (n − 1) ALG(I) pour toute instance I, où n est la taille de l’instance I. Il
n’existe donc aucune constante c pour laquelle l’algorithme est c-compétitif, et en particulier
il n’y a pas de ratio de compétitivité.
Fifo (first-in-first-out)
Fifo satisfait les requêtes dans l’ordre d’arrivée. Se donner la possibilité d’utiliser cette
stratégie ne fait sens que dans le modèle temporel (le modèle séquentiel étant lui nécessairement
FIFO).
Quelques caractéristiques :
— rarement optimal.
— simple à mettre en œuvre, si on fait abstraction de la façon dont la requête est satisfaite.
— compatible avec le temps réel.
— maintient l’ordre d’arrivée.
Greedy
Dans le modèle séquentiel, Greedy choisit de satisfaire la requête de manière à minimiser
un coût local (allant dans le sens du critère global à minimiser). L’algorithme “glouton” de la
section 2.3.2 est un exemple typique. Dans le modèle temporel, Greedy choisit de satisfaire
parmi toutes les requêtes non encore satisfaites celle minimisant un coût local (toujours dans
le sens du critère global à minimiser).
Quelques caractéristiques :
— rarement optimal (mais mieux que Fifo ?).
— simple à mettre en œuvre.
— compatible avec le temps réel.
— reste prédictible.
Replan
Cette stratégie ne fait sens que dans le modèle temporel. À chaque arrivée d’une requête,
Replan calcule la solution optimale hors ligne sur l’ensemble des requêtes non satisfaites,
puis agit selon cette solution, jusqu’à la prochaine arrivée d’une requête.
Quelques caractéristiques :
— peut fournir des solutions de très bonne qualité.
— peut être très coûteux en temps de calcul (dépend de la nature du problème hors ligne).
— peut être très imprédictible.
Ignore
Cette stratégie ne fait sens que dans le modèle temporel. Ignore calcule la solution
optimale hors ligne sur l’ensemble des requêtes non satisfaites, puis agit selon cette solution,
jusqu’à ce que toutes les requêtes de cette solution soient satisfaites.
Quelques caractéristiques :
— peut fournir des solutions de très bonne qualité (mais moins bien que Replan ?).
23 CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL
— peut être très coûteux en temps de calcul (dépend de la nature du problème hors ligne).
— reste relativement prédictible.
Enjeu
Si les temps d’inter-arrivées sont grands par rapport aux temps de traitement, les ma-
chines sont quasiment toujours disponibles et lorsqu’une opération d’une tâche se termine,
l’opération suivante de cette tâche peut être immédiatement effectuée. Au pire, il y aura
quelques tâches en attente devant certaines machines, mais aucune décision particulière
n’aura à être prise.
En revanche, lorsque les temps d’inter-arrivées sont comparables aux temps de traitement,
des files d’attente se créent devant les machines, et chaque fois qu’une machine termine une
CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL 24
opération, il doit être décidé, parmi toutes les tâches en attente, la prochaine à être traitée
par la machine. Comme le temps de prise de décision contribue directement aux critères
évalués, on est clairement dans un contexte temps réel.
Règles de priorité
Une façon naturelle de prendre ces décisions est d’appliquer des “règles de priorité”. Une
règle de priorité est une méthode heuristique choisissant la prochaine tâche traitée par une
machine, parmi celles en attente, par un calcul simple prenant en input les caractéristiques
courantes des tâches dans l’atelier. Le temps de calcul d’une telle règle est souvent très faible
(constant ou logarithmique). La simplicité et la rapidité du calcul permettent une mise en
œuvre aisée de ces règles et les rendent particulièrement adaptées dans un contexte de temps
réel.
Voici quelques exemples de ces règles classiques, avec leurs appellations habituelles. Avec
la terminologie de la section 2.4.1, elles sont toutes du type Fifo ou Greedy. Elles associent
à l’instant courant une quantité Zj à toute tâche j. Lorsqu’une machine m se libère, la tâche
j en attente avec le plus petit Zj devient la prochaine tâche traitée par m.
Voici quelques façons de calculer des ZJ . On considère une tâche j en attente devant une
machine m. On note Tj son instant d’arrivée dans l’atelier et i l’opération qu’elle doit subir
sur m. Enfin, on pose X
Wj = pki(k) ,
tâches k en attente
devant m = mji+1
où i(k) est l’indice de l’opération correspondant au passage de la tâche k sur la machine m.
En particulier, si j est en attente de sa dernière opération, on a Wj = 0.
— FIFO (first-in first-out) : Zj = instant d’arrivée de la tâche j dans la queue.
— AT (arrival time) : Zj = Tj .
— SPT (shortest process time) : Zj = pji .
— PT+WINQ (process time plus work-in-next-queue) : Zj = pji + Wj .
— PT+WINQ+AT (process time plus work-in-next-queue plus arrival time) : Zj = pji +
Wj + Tj .
Pn(j)
— AT−RPT (arrival time moins total remaining process time) : Zj = Tj − i0 =i pji0 .
Expériences
Pour comparer les performances des différentes règles, on procède ici de manière expérimentale,
par simulation. Les résultats sont tirés du travail de Rajendran et Holthaus [14]. Le système
simulé est formé d’un atelier de 10 machines ayant à traiter 2500 tâches arrivant selon un
processus de Poisson. Les caractéristiques de chaque tâche sont tirées au hasard :
— ordre de visite : tiré uniformément au hasard parmi les permutations possibles.
25 CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL
où 25 correspond à la durée moyenne d’une opération sur une machine. Avec les notations
et les définitions de la section 1.3.2, cela assure heuristiquement la stabilité du système car
ρ < 1 et une utilisation ū de chaque machine de 0.8 et de 0.95 selon le choix de λ (voir
corollaire 1.11).
Chacune des tables 2.1 rassemble les résultats obtenus pour les six règles présentées ci-
dessus pour un des deux taux d’arrivées. Dans chacun des deux tableaux, chaque règle a été
testée sur 20 réplications de la simulation. Pour chaque réplication, on évalue le critère sur
les 2000 dernières tâches (les 500 premières sont utilisées pour amener le système en régime
permanent). C’est la moyenne de la valeur de ce critère sur les 20 réplications qui est donnée.
Table 2.1 – Résultats pour les différentes règles de priorité selon la valeur de λ.
Conclusions
Sur ces expériences, les règles SPT et PT+WINQ assurent le meilleur temps moyen F
de complétion et sont plutôt mauvaises pour le temps maximum Fmax de complétion. Les
règles PT+WINQ+AT et AT−RPT présentent un comportement opposé. Noter que AT,
conformément à l’intuition, se comporte de manière correcte pour Fmax . Enfin, FIFO est
dominé par AT sur les deux critères. Ces conclusions sont connues pour être valables pour
de nombreux problèmes de job-shop.
Le message plus général est le suivant. Pour un problème d’optimisation temps réel dont
la modélisation est difficile, une approche scientifique est tout à fait possible. Les règles de
priorité, et plus généralement les heuristiques, peuvent être conçues à partir d’une bonne
intuition du problème (construite par exemple à partir de “modèles-jouets”) et évaluées
rigoureusement par simulation.
CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL 26
3.1 Introduction
Dans de nombreux contextes industriels, l’approvisionnement ou la production de biens
étant soumis à des délais ou des incertitudes, la capacité à satisfaire une demande ou un
besoin futur dans de bonnes conditions requiert la mise en place de stocks. Les stocks peuvent
avoir d’autres intérêts : couverture face à des incertitudes sur les prix à l’achat, lissage de la
production, économie d’échelle, etc. Augmenter la taille de stock améliore la prise en compte
de ces critères. D’un autre côté, les stocks induisent des coûts (argent immobilisé, assurance,
espace de stockage, gestion, suivi, etc.). L’enjeu est donc d’avoir des stocks répondant aux
besoins, tout en gardant un coût raisonnable.
On distingue traditionnellement deux types d’examen des stocks : l’examen continu et
l’examen périodique. Dans le cadre de l’examen continu, l’approvisionnement peut se faire
n’importe quand. Le modèle historique est le modèle de Wilson. Dans le cadre de l’examen
périodique, l’approvisionnement ne peut se faire qu’à des moments précis, prévus à l’avance.
C’est ce dernier type qui sera étudié dans ce chapitre, dans un contexte stochastique. Nous
verrons d’abord le cas à une période, connu également sous le nom du problème de vendeur
de journaux, puis le cas à N périodes.
d’aléa, selon le contexte, différentes façons de construire l’objectif sont envisageables ; idéalement,
l’objectif doit dépendre des variables aléatoires via une mesure de risque.)
On va supposer a priori que le bien est suffisamment “divisible” pour que l’on soit autorisé
à voir les quantités comme des nombres réels non nécessairement entiers. Nous discuterons
plus loin le cas où cette hypothèse ne peut être faite. Le problème consiste donc à résoudre
avec φ(s, D) = cs + h(s − D)+ + p(D − s)+ . Ici, on n’a choisi de ne pas faire figurer le terme
−cs0 dans la fonction objectif car c’est un terme constant et il ne joue donc pas de rôle dans
la résolution du problème. Noter que c’est un problème d’optimisation en dimension 1 : il
n’y a qu’une seule variable, s. On peut donc espérer une solution complète du problème,
et nous verrons que c’est dans un certain sens le cas. Nous discutons dans les sous-sections
suivantes la façon de résoudre ce problème, en fonction de la loi de D, et nous considérerons
aussi la version discrète, où les niveaux de stock et la demande ne peuvent prendre que des
valeurs entières.
où c et h ont la même interprétation que dans l’équation (3.1), et où g est le prix de vente
d’une unité du bien. Dans cette version, on considère qu’il n’y a pas de coût de pénurie mais
un gain lié aux ventes. Le coût (3.3) se réécrit
Le problème d’optimisation que l’on obtient avec ce nouveau coût est de la forme (3.1), à
la constante gE[D] près. L’objectif (3.1) est donc suffisamment général pour couvrir cette
version alternative du problème (et d’autres d’ailleurs).
3.2.2 Solution
On fait deux hypothèses :
(i) E[D] < +∞.
(ii) −h < c < p.
Si on lève la première hypothèse, l’espérance du coût vaut +∞ quoi qu’on fasse (sauf si
p = 0, auquel cas la solution est un peu plus riche). Si l’on est confronté en pratique à un
cas où E[D] = +∞, cela montre qu’il faut peut-être revoir la modélisation du problème, en
29 CHAPITRE 3. GESTION DE STOCK SOUS ALÉA
Le lemme 3.1 montre que le problème (3.2) admet toujours une solution optimale : une
fonction continue coercive atteint toujours un minimum global sur un fermé non vide. (Rap-
pelons qu’une fonction convexe est continue sur l’intérieur de son domaine.) Cette solution
optimale admet une expression simple.
Théorème 3.2. Posons
∗ p−c
−1
s = max(s0 , S) avec S = min F ,1 ,
p+h
où F est la fonction de répartition de D. Alors s∗ est solution optimale du problème (3.2).
Cette solution est unique si F est strictement croissante sur un voisinage à droite de S.
h i
∗ −1 p−c
Notons que s est bien défini car F p+h
, 1 est toujours non vide (c’est une conséquence
de la définition des fonctions de répartition). De plus, on peut écrire min et non simplement
inf car F est toujours continue à droite (à nouveau par définition des fonctions de répartition).
La politique optimale consiste donc à commander S − s0 unités si S > s0 et rien sinon.
C’est une politique à une valeur : la quantité S détermine entièrement ce qu’il faut faire
pour agir optimalement ; voir figure 3.1. C’est l’un des principaux messages du théorème 3.2.
Même si l’expression donnant S s’écrit sous une forme élégante, il n’est malheureusement
pas toujours facile de calculer S : cela dépend de la loi de D. Rs
Un élément clé de la démonstration du théorème 3.2 est l’égalité E[(s−D)+ ] = 0 F (t) dt.
Cette égalité est immédiate : on a en effet
Z s Z s Z s Z s
F (t) dt = P(D 6 t) dt = E[1(D 6 t)] dt = E 1(D 6 t) dt = E[(s − D)+ ] .
0 0 0 0
CHAPITRE 3. GESTION DE STOCK SOUS ALÉA 30
F (t)
1
p−c
p+h
p−c
p+h
S S
t
Figure 3.1 – Politique à une valeur : La position du stock initial s0 par rapport au seuil S détermine si l’on
amène le niveau de stock à S ou si l’on le laisse tel quel. En rouge et en bleu, deux exemples de situations
p−c
possibles selon la valeur de p+h .
(Le théorème de Fubini s’applique ici et permet d’intervertir l’intégrale et l’espérance.) Cette
égalité est même utile au-delà de la preuve car elle donne un façon de calculer l’espérance
du coût pour un choix donné du niveau de stock : comme φ(s, D) peut se réécrire (c − p)s +
pD + (p + h)(s − D)+ , on a
Z s
E[φ(s, D)] = (c − p)s + pE[D] + (p + h) F (t) dt .
0
Le théorème 3.2 se prouve en explicitant la condition d’optimalité du premier ordre sur cette
expression.
Démonstration du théorème 3.2. Même non différentiable, une fonction convexe d’une variable réelle admet
toujours des dérivées à droite et à gauche en tout point de l’intérieur de son domaine. Un point est un
minimum global d’une fonction convexe si et seulement si c’est l’infimum des points où la dérivée à droite
est positive ou nulle. Comme la dérivée à droite de s 7→ E[φ(t,
h D)]
iest égale à c − p + (p + h)F (s) (ici, on
p−c
utilise la continuité à droite de F ), le point S = min F −1 p+h , 1 minimise s 7→ E[φ(t, D)]. Si S > s0 , le
point s = S est une solution réalisable et donc optimale du problème (3.2). Si S < s0 , le point s∗ = s0 est
∗
solution optimale (la fonction s 7→ E[φ(t, D)] étant croissante sur [S, +∞[ par convexité).
Le cas d’unicité se déduit selon les mêmes arguments.
s0 s s0 S t
Figure 3.2 – Politique à deux valeurs : La position du stock initial s0 par rapport au seuil s détermine si
l’on amène le niveau de stock à S ou si l’on le laisse tel quel. En rouge et en bleu, deux exemples de situations
possibles selon la valeur de s0 .
commande strictement positive, en plus du coût unitaire c, on paye un coût fixe K > 0.
Amener le stock à un niveau t prend alors la forme 1
Posons G(t) = E[φ(t, D)]. En reprenant le niveau S défini comme dans le théorème 3.2 et s
défini comme inf G−1 (K + G(S)), la politique consistant à amener le stock au niveau S si
s0 < s et à ne rien faire sinon est optimale ; voir figure 3.2. (Ici, la convexité et la coercivité
permettent de conclure.) C’est une politique à deux valeurs. On parle aussi de politique (s, S).
Sous les hypothèses (i) et (ii), le théorème 3.2 permet aussi de traiter l’extension du
problème du vendeur de journaux quand les quantités du bien sont contraints à être entiers,
c’est-à-dire quand le bien n’est plus “divisible” arbitrairement. En effet, puisque dans ce cas
F ne change que sur des entiers, le niveau S donné par le théorème est entier. De plus, le cas
avec coût fixe d’approvisionnement est également couvert : s n’est pas nécessairement entier
mais cela n’empêche pas son application.
1. On remplace la notation s par t parce que la lettre s a une signification particulière dans ce contexte,
comme on peut le voir quelques lignes plus bas.
CHAPITRE 3. GESTION DE STOCK SOUS ALÉA 32
F (t)
1
p−c
p+h
p−c
p+h
0 1 2 3 S S ...
t
Figure 3.3 – Politique à une valeur, cas entier : La position du stock initial s0 par rapport au seuil S
détermine si l’on amène le niveau de stock à S ou si l’on le laisse tel quel. En rouge et en bleu, deux exemples
p−c
de situations possibles selon la valeur de p+h .
doit fixer un niveau ui de commande. Ensuite, un niveau de demande Di est révélé. En notant
ti le niveau de stock juste avant le début de période i, on a
ti+1 = ti + ui − Di . (3.6)
Dans un tel modèle, la demande non satisfaite pendant une période est reportée sur la période
suivante.
Le coût total sur la période i est donné par
K1ui >0 + cui + h(ti + ui − Di )+ + p(Di − ti − ui )+ , (3.7)
où c, h, p, K ∈ R gardent les mêmes significations qu’en section 3.2. On se place d’emblée dans
le cas avec un coût fixe d’approvisionnement. Noter—et c’est un choix de modélisation—que
les coûts de stockage et de pénurie sont calculés avec le niveau de stock de la fin de période.
On suppose toujours que l’entreprise souhaite minimiser l’espérance de son coût et que
les quantités peuvent être vues comme des nombres réels non nécessairement entiers. De
plus, on suppose que l’entreprise connaı̂t le niveau de stock courant et que les demandes Di
sont indépendantes. Une politique (déterministe) de gestion de stock peut donc ne dépendre
que du niveau de stock à la fin de la période précédente. En posant
ψ(t, u, D) = K1u>0 + cu + h(t + u − D)+ + p(D − t − u)+ ,
le problème consiste donc à résoudre
hP i
N
Min E i=1 ψ(ti , µ (t
i i ), Di )
s.c. ti+1 = ti + µi (ti ) − Di ∀i ∈ [N − 1] (3.8)
µi : R → R + ∀i ∈ [N ] .
Les variables sont les ti pour i = 2, . . . , N (le niveau de départ t1 étant fixé a priori), ainsi
que les fonctions µi pour i = 1, . . . , N qui prennent en argument le stock ti à la fin de la
période précédente et renvoie le niveau ui auquel il faut faire la commande. Dans le cas
N = 1, on retrouve bien la problème du vendeur de journaux étudié dans la section 3.2.
3.3.2 Solution
On se place toujours sous les hypothèses (i) et (ii) : pour la demande, cela signifie qu’en
plus d’être indépendantes, les Di sont d’espérance bornée. On suppose de plus que les quatre
paramètres c, h, p et K sont positifs.
En notant Ji (t) la valeur optimale de l’espérance du coût sur les périodes i, . . . , N , on a
l’équation de programmation dynamique suivante :
Ji (t) = inf E[ψ(t, u, Di )] + E[Ji+1 (t + u − Di )] . (3.9)
u>0
Ce lemme montre de plus que la politique optimale continue dans le cas sans coût fixe
(K = 0) à prendre une forme simple, très proche du cas N = 1. On peut exprimer ce fait
sous la forme du théorème suivant, prouvé par Bellman, Glicksberg et Gross en 1955 [3].
Théorème 3.4. Pour le modèle sans coût fixe (K = 0), il existe une suite de valeurs
S1 , S2 , . . . , SN telle que µ∗i (t) = (Si − t)+ est solution optimale du problème (3.8).
En d’autres termes, chaque période ressemble au cas à une période : la politique optimale
est à une valeur sur chacune des périodes.
Le cas avec coût fixe (K > 0) est plus complexe mais il existe un théorème dans le même
esprit que le théorème 3.4 et qui affirme que pour la politique optimale, chaque période
ressemble au cas à une période, c’est-à-dire que la politique optimale est à deux valeurs sur
chaque période. C’est le théorème suivant, prouvé par Scarf en 1959 [15], et qui est un des
grands classiques de la théorie de la gestion des stocks. Il avait été conjecturé par la plupart
des spécialistes de la gestion de stock, tant théoriciens qu’opérationnels. La preuve du cas
sans coût fixe ne s’adapte pas directement car la présence du coût fixe fait disparaı̂tre les
propriétés de convexité. L’étape essentielle a été l’introduction d’une généralisation de la
convexité pour les fonctions d’une variable réelle, appelée K-convexité. Cette introduction a
permis de réutiliser les autres idées de la preuve du théorème 3.4. La preuve étant difficile,
elle est omise.
Théorème 3.5 (Théorème de Scarf). Pour le modèle avec coût fixe (K > 0), il existe une
suite de couples (s1 , S1 ), (s2 , S2 ), . . . , (sN , SN ) telle que
∗ Si − t si t < si
µi (t) =
0 si t > si
35 CHAPITRE 3. GESTION DE STOCK SOUS ALÉA
Une question qui ne semble cependant pas avoir été traitée est de savoir si l’équation (3.9)
conduit, tout comme dans le cas sans coût fixe, à une méthode de résolution pratique
efficace du problème. En effet, alors que minimiser une fonction convexe est aisé à faire
numériquement, il n’est pas du tout clair que cela reste le cas pour les fonctions K-convexes.
Revenue management
4.1 Introduction
Le revenue management est l’un des apports les plus spectaculaires de la recherche
opérationnelle au monde socio-économique. Pour une entreprise vendant un bien ou un ser-
vice, le revenue management propose un ensemble de modèles et de méthodes permettant
de fixer le prix de vente afin de maximiser le profit. Pour pouvoir être appliqué avec succès,
il requiert cependant un certain nombre de conditions, comme une bonne compréhension de
la demande. Lorsque ces conditions sont satisfaites, les gains peuvent être importants tout
en ne nécessitant que des changement marginaux et quasiment sans coût : essentiellement,
il s’agit simplement d’appliquer certaines formules mathématiques pour déterminer les prix.
L’idée de départ est la suivante. Dans de nombreuses situations, le montant auquel un
client est prêt à payer le bien ou le service mis en vente dépend du client. Le profit sera
d’autant plus grand que l’entreprise aura été capable de vendre en priorité aux clients prêts
à payer le plus et au prix maximal acceptable pour ceux-ci. Comment choisir ces prix et
comment les faire varier au cours du temps est la question principale à laquelle s’intéresse le
revenue management.
Les domaines où les techniques du revenue management sont appliqués avec succès sont
principalement l’hôtellerie et le transport. C’est d’ailleurs dans le transport aérien qu’est née
cette approche, au cours des années 80. Les entreprises n’ayant pas su rapidement l’intégrer
ont fait faillite et toutes les compagnies aériennes du monde l’appliquent désormais. On
considère que de l’ordre de 4 à 5% du chiffre d’affaire d’une compagnie aérienne provient
directement des applications des techniques du revenue management, ce qui est à peu près
le niveau typique de la marge opérationnelle dans ce secteur.
La situation classique étudiée par le revenue management est celle d’une entreprise ven-
dant un produit périssable (une unité non vendue étant définitivement perdue après une
date limite). Les exemples typiques (et historiques) sont ceux des places dans un avion ou
des chambres dans un hôtel. Une technique classique du revenue management consiste à
fixer au préalable un nombre fini de classes tarifaires (c’est-à-dire un certain nombre de prix
possibles pour une unité du bien vendu—par exemple, une place en classe économique dans
un avion) et de déterminer la quantité maximale vendue pour chaque classe tarifaire. On
parle de contrôle par la quantité. Il existe également un contrôle par les prix, dont nous ne
parlerons pas mais qui est assez proche : les résultats d’une approche peuvent souvent être
CHAPITRE 4. REVENUE MANAGEMENT 38
Max E [R(q; y; D1 , D2 )]
(4.1)
s.c. y > 0 ,
Le résultat est intuitif. Il dit qu’il faut continuer à vendre à la classe 2 tant que le revenu
est supérieur ou égal à l’espérance du revenu si l’on vend désormais à la classe 1 : s’il reste
y unités à vendre, le montant p2 est le revenu marginal à rester sur la classe 2 et le montant
p1 P(D1 > y) est le revenu marginal à basculer sur la classe 1.
Nous ne démontrons pas le théorème ici car il est conséquence d’un théorème plus général
vu dans la section suivante.
39 CHAPITRE 4. REVENUE MANAGEMENT
avec
Xi = min(Di , (Qi − yi−1 )+ ), Qi = Qi+1 − Xi+1 et QN = q .
Le nombre Xi est la quantité d’unités vendues à la classe i et Qi est le nombre d’unités qu’il
reste au moment d’ouvrir la vente à la classe i (c’est-à-dire au moment de passer au prix pi ).
Pour faciliter les énoncés et les preuves, on introduit la fonction suivante pour tout
i ∈ [N ] :
i−1
X
ri (q; y; D) = pj X j ,
j=1
R(q; y1 , . . . , yN −1 ; D1 , . . . , DN ) = rN (q; y; D) .
Max E [R(q; y1 , . . . , yN −1 ; D1 , . . . , DN )]
(4.3)
s.c. y1 , . . . , yN −1 > 0 .
4.3.2 Résultats
En notant ∂q− (resp. ∂q+ ) la dérivation à gauche (resp. droite), on a le résultat général
suivant, dû à Brumelle et McGill [5].
CHAPITRE 4. REVENUE MANAGEMENT 40
4.3.3 Démonstration
La démonstration du théorème 4.2 s’appuie sur les lemmes suivants.
Lemme 4.5. Si y ∗ satisfait l’équation (4.4) pour tout i ∈ [N ], alors l’application q 7→
E[ri (q; y ∗ ; D)] est concave pour tout i ∈ [N ].
Démonstration. La preuve se fait par récurrence sur i.
Démonstration. Une récurrence immédiate sur i montre que ∂q+ E[ri (q; y; D)] q=0 = p1 pour tout i, quelque
soit y.
Montrons par récurrence sur i que limq→+∞ ∂q+ E[ri (q; y ∗ ; D)] = 0. C’est clairement vrai pour i = 1.
Considérons maintenant i > 2. À Di fixé (i.e. conditionnellement à Di ), on a d’après l’équation (4.2) pour
∗
q > yi−1
∂q+ E[ri (q; y ∗ ; D)] = pi 1(Di > q − yi−1 ) + ∂q+ E[ri−1 (q − Di ; y ∗ ; D)] × 1(Di 6 q − yi−1 ) .
Posons f (q) = ∂q+ E[ri−1 (q; y ∗ ; D)]. On a limq→+∞ f (q) = 0 (d’après l’hypothèse de récurrence). Soit ε > 0.
Il existe q0 tel que pour tout q > q0 on a f (q) < ε. On a alors
∂q+ E[ri−1 (q−Di ; y ∗ ; D)]×1(Di 6 q−yi−1 ) = f (q−D)1(D 6 q−yi−1 )1(q−D > q0 )+f (q−D)1(D 6 q−yi−1 )1(q−D < q0 )
et donc
∂q+ E[ri−1 (q − Di ; y ∗ ; D)] × 1(Di 6 q − yi−1 ) 6 ε + f (yi−1 )1(Di > q − q0 ) .
On a utilisé la décroissance de la fonction f , due à la concavité de q 7→ E[ri−1 (q; y ∗ ; D)] (lemme 4.5). En
passant à l’espérance sur Di , on obtient :
∂q+ E[ri (q; y ∗ ; D)] 6 P(Di > q − yi−1 ) + ε + f (yi−1 )P(Di > q − q0 ) .
La décroissance de q 7→ ∂q+ E[ri (q; y ∗ ; D)] (concavité) montre que l’on peut passer à la limite. Comme Di est
fini presque sûrement, on a limq→+∞ ∂q+ E[ri (q; y ∗ ; D)] 6 ε. Comme cela est vrai pour tout ε > 0, on a la
convergence souhaitée pour tout i.
La concavité de q 7→ E[ri (q; y; D)] permet alors de conclure : pour tout y1 , . . . , yi−1 , il existe alors
nécessairement une valeur yi pour laquelle ∂q+ E[ri (q; y; D)] q=yi 6 pi+1 6 ∂q− E[ri (q; y; D)] q=yi car pi+1 <
p1 .
Démonstration du théorème 4.2. La preuve se fait par récurrence sur N . Pour N = 1, c’est immédiat.
Supposons le théorème démontré pour N . Prouvons le théorème pour N + 1. D’après l’hypothèse de
récurrence, la quantité E[rN (q; y1∗ , . . . , yN
∗ ∗
−1 ; D)] est maximale précisément lorsque les yi vérifiant l’équation (4.4)
∗ ∗
pour i = 1, . . . , N − 1. L’équation (4.2) montre donc que E[rN +1 (q; y1 , . . . , yN ; D)] est maximal lorsque les
yi∗ vérifiant l’équation (4.4) pour i = 1, . . . , N − 1. Il reste donc à maximiser par rapport à yN ∗
. Pour cela,
∗ ∗
faisons l’étude de la fonction y 7→ E[rN +1 (q; y1 , . . . , yN −1 , y; D)]. On a, en dérivant l’équation (4.2),
∗
0 si 0 6 q 6 yN ,
+ ∗ ∗ + ∗ ∗ ∗
∂y rN +1 (q; y1 , . . . , yN −1 , y; D) y=y∗ = −pN +1 + ∂q rN (q; y ; D) q=y∗ si yN < q 6 yN + DN +1 ,
N N
∗
0 si yN + DN +1 < q
et
∗
0 si 0 < q < yN ,
Par conséquent, on a
∂y+ E[rN +1 (q; y1∗ , . . . , yN
∗
−1 , y; D)] ∗
y=yN
= −pN +1 + ∂q+ E[rN (q; y ∗ ; D)] ∗
q=yN
∗
× P(DN +1 > q − yN )
et
∂y− E[rN +1 (q; y1∗ , . . . , yN
∗
−1 , y; D)] ∗
y=yN
= −pN +1 + ∂q− E[rN (q; y ∗ ; D)] ∗
q=yN
∗
× P(DN +1 > q − yN ).
∗
L’équation (4.4) pour yN implique que pour toute valeur prise par DN +1 , on a
∂y+ E[rN +1 (q; y1∗ , . . . , yN
∗
−1 , y; D)] ∗
y=yN
6 0 6 ∂y− E[rN +1 (q; y1∗ , . . . , yN
∗
−1 , y; D)] ∗
y=yN
.
La concavité de q 7→ E[rN (q; y ∗ ; D)] (lemme 4.5) implique alors que y 7→ E[rN +1 (q; y1∗ , . . . , yN
∗
−1 , y; D)] est
∗ ∗
croissante sur [0, yN [ et décroissante sur ]yN , +∞[. Cela permet de conclure.
CHAPITRE 4. REVENUE MANAGEMENT 42
4.4.1 EMSR-a
La première heuristique est EMSR-a. Pour fixer le niveau yi , elle raisonne pour chaque
classe j < i + 1 comme s’il n’y avait que deux classes—la classe j et la classe i + 1—et
applique le théorème 4.1. Cela donne un niveau yij avec yij tel que P(Dj > yij ) = ppi+1
j
. Le
Pi j
niveau de protection final pour la classe i est alors yi = j=1 yi .
4.4.2 EMSR-b
La seconde heuristique est EMSR-b. Pour fixer le niveau yi , elle agrège les classes j < i+1
en une seule grande classe et applique le théorème 4.1. L’agrégation se fait comme suit (le
prix est la moyenne des prix, pondérés par la demande) :
i
X
D
ei = Dj .
j=1
Pi
j=1 pj E[Dj ]
p̃i = Pi .
j=1 E[Dj ]
pi+1
Le niveau de protection final pour la classe i est alors tel que P(D
e i > yi ) =
p̃i
.
dénombrable). C’est cette dernière qui est essentiellement utilisée en génie industriel et que
nous allons étudier dans ce chapitre.
Exemple 5.1. Le comportement d’une file M/G/1 peut être étudié par la simulation à
événements discrets : le système, c’est la file ; un état est caractérisé par les clients présents
dans l’espace d’attente (s’il y en a) et par le client présent dans l’espace de service (s’il y en
a un) ; une transition est uniquement réalisée quand un client arrive dans la file et quand un
service se termine ; ces deux types de transitions sont donc les deux types d’événements à
considérer. (Remarquer qu’un début de service coı̈ncide toujours avec l’arrivée d’un client ou
avec une fin de service ; il est donc inutile de considérer un tel événement.)
repeat
Dépiler premier événement e de E;
Modifier l’état de S d’après e;
Générer de nouveaux événements futurs d’après e et les insérer aux bons
endroits de E;
Mettre à jour les registres de données;
until e =“Fin”;
Algorithme 1 : Boucle principale d’une simulation à événements discrets
Exemple 5.1 (Suite). On revient sur la M/G/1. Le système S est composé de l’espace d’attente
et de l’espace de service. Cela peut être aisément réalisé avec des structures de données
standard. On suppose être intéressé par la durée d’attente moyenne. Pour pouvoir suivre les
temps d’attente des clients, on identifie chaque client avec un numéro. On a un registre de
données stockant pour chaque client son instant d’arrivée et un autre stockant son instant de
début de service. Considérons un événement e dépilé.
• Supposons e =“arrivée du client i”.
◦ Si l’espace de service est vide :
— On place i dans l’espace de service.
— On crée un événement e0 “arrivée du client i + 1” avec comme instant de
réalisation te0 = te + T 0 , où T 0 est tirée selon une loi exponentielle. On place e0
au bon endroit dans E.
— On crée un événement e00 “fin de service du client i” avec comme instant de
réalisation te00 = te + T 00 , où T 00 est tirée selon la loi de service. On place e00 au
bon endroit dans E.
— On met à jour le registre de données : on indique l’arrivée et le début de service
du client i à l’instant te .
◦ Si l’espace de service est occupé :
— On place i dans l’espace d’attente.
— On crée un événement e0 “arrivée du client i + 1” avec comme instant de
réalisation te0 = te + T 0 , où T 0 est tirée selon une loi exponentielle. On place e0
au bon endroit dans E.
— On met à jour le registre de données : on indique l’arrivée du client i à l’instant
te .
• Supposons e =“fin de service du client i”.
◦ Si l’espace d’attente est vide :
— On retire i de l’espace de service.
— On met à jour le registre de données : on indique la fin de service du client i à
l’instant te .
◦ Si l’espace d’attente est occupé :
— On retire i de l’espace de service de la file.
CHAPITRE 5. SIMULATION À ÉVÉNEMENTS DISCRETS 46
de ces lois des valeurs raisonnables pour obtenir des simulations pertinentes. Si l’on veut
reproduire de manière fidèle un processus, on peut utiliser des historiques de données pour
estimer les valeurs de ces paramètres.
a b t
Il est à noter que, tant pour la distribution uniforme que pour la distribution triangulaire,
l’espérance s’exprime comme la moyenne des paramètres.
Ce qui est intéressant avec les distributions uniforme et triangulaire, c’est l’interprétation
aisée de leurs paramètres : un manager sans bagage mathématique particulier mais connais-
sant bien le système étudié pourra par exemple donner sans difficulté les paramètres de ces
distributions.
La méthode de l’inverse
La méthode de l’inverse s’appuie sur le résultat suivant, dont la preuve est omise car
élémentaire et classique.
Proposition 5.1. Soit X une variable aléatoire réelle, de fonction de répartition F . Soit U
une variable aléatoire uniforme sur [0, 1]. Alors les variables aléatoires inf{t : F (t) > U } et
X ont même loi.
49 CHAPITRE 5. SIMULATION À ÉVÉNEMENTS DISCRETS
p(t)
a c b t
La fonction y 7→ inf{t : F (t) > y} est l’inverse généralisée de F . Dans le cas particulier
où F est inversible (ce qui est le cas quand la loi de X est continue et de densité strictement
positive partout sur son support), cette fonction est l’inverse habituelle et cette proposition
dit que F −1 (U ) et X ont la même loi.
Un autre cas particulier intéressant est celui d’une variable aléatoire discrète finie X,
de distribution P(X = k) = pk pour k = 1 . . . , n. Ce que dit la proposition 5.1, c’est que
pour simuler X, il suffit de tirer une uniforme U sur [0, 1] et de renvoyer l’entier k tel que
U ∈ [p0 + p1 + · · · + pk−1 , p0 + p1 + · · · + pk−1 + pk [. Noter que ce dernier fait se démontre
d’ailleurs directement.
Cependant, même dans le cas où F est inversible, il n’est pas toujours facile de calcu-
ler l’inverse de F . Une méthode alternative est disponible. C’est ce que nous allons voir
maintenant.
La méthode de rejet
Soit X une variable aléatoire réelle de distribution continue, de densité f . Supposons que
l’on connaisse une fonction g > f et que l’on sache simuler une variable aléatoire de densité
1
h : t 7→ R g(s) ds
g(t). La méthode de rejet consiste alors à effectuer les étapes suivantes pour
R
simuler un tirage de X.
1. Tirer Y selon la distribution h (en normalisant).
2. Tirer U uniformément sur [0, 1], indépendamment de Y .
f (Y )
3. Si U 6 g(Y )
, renvoyer Z = Y . Sinon, reprendre en 1.
On a le résultat suivant, dont la preuve est omise car élémentaire et classique.
CHAPITRE 5. SIMULATION À ÉVÉNEMENTS DISCRETS 50
• tkγ est le quantile d’ordre γ à k degrés de liberté de la loi de Student car r est en général
assez petit.
Remarque 2. Une méthode alternative au changement de graine pour le tirage de nombres
aléatoires dans les différentes réplications consiste à faire tous ces tirages en avance, et à la
conserver dans des fichiers utilisés pour les différentes réplications. Par exemple, pour des
arrivées aléatoires sur une journée, on peut très bien préparer en avance une petite centaine
de fichiers, chacun contenant des arrivées tirées aléatoirement selon la loi simulée. Chaque
réplication utilise alors un fichier différent. Un avantage de cette méthode est de diminuer le
bruit dans les comparaisons entre différents algorithmes.
[1] S. Asmussen, Applied probability and queues, vol. 51, Springer Science & Business Media,
2008. 13
[2] J. Banks, Discrete event system simulation, Pearson Education India, 2005. 50
[3] R. Bellman, I. Glicksberg, and O. Gross, On the optimal inventory equation, Manage-
ment Science 2 (1955), no. 1, 83–104. 34
[4] A. Borodin and R. El-Yaniv, Online computation and competitive analysis, cambridge
university press, 2005. 26
[5] S. L. Brumelle and J. I. McGill, Airline seat allocation with multiple nested fare classes,
Operations research 41 (1993), no. 1, 127–137. 39
[6] C. G. Cassandras and S. Lafortune, Introduction to discrete event systems, Springer,
2008. 50
[7] A. Fiat and G. J. Woeginger, Online algorithms : The state of the art, vol. 1442, Springer,
1998. 21, 26
[8] R. L. Graham, Bounds for certain multiprocessor anomalies, Bell Systems Tech 45
(1966), 1563–1581. 20
[9] P. Jaillet and M. R. Wagner, Online optimization, Springer Publishing Company, In-
corporated, 2012. 26
[10] A. Y. Khintchine, Mathematical theory of stationary queue, Matematicheskii Sbornik
39 (1932), 73–84. 13
[11] J. F. C. Kingman, The single server queue in heavy traffic, Mathematical Proceedings
of the Cambridge Philosophical Society (1960), 902–904. 15
[12] J. Little, A proof of the queueing formula : L = λW , Operations Research (1961),
383–387. 5
[13] F. Pollaczek, Über eine aufgabe der Wahrscheinlichkeitstheorie. i, Mathematische Zeit-
schrift 32 (1930), no. 1, 64–100. 13
[14] C. Rajendran and O. Holthaus, A comparative study of dispatching rules in dynamic
flowshops and jobshops, European journal of operational research 116 (1999), no. 1,
156–170. 24
BIBLIOGRAPHIE 52
[15] H. Scarf, The optimality of (s, S) policies in the dynamic inventories problem, Mathe-
matical Methods in the Social Sciences, 1959 (Karlin S. Arrow, K. and P. Suppes, eds.),
1960, pp. 196–202. 34
[16] W. J. Stewart, Probability, Markov chains, queues, and simulation, Princeton university
press, 2009. 15, 50
[17] A. K. Strauss, R. Klein, and C. Steinhardt, A review of choice-based revenue manage-
ment : Theory and methods, European journal of operational research 271 (2018), no. 2,
375–387. 42
[18] G. J. van Ryzin and K. T. Talluri, An introduction to revenue management, Emerging
Theory, Methods, and Applications, Informs, 2005, pp. 142–194. 42
[19] P. H. Zipkin, Foundations of inventory management, McGraw-Hill Higher Education,
2000. 35