Alea Online Supply Chain

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 56

Frédéric Meunier

Aléa et Temps Réel dans la Supply


Chain : Outils Mathématiques

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

2 Optimisation en ligne, optimisation temps réel 17


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Quelques notions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Quelques exemples classiques . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Approche pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5 Compléments bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Gestion de stock sous aléa 27


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Problème à une période, ou vendeur de journaux . . . . . . . . . . . . . . . . 27
3.3 Problème à N périodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4 Compléments bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . 35

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

5 Simulation à événements discrets 43


5.1 Enjeux de la simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Simulation à événements discrets . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Modéliser l’aléa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.4 Expérimenter et analyser les résultats . . . . . . . . . . . . . . . . . . . . . . 50
TABLE DES MATIÈRES iv

5.5 Compléments bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . 50


1 TABLE DES MATIÈRES

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

1.2.1 Loi de Little


Un des résultats fondamentaux des files d’attente est la loi de Little. C’est un résultat
tellement fondamental qu’on ne l’appelle pas “théorème” ou “principe”, mais “loi”, comme
les lois de la physique. Cette loi, démontrée par Little en 1961 [12], concerne un système
quelconque dans lequel des “clients” arrivent et passent un certain temps avant de le quitter.
CHAPITRE 1. FILES D’ATTENTE 6

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 :

Qt = |{n : tn 6 t < tn + Sn }| et Nt = max{n : tn 6 t} .

Lorsque les quantités


Z t n
1 Nt 1X
Qs ds, , Sk
t 0 t n k=1

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.

Démonstration du théorème 1.1. On a


Z t Z t X X
Qs ds = 1(tn 6 s < tn + Sn ) ds = min(Sn , t − tn ) .
0 0 n : t 6t n : tn 6t
n

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

1.2.2 Processus de Poisson


