1/3 2/3 3/3 14. Introduction aux files d’attente MTH2302D S. Le Digabel, École Polytechnique de Montréal A2017 (v1) MTH2302D: Files d’attente 1/24 1/3 2/3 3/3 Plan 1. Introduction 2. Modèle M/M/1 3. Modèle M/M/1/K MTH2302D: Files d’attente 2/24 1/3 2/3 3/3 1. Introduction 2. Modèle M/M/1 3. Modèle M/M/1/K MTH2302D: Files d’attente 3/24 1/3 2/3 3/3 Introduction La théorie des files d’attente consiste en l’étude de systèmes où des clients se présentent à un dispositif de service, appelé serveur. Puisqu’un client occupe le serveur pendant un certain temps, les autres clients doivent attendre avant d’être servis, formant ainsi une file d’attente. Quelques exemples d’application : I Réseaux informatiques : serveur = routeur, client = paquet. I Ateliers (job shop) : serveur = machine, client = tâche. En ingénierie, on s’intéresse à des métriques de performance des files d’attente, par exemple : I Taille moyenne de la file d’attente. I Taux d’utilisation du serveur. I Temps moyen d’attente d’un client. MTH2302D: Files d’attente 4/24 1/3 2/3 3/3 Modèle élémentaire de file d’attente En général, pour étudier l’impact de différents choix de conception sur la performance d’une file d’attente, il faut construire un modèle de simulation. On peut aussi utiliser un modèle simplifié pour lequel les métriques s’expriment par des équations analytiques. Le modèle de base en files d’attente se nomme M/M/1 et se généralise en notation de Kendall A/B/C/K/N/D : I I I I I I A : processus d’arrivée (M = markovien ou memoryless). B : processus de service (M = markovien ou memoryless). C : nombre de serveurs. K : capacité du système (file + serveurs). N : taille de la population des clients (habituellement infinie). D : discipline de service (par défaut, FIFO, ou PAPS : 1er arrivé 1er servi, mais aussi RANDOM ou PRIORITY). MTH2302D: Files d’attente 5/24 1/3 2/3 3/3 1. Introduction 2. Modèle M/M/1 3. Modèle M/M/1/K MTH2302D: Files d’attente 6/24 1/3 2/3 3/3 Modèle M/M/1 I Les clients se présentent au système aléatoirement selon un processus de Poisson de taux λ. I Le temps de service suit une loi exponentielle de taux µ, indépendamment d’un client à l’autre. I La file d’attente peut s’étendre à l’infini. Rappel sur le processus de Poisson : I Le nombre A(t) d’arrivées dans l’intervalle de temps [0; t] suit une loi de Poisson de paramètre c = λt. I Les arrivées dans deux intervalles de temps disjoints sont indépendantes. I Le temps qui s’écoule entre deux arrivées suit une loi exponentielle de taux λ. MTH2302D: Files d’attente 7/24 1/3 2/3 3/3 Exemple 1 Soit Tn le temps d’arrivée du nième client dans une file M/M/1. On dit que Tn suit une loi d’Erlang de paramètres n et λ, i.e. Tn ∼ Γ(α = n, λ). 1. Trouver la fonction de répartition de Tn (utiliser le processus de Poisson). 2. Calculer E(Tn ) et V(Tn ). MTH2302D: Files d’attente 8/24 1/3 2/3 3/3 Arrivée avant un départ et départ avant une arrivée I Temps pour qu’une nouvelle arrivée se produise : A ∼ Exp(λ). I Temps pour qu’un nouveau départ se produise : D ∼ Exp(µ). (A et D sont indépendantes). I Probabilité qu’une arrivée se produise avant un départ : P (A < D) = I λ . λ+µ Probabilité qu’un départ se produise avant une arrivée : µ P (D < A) = . λ+µ MTH2302D: Files d’attente 9/24 1/3 2/3 3/3 Analyse en régime stationnaire Il est difficile d’étudier la variable aléatoire N (t) représentant le nombre de clients au temps t dans le système. On s’intéresse plutôt à N = limt→∞ N (t). On parle alors d’analyse en régime stationnaire (ou analyse à l’équilibre). Pour qu’une file M/M/1 puisse atteindre l’équilibre, il faut que λ < µ (sinon la taille de la file augmentera à l’infini). À l’équilibre, on peut montrer que P (N = n) = µ λ P (N = n − 1) + P (N = n + 1) . λ+µ λ+µ λ Il s’agit de la règle des probabilités totales. Le terme λ+µ représente la probabilité qu’un nouveau client arrive avant que le µ client en service quitte le système, et λ+µ est la probabilité que le client en service quitte avant qu’un nouveau client n’arrive. MTH2302D: Files d’attente 10/24 1/3 2/3 3/3 Équations d’équilibre Soit πn = P (N = n). En posant les équations µ µ λ λ π1 = λ+µ π0 + λ+µ π2 , π2 = λ+µ π1 + λ+µ π3 , . . . , P ∞ µ λ πn = λ+µ πn−1 + λ+µ πn+1 , . . . , et n=0 πn = 1, on trouve que πn = (1 − ρ)ρn pour n = 0, 1, 2, 3, . . ., où ρ = du trafic. λ µ < 1 est défini comme l’intensité On remarque que N + 1 ∼ Geom(1 − ρ). MTH2302D: Files d’attente 11/24 1/3 2/3 3/3 Notations I N Q : nombre moyen de clients faisant la queue. I N S : nombre moyen de clients en train d’être servis. I N = E(N ) = N Q + N S : nombre total (attente + service) moyen de clients dans le système en équilibre. I NQ , NS et N sont les v.a. correspondantes. I On a P (N = k) = πk . I T Q : temps moyen d’attente. I T S : temps moyen de service. I T = T Q + T S : temps moyen qu’un client passe dans le système. I TQ , TS et T sont les v.a. correspondantes. MTH2302D: Files d’attente 12/24 1/3 2/3 3/3 La loi de Little La loi s’énonce ainsi : N = λe T où λe est le taux d’entrée dans le système (λe = λ pour une file M/M/1). Puisque N = N Q + N S et T = T Q + T S , on trouve également que N Q = λe T Q et N S = λe T S . Remarque : La loi de Little s’applique à tous les modèles de file d’attente rencontrés en pratique (pas seulement à la file M/M/1). MTH2302D: Files d’attente 13/24 1/3 2/3 3/3 Exemple 2 On considère une file d’attente M/M/1 de taux λ = 1 et µ = 2. Calculer (à l’équilibre) : 1. Le nombre moyen de clients dans le système, N . 2. Le nombre moyen de clients en service, N S . 3. Le nombre moyen de clients dans la file d’attente, N Q . MTH2302D: Files d’attente 14/24 1/3 2/3 3/3 Modèle M/M/1 : formules I I ρ = λ/µ. ρ . N= 1−ρ I N S =1 − π0 = ρ. I N Q =N − N S = I T =N /λ = I T S = 1/µ. I T Q =T − T S = MTH2302D: Files d’attente ρ2 . 1−ρ ρ 1 = . λ(1 − ρ) µ−λ λ . µ(µ − λ) 15/24 1/3 2/3 3/3 Modèle M/M/1 : formules (suite) 0 N −1 si N = 0 ou N = 1, si N > 1 . I Un seul serveur : NQ = I P (NQ = 0) =P (N = 0) + P (N = 1) = π0 + π1 = 1 − ρ + ρ(1 − ρ) = (1 − ρ)(1 + ρ). I P (NQ = k) =P (N = k + 1) = πk+1 = ρk+1 (1 − ρ), pour k > 0. MTH2302D: Files d’attente 16/24 1/3 2/3 3/3 Modèle M/M/1 : formules (suite) I Si N est le nombre de clients dans le système à l’équilibre, alors N + 1 = N1 ∼ Geom(p = 1 − ρ). I Nombre de clients en train d’être servis : NS ∼ Bern(ρ). I Temps total (attente + service) passé dans la file : T ∼ Exp(µ − λ). I Temps d’attente TQ (variable mixte) : I I P (TQ = 0) = π0 = 1 − ρ. TQ {NQ > 0} ∼ Exp(µ − λ) (comme T ). MTH2302D: Files d’attente 17/24 1/3 2/3 3/3 Exemple 3 On considère une file d’attente M/M/1 de taux λ = 1 et µ = 2. Calculer (à l’équilibre) : 1. Le temps moyen de séjour d’un client dans le système, T . 2. Le temps moyen d’attente d’un client dans la file, T Q . 3. Le temps moyen de service d’un client, T S . MTH2302D: Files d’attente 18/24 1/3 2/3 3/3 1. Introduction 2. Modèle M/M/1 3. Modèle M/M/1/K MTH2302D: Files d’attente 19/24 1/3 2/3 3/3 Modèle M/M/1/K Pour un système de capacité K (taille maximale de la file de K − 1) avec ρ = µλ 6= 1, on peut montrer que pour n = 0, 1, . . . , K : I Si ρ < 1 : πn = P (Y = n+1|Y ≤ K+1) = P (Y = n + 1) ρn (1 − ρ) = P (Y ≤ K + 1) 1 − ρK+1 avec Y ∼ Geom(1 − ρ). I Si ρ > 1 : πn = P (Y = K − n + 1|Y ≤ K + 1) = = P (Y = K − n + 1) P (Y ≤ K + 1) ρn (1 − ρ) avec Y ∼ Geom(1 − 1/ρ). 1 − ρK+1 (même formule dans les deux cas). MTH2302D: Files d’attente 20/24 1/3 2/3 3/3 Modèle M/M/1/K (suite) I L’équilibre est atteint pour tout ρ : 1−ρ . 1 − ρK+1 I Si ρ 6= 1, πn = ρn I Si ρ = 1, on considère des états équiprobables : πn = pour n = 0, 1, . . . , K . I Le système est à pleine capacité avec probabilité πK . I Taux d’entrée : λe = λ(1 − πK ). MTH2302D: Files d’attente 1 K +1 21/24 1/3 2/3 3/3 Exemple 4 Pour le système M/M/1/2 avec λ = µ, trouver l’espérance et la variance du nombre de clients dans le système en équilibre. MTH2302D: Files d’attente 22/24 1/3 2/3 3/3 Exemple 5 On considère une file d’attente M/M/1/5 de taux λ = 1 et µ = 2. Calculer (à l’équilibre) : 1. Le nombre moyen de clients dans le système. 2. Le nombre moyen de clients dans la file d’attente. 3. La proportion de clients ne pouvant entrer dans le système. 4. Le temps moyen de séjour d’un client dans le système. 5. Le temps moyen d’attente d’un client dans la file. MTH2302D: Files d’attente 23/24 1/3 2/3 3/3 Exemple 6 On considère une file d’attente M/M/1 avec priorité : Les clients de classe 1 ont une priorité absolue sur les clients de classe 2, c’est-à-dire qu’ils dépassent automatiquement tous les clients de classe 2 dans la file. De plus, un client de classe 2 en service retourne immédiatement dans la file d’attente si un client de classe 1 se présente. On a λ1 = 1 pour les clients de classe 1, λ2 = 2 pour les clients de classe 2, et µ = 4. Calculer (à l’équilibre) : 1. Le nombre moyen de clients de chaque classe dans le système. 2. Le temps moyen de séjour dans le système pour chaque classe. Indication : On peut montrer que les équations d’équilibre de la file M/M/1 ne dépendent pas de la politique de service de la file. MTH2302D: Files d’attente 24/24