Recherche Opérationnelle Les files d’attente et les réseaux de files d’attente Jean-François Hêche Institut de Mathématiques École Polytechnique Fédérale de Lausanne Les files d’attente • Définition et classification : la notation de Kendall • La formule de Little • Les files d’attente markoviennes I La file M/M/1 I La file M/M/m I La file M/M/m/K • Les files d’attente non markoviennes I La file M/G/1 et la formule de Pollaczek-Khinchin I Approximations pour les files G/G/m J.-F. Hêche, ROSO-EPFL Files d’attente 1 Les files d’attente simples Une file d’attente ou queue simple est caractérisée par • un processus d’arrivée de clients décrivant les instants auxquels les clients entrent dans le système ; • un processus de service décrivant le temps requis pour servir un client ; • un nombre de serveurs, tous identiques, spécifiant le nombre maximal de clients pouvant être servis simultanément. File (places d’attente) Processus de départ Processus d’arrivée J.-F. Hêche, ROSO-EPFL Serveur(s) Files d’attente 2 À ces caractéristiques de base s’ajoutent parfois • la capacité de la file correspondant au nombre maximal de clients pouvant être présents à un instant donné (aussi bien en attente qu’en service) ; • la taille de la population des clients susceptibles d’utiliser le serveur ; • la discipline de service décrivant l’ordre dans lequel les clients sont servis. J.-F. Hêche, ROSO-EPFL Files d’attente 3 Notation de Kendall Afin de simplifier la description des 3 ou 6 éléments décrivant une file, Kendall a introduit la notation suivante Forme abrégée : A/S/m Forme complète : A/S/m/K/P/D où chaque symbole correspond, dans le même ordre qu’avant, à une caractéristique de la file d’attente : A : processus d’arrivée K : capacité de la file (1) S : processus de service P : taille de la population (1) m : nombre de serveurs D : discipline de service (F IF O) J.-F. Hêche, ROSO-EPFL Files d’attente 4 Pour les processus d’arrivée et de service, les symboles les plus courants sont M loi exponentielle (« memoryless ») D loi déterministe (temps d’inter-arrivée ou de service constants) G loi générale (les résultats sont vrais pour « toute » loi) Pour la discipline de service, ils sont F IF O premier arrivé, premier servi (« first in, first out ») LIF O dernier arrivé, premier servi (« last in, first out ») PS temps partagé (« processor sharing ») J.-F. Hêche, ROSO-EPFL Files d’attente 5 Mesures de performance L’étude d’une file d’attente ou d’un réseau de files a pour but de calculer ou d’estimer les performances d’un système dans des conditions de fonctionnement données. Ce calcul se fait le plus souvent pour le régime stationnaire uniquement et les mesures les plus fréquemment utilisées sont N̄ le nombre moyen de clients présents (en attente et en service) Q̄ le nombre moyen de clients en attente T̄ le temps moyen de séjour ou de réponse (attente et service) W̄ le temps moyen d’attente U le taux d’utilisation de chaque serveur J.-F. Hêche, ROSO-EPFL Files d’attente 6 De manière générale, une file est stable si et seulement si le nombre moyen d’arrivées de clients par unité de temps, noté , est inférieur au nombre moyen de clients pouvant être servis par unité de temps. Si chaque serveur peut traiter µ clients par unité de temps et si le nombre de serveurs est m, une file est stable si et seulement si () < mµ ⇢= mµ < 1. Pour un système stable, on a T̄ = W̄ + S̄ où S̄ est le temps moyen de service et N̄ = Q̄ + mU où m est le nombre de serveurs. J.-F. Hêche, ROSO-EPFL Files d’attente 7 Formule de Little Théorème 1. Pour un système en régime stationnaire, le taux d’arrivée des clients, le nombre moyen N̄ de clients dans le système et le temps moyen T̄ de séjour (temps moyen de réponse) sont reliés par la relation N̄ = T̄ . Preuve. Jouons à la concierge à la vue (très) défaillante et notons simplement les heures d’entrée et de sortie de clients. Le système est vide au temps 0 et au temps t, ↵(t) clients sont entrés et (t) sont déjà repartis. Le taux moyen d’arrivée dans [0, t) est donc (t) = ↵(t)/t. À l’instant t, il y a N (t) = ↵(t) J.-F. Hêche, ROSO-EPFL (t) clients dans le système et, dans Files d’attente 8 [0, t), le cumul des temps de séjour dans le système est (t) = Z t (↵(s) (s)) ds = 0 Z t N (s)ds. 0 Le nombre moyen de clients présents dans [0, t) et le temps moyen de séjour d’un client dans [0, t) sont N̄ (t) = (t)/t et T̄ (t) = (t)/↵(t). Ainsi N̄ (t) = (t)/t = ( (t)/↵(t)) ⇥ (↵(t)/t) = T̄ (t) ⇥ (t). Finalement, si le système admet un régime stationnaire, on doit avoir limt!1 (t) = , limt!1 T̄ (t) = T̄ et limt!1 N̄ (t) = N̄ et le résultat suit. ⇤ J.-F. Hêche, ROSO-EPFL Files d’attente 9 La file d’attente M/M/1 Cette file modélise un guichet unique où chaque client reçoit un service dont la durée est une variable exponentielle de paramètre µ (indépendante de tout autre élément a↵ectant le système) et où l’arrivée des clients correspond à un processus de Poisson de taux (les temps entre deux arrivées successives sont des variables aléatoires i.i.d. selon une loi exponentielle de paramètre ). Définissant l’état de la file comme le nombre de clients présents, l’évolution de la variable d’état est une chaı̂ne de Markov à temps continu de graphe représentatif µ 0 J.-F. Hêche, ROSO-EPFL µ 1 µ µ 2 Files d’attente 3 10 La file M/M/1 est donc un processus de naissance et de mort et elle est stable si et seulement si ce processus est ergodique, c.-à-d. ssi ⇢= µ < 1. Cette valeur ⇢ est appelée l’intensité du trafic. Pour une file stable, la distribution stationnaire est ⇡k⇤ = (1 ⇢)⇢k k = 0, 1, . . . et le taux d’utilisation du serveur est U = P [X > 0] = 1 J.-F. Hêche, ROSO-EPFL P [X = 0] = 1 Files d’attente ⇡0⇤ = ⇢ 11 Mesures de performance : nombres moyens Le nombre moyen de clients présents est N̄ = E [X] = 1 X k⇡k⇤ = k=0 = ⇢(1 d ⇢) d⇢ 1 X k(1 ⇢)⇢k = ⇢(1 k=0 1 X k=1 ⇢ k ! ✓ ⇢) d ⇢ ⇢) d⇢ 1 ⇢ = ⇢(1 ◆ 1 X k⇢k 1 k=1 = ⇢ 1 ⇢ et le nombre moyen de clients en attente est Q̄ = N̄ J.-F. Hêche, ROSO-EPFL U= ⇢ 1 ⇢ ⇢= Files d’attente ⇢2 1 ⇢ . 12 Mesures de performance : temps moyens Utilisant Little, on obtient, pour le temps moyen de réponse, T̄ = N̄ = ⇢ (1 ⇢) = 1 µ(1 ⇢) = S̄ 1 ⇢ et, pour le temps moyen d’attente, W̄ = Q̄ ⇢2 ⇢ ⇢S̄ = = = . (1 ⇢) µ(1 ⇢) 1 ⇢ Remarque. On a bien T̄ = W̄ + S̄. J.-F. Hêche, ROSO-EPFL Files d’attente 13 La file d’attente M/M/m Dans ce modèle, m serveurs identiques et indépendants partagent les mêmes places d’attente. Les arrivées suivent un processus de Poisson de paramètre et la durée de chaque service est une variable exponentielle de paramètre µ. L’évolution du nombre de clients dans un tel système est également un processus de naissance et de mort dont le graphe représentatif est 2µ µ 0 J.-F. Hêche, ROSO-EPFL 1 3µ 2 (m 1)µ m-1 Files d’attente mµ mµ m mµ m+1 14 Il n’est pas surprenant d’apprendre que cette file est stable ssi ⇢= mµ < 1. La résolution des équations de bilan permet de calculer sans trop de difficulté la distribution stationnaire de la file. Une grandeur importante pour les files M/M/m est la probabilité qu’un client entrant dans le système doive attendre. Elle est égale à ⇣ = P[ m clients présents] = 1 X k=m avec ⇡0⇤ J.-F. Hêche, ROSO-EPFL " (m⇢) = 1+ + m!(1 ⇢) m m X1 k=1 Files d’attente m (m⇢) ⇡k⇤ = ⇡0⇤ m!(1 ⇢) (m⇢) k! k # 1 . 15 Le taux d’utilisation de chaque serveur est U = /(mµ) = ⇢. Les nombres moyens de clients présents et en attente sont N̄ = m⇢ + ⇢⇣ 1 ⇢ et Q̄ = ⇢⇣ 1 ⇢ . Les temps moyens de réponse et d’attente sont ✓ ◆ 1 ⇣ ⇣ S̄ T̄ = 1+ = S̄ + µ m(1 ⇢) m(1 ⇢) et J.-F. Hêche, ROSO-EPFL ⇣ W̄ = mµ(1 ⇣ S̄ = . ⇢) m(1 ⇢) Files d’attente 16 La file d’attente M/M/m/K La file M/M/m/K est une file markovienne composée de m serveurs et disposant de K places au total. Le nombre maximal de clients en attente est donc K m. Si un client arrive alors que le système est plein, il ne peut y entrer et doit repartir. L’évolution du nombre de clients dans un tel système est encore et toujours un processus de naissance et de mort dont le graphe représentatif est 2µ µ 0 J.-F. Hêche, ROSO-EPFL 1 (m 1)µ m-1 mµ mµ m Files d’attente mµ m+1 mµ K 17 La chaı̂ne de Markov à temps continu décrivant l’évolution du nombre de clients ne possède qu’un nombre fini d’états. Ainsi, pour et µ positifs, elle est irréductible et ergodique. Une file M/M/m/K est donc toujours stable quel que soit l’intensité du trafic ⇢= mµ . Comme tout client arrivant alors que le système est plein doit repartir, le taux e↵ectif d’arrivée dans le système n’est pas mais 0 = K X1 ⇡k⇤ = (1 ⇤ ⇡K ). k=0 Ayant calculé N̄ et Q̄, c’est ce taux e↵ectif 0 qu’il faut utiliser pour calculer T̄ et W̄ à l’aide de la formule de Little. J.-F. Hêche, ROSO-EPFL Files d’attente 18 La file d’attente M/G/1 Dans une file M/G/1 le temps de service ne suit plus une loi exponentielle mais une loi non négative quelconque d’espérance S̄ et de variance S2 finies. Le processus stochastique décrivant l’évolution du nombre de clients dans le système n’est plus une chaı̂ne de Markov car le temps de service n’est plus sans mémoire ! Pour obtenir un processus markovien il faudrait étendre la définition de l’état du système afin d’inclure également la durée de service déjà reçue par le client occupant le serveur. Une autre approche consiste à n’observer le système qu’aux instants où un client le quitte ! On obtient ainsi une chaı̂ne de Markov sous-jacente à temps discret. J.-F. Hêche, ROSO-EPFL Files d’attente 19 La formule de Pollaczek-Khinchin Rappelons que le coefficient de variation d’une variable aléatoire X d’espérance X̄ 6= 0 et d’écart-type X est CX = X /X̄. La formule de Pollaczek-Khinchin est un résultat très élégant montrant que les di↵érences de performance entre une file M/G/1 et une file M/M/1 se résument à un facteur multiplicatif ! Ainsi, le nombre moyen Q̄ de clients en attente dans une file M/G/1 stable ( () ⇢ = S̄ < 1) est ✓ ◆ 2 2 1 + CS ⇢ Q̄ = 2 1 ⇢ où CS2 est le coefficient de variation au carré du temps de service (CS2 = S2 /S̄ 2). J.-F. Hêche, ROSO-EPFL Files d’attente 20 Indiçant les performances par le type de file en question, l’expression précédente devient ✓ ◆ 2 1 + CS Q̄M/G/1 = Q̄M/M/1. 2 Pour le temps moyen d’attente, il suffit d’appliquer Little pour obtenir ✓ ◆ ✓ ◆ 2 2 1 + CS ⇢S̄ 1 + CS W̄M/G/1 = = W̄M/M/1. 2 1 ⇢ 2 Pour le calcul de N̄ et T̄ , on utilise les relations N̄ = Q̄ + U et T̄ = W̄ + S̄, le taux d’utilisation du serveur étant toujours U = ⇢. J.-F. Hêche, ROSO-EPFL Files d’attente 21 Loi cste D Loi exp. M Remarques Lois d’Erlang Ek 0 Lois hyperexponentielles Hk C2 1 Une variable d’Erlang d’ordre k, de symbole Ek , est la somme de k variables aléatoires exponentielles i.i.d. Son coefficient de variation au carré est 1/k. Une variable hyperexponentielle d’ordre k, de symbole Hk , est une combinaison convexe de k variables exponentielles indépendantes (de paramètres di↵érents). Son coefficient de variation au carré est 1. J.-F. Hêche, ROSO-EPFL Files d’attente 22 Les autres files d’attente simples Les files d’attente G/M/1, M/G/m, G/M/m, G/G/1, G/G/m, . . . sont des processus stochastiques complexes, difficiles voir très difficiles à traiter de manière exacte et en toute généralité. Les développements se simplifient parfois pour les files où m = 1 mais les résultats exacts existent essentiellement pour des cas particuliers. De nombreuses approximations sont cependant disponibles, de plus ou moins bonne qualité. L’une des plus simples est directement issue de la formule de Pollaczek-Khinchin. J.-F. Hêche, ROSO-EPFL Files d’attente 23 Approximations pour les files G/G/m Soit ⌧¯ le temps moyen entre deux arrivées successives de clients ( = 1/¯ ⌧ est le taux d’arrivée) et S̄ le temps moyen de service d’un client (µ = 1/S̄ est le taux de service). Une file G/G/m est stable () ⇢ = /(mµ) = S̄/(m¯ ⌧ ) < 1. Dans ce cas, l’utilisation moyenne de chaque serveur est U = ⇢ et le nombre moyen de clients en attente est approximativement Q̄G/G/m ' ✓ 2 CA + 2 CS2 ◆ Q̄M/M/m 2 où CA et CS2 sont, respectivement, les coefficients de variation au carré des temps entre deux arrivées successives et des temps de service. J.-F. Hêche, ROSO-EPFL Files d’attente 24 Les réseaux de files d’attente • Définition I Réseaux ouverts, fermés et mixtes I Réseaux à forme produit • Les réseaux de Jackson I Conditions de stabilité I Distribution stationnaire J.-F. Hêche, ROSO-EPFL Files d’attente 25 Réseaux de files d’attente Un réseau de files d’attente est simplement un système composé d’une ou plusieurs files d’attente reliées entre elles. Les clients (dans les cas les plus simples, tous « identiques »), une fois leur service terminé dans une station (file), se déplacent vers une autre station ou quittent le système selon des règles de routage (déterministes ou stochastiques). Arrivées externes Routage 1 3 2 J.-F. Hêche, ROSO-EPFL Files d’attente Sortie du système 26 Réseaux ouverts, fermés et mixtes Un réseau est ouvert si tout client présent ou entrant dans le système peut le quitter. Un réseau est fermé si les clients ne peuvent le quitter. Dans un réseau fermé, le nombre de client est généralement fixe et ces derniers sont présents dans le système dès le début de son évolution. Finalement, un réseau est mixte s’il est ouvert pour certains clients et fermé pour d’autres. Réseau ouvert J.-F. Hêche, ROSO-EPFL Réseau fermé Files d’attente Réseau mixte 27 Réseaux à forme produit La définition la plus simple de l’état d’un réseau consiste à définir l’état x(t) du système au temps t comme le vecteur (x1(t) . . . xJ (t)) où xj (t) est le nombre de clients présents à l’instant t dans la file j. Sous certaines conditions, un réseau stable possède une distribution stationnaire ⇡ ⇤ de la forme ⇡ ⇤(x) = ⇡ ⇤(x1 . . . xJ ) = J Y ⇡j⇤(xj ). j=1 Un tel réseau est dit à forme produit et se comporte comme J files indépendantes de distribution stationnaire ⇡j⇤, j = 1, . . . , J. J.-F. Hêche, ROSO-EPFL Files d’attente 28 Les réseaux de Jackson Un réseau de Jackson est composé de J files d’attente ne comportant chacune qu’un seul serveur de capacité infinie et utilisant une discipline de file F IF O. Chaque file fournit un service de durée exponentielle, le taux de service de la file j étant µj . Les clients (appartenant tous à la même classe) arrivent dans le système selon des processus de Poisson, le taux d’arrivée dans la file j étant j . Après avoir terminé son service à la station j, un client se déplace à la station k avec probabilité rjk et quitte le système avec probabilité rj0 où rj0 = 1 J X rjk . k=1 De telles règles définissent un routage markovien. J.-F. Hêche, ROSO-EPFL Files d’attente 29 Exemple r11 = 1/4 1 µ1 r13 = 1/4 2 µ2 r12 = 1/2 r20 = 1/3 r23 = 2/3 µ3 r30 = 1/5 r31 = 4/5 0 1 0 1/4 1/2 1/4 B C R=@ 0 0 2/3 A 4/5 0 0 J.-F. Hêche, ROSO-EPFL 1 0 B C r ·0 = @ 1/3 A 1/5 Files d’attente 30 Conditions de stabilité Pour qu’un réseau soit stable, chacune de ses files doit l’être. Notant j le taux e↵ectif (ou taux moyen) d’arrivée dans la file j, on peut écrire les équations de conservation j = j + J X irij j = 1, . . . , J. i=1 Sous forme matricielle, ces équations deviennent = J.-F. Hêche, ROSO-EPFL + R (I () Files d’attente R) = . 31 Pour un réseau ouvert, on a limn!1 Rn = 0 et l’unique solution du système précédent est = (I R) 1. Connaissant les taux e↵ectifs d’arrivée , la file j est stable si et seulement si j ⇢j = <1 µj et le réseau est stable si et seulement si chacune des files le composant l’est. J.-F. Hêche, ROSO-EPFL Files d’attente 32 Exemple (suite) r11 = 1/4 1 2 µ1 µ2 r12 = 1/2 r13 = 1/4 r20 = 1/3 r23 = 2/3 µ3 r30 = 1/5 r31 = 4/5 Les équations de conservation du réseau sont 1 2 3 J.-F. Hêche, ROSO-EPFL = = = 1 2 + + + 1r11 1r12 1r13 + 3r31 2r23 Files d’attente 33 () 1 2 3 = = = 1 2 + + 1 2 3 Le réseau est donc stable si ⇢1 = J.-F. Hêche, ROSO-EPFL 1 µ1 1/2 1/4 () <1 + 4 1/4 60 = 17 30 = 17 35 = 17 1, 2, + 2 1 1 1 3/5 2/3 32 + 17 33 + 17 30 + 17 2 2 2 µ1, µ2 et µ3 sont tels que ⇢2 = 2 µ2 <1 Files d’attente ⇢2 = 3 µ3 < 1. 34 Distribution stationnaire Les réseaux de Jackson sont des réseaux à forme produit et la distribution stationnaire d’un réseau ouvert et stable est ⇡ (x) = ⇡ (x1 . . . xJ ) = ⇤ ⇤ J Y ⇡j⇤(xj ) j=1 = J Y (1 xj ⇢j )⇢j . j=1 Un tel système se comporte donc comme J files M |M |1 indépendantes d’intensité respective ⇢1 = 1/µ1, . . . , ⇢J = J /µJ . Rappel. L’état x du réseau est le vecteur dont la j e composante, notée xj , représente le nombre de clients présents dans la station j. J.-F. Hêche, ROSO-EPFL Files d’attente 35 Exemple r21 = p 1 =2 µ1 = 6 µ2 = 4 Les taux e↵ectifs d’arrivée sont solutions de 1 2 = = 1 + p 2 1. Ainsi 1 = J.-F. Hêche, ROSO-EPFL 2 = 1 1 p . Files d’attente 36 Le réseau est stable si et seulement si ⇢1 = 1 µ1 = 1 (1 p)µ1 = 2 6(1 et ⇢2 = 2 µ2 = 1 (1 p)µ2 = p) 2 4(1 p) <1 <1 () 2 p< 3 () 1 p< 2 Pour p 2 [0, 1/2), le réseau est stable est possède une distribution stationnaire unique. Pour p = 1/3, on a ⇢1 = 1/2 et ⇢2 = 3/4 et le nombre moyen de clients en attente devant chacune des files est ⇢21 Q̄1 = = 1/2 1 ⇢1 J.-F. Hêche, ROSO-EPFL et ⇢22 Q̄2 = = 9/4. 1 ⇢2 Files d’attente 37 Pour calculer le temps moyen de séjour d’un client, on applique la formule de Little au réseau tout entier. Le taux d’arrivée dans le réseau est 1 = 2 et le nombre moyen de clients présents est ⇢1 ⇢2 N̄ = N̄1 + N̄2 = + = 1 + 3 = 4. 1 ⇢1 1 ⇢2 Le temps moyen de séjour (de réponse) est donc T̄ = N̄ / 1 = 4/2 = 2. Remarque. Les taux e↵ectifs d’arrivée dans les deux files sont p) = 3. Le temps moyen de séjour dans chacune d’elles 1 = 2 = 1/(1 est donc T¯1 = N̄1/ 1 = 1/3 et T̄2 = N̄2/ 2 = 1. Un client visite en moyenne 1/(1 p) = 3/2 fois chaque station (espérance d’une variable géométrique de paramètre p = 1/3). Le temps de réponse d’un client est donc 3/2 ⇥ (T̄1 + T̄2) = 3/2 ⇥ 4/3 = 2. J.-F. Hêche, ROSO-EPFL Files d’attente 38