Adloun

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é

iRemarque

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

!Le réflexe

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

Exemple 18.1La ligne 12, vue de deux façons

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.

Exemple 18.2Un standard qui reçoit un appel toutes les quatre heures

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 .

iRemarque

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.

!Attention

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

Définition 18.3Médiane d'un temps d'attente

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 .
Proposition 18.4Médianes des deux lois d'attente

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.

!Attention

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.

Exemple 18.5Ce que vit la moitié des usagers de la ligne 12

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.

!Le réflexe

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 .
Exemple 18.6Un donneur compatible

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 .

!Attention

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

Définition 18.7Taux de panne

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.

Proposition 18.8Survie à partir du taux de panne

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

◆Théorème 18.9Ce que caractérise l'absence de mémoire

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 .

!Le réflexe

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


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
iRemarque

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.

Exemple 18.10Deux pièces de même moyenne, deux entretiens opposés

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.

!Attention

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 .

Proposition 18.11Espérance de l'attente du -ième événement

.

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 .

!Attention

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.

!Le réflexe

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.

Proposition 18.12L'attente moyenne sur la ligne alternée

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,

!Le réflexe

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

◆Théorème 18.13Attente moyenne à un arrêt

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 .

iRemarque

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.

Exemple 18.14Quatre horaires de même fréquence

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

Proposition 18.15Attente sur une ligne exponentielle

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

iRemarque

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
!Le réflexe

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.

Proposition 18.16La récurrence de l'attente

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.

iRemarque

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.

Définition 18.17Taux d'occupation

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.

!Le réflexe

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

Proposition 18.18L'essentiel du thème
  • 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.

Continuer sur Adloun : animation, QCM, fiches, exercices