Il n’est pas rare d’avoir des systèmes dans lequel des clients, des unités, des événements,
etc. arrivent de manière aléatoire et indépendamment les uns des autres. L’ingénieur qui
souhaite modéliser un tel système cherchera un outil des probabilités qui rendra bien compte
d’un tel phénomène.
Il s’avère qu’il en existe un qui réalise cette tâche de manière parfaite, tant en théorie
qu’en pratique. Il s’agit des processus de Poissons, que l’on définit comme suit.
Notons T1 l’instant d’arrivée du premier client, et Tn le temps séparant les arrivées des
(n − 1)-ième et n-ième clients. On dit que les arrivées forment un processus de Poisson si les
Tn sont indépendants et suivent chacune une loi exponentielle de même paramètre, c’est-à-
dire que les Tn sont de support [0, +∞[ et de densité t 7→ λe−λt pour un certain λ > 0 (le
paramètre). L’intensité du processus de Poisson est par définition la valeur de ce paramètre
λ.
Les phénomènes d’arrivées indépendantes, invariant dans le temps, sont quasiment tou-
jours modélisés par un processus de Poisson. Toutes les expériences confirment la pertinence
de ce choix, et la raison mathématique est donnée par la proposition suivante. Elle est
classique et nous omettons sa preuve. Une variable aléatoire continue X, à valeurs réelles
positives, est sans mémoire si pour tous s, t dans R+ on a P(X > t + s | X > s) = P(X > t).

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! .

Proposition 1.4. Considérons un processus de Poisson d’intensité λ. Le nombre d’arrivées


dans un intervalle de longueur τ suit une loi de Poisson de paramètre λτ . De plus, le nombre
d’arrivées dans deux intervalles disjoints forment des variables aléatoires indépendantes.

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.5. La combinaison de deux processus de Poisson indépendants, d’intensités


respectives λ1 et λ2 , est un processus de Poisson d’intensité λ1 + λ2 .

La propriété suivante est un peu la réciproque de la propriété précédente.

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 .
λ λ

1.3 Files d’attente simples


1.3.1 Notation, terminologie et hypothèses
Mathématiquement, une file d’attente est formée d’un espace d’attente et d’un espace de
service. Des clients arrivent dans l’espace d’attente selon un processus d’arrivée et sont servis
dans l’espace de service selon un processus de service.
Les intervalles de temps entre deux arrivées successives forment une suite de variables
aléatoires. On se place à un instant arbitraire à partir duquel on commence à compter les
clients (la file peut très bien être non vide à l’arrivée du premier client). La variable aléatoire
T1 est l’instant d’arrivée du premier client, et le temps séparant les arrivées des (n − 1)-
ième et n-ième clients est noté Tn . Par exemple, lorsque les Tn sont indépendants et suivent
tous une loi exponentielle de même paramètre, les arrivées forment un processus de Poisson.
Une file d’attente peut avoir une capacité, définie comme le nombre maximal de clients qui
peuvent attendre simultanément dans l’espace d’attente. Si un client arrive mais n’a plus de
place, il disparaı̂t simplement.
Inutile de faire des hypothèses sur le processus de service ?

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.

1.3.2 Les quantités étudiées pour une file 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

Remarquer que ū vaut toujours au plus 1 par définition.

1.3.3 Valeurs “typiques” et régime permanent


La loi de Qt dépend clairement de t : à l’instant 0 par exemple, on sait qu’il n’y a aucun
client dans la file. De même pour les autres quantités mentionnées à la section 1.3.2 : leurs
lois dépendent de n. Cependant, en particulier dans un contexte de génie industriel, on est
plutôt intéressé par les valeurs “typiques” que peuvent prendre ces quantités dans le temps
long. Une file d’attente est souvent dimensionnée pour fonctionner sur des périodes de temps
longues. Il s’avère qu’en général, lorsque la file d’attente est stable, on peut donner du sens
à “typique”.
Considérons une file d’attente et choisissons une des familles de variables aléatoires as-
sociées (les Wn , les Qt , etc.). Supposons que c’est une famille indicée par n et notons-la Xn .
Deux interprétations de valeur “typique” semblent raisonnables pour une file d’attente stable
après un long temps de fonctionnement :
1. E[Xn ] : si l’on répète l’expérience un grand nombre de fois, la moyenne des réalisations
de Xn ne dépend (presque) pas de n.
CHAPITRE 1. FILES D’ATTENTE 12
1
Pn
2. n k=1 Xk : au cours d’une seule expérience, la moyenne des Xk sur les n premiers
clients ne dépend (presque) pas de n.
Cela motive la définition de régime permanent, pour lequel ces valeurs typiques existent et
sont de plus égales. Noter que cette égalité n’est pas vraiment surprenante : la loi forte des
grands nombres par exemple assure ce genre d’égalité.
On dit qu’une variable aléatoire Xn (indicée par le n-ième client) est locale si elle ne
dépend que de quantités qui peuvent être mesurées par le n-ième client lors de son passage
dans la file. De même, on dit qu’une variable aléatoire Yt (indicée par l’instant t) est locale
si elle ne dépend que de quantités qui peuvent être mesurées par un client qui arriverait
à l’instant t. Cette notion n’est absolument pas standard et est spécifique à ce cours. Elle
permet d’introduire la notion suivante, qui demande sinon des discussions beaucoup plus
techniques. Une file est en régime permanent si, pour toute famille de variables aléatoires Xn
(resp. Yt si on indice par le temps) locales, on satisfait simultanément les deux conditions
suivantes :
— la suite (Xn ) (resp. (Yt )) est stationnaire : en particulier 1 , la loi ne dépend pas de
l’indice.
— la suite (Xn ) (resp. (Yt )) est ergodique : en introduisant
P une variable Raléatoire X (resp.
t
Y ) de même loi que les Xn (resp. Yt ), la quantité n1 nk=1 Xk (resp. 1t 0 Ys ds) converge
presque sûrement vers E[X] (resp. E[Y ]) quand n (resp. t) tend vers +∞.
En régime permanent, on s’autorisera donc souvent à omettre l’indice des variables aléatoires.
Dans un grand nombre de cas, une file stable va converger (dans un certain sens) vers
un régime permanent unique, et c’est dans ce dernier état que l’on étudiera la file. Par
ailleurs, l’étude des files est très souvent plus simple en régime permanent. Des raisonnements
heuristiques et intuitifs conduiront en général à des résultats corrects.
Nous terminons la section avec un résultat intuitif : en régime permanent, l’intensité des
processus d’arrivées et de départs sont identiques.
Mt p.s.
Proposition 1.10. En régime permanent, limt→+∞ t
= λ.
Démonstration. Notons Q0n le nombre de clients présents dans la file à l’arrivée
Pn du n-ième client (en comptant
le n-ième client). On a Qt 6 Q0Nt . Comme on est en régime permanent, n1 k=1 Q0k converge presque sûrement
Q0 Pn Pn−1 0
vers E[Q0 ]. Cela implique que nn = n1 k=1 Q0k − n−1n n−1
1
k=1 Qk converge presque sûrement vers 0 et donc,
Q0Nt Q0
Nt converge également presque sûrement vers 0. Par conséquent, Qtt 6 NNtt Ntt converge presque sûrement
vers 0. La première égalité s’obtient en notant que Qt = Nt − Mt et en appliquant la proposition 1.8.

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)

1.3.4 Les files M/G/1 et M/M/1


La file M/G/1 forme un modèle naturel pour un grand nombre de files d’attente réelles :
les arrivées suivent un processus de Poisson, ce qui est pertinent dès que les arrivées des
clients sont non concertées (indépendantes), et le temps de service suit n’importe quelle loi.
Parmi les résultats concernant la file M/G/1, le résultat suivant est probablement celui
avec la plus grande portée. Il quantifie le temps d’attente moyen en régime permanent.
Un résultat général concernant la file M/G/1, et dont la preuve dépasse le cadre de ce
cours (voir par exemple [1, Chapitre X]), assure qu’une telle file, lorsque elle est stable,
c’est-à-dire lorsque ρ < 1, converge (dans un certain sens) vers le régime permanent. Cela
souligne la pertinence du théorème suivant, dus à Pollaczek et Khinchin : pour une file
M/G/1 fonctionnant sur une durée suffisamment longue, ce théorème permet d’anticiper
assez précisément le temps d’attente moyen. La loi de Little permet alors d’en déduire le
nombre moyen de clients présents dans l’espace d’attente.
Théorème 1.12 (Théorème de Pollaczek–Khinchin [10, 13]). Supposons ρ 6 1. Pour une
file d’attente M/G/1 en régime permanent, on a alors

λE[U 2 ]
E[W ] = .
2(1 − ρ)

(C’est valable même si E[U 2 ] = +∞.)


Démonstration. Notons Hn0 le nombre de clients en attente dans la file à l’arrivée du n-ième client, et Rn le
Pn−1
temps qu’il reste au client en cours de service. On a Wn = Rn + k=n−Hn0 Uk . En prenant l’espérance, on a
  
n−1
X
E[Wn ] = E[Rn ] + E E  Uk Hn0  .
0
k=n−Hn
CHAPITRE 1. FILES D’ATTENTE 14

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

1.3.5 Borne et aproximation pour la file G/G/1


L’étude des files G/G/1 est difficile, et il y a beaucoup moins de propriétés nettes comme
on peut en avoir pour les files M/G/1. Selon les lois d’arrivées et de service, il peut même
ne pas exister de régime permanent. Ou alors il peut en exister un mais la convergence n’est
pas assurée. C’est pour ces raisons que le résultat suivant est parfois qualifié d’heuristique.
Pour les files M/G/1, c’est une version partielle du théorème de Pollaczek–Khinchin.
Théorème 1.14. Supposons ρ < 1. Pour une file d’attente G/G/1 en régime permanent,
on a
λ(V[T ] + V[U ])
E[W ] 6 .
2(1 − ρ)
Démonstration. Introduisons la notation Y + = max(0, Y ) et Y − = − min(0, Y ). Un calcul immédiat conduit

V[Wn +Un −Tn+1 ] = V[(Wn +Un −Tn+1 )+ ]+V[(Wn +Un −Tn+1 )− ]+2E[(Wn +Un −Tn+1 )+ ] · E[(Wn +Un −Tn+1 )− ] .
(1.5)
Par ailleurs, comme Wn , Un et Tn+1 sont des variables aléatoires indépendantes, on a
V[Wn + Un − Tn+1 ] = V[Wn ] + V[U ] + V[T ] .
En substituant dans l’égalité (1.5) et en notant que Wn+1 = (Wn + Un − Tn+1 )+ , on obtient
V[Wn ] + V[U ] + V[T ] = V[Wn+1 ] + V[(Wn + Un − Tn+1 )− ] + 2E[Wn+1 ] · E[(Wn + Un − Tn+1 )− ] . (1.6)

Pour finir la preuve, interprétons (Wn + Un − Tn+1 ) . C’est la durée, entre l’arrivée du n-ième client et
celle du (n + 1)-ième client pendant laquelle aucun service n’est assuré. En utilisant le corollaire 1.11, il vient
PNt −1 −
n=1 (Wn + Un − Tn+1 )
lim = 1 − ρ.
t→+∞ t
En utilisant le fait qu’on est en régime permanent et la relation limt Ntt = λ, l’égalité précédente conduit à
E[(Wn + Un − Tn+1 ]− = 1−ρ λ . Comme on est en régime permanent, l’égalité (1.6) conduit alors à

V[U ] + V[T ] − V[(Wn + Un − Tn+1 )− ]


E[W ] = λ .
2(1 − ρ)
L’inégalité cherchée en est une conséquence immédiate.

En l’absence d’information complémentaire, les praticiens n’hésitent pas à utiliser l’ap-


proximation de Kingman [11]. En notant cX le coefficient de variation d’une variable aléatoire
X (défini comme le rapport de son écart-type avec son espérance), elle affirme qu’on a pour
une G/G/1 en régime permanent
 2
cT + c2U
 
ρ
E[W ] ≈ .
µ−λ 2
Cette approximation est à privilégier lorsque ρ est proche de 1.

1.4 Compléments bibliographiques


Un ouvrage particulièrement complet, et qui reste accessible sur le plan mathématiques,
est le livre de Stewart [16].
CHAPITRE 1. FILES D’ATTENTE 16
CHAPITRE 2

Optimisation en ligne, optimisation temps réel

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.

2.2 Quelques notions

2.2.1 Algorithme en ligne, algorithme temps réel


On distingue traditionnellement deux types de problème en ligne.
Dans le modèle séquentiel, l’instance comporte une séquence r1 , r2 , . . . de requêtes. Un
algorithme en ligne doit choisir la façon de satisfaire la requête ri avant de connaı̂tre la requête
CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL 18

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).

2.2.2 Analyse de compétitivité

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

2.3 Quelques exemples classiques


2.3.1 Location de skis
C’est peut-être l’exemple le plus classique. L’origine exact de ce problème n’est pas
connue.
Un skieur décide d’aller skier tous les jours, jusqu’à ce que le mauvais temps arrive.
Louer les skis lui revient à 1=C par jour. Acheter les skis lui revient à B =C, avec B > 1. Il n’a
aucune information sur la probabilité de mauvais temps. On considère qu’il prend sa décision
le matin et qu’il connaı̂t le temps qu’il va faire dans la journée. L’objectif est de minimiser
le coût total. Si le skieur connaissait parfaitement le temps futur, la décision serait facile à
prendre : si le nombre de beaux jours à partir du premier jour est supérieur à B, il vaut
mieux acheter les skis ; sinon, il vaut mieux les louer.
C’est un problème en ligne de nature séquentielle. Chaque journée de beau temps forme
une requête. Chaque requête peut être satisfaite de trois manières différentes :
— Louer les skis, à 1=C.
— Acheter les skis, à B =C.
— Utiliser les skis, si le skieur les a déjà achetés, à 0=C.
Considérons l’algorithme ALGk , paramétré par un entier k fixé, satisfaisant une requête
comme suit : si le nombre de jours de location précédant le jour courant est au plus k, louer
les skis ; sinon, acheter les skis.
C’est bien un algorithme en ligne : pour prendre sa décision, l’algorithme ne tient compte
que de l’information passée. Noter qu’il se peut que l’algorithme n’aille pas jusqu’à acheter
des skis, si par exemple le mauvais temps arrive avant le k-ième jour.

Théorème 2.1. L’algorithme ALGB−2 est 2 − B1 -compétitif.




Démonstration. Considérons une instance I et notons n le nombre de jours de beau temps. On a



n si n 6 B − 1,
ALGB−2 (I) = et OPT(I) = min(n, B) .
2B − 1 si n > B,

Si n 6 B − 1, on a ALGB−2 (I)= n 6 2 − B1 n = 2 − B1 OPT(I) car B > 1. Si n > B, on a ALGB−2 (I) =


 

2B − 1 = 2 − B1 B = 2 − B1 OPT(I).

On peut d’ailleurs démontrer qu’aucun algorithme ne peut offre de meilleur ratio de


compétitivité comme suit. Étant donné un algorithme en ligne résolvant le problème de loca-
tion de skis, considérer l’instance qui consiste en un jour de beau temps tant que l’algorithme
choisit de louer, et qui consiste en un jour de mauvais temps précisément le lendemain du
jour où l’algorithme décide d’acheter les skis. Soit n le nombre de jours de location choisis
par l’algorithme. Le coût de la solution proposée par l’algorithme est n + B. La solution
optimale hors ligne est de coût min(n + 1, B). On vérifie aisément, en distinguant n 6 B − 2
et n > B − 1, que
n+B 1
>2− ,
min(n + 1, B) B
CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL 20

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é.

2.3.2 Équilibrage de charge


Cet exemple est du a été proposé par Graham dans un article de 1966 [8]. C’est d’ailleurs
peut-être le premier article à avoir considéré un problème en ligne.
On a une séquence de n tâches qui sont révélées les unes après les autres, le nombre n
n’étant pas connu. La tâche i a un poids wi > 0. On dispose de m machines. Chaque tâche
doit être affectée à une machine à l’instant où elle est révélée. L’objectif est de minimiser la
charge finale de la machine la plus chargée.
C’est un problème en ligne de nature séquentielle.
Considérons l’algorithme “glouton” affectant toujours la tâche courante à la machine la
moins chargée.
1
Théorème 2.2. L’algorithme glouton a un ratio de compétitivité égal à 2 − m
.
Démonstration. Considérons une instance I. Mettons-nous à l’arrivée de la tâcheP i. Soit j la machine sur
1 i−1
laquelle la tâche i est affectée par l’algorithme, et notons qj sa charge. On a qj 6 m k=1 wi car l’algorithme
affecte le tâche i à la machine la moins chargée (dont la charge est donc inférieure
Pn à la moyenne des charges).
1 m−1
La charge de la machine j devient donc qi + wj , qui est donc majorée par m k=1 k + m wi (on utilise
w
ici la positivité des poids). On a
n
1 X
wk 6 OPT(I) et wi 6 OPT(I) .
m
k=1

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.

2.3.3 Ordonnancement de tâches


On a une séquence de n tâches qui sont révélées les unes après les autres. La tâche i
est révélée à l’instant ti et a un temps de traitement égal à pi . On dispose de m machines
21 CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL

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é.

2.3.4 Voyageur de commerce en ligne


On a un véhicule en o qui doit visiter des points p1 , p2 , . . . , pn d’une région donnée. La
position du point pi est révélée à l’instant ti et on a t1 < t2 < · · · < tn . Le nombre n de points
n’est pas connu à l’avance. Pour toute paire de points x, y, la durée d(x, y) pour aller de x
à y peut être calculée à la demande, et l’on suppose que la durée d(x, y) est une distance au
sens mathématique (symétrie, séparation, inégalité triangulaire). L’objectif est de terminer
au plus tôt la visite de tous les points.
C’est un problème en ligne de nature temporelle. Il peut être démontré qu’il admet un
ratio de compétitivité de 2.5 (voir Exercice 8 de la feuille sur les algorithmes en ligne).

2.4 Approche pratique


Le travail théorique sur les problèmes en ligne, en particulier l’analyse de compétitivité,
fournit des outils conceptuels pour appréhender les algorithmes en ligne, discuter leurs
qualités, les comparer entre eux, etc. Cela permet aussi de guider la construction d’algo-
rithmes performants en pratique. Cependant, des notions comme le ratio de compétitivité
sont souvent d’un intérêt opérationnel limité. Contrairement à l’optimisation hors ligne,
où les méthodes théoriques ou académiques sont pertinentes en pratique (programmation
mathématique, algorithmes polynomiaux, etc.), le développement d’un cadre théorique pour
l’optimisation en ligne pertinent pour les applications reste un problème largement ouvert.
Une des explications est probablement la complexité mathématique redoutable à mettre en
œuvre pour modéliser fidèlement les problèmes d’optimisation en ligne concrets.
Dans cette section, on discute d’abord brièvement de stratégies algorithmiques possibles
dans un contexte pratique puis on procède à une étude détaillée d’une résolution possible
d’un problème de job-shop temps réel.

2.4.1 Quelques stratégie algorithmiques possibles


On peut distinguer quatre stratégies pour traiter un problème d’optimisation en ligne
concret. Ces stratégies forment plus un guide pour aiguiller la réflexion que des méthodes
“clé en main”.
CHAPITRE 2. OPTIMISATION EN LIGNE, OPTIMISATION TEMPS RÉEL 22

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.

Sur le voyageur de commerce temps réel


Regardons ce que donnent ces quatre stratégies sur le problème du voyageur de commerce
en ligne de la section 2.3.4.
Fifo : visite les pi dans l’ordre d’apparition (très mauvais).
Greedy : va toujours vers le pi le plus proche non visité (mauvais, mais peut être
acceptable).
Replan : recalcule une tournée optimale à chaque arrivée d’un point ; suit cette tournée
jusqu’à l’arrivée d’un nouveau point.
Ignore : se dirige vers p1 ; une fois en p1 , calcule une tournée optimale sur tous les points
arrivés pendant ce premier trajet ; suit cette tournée : etc.

2.4.2 Exemple d’étude : job-shop temps réel


Description du problème
Dans un tel problème, on se donne un atelier regroupant un ensemble M de machines. On
a des tâches (penser produits) à réaliser sur ces machines. Une tâche j est formée d’une suite
de n(j) opérations. La ième opération doit être effectuée sur la machine mji ∈ M et requiert
un temps de traitement pji ∈ R+ . On suppose de plus qu’une machine ne peut effectuer
au plus qu’une opération à la fois, et qu’une opération, une fois commencée, ne peut être
interrompue.
On se met dans un contexte en ligne temporel : les tâches arrivent les unes après les
autres, à des instants aléatoires, et leurs caractéristiques ne sont révélées qu’à leurs arrivées.
On suppose de plus que l’atelier fonctionne en régime stationnaire et que les arrivées des
tâches ne connaissent pas d’interruption. (Il y a donc potentiellement un nombre infini de
tâches.)
De nombreux objectifs sont envisageables. Ici, on va considérer deux critères classiques :
— minimiser le temps moyen F de complétion d’une tâche.
— minimiser le temps maximum Fmax de présence d’une tâche dans l’atelier.

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

— durée de chaque opération de la tâche : un nombre entier de secondes tiré uniformément


au hasard parmi 1, 2, . . . , 49.
Deux durées moyennes d’inter-arrivées 1/λ sont testées : λ = 0.032 et λ = 0.038. On a alors
selon les valeurs choisies pour λ :

λ × 25 = 0.8 < 1 et λ × 25 = 0.95 < 1 ,

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.

Règle F Fmax Règle F Fmax


FIFO 839.1 1962.0 FIFO 2418.2 4452.4
AT 811.3 1536.8 AT 1958.0 2978.4
SPT 633.6 3777.6 SPT 1466.8 25875.4
PT+WINQ 630.2 2703.2 PT+WINQ 1428.8 12306.1
PT+WINQ+AT 761.3 1479.2 PT+WINQ+AT 1785.8 2862.1
AT−RPT 809.9 1422.7 AT−RPT 1956.8 2853.4
(a) Pour λ = 0.032 (b) Pour λ = 0.038

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

2.5 Compléments bibliographiques


L’article déjà cité de Fiat et Woeginger [7] est plutôt ancien, mais aborde différents
aspects de l’optimisation en ligne : pertinence théorique et appliqué, enjeu, notions fonda-
mentales. Un ouvrage classique et très complet, mais de nature résolument théorique, est
celui de Borodin et El-Yaniv [4]. L’ouvrage de Jaillet et Wagner [9] prend une approche plus
probabiliste et présente de nombreuses applications pertinentes pour l’industrie.
CHAPITRE 3

Gestion de stock sous aléa

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.

3.2 Problème à une période, ou vendeur de journaux


3.2.1 Problème
Formalisation
On considère une entreprise qui dispose d’un stock initial s0 d’un bien. Elle choisit un
niveau de réapprovisionnement, puis satisfait une demande aléatoire dans la limite du stock
disponible. Le coût se décompose en coût de commande, coût de stockage et coût de pénurie
(équivalent à considérer le gain sur les ventes, voir plus bas). En notant s le niveau de
stock choisi par l’entreprise après réapprovisionnement et D la demande (aléatoire), le coût
(aléatoire) s’écrit
c(s − s0 ) + h(s − D)+ + p(D − s)+ , (3.1)
où c, h, p ∈ R sont respectivement les coûts unitaires de commande, stockage et pénurie. On
suppose de plus que l’entreprise souhaite minimiser l’espérance de son coût. (En présence
CHAPITRE 3. GESTION DE STOCK SOUS ALÉA 28

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

Min E[φ(s, D)]


s.c. s > s0 (3.2)
s ∈ R,

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.

Et s’il y a un gain à la vente au lieu d’un coût de pénurie ?


Nous finissons cette sous-section en discutant un coût alternatif, qui peut sembler plus
naturel. Supposons que le coût soit en fait de la forme

c(s − s0 ) + h(s − D)+ − g min(D, s) , (3.3)

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

c(s − s0 ) + h(s − D)+ + g(D − s)+ − gD .

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

particulier le choix de la fonction de coût. La seconde hypothèse est totalement naturelle


en pratique : c + h > 0 signifie qu’on ne gagne pas d’argent à simplement commander et
stocker ; p − c > 0 qu’on a intérêt à satisfaire la demande. La résolution du problème lorsque
ces hypothèses ne sont pas satisfaites est discutée en exercice.
On a
φ(s, D) = max((c + h)s − hD, (c − p)s + pD) . (3.4)
En effet, si s > D, on a φ(s, D) = (c+h)s−hD par définition, ce qui est également donné par
l’équation (3.4) car h > −p d’après l’hypothèse (ii). Et si s 6 D, on a φ(s, D) = (c−p)s+pD
par définition, ce qui est également donné par l’équation (3.4), toujours car h > −p d’après
l’hypothèse (ii).
Lemme 3.1. La fonction s 7→ E[φ(s, D)] est convexe et coercive.
Démonstration. Le maximum de fonctions convexes (a fortiori affines) est convexe. L’équation (3.4) montre
donc la convexité à D fixé de la fonction s 7→ φ(s, D). L’inégalité de convexité est préservée en passant à
l’espérance et donc s 7→ E[φ(s, D)] est convexe.
Pour la coercivité, on se sert encore de l’équation (3.4) : l’espérance d’un maximum étant toujours plus
grand que le maximum des espérances, on a
E[φ(s, D)] > max((c + h)s − hE[D], (c − p)s − pE[D]) > max((c + h)s, (c − p)s) − max(|h|, |p|) |E[D]| .
Les hypothèses impliquent alors la coercivité : lim|s|→+∞ E[φ(s, D)] = +∞.

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.

3.2.3 Extension : cas avec coût fixe d’approvisionnement


Sous les hypothèses (i) et (ii), le théorème 3.2 permet de traiter l’extension du problème
du vendeur de journaux quand il y a un coût fixe d’approvisionnement : lorsqu’on passe une
31 CHAPITRE 3. GESTION DE STOCK SOUS ALÉA
G(t)

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

K1(t > s0 ) + c(t − s0 ) + h(t − D)+ + p(D − t)+ . (3.5)

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).

3.2.4 Extension : cas avec niveaux de stock entiers

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 .

3.2.5 Nombre fini de scénarios


En pratique D est souvent supposée ne prendre qu’un nombre fini de valeurs. En sup-
posant que D prend la valeur di avec la probabilité pi , le problème du vendeur de journaux
(toujours sous les hypothèses (i) et (ii)) peut se modéliser sous la forme du programme
linéaire (en variables continues) suivant :
X
Min pi v i
i
s.c. vi > (c + h)x − cs0 − hdi ∀i
vi > (c − p)x − cs0 + pdi ∀i
vi ∈ R ∀i
x > s0 .

Cela se montre directement à partir de l’équation (3.4).


Dans le cas où D ne prend qu’un nombre fini de valeurs, on peut donc résoudre le problème
de manière efficace.

3.3 Problème à N périodes


3.3.1 Problème
On considère à nouveau une entreprise qui dispose d’un stock initial t1 d’un bien. La
gestion du stock est maintenant vue sur N périodes. En début de chaque période i, l’entreprise
33 CHAPITRE 3. GESTION DE STOCK SOUS ALÉA

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

Les problèmes d’optimisation convexe en dimension 1 étant faciles à résoudre, au moins


numériquement, le lemme suivant montre que la programmation dynamique conduit à une
méthode de résolution pratique du problème dans le cas sans coût fixe (K = 0). En utilisant
la convexité de la fonction objectif, sa preuve s’appuie les résultats de la section 3.2.
CHAPITRE 3. GESTION DE STOCK SOUS ALÉA 34

Lemme 3.3. Supposons K = 0, et soit i ∈ [N ]. La fonction t 7→ Ji (t) est alors convexe et


coercive. De plus, il existe Si > 0 tel que, pour tout réel t, l’infimum dans l’équation (3.9)
est atteint pour u = (Si − t)+ .
Démonstration. D’après le théorème 3.2, il existe SN tel que l’infimum dans l’équation (3.9) pour i = N est
atteint pour u = (SN − t)+ . En posant
Li (t) = hE[(t − Di )+ ] + pE[(Di − t)+ ] ,
, on a alors 
c(SN − t) + LN (SN ) si t < SN
JN (t) = (3.10)
LN (t) sinon.
La fonction JN est convexe : c’est vrai pour t < SN et t > SN , et une discussion sur les dérivées à gauche et
à droite en SN permet de le vérifier pour tout t. Il est de plus facile de vérifier à partir de l’équation (3.10)
que JN est coercive.
Supposons maintenant que Ji+1 est convexe et coercive. Comme c, h et p sont positifs, Ji+1 est toujours
positif et en utilisant la coercivité de s 7→ cs+Li (s) (conséquence du lemme 3.1), on voit que s 7→ cs+Li (s)+
E[Ji+1 (s − Di )] est convexe (donc continue) et coercive. Cette dernière fonction admet donc un minimum
global en un certain point Si . L’infimum dans l’équation (3.9) est donc atteint pour u = (Si − t)+ . On a
donc 
c(Si − t) + Li (Si ) + E[Ji+1 (Si − Di )] si t < Si
Ji (t) = (3.11)
Li (t) sinon.
On peut alors vérifier à partir de ces équations que Ji est convexe et coercive.

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

est solution optimale du problème (3.8).

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.

3.4 Compléments bibliographiques


Un ouvrage classique sur la question de la gestion de stock, déterministe et stochastique,
est le livre de Zipkin [19]. Bien qu’un peu vieux—il date de 2000—il reste une référence sur
le sujet.
CHAPITRE 3. GESTION DE STOCK SOUS ALÉA 36
CHAPITRE 4

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

transférés à l’autre approche par un simple calcul.

4.2 Cas à deux classes tarifaires


Le modèle à deux classes tarifaires, proposé en 1972 par Littlewood [?], est historiquement
le premier modèle de revenue management, et reste par bien des aspects fondamental pour
la compréhension de ce domaine. Il offre une certaine similarité avec le problème de vendeur
de journaux (et la forme de la solution est d’ailleurs assez proche).
Une entreprise met en vente une quantité q > 0 d’un bien. On a deux classes tarifaires,
numérotées 1 et 2. Les clients de la classe 1 sont prêts à acheter le bien à un prix p1 alors
que ceux de la classe 2 sont prêts à l’acheter à un prix p2 . Ces prix sont fixés (par exemple,
par le marketing de l’entreprise) et vérifient p1 > p2 > 0. La demande pour la classe 1 est
notée D1 et celle pour la classe 2 est notée D2 . On suppose que les niveaux de demande D1
et D2 sont des nombres réels positifs non nécessairement entiers (cette dernière hypothèse
sera discutée plus loin). Ici, D1 et D2 sont des variables aléatoires supposées indépendantes.
Le problème consiste à déterminer la quantité maximale si qu’on s’autorise à vendre à
chacune des classes i afin de maximiser l’espérance du revenu, avec s1 +s2 = q. Une hypothèse
souvent faite en pratique, et pas complètement irréaliste, est que les clients de la classe 2,
avec un pouvoir d’achat plus faible, vont se manifester avant ceux de la classe 1.
Plutôt que s1 et s2 , l’habitude veut qu’on utilise plutôt la variable y1 , qui est le nombre
d’unités réservées à la classe 1. On dit que y1 est le niveau de protection de la classe 1. On ne
s’autorise à vendre à la classe 2 que s’il y a plus de y1 unités disponibles. Pour une réalisation
possible de D1 et D2 , le revenu est égal à

R(q; y1 ; D1 , D2 ) = p1 X1 + p2 X2 , avec X1 = min(D1 , (q − X2 )+ ) et X2 = min(D2 , (q − y1 )+ ) .

Le problème s’écrit donc :

Max E [R(q; y; D1 , D2 )]
(4.1)
s.c. y > 0 ,

dont la seule variable est y, niveau de protection de la classe 1.


p2
Théorème 4.1. Soit y ∗ tel que P(D1 > y ∗ ) = p1
. Alors y ∗ est solution optimale du
problème (4.1).

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

4.3 Cas à N classes tarifaires


4.3.1 Modèle
On considère la généralisation naturelle du problème de la section 4.2. On a toujours
une quantité q d’un bien. On a maintenant N classes tarifaires, numérotées 1, 2, . . . , N . Les
demandes correspondantes sont des variables aléatoires D1 , D2 , . . . , DN . Les tarifs corres-
pondants, et fixés à l’avance, sont p1 > p2 > · · · > pN > 0. L’objectif est de déterminer les
niveaux de protection y1 6 y2 6 · · · 6 yN −1 : on accepte de vendre à la classe i + 1 que s’il
reste au moins yi unités disponibles. Pour une réalisation possible de la demande, et pour
un choix des niveaux de protection, le revenu est égal à
N
X
R(q; y1 , . . . , yN −1 ; D1 , . . . , DN ) = pi Xi ,
i=1

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

où y = y1 , . . . , yi−1 et D = D1 , . . . , Di . (C’est un petit abus de notation car y et D dépendent


de l’indice i dans “ri ”.) La quantité ri (q; y; D) est donc le revenu généré par les ventes aux
classes numérotées de 1 à i, et on a en particulier

R(q; y1 , . . . , yN −1 ; D1 , . . . , DN ) = rN (q; y; D) .

On a les relations immédiates suivantes, lesquelles se révèleront utiles :



 ri (q; y; D) si 0 6 q < yi ,
ri+1 (q; y; D) = pi+1 (q − yi ) + ri (yi ; y; D) si yi 6 q < yi + Di+1 , (4.2)
pi+1 Di+1 + ri (q − Di+1 ; y; D) si yi + Di+1 6 q.

Le problème d’optimisation que l’on souhaite résoudre est donc le suivant :

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

Théorème 4.2. Le problème admet toujours une solution optimale. De plus, si

∂q+ E[ri (q; y ∗ ; D)] q=yi∗


6 pi+1 6 ∂q− E[ri (q; y ∗ ; D)] q=yi∗
(4.4)

pour tout i ∈ [N − 1], alors les niveaux y1∗ , . . . , yN



−1 forment une solution optimale du
problème (4.3).
Dans le cas où les Di sont de lois continues, la condition (4.4) se réécrit

pi+1 = E[ri (q; y; D)] q=yi∗
.
∂q
Ce n’est pas complètement immédiat : il faut montrer que lorsque les Di sont de lois continues,
alors la fonction q 7→ E[ri (q; y; D)] est différentiable. On a de plus le résultat suivant, dont
la preuve, pas difficile, est omise. Cela fournit une formulation plus explicite des yi∗ , et donc
plus accessible aux calculs.
Proposition 4.3. Lorsque les lois des Di sont continues, l’équation (4.4) est équivalente à
pi+1
P(D1 > y1∗ ; D1 + D2 > y2∗ ; . . . ; D1 + D2 + · · · + Di > yi∗ ) = .
p1
Dans le cas où les Di prennent des valeurs entières, on a le résultat suivant, qui démontre
la portée générale du théorème 4.2.
Proposition 4.4. Si les Di sont à valeurs entières, alors il existe toujours des niveaux yi∗
optimaux entiers.
Enfin, la forme de l’équation (4.4) montre que l’on a nul intérêt à changer les niveaux yi∗
au cours de la vente, en tenant compte de la demande passée. Il a même été démontré que
des politiques plus complexes—en autorisant la vente non seulement si le nombre de places
restantes est au-dessus d’un seuil, mais aussi si elle prend certaines valeurs particulières par
exemple—ne peuvent améliorer le revenu.

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.

Lemme 4.6. Il existe toujours des niveaux y1∗ , . . . , yN



−1 satisfaisant

∂q+ E[ri (q; y ∗ ; D)] q=yi∗


6 pi+1 6 ∂q− E[ri (q; y ∗ ; D)] q=yi∗
.

pour tout i ∈ [N − 1].


41 CHAPITRE 4. REVENUE MANAGEMENT

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 ,

∂y− rN +1 (q; y1∗ , . . . , yN



−1 , y; D) y=y ∗ = −pN +1 + ∂q− rN (q; y ∗ ; D) ∗
q=yN

si yN 6 q < yN∗
+ DN +1 ,
N

0 si yN + DN +1 6 q.

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 Les heuristiques EMSR-a et EMSR-b


En pratique, lorsque les lois des Di sont continues, deux heuristiques directement ins-
pirées du théorème pour 2 classes (théorème 4.1) sont souvent utilisées. Elles sont en effet
assez intuitives. Bien que non-optimales (le théorème 4.2 est de toute façon une condition
nécessaire et suffisante), elles donnent des solutions de bonne qualité, à quelques pourcents
de l’optimum.

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
.

4.5 Compléments bibliographiques


Pour aller plus loin, on pourra consulter les revues de littérature dues à van Ryzin et
Talluri [18] ou à Strauss et al. [17].
CHAPITRE 5

Simulation à événements discrets

5.1 Enjeux de la simulation

Une méthode naturelle pour décrire ou prédire le comportement de phénomènes ou de


systèmes consiste à les modéliser sous forme d’équations mathématiques avec l’idée d’analyser
ces dernières. Cependant, dans de nombreuses situations, les équations ainsi obtenues sont
trop complexes pour être résolues (comme en mécanique des fluides) ; il se peut même que
l’écriture de telles équations soit difficile (comme les mouvements de foule). Une solution
alternative, très ancienne, peut être de former une maquette reproduisant le comportement
que l’on souhaite comprendre. Avec l’arrivée des ordinateurs, une telle maquette est devenue
informatique et est donc plus fiable et infiniment plus facile à produire et à maintenir.
La simulation est la reproduction informatique d’un phénomène ou d’un système afin de
comprendre et d’analyser son comportement.
Dans de nombreux domaines industriels, la simulation est devenue un outil incontour-
nable de l’ingénieur. Que ce soit par exemple pour la conception d’un avion, l’aménagement
d’un quartier, ou le comportement d’un matériau, la simulation permet d’étudier plusieurs
solutions sans avoir à réaliser physiquement un prototype qui serait coûteux à réaliser, en
temps et en argent.
Si la simulation permet de reproduire le comportement d’un phénomène ou d’un système,
et donc de mieux les comprendre, elle permet aussi d’expérimenter de nouvelles solutions,
éventuellement en grand nombre, sans avoir à procéder à des expérimentations physiques de
toute façon impossibles. Elle forme donc un outil essentiel de l’aide à la décision pour un
ingénieur. Elle est particulièrement utile pour l’ingénieur en supply chain, où les systèmes
à optimiser possèdent souvent des comportements complexes difficiles à modéliser par des
équations : un entrepôt automatisé, un port de marchandises, ou un atelier flexible sont des
exemples où la simulation peut particulièrement aider à proposer des organisations et des
politiques de gestion efficaces.
Les deux types de simulation les plus classiques sont probablement les deux suivants :
la simulation à temps continu et la simulation à événements discrets. La première traite
principalement des phénomènes physiques dans lesquels il est crucial de reproduire à tout
instant le comportement du phénomène ou du système (l’écoulement d’un fluide est l’exemple
typique). La seconde concerne les systèmes dont le comportement peut être décrit sans
perte de précision en se limitant à un sous-ensemble d’instants discret (c’est-à-dire, fini ou
CHAPITRE 5. SIMULATION À ÉVÉNEMENTS DISCRETS 44

dénombrable). C’est cette dernière qui est essentiellement utilisée en génie industriel et que
nous allons étudier dans ce chapitre.

5.2 Simulation à événements discrets

La simulation à événements discrets reproduit le comportement de systèmes pouvant se


trouver dans différents états et pour lesquels les instants de transition entre états forment
un ensemble discret. Un événement est ce qui conduit à la réalisation d’une transition d’un
état à un autre. On a toujours un événement “début” qui déclenche la simulation et “fin”
qui achève la simulation.

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.)

L’idée centrale de la simulation à événements discrets est de ne simuler que l’enchaı̂nement


des événements, en passant directement d’un événement au suivant et sans simuler le système
entre deux événements successifs. De plus, à part les événements “début” et “fin”, tout
événement est toujours généré par un autre événement. Notons en passant que programmer
une simulation à événements discrets requiert donc de bien analyser les relations causales au
sein du système.
Un programme de simulation doit donc disposer d’un objet “événement”. Par ailleurs, il
doit comporter des registres de données qui permettront l’étude quantitative de la simulation.
La description d’un objet événement e comporte les informations suivantes :
• son instant de réalisation te .
• le changement d’état qu’il implique.
• les nouveaux événements qu’il déclenche dans le futur.
• la mise à jour des registres de données.
Le déroulement de la simulation s’appuie sur un échéancier qui contient en permanence la
file des événements prévus. Les événements dans l’échéancier sont ordonnés par instants de
réalisation croissants : les événements sont rangés dans l’ordre e1 , e2 , . . ., avec te1 6 te2 6 · · · .
Si deux événements sont simultanés, ils doivent être tels que les réaliser dans un ordre ou
l’autre n’a pas d’incidence. Le cœur d’une simulation consiste en la boucle suivante, où S
représente le système étudié, et E l’échéancier.
45 CHAPITRE 5. SIMULATION À ÉVÉNEMENTS DISCRETS

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

— On met à jour le registre de données : on indique la fin de service du client i à


l’instant te .
— On crée un événement e0 “fin de service de client” pour le client j le plus ancien
de la file (politique FIFO), avec comme instant de réalisation t0e = te + T 0 , où
T 0 est tirée selon la loi de service. On place e0 au bon endroit dans E.
— On met à jour le registre de données : on indique le début de service du client
j à l’instant te .
À la fin de la simulation, il est aisé de parcourir les registres de données pour calculer la
moyenne des temps d’attente.

Remarque 1. En pratique, il n’est pas forcément nécessaire de réimplémenter l’échéancier, les


événements, etc. Il existe de nombreuses librairies de simulation à événements discrets pour
différents langages (comme par exemple SimPy pour Python ou OMNeT++ pour C++)
et de nombreux logiciels proposant des fonctionnalités complémentaires variées (comme par
exemple Arena ou Witness).
Cela dit, pour comparer des algorithmes de temps réel ou des politiques de gestion, sans
prétendre à un réalisme parfait (inutile d’ailleurs pour ce genre de questions), programmer
une simulation à événements discrets peut être très rapide et d’utilisation très souple.

5.3 Modéliser l’aléa


L’aléa joue souvent un rôle important dans l’évolution des processus industriels. Les temps
de traitement, les arrivées de clients, les niveaux de commande ou les temps de parcours
sont autant de quantités pour lesquelles les incertitudes peuvent être substantielles. Les
probabilités forment l’outil mathématique indispensable pour appréhender, modéliser et donc
simuler ces phénomènes.
Dans cette section, nous allons d’abord rappeler quelques distributions de probabilité
utiles dans la simulation des processus industriels. Ensuite, dans un second temps, nous
allons donner deux méthodes pour réaliser des tirages selon des distributions arbitraires.

5.3.1 Quelques distributions de probabilité


Les distributions classiques
La plupart des distributions classiques peuvent être utiles dans un contexte industriel.
Nous avons vu l’importance de la loi exponentielle et de la loi de Poisson pour modéliser les
processus d’arrivées indépendants et non-coordonnés. Les niveaux de demande ou les délais
d’approvisionnement sont souvent modélisés de manière pertinente par une loi normale. (Ce
sont des situations où les réalisations vont se répartir de manière symétrique par rapport
à une moyenne, tant que les valeurs ne sont pas trop grandes ou trop proches de zéro.) La
plupart des distributions classiques vues en cours de probabilité peuvent être utiles pour
modéliser les phénomènes aléatoires en supply chain. Lorsqu’on veut simplement comparer
des heuristiques ou expérimenter des nouvelles politiques, il suffit de donner aux paramètres
47 CHAPITRE 5. SIMULATION À ÉVÉNEMENTS DISCRETS

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.

Les distributions empiriques


Si les historiques de données sont suffisamment fournis, on peut aussi directement les
utiliser comme distribution de probabilité.
Supposons par exemple que l’on veuille simuler les arrivées de clients dans un restaurant
de manière assez fidèle. Un processus de Poisson homogène ne tiendra ni compte des varia-
tions d’intensité de la demande selon l’heure, ni compte de l’existence d’arrivées de groupes
de clients. Si l’on dispose d’un historique de plusieurs mois, on peut simuler des réalisations
en tirant un jour uniformément au hasard dans l’historique et “rejouer” l’histoire des arrivées
de clients de ce jour-là.
Pour les commandes d’une activité de commerce en ligne, on peut s’appuyer sur la liste
des commandes effectuées dans les derniers mois : une commande aléatoire dans la simulation
est obtenue en en tirant une au hasard uniformément dans cette liste.

Les distributions “lack of knowledge”


Il est cependant assez fréquent, en particulier dans un contexte industriel, de ne pas
savoir quelles distributions sont pertinentes pour modéliser une quantité aléatoire. Cela peut
provenir du fait qu’on ne dispose d’aucun historique ou car le système étudié n’a pas encore
connu de réalisation concrète.
Si l’on ne connaı̂t que les valeurs minimale a et maximale b que peut prendre une quantité
aléatoire, la distribution uniforme sur [a, b] peut être utilisée ; voir figure 5.1. Si X est une
variable aléatoire distribuée selon une telle distribution uniforme, on a
1 1
E[X] = (a + b) et V[X] = (b − a)2 .
2 12
Si l’on connaı̂t la valeur minimale a, la valeur maximale b et la valeur “typique” c que
peut prendre cette quantité aléatoire, la distribution triangulaire de paramètres a, b, c peut
être utilisée ; voir figure 5.2. Sa densité s’écrit :
2(t − a)

 si a 6 t 6 c,
 (b − a)(c − a)



p(t) = 2(b − t)
si c 6 t 6 b,
(b − a)(b − c)





0 sinon.
La valeur c est le mode de la distribution : c’est le point où cette dernière atteint son
maximum. Si X est une variable aléatoire distribuée selon une telle distribution triangulaire,
on a
1 1
E[X] = (a + b + c) et V[X] = (a2 + b2 + c2 − ab − ac − bc) .
3 18
CHAPITRE 5. SIMULATION À ÉVÉNEMENTS DISCRETS 48
f (t)

a b t

Figure 5.1 – La densité d’une distribution uniforme

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.

5.3.2 Tirer selon des lois arbitraires

La plupart des langages de programmation donnent accès à des générateurs de nombres


aléatoires. Même si des librairies offrent la possibilité de tirer de tels nombres selon des
distributions variées, il arrive parfois que la simulation requiert les tirages selon une distri-
bution qui n’est pas fournie par la librairie. Il existe plusieurs techniques pour pouvoir le
faire à partir de tirages aléatoires selon d’autres distributions. On dit alors que l’on simule
la variable aléatoire.

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

Figure 5.2 – La densité d’une distribution triangulaire

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

Proposition 5.2. Les variables aléatoires X et Z suivent la même loi.


g(t)
On peut montrer que la convergence est d’autant meilleure que supt f (t)
est petit.

5.4 Expérimenter et analyser les résultats


Le but d’une simulation est presque toujours d’évaluer les valeurs prises par certaines
quantités (c’est à cela que servent les registres mentionnés dans la section 5.2). En même
temps, comme la simulation est souvent utilisée pour étudier des systèmes où l’aléa joue un
rôle important, cette évaluation nécessite un traitement statistique et le calcul d’intervalles
de confiance. Ces derniers requièrent d’avoir accès à une variance empirique. Une façon de
faire cela de manière propre (mais ce n’est pas la seule façon) est de rejouer plusieurs fois la
simulation, ce qu’on appelle des réplications, en prenant bien garde d’initialiser le générateur
de nombres aléatoires sur des graines différentes. Le nombre de réplications est en général
assez petit—de l’ordre de quelques dizaines—car le gain en précision devient vite marginal,
tout en augmentant le temps de calcul.
L’intervalle de confiance au niveau 1 − α d’une quantité x après r réplications est donné
par  
r−1 s r−1 s
x̄ − tα/2 √ , x̄ + tα/2 √ ,
r r
où
1
P
• x̄ = r
xi (moyenne empirique)
i
1
• s2 = r−1 2
P
i (xi − x̄) (variance empirique sans biais)

• 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.

5.5 Compléments bibliographiques


Plusieurs ouvrages très complets ont été écrits sur la simulation à événements discrets.
Citons par exemple celui de Banks et al. [2] ou celui de Cassandras et Lafortune [6]. L’ouvrage
de Stewart [16], cité à la fin du chapitre sur les files d’attente, comporte une partie assez
fouillée sur la simulation.
Bibliographie

[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

Vous aimerez peut-être aussi