Thème 8 — Temps d'attente
Cours complet · mathématiques complémentaires (terminale), chapitre 18 · terminale, option mathématiques complémentaires
Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre
Une régie de transports affiche, sur la ligne 12 : « un bus toutes les minutes ». Les usagers, eux, se plaignent d'attendre bien davantage. Un club de mathématiques de terminale décide de trancher, et fait deux relevés pendant un mois : il chronomètre intervalles entre deux bus successifs, et il interroge usagers pour noter combien de temps chacun a attendu.
Les deux moyennes tombent : minutes entre deux bus, et minutes d'attente par usager. La régie n'a pas menti — l'intervalle moyen est bien de dix minutes. Mais l'attente moyenne devrait alors être de cinq minutes, la moitié d'un intervalle. Elle en fait le double. Aucun des deux relevés n'est faux, et pourtant ils semblent se contredire.
Il n'y a là ni erreur de mesure ni mauvaise foi. Il y a une question mathématique, et elle en cache plusieurs : qu'est-ce qu'un temps d'attente ? Comment le décrire quand la moyenne trompe ? Que signifie exactement « ne pas vieillir » pour un composant, un atome, un être vivant ? Et pourquoi une file d'attente s'allonge-t-elle si brutalement lorsqu'un guichet approche de la saturation ?
Problématique. La moyenne d'une attente suffit-elle à la décrire — et si elle n'y suffit pas, que faut-il regarder ?
18.1 L'enquête : deux relevés, deux vérités
18.1.1 Ce que le club a mesuré
Les attentes relevées sont très dispersées : usagers (soit près de ) ont attendu moins de cinq minutes, mais d'entre eux — un sur six — ont attendu plus de vingt minutes. La médiane des attentes vaut minutes, très au-dessous de la moyenne . C'est le premier signal : la moyenne, ici, ne résume pas grand-chose.
18.1.2 Le fil de l'étude
Méthode : Le fil de l'étude, en cinq étapes
- Choisir une horloge. L'attente se compte-t-elle en essais entiers (chapitre 8, loi géométrique) ou se mesure-t-elle en temps continu (chapitre 9, loi exponentielle) ? Les deux modèles sont reliés.
- Décrire autrement que par la moyenne : médiane, quartiles, queue de distribution, et seuils obtenus par le logarithme (chapitre 3).
- Identifier le modèle sur les données. Un changement de variable logarithmique ramène l'ajustement à une droite (chapitre 10).
- Tester l'absence de mémoire. Elle est commode, mais elle interdit le vieillissement : il faut savoir quand elle est fausse (chapitre 8, probabilités conditionnelles).
- Simuler ce qui échappe au calcul exact : attente du -ième événement, file d'attente à un guichet (chapitre 9).
Tout le thème s'appuie sur une même boîte à outils, celle du chapitre 9, complétée au fur et à mesure.
from random import random, seed
from math import log, exp
def expo(lam):
# Une duree suivant la loi exponentielle de parametre lam (chapitre 9).
return -log(1 - random()) / lam
def somme(loi, n):
# Somme de n tirages independants de la meme loi.
total = 0
for _ in range(n):
total = total + loi()
return total
N = 100000
18.2 Deux horloges pour la même question
18.2.1 Compter des essais, mesurer un temps
Une question d'attente se pose toujours de l'une de ces deux façons.
- Combien d'essais avant le premier succès ? La variable est entière : loi géométrique de paramètre , avec , et (admise).
- Combien de temps avant le prochain événement ? La variable est continue : loi exponentielle de paramètre , avec et .
Le mot qui décide est dans l'énoncé : « combien de patients », « combien de tirages » donnent une géométrique ; « au bout de combien d'heures », « quelle durée » donnent une exponentielle.
Le chapitre 9 a établi le pont exact entre les deux : en observant une loi exponentielle uniquement aux instants entiers, on retombe sur une loi géométrique de paramètre , et les deux lois donnent alors la même probabilité de dépassement, .
Sur la ligne 12, un bus passe en moyenne toutes les minutes, soit bus par minute. Vue minute par minute, chaque minute est une épreuve de Bernoulli de paramètre
et le nombre de minutes à attendre suit la loi géométrique de ce paramètre. On vérifie que
Les deux modèles répondent identiquement. Seules les espérances diffèrent un peu : minutes, contre minutes, car arrondit toujours à la minute entière supérieure.
18.2.2 Découper le temps de plus en plus fin
Le pont précédent découpe le temps en tranches d'une minute. Rien n'oblige à s'arrêter là : on peut découper une durée en tranches de longueur , chacune portant une probabilité d'événement . La probabilité de ne rien voir arriver pendant toute la durée est alors
et il est légitime de se demander ce que devient ce nombre quand le découpage devient très fin.
Prenons appel par heure et heures, donc . Voici pour des découpages de plus en plus fins.
Les valeurs montent et se stabilisent : à la sixième décimale, le découpage à la seconde donne , contre .
Ce tableau n'est pas une démonstration, et le programme ne demande pas d'en faire une : il illustre. Mais il dit l'essentiel — la loi exponentielle est ce que devient la loi géométrique quand on cesse de compter par essais entiers pour laisser le temps s'écouler. Le passage du discret au continu, thème récurrent de ce programme, se lit ici sur six nombres.
La ligne « probabilité par tranche » doit rester inférieure à : c'est une probabilité. Le découpage doit donc être assez fin pour que . Avec et , l'écriture n'aurait aucun sens probabiliste, même si le calcul est possible.
18.3 La moyenne ne suffit pas
18.3.1 Médiane, quartiles, queue
La médiane d'une variable aléatoire est la valeur qui partage la population en deux moitiés.
- Cas continu : est la solution de .
- Cas discret : est le plus petit entier tel que .
Soit de loi exponentielle de paramètre et de loi géométrique de paramètre .
Démonstration
Le cas continu a été établi au chapitre 9 : donne , puis .
Dans le cas discret, équivaut à , c'est-à-dire à . La fonction étant strictement croissante, on peut lui appliquer les deux membres :
Comme , le nombre est négatif : diviser par lui renverse l'inégalité, et
La médiane est le plus petit entier qui vérifie cette condition.
Diviser par change le sens de l'inégalité, parce que ce nombre est négatif. C'est l'erreur la plus fréquente de tout le thème : on trouve alors un seuil « au plus » là où il fallait « au moins ». Contrôle immédiat : le seuil trouvé doit être un nombre positif et croître quand diminue.
Modélisons l'attente sur la ligne 12 par une loi exponentielle de moyenne minutes, soit . Alors
La moitié des usagers attend moins de sept minutes, mais un quart attend plus de quatorze minutes. Et
Le relevé du club donnait d'attentes supérieures à vingt minutes ; le modèle en prévoit . L'ordre de grandeur est le bon.
Trois nombres suffisent à décrire honnêtement une attente : la médiane (ce que vit la moitié des gens), le troisième quartile (ce à quoi il faut se préparer) et une probabilité de queue du type . La moyenne seule est le plus mauvais des résumés, parce qu'une poignée d'attentes très longues suffit à la déplacer sans rien changer au quotidien de personne.
18.3.2 Combien d'essais pour être presque sûr ?
Un laboratoire ne demande pas « combien d'essais en moyenne » : il demande « combien d'essais pour avoir chances sur d'aboutir ». C'est encore une inégalité, et elle se résout de la même façon.
Méthode : Chercher un seuil de réussite
Soit de loi géométrique de paramètre , et un risque accepté (par exemple ). Pour trouver le plus petit tel que :
- passer au contraire : , c'est-à-dire ;
- appliquer : ;
- diviser par , qui est négatif — l'inégalité change de sens : ;
- prendre le plus petit entier qui convient, et le vérifier en calculant .
Un donneur pris au hasard est compatible avec la probabilité . Alors
donc donneurs. Vérification : et . Il faut examiner donneurs pour être sûr à d'en trouver un compatible — alors qu'il en faut en moyenne, et que la médiane n'est que de . Trois nombres, trois messages : pour la moitié des receveurs, en moyenne, pour une quasi-certitude.
18.3.3 Reconnaître le modèle sur des données
Avant d'appliquer une formule, encore faut-il avoir le droit de choisir la loi. Le chapitre 10 fournit exactement l'outil : un ajustement ramené par changement de variable à un ajustement affine.
Méthode : Tester l'hypothèse exponentielle
On dispose d'un effectif initial et, à des dates , du nombre d'individus encore en attente. Alors :
- calculer les proportions de survie ;
- poser — c'est le changement de variable ;
- représenter les points .
Si le modèle exponentiel convient, donne : les points doivent être alignés, sur une droite de coefficient directeur passant par l'origine. On lit sur la pente, et l'on retrouve la durée de vie moyenne .
L'alignement des points sur l'échelle logarithmique ne prouve pas que la loi est exponentielle : il la rend seulement plausible. Un désalignement systématique, en revanche, la réfute — et c'est souvent ce qui arrive, parce que la plupart des objets réels vieillissent. L'exercice d'estimation de sur les machines d'un atelier et la section suivante montrent les deux cas.
18.4 Ce que l'absence de mémoire interdit
Les chapitres 8 et 9 ont établi l'absence de mémoire et l'ont commentée. Reste à en faire un instrument de décision : comment reconnaître, sur des données, qu'une pièce vieillit — et que dire à qui doit l'entretenir ?
18.4.1 Le taux de panne, âge par âge
Soit le rang de l'année où survient la première panne d'une pièce. Le taux de panne à l'âge est la probabilité conditionnelle
c'est-à-dire la probabilité que la pièce tombe en panne au cours de la -ième année, sachant qu'elle a survécu aux premières.
La donnée des taux détermine entièrement la loi de :
Démonstration
Survivre à années, c'est survivre à la première, puis à la deuxième sachant qu'on a survécu à la première, et ainsi de suite. En notant , la définition de la probabilité conditionnelle donne, pour chaque ,
car l'événement est inclus dans . Or ne pas tomber en panne la -ième année, c'est le contraire de : ce quotient vaut . Donc , et en descendant jusqu'à on obtient le produit annoncé.
La loi de est géométrique si et seulement si son taux de panne est constant : pour tout .
Démonstration
Si pour tout , la proposition précédente donne , qui est exactement la loi géométrique de paramètre .
Réciproquement, si suit la loi géométrique de paramètre , alors
qui ne dépend pas de .
« Sans mémoire » et « taux de panne constant » sont deux façons de dire la même chose. La seconde est la plus utile en pratique : elle se teste sur des données, âge par âge, alors que la première ressemble à une déclaration d'intention.
18.4.2 Trois vieillissements, une même moyenne
Comparons trois pièces, décrites non par une formule de loi mais par leur taux de panne année après année.
- Sans mémoire : pour tout — c'est la loi géométrique.
- Usure : — le risque croît avec l'âge.
- Rodage puis usure : — élevé au début (défauts de fabrication), puis minimal, puis croissant.
def survie(taux, N):
# S[n] = P(X > n), obtenu par le produit des (1 - p_k).
S = [1.0]
for n in range(1, N + 1):
S.append(S[-1] * (1 - min(1.0, taux(n))))
return S
def esperance(taux, N):
# E(X) = P(X>0) + P(X>1) + ... : on somme les probabilites de survie.
return sum(survie(taux, N)[:N])
sans_memoire = lambda n: 0.10
usure = lambda n: 0.015 * n
baignoire = lambda n: 0.20 / n + 0.010 * n
for nom, taux in (("sans memoire", sans_memoire), ("usure", usure),
("baignoire", baignoire)):
print(nom, round(esperance(taux, 400), 3))
# sans memoire 10.0
# usure 9.912
# baignoire 7.615
La formule employée dans le programme est admise : elle se démontre en réorganisant une somme infinie, ce qui n'est pas au programme. On peut la contrôler sur la loi géométrique, où elle donne — c'est la somme des termes d'une suite géométrique de raison , calculée au chapitre 1, et l'on retrouve bien l'espérance admise au chapitre 8.
Les deux premières pièces ont pratiquement la même durée de vie moyenne : ans contre . Comparons pourtant la probabilité de tomber en panne dans les cinq ans qui viennent, selon l'âge déjà atteint :
La pièce sans mémoire est aussi neuve à quinze ans qu'au premier jour. La pièce d'usure est deux fois moins exposée qu'elle au départ, et près de deux fois plus à quinze ans. Aucune moyenne ne le dit.
Choisir la loi exponentielle ou la loi géométrique, c'est affirmer qu'il n'y a pas d'usure. C'est raisonnable pour un atome radioactif, un appel téléphonique, une panne purement accidentelle. C'est faux pour un roulement à billes, un pneu, un organe. La conséquence est concrète : sur une pièce sans mémoire, remplacer préventivement ne sert strictement à rien, puisque la pièce remplacée n'était pas plus fragile que la neuve. Le problème du remplacement préventif d'une pièce le chiffre.
18.5 Attendre le -ième événement
Un standard n'attend pas un appel, il en attend cinq avant de justifier l'ouverture d'une seconde ligne ; un service de greffe n'attend pas un donneur, il en attend trois. Le temps d'attente devient alors une somme
où les sont indépendants et de même loi exponentielle de paramètre .
.
Démonstration
L'espérance d'une somme est la somme des espérances (chapitre 9), et les termes ont la même espérance .
ne suit pas une loi exponentielle. Sa densité n'est pas décroissante : obtenir une somme très petite exigerait que toutes les attentes le soient, ce qui est rare. Il n'existe pas de formule au programme pour : on simule.
seed(8)
echantillon = sorted(somme(lambda: expo(0.5), 5) for _ in range(N))
moyenne = sum(echantillon) / N
mediane = (echantillon[N // 2 - 1] + echantillon[N // 2]) / 2
print(round(moyenne, 3), round(mediane, 3)) # 9.987 9.344
print(sum(1 for s in echantillon if s > 10) / N) # 0.4421
La moyenne simulée, , confirme la prévision heures. La médiane vaut heures, soit fois la moyenne, alors que ce rapport n'était que de pour une attente unique.
C'est la leçon de cette section, et elle vaut bien au-delà : attendre un seul événement est imprévisible, en attendre beaucoup ne l'est plus. Un standard ne peut rien dire du prochain appel, mais il sait à une heure près quand arrivera le cinquantième. C'est pourquoi un service se dimensionne sur des flux, jamais sur des cas.
18.6 Le paradoxe de l'inspection
Nous voici revenus à l'énigme de départ : pourquoi les usagers attendent-ils plus que la moitié de l'intervalle moyen ?
18.6.1 Un cas où le calcul est exact
Imaginons une ligne parfaitement prévisible mais irrégulière : les bus passent à minutes d'intervalle, puis , puis , puis , indéfiniment. L'intervalle moyen vaut bien minutes.
Un usager qui arrive à un instant quelconque attend en moyenne minutes, et non .
Démonstration
Sur un cycle de minutes, l'usager tombe dans l'intervalle court s'il arrive pendant les premières minutes, dans le long s'il arrive pendant les suivantes. Son instant d'arrivée étant uniforme sur le cycle, la probabilité comme rapport de longueurs (chapitre 9) donne
Dans chacun des deux cas, l'usager arrive uniformément au cours de l'intervalle : son attente est uniforme sur ou sur , d'espérance ou . En pondérant,
Toute la difficulté tient en une phrase : l'usager ne choisit pas son intervalle, c'est l'intervalle qui l'attrape. Un intervalle trois fois plus long attrape trois fois plus d'usagers. Les intervalles longs sont donc sur-représentés dans l'expérience vécue, et ce biais porte un nom — le paradoxe de l'inspection.
18.6.2 La règle générale
Si les intervalles entre deux passages suivent une loi , un usager arrivant à un instant quelconque attend en moyenne
Démonstration
Établissons-le lorsque ne prend que deux valeurs, avec la probabilité et avec la probabilité — le cas général est admis, la démonstration étant identique mais hors programme.
Sur une longue période, la proportion de temps occupée par les intervalles de type est : ils sont en proportion , mais chacun dure . C'est donc aussi la probabilité qu'un usager arrivant au hasard tombe dans un tel intervalle. Sachant cela, son attente est uniforme sur , d'espérance . En pondérant les deux cas :
La seconde écriture s'en déduit par la définition de la variance (chapitre 8) : , donc , et en divisant par on obtient .
La formule dit exactement ceci : la moyenne des intervalles ne fixe que la moitié de l'attente ; l'autre moitié est payée en irrégularité. Sur une ligne parfaitement régulière, et l'attente moyenne est bien . Toute irrégularité s'ajoute par-dessus, et rien ne la compense jamais : le terme est positif ou nul.
Quatre lignes annoncent toutes « un bus toutes les minutes en moyenne ». Elles n'offrent pas du tout le même service.
Le dernier cas est le plus frappant : avec des intervalles exponentiels, l'usager attend en moyenne un intervalle entier, pas la moitié.
18.6.3 Le cas exponentiel, retrouvé par l'absence de mémoire
Si les intervalles suivent la loi exponentielle de paramètre , l'attente d'un usager arrivant à un instant quelconque suit la même loi exponentielle, et son espérance vaut — l'intervalle moyen tout entier.
Démonstration
Notons le temps déjà écoulé depuis le passage du bus précédent, et la durée de l'intervalle en cours. L'usager attend , sachant que . L'absence de mémoire (chapitre 9) donne, pour tout ,
Autrement dit, le temps restant suit la loi exponentielle de paramètre , quel que soit : son espérance vaut donc , sans qu'il soit besoin de savoir depuis combien de temps l'usager est arrivé.
On peut vérifier la cohérence des deux résultats. La formule générale donne
en utilisant , calculé au chapitre 9 lors de la démonstration de la variance. Les deux chemins mènent au même nombre.
def attentes(intervalle, horizon, nb_usagers):
# intervalle : fonction sans argument donnant la duree entre deux passages.
passages = []
t = 0
while t < horizon:
t = t + intervalle()
passages.append(t)
resultats = []
for _ in range(nb_usagers):
arrivee = horizon * random()
i = 0
while passages[i] < arrivee: # le premier passage apres l'arrivee
i = i + 1
resultats.append(passages[i] - arrivee)
return resultats
seed(8)
a = attentes(lambda: 10, 60000, 20000) # ligne reguliere
print(round(sum(a) / len(a), 3)) # 5.007
seed(8)
a = attentes(lambda: expo(0.1), 60000, 20000) # ligne exponentielle
print(round(sum(a) / len(a), 3)) # 10.02
Conclusion opérationnelle pour la régie : augmenter la fréquence coûte cher et ne touche qu'au terme . Régulariser coûte souvent moins et supprime le terme , qui peut à lui seul valoir autant que le premier. C'est l'argument mathématique en faveur des dispositifs de régulation aux terminus.
18.7 Une file d'attente, par simulation
Dernière situation, et la plus fréquente : on n'attend plus un événement, on attend son tour. Les clients arrivent à des instants séparés par des durées exponentielles, le guichet les sert l'un après l'autre, et chaque durée de service est elle aussi exponentielle.
Notons l'attente du -ième client avant d'être servi, la durée de son service et le temps qui sépare son arrivée de celle du suivant. Alors
Démonstration
Le client quitte le guichet après son arrivée. Le client arrive après lui. Si , le guichet est encore occupé à son arrivée et il patiente la différence ; sinon le guichet est libre et il n'attend pas. Le maximum avec traduit ces deux cas en une seule ligne.
C'est une suite définie par récurrence, du type étudié au chapitre 1 — à ceci près que change à chaque étape, puisqu'elle dépend de deux tirages au hasard. On ne peut donc rien conjecturer en la représentant : on simule.
def file_attente(lam, mu, nb_clients):
# lam : taux d'arrivee ; mu : taux de service. Renvoie l'attente moyenne.
attente = 0
total = 0
for _ in range(nb_clients):
service = expo(mu)
entre_deux = expo(lam)
attente = max(0, attente + service - entre_deux)
total = total + attente
return total / nb_clients
seed(8)
print(round(file_attente(9 / 60, 1 / 4, 1000000), 3)) # 5.992
seed(8)
print(round(file_attente(13.5 / 60, 1 / 4, 1000000), 3)) # 35.271
Le service dure ici minutes en moyenne, donc le guichet peut traiter clients par heure. À clients par heure, l'attente moyenne est de minutes ; à clients par heure, elle passe à minutes. Le flux a augmenté de moitié, l'attente a été multipliée par six.
Le taux d'occupation d'un guichet est
c'est-à-dire la part du temps pendant laquelle le guichet travaille. Il faut : sinon la file s'allonge indéfiniment.
Retenir la forme de cette courbe plutôt que ses valeurs. Tant que reste au-dessous de , l'attente est modeste et croît doucement. Au-delà, elle s'emballe : à , le guichet ne chôme qu'un dixième du temps, et il n'a plus jamais de quoi rattraper le moindre retard. Une organisation dimensionnée au plus juste n'est pas économe : elle est fragile.
18.8 Bilan
- Deux horloges. Attendre un succès se compte en essais (loi géométrique, ) ; attendre un événement se mesure en temps (loi exponentielle, ). Le pont est , et il devient exact quand on découpe le temps de plus en plus fin.
- La moyenne ne suffit pas. La médiane vaut fois la moyenne pour une loi exponentielle, et seuls des attentes dépassent la moyenne. Décrire une attente demande la médiane, un quartile et une probabilité de queue.
- Les seuils passent par le logarithme. donne — l'inégalité change de sens, puisque .
- Le taux de panne est la probabilité de tomber en panne l'année sachant qu'on a tenu années. La loi géométrique est exactement celle dont le taux est constant : « sans mémoire » et « taux constant » sont synonymes. Un taux croissant signale l'usure, et lui seul justifie une maintenance préventive.
- Attendre le -ième événement a pour espérance ; sa loi n'est plus exponentielle, et sa médiane se rapproche de sa moyenne quand croît. Attendre un événement est imprévisible, en attendre beaucoup ne l'est plus.
- Le paradoxe de l'inspection. À un arrêt, : la fréquence ne décide que de la moitié de l'attente, l'irrégularité de l'autre. Sur une ligne exponentielle, on attend en moyenne un intervalle entier.
- Une file d'attente suit la récurrence et se traite par simulation. L'attente explose quand le taux d'occupation approche .
- Résultats admis dans ce thème : l'espérance de la loi géométrique (chapitre 8) ; la formule ; la formule de l'attente moyenne hors du cas à deux valeurs, qui est démontré ; la formule exacte de l'attente en file, qui ne sert que de contrôle des simulations.