Dans une file à un seul serveur où les arrivées et les durées de service sont aléatoires, l'attente moyenne vaut ρ/(1 − ρ) fois le temps de service, ρ étant le taux d'utilisation. À 50 %, un client attend un temps de service ; à 80 %, 4 ; à 90 %, 9 ; à 95 %, 19. Les derniers points d'utilisation coûtent bien plus cher en attente que les premiers.
Une autoroute à 50 % de sa capacité roule sans à-coups ; à 95 %, une simple voiture qui freine crée un bouchon de plusieurs kilomètres.
On suppose des arrivées aléatoires (loi de Poisson) et des durées de service exponentielles : c'est la file M/M/1. Le taux d'utilisation ρ est la part du temps où le serveur travaille. L'attente moyenne avant service vaut ρ/(1 − ρ) fois le temps de service S ; le temps total passé dans le système vaut S/(1 − ρ) ; le nombre moyen de clients en file vaut ρ²/(1 − ρ).
Réglez le taux d'utilisation et le temps de service. La courbe donne l'attente moyenne en multiples du temps de service ; la droite pointillée marque une attente égale à un temps de service.
File M/M/1 : formules exactes d'attente ρ/(1 − ρ) × S ; temps en minutes avec le temps de service choisi.
Les points orange sont mesurés sur une simulation de 20 000 clients (une seule exécution) ; la courbe grise est la théorie. À 95 %, la simulation donne 14,3 temps de service d'attente au lieu de 19,0 : près de la saturation, une simulation converge très lentement. Les puces donnent l'attente théorique en minutes : 10,0 à 50 %, 40,0 à 80 %, 90,0 à 90 % et 190,0 à 95 %.
Chips : attente théorique avec le temps de service choisi plus haut.
Voici la démarche, puis un exemple.
import numpy as np rho, S = 0.90, 10 attente = rho / (1 - rho) * S # 90 minutes rng = np.random.default_rng(0) w = 0; total = 0 for _ in range(20000): # récurrence de Lindley total += w w = max(0, w + rng.exponential(S) - rng.exponential(S / rho)) total / 20000 # simulation, une seule exécution
À même charge, la variabilité des durées de service change tout : un service très irrégulier fait attendre bien plus.
Statistiques, finance quantitative, machine learning, deep learning, LLM, agents IA, MLOps : 321 épisodes avec des simulateurs à manipuler, pas des vidéos.
Statistics, quantitative finance, machine learning, deep learning, LLMs, AI agents, MLOps: 321 interactive episodes with simulators to play with, not videos.