46
CHAPITRE 2 FILES D'ATTENTE
1. Généralités. La théorie des files d'attente s’attache à modéliser et à analyser de nombreuses situations en apparence très diverses, mais qui relèvent néanmoins toutes du schéma descriptif général suivant. Des clients arrivent à intervalles aléatoires dans un système comportant plusieurs serveurs auxquels ils vont adresser une requête. La durée du service auprès de chaque
serveur est elle-même aléatoire. Après avoir été servis (ce qui suppose un arrêt chez un ou plusieurs serveurs selon le cas), les clients quittent l e système.
arrivée clients
départs clients
Figure 1. Structure générale d’un système système de files d’attente Le but de l'analyse est de caractériser le degré de performance du système en répondant à des questions du type suivant:
• • • •
en moyenne, combien de temps attend un client avant d'être servi? quel est le nombre moyen de clients dans le système? quel est le taux d'utilisation moyen des serveurs? ...
Illustrons cette description générale par quelques exemples spécifiques. Agence bancaire Ici, les serveurs sont les guichets de l'agence. Typiquement, tous les guichets offrent le même service, et chaque client ne devra donc visiter qu'un seul guichet. Atelier de production Les 'clients' sont les ordres de fabrication à exécuter, et les 'serveurs' sont les machines nécessaires à l'exécution de chaque ordre de fabrication.
47
Parking Les 'clients' sont les véhicules qui cherchent à stationner (plutôt que les occupants, en nombre variable, de ces véhicules). Les 'serveurs' sont les emplacements de parking, et la 'durée de service' est la durée pendant laquelle chaque véhicule reste stationné. On remarque que les situations considérées peuvent différer énormément les unes des autres. Pour mettre un peu d'ordre au milieu du chaos, les théoriciens ont été amenés à classifier les systèmes rencontrés en précisant certaines de leurs caractéristiques. En particulier, on distingue ainsi:
•
Les systèmes à serveurs parallèles, où chaque client ne requiert le service que d'un seul
serveur et tous les serveurs sont capables de fournir ce service.
arrivées
départs
Figure 2. Serveurs parallèles
•
Les systèmes à serveurs en série, où chaque client doit visiter plusieurs serveurs successifs dans un ordre fixe pour recevoir satisfaction.
arrivées
départs
Figure 3. 3. Serveurs en série série L'agence bancaire, le supermarché et le parking fournissent des exemples de systèmes à serveurs parallèles, et la chaîne de montage automobile est un exemple de système en série. Plus généralement, les ateliers de production peuvent présenter une structure parallèle, ou en série, ou une organisation plus générale encore (si les divers ordres de fabrication visitent les machines selon des séquences différentes).
•
Les arrivées de clients peuvent être groupées ou individuelles; de même pour le
service par chaque serveur.
48
•
Les clients forment une ou plusieurs files d'attente, éventuellement caractérisées par
des priorités différentes (par exemple, dans un atelier, commandes urgentes ou non). Au sein de chaque file, le prochain client à servir est sélectionné sur base d'une règle prédéterminée, appelée discipline de service . Les disciplines de service les plus courantes sont: premier arrivé premier servi (First In First Out, First Come First Served) (surtout utilisée dans les services, par souci d'équité), temps de service le plus court d'abord (utilisé dans les ateliers de production), dernier arrivé premier servi, sélection aléatoire, etc.
•
La capacité du système, c’est-à-dire le nombre de clients pouvant être simultanément
présents dans le système, est limitée ou non. Dans le premier cas, on suppose que les l es clients qui arrivent lorsque le système est déjà saturé le quittent immédiatement sans obtenir le service désiré. On dit que ces clients sont perdus. Dans le cas d'un système à capacité illimitée, bien sûr, aucun client n'est perdu (mais la longueur des files d'attente peut grandir indéfiniment !). Dans ce bref exposé, nous nous limiterons à l'étude de systèmes -
à serveurs parallèles
-
à arrivées et service individuels.
Nous supposerons également que tous les clients demandent le même service et que les serveurs sont identiques.
2. Mesures de performance performance - Comportement Comportement à long terme. Nous appelons état d'un système à l'instant t le nombre n(t) de clients présents dans le système à cet instant (un client est « présent dans le système » si il est en file d’attente ou en cours de service). Les quantités fondamentales auxquelles s'intéresse l'analyste dans le cadre des modèles de files d'attente sont les probabilités d'état , que nous définissons de la façon suivante: pour n = 0, 1, 2, ... et t
≥ 0,
pn(t) = probabilité de l'état n à l'instant t = probabilité que n clients soient soient présents dans le système à l'instant t
(1)
= Pr[n(t) = n]. Sous certaines conditions, les probabilités à long terme ou probabilités probabilités stationnaires stationnaires pn
= t
lim p n (t)
→∞
existent pour n = 0, 1, 2, ... et définissent effectivement une mesure de probabilité :
(2)
49
∞
∑ p = 1.
n=0
n
On interprète alors p n comme la probabilité que, à un instant quelconque dans le long terme, exactement n clients soient présents dans le système. Sous des hypothèses assez faibles, on montre que pn représente également la proportion du temps (à long terme) où le système contient n clients. L'existence des limites (2) implique donc que, dans le long terme, le système atteint un état d'équilibre stable, indépendant de son état initial. Lorsque c'est le cas, on se contentera souvent de la description à long terme du système fournie par (2) plutôt que de calculer les distributions de probabilité (1) qui caractérisent le système dans sa phase 'non-stabilisée'. Remarque. Il faut se garder de confondre l'existence des probabilités stationnaires (2) et la disparition (à long terme) des fluctuations aléatoires du système. Pour bien comprendre ceci, il faut remarquer que l'état d'un système stochastique est en général soumis à deux sources de variabilité: d'une part, les fluctuations aléatoires qui affectent le système en permanence, et qui, même dans un très court laps de temps, sont responsables des variations du système autour de son état moyen; d'autre part, l’évolution temporelle du système à plus long terme, qui peut être vue comme un déplacement de l’état moyen luimême. (Par exemple, la valeur d’un titre boursier peut enregistrer de légers gains ou pertes quotidiens tout en affichant une tendance - un trend - à la hausse dans le long terme.) L'existence des probabilités stationnaires signifie seulement que, au fil du temps, l’évolution temporelle tend à disparaître, sans que l'état du système devienne parfaitement prédictible (déterministe) pour la cause. Lorsque les probabilités (1) et/ou (2) sont connues, il est possible de calculer de nombreuses mesures de performance du système de files d’attente à étudier. Parmi les plus importantes, on considérera les mesures à long terme suivantes: Ls = nombre espéré de clients dans le système (à un instant quelconque quelconque dans dans le long terme) Lq = nombre espéré de clients dans la file d'attente (à un instant quelconque dans le long terme) Ws = temps espéré passé par par chaque client dans le système (dans le long terme) Wq = temps espéré passé passé par chaque client dans la file d'attente (dans (dans le long terme). Par définition, on a: ∞
Ls
= ∑n pn n= 0
(3)
50
De plus, si le système comporte c serveurs parallèles, alors Lq
=
∞
∑ (n − c)c) p
n = c+1
n
,
(4)
puisqu'il y a (n-c) clients dans la file si et seulement si il y a n clients dans le système. La relation entre les paramètres L et W est plus subtile, mais joue un rôle primordial dans la théorie des files d’attente. Pour la décrire, notons:
λeff
= taux d'entrée moyen des clients dans le système (nombre moyen de clients entrant
dans le système par unité de temps). L’équation suivante, désignée sous le nom de loi de Little , lie les paramètres paramètres LS, WS et λeff et permet donc de calculer l’une de ces quantités lorsque les deux autres sont connues:
Proposition 1. (Loi de Little) Pour tout système de files d’attente, Ls = λeff × Ws.
(5)
Démonstration. Sans vouloir entrer dans les détails d’une démonstration formelle, la validité de l’équation (5) peut être justifiée intuitivement par le raisonnement suivant (voir Ross, 1989). Supposons qu'un gestionnaire décide de payer 1 euro à chaque client par unité de temps que ce client passe dans le système. Calculons de deux façons différentes combien combien le gestionnaire dépense au cours d'une période suffisamment longue, disons de longueur T, située dans le long terme (plus précisément, nous allons calculer l’espérance de la somme dépensée). 1ère façon: puisque, en moyenne, L s clients se trouvent dans le système à chaque instant, la somme déboursée se monte à L s T euros.
2ème façon: pendant la période considérée, λeff T clients entrent dans le système, et chacun d'eux y reste, en moyenne, W s unités de temps; au total, les clients reçoivent donc λeff T Ws euros du gestionnaire. Par conséquent, L s T = λeff T Ws , et l'équation (5) s'ensuit.
CQFD
La loi de Little est valide sous des hypothèses très générales et sous une interprétation très large du mot « système ». En particulier, elle reste valide lorsque la file d'attente elle-même est interprétée comme un système: Lq = λeff Wq .
(6)
Il suffit pour s'en persuader de répéter l'argument esquissé dans la démonstration précédente, en ne payant cette fois que les clients qui se tr ouvent en file d'attente.
51
Notons enfin que de nombreuses autres mesures de performance (à long terme) peuvent être déduites simplement de celles introduites ci-dessus. Par exemple, puisque les clients en cours de service sont précisément ceux qui sont présents dans le système mais pas en file d’attente, on obtient: durée moyenne du service, par client = W s - Wq
(7)
nombre moyen de serveurs occupés = L s - Lq. (8) Si le système comporte c serveurs, le taux moyen d’occupation de chaque serveur (c’est-àdire, la proportion du temps pendant laquelle chaque serveur est occupé) est alors obtenu par la formule LS
− Lq c
.
Nous allons à présent illustrer quelques-uns des concepts introduits sur un exemple numérique simple. Exemple 1. Le gestionnaire d'un petit atelier enregistre en moyenne 5 commandes par jour. Les 6 ouvriers employés dans l’atelier sont très polyvalents, si bien que chaque commande peut être réalisée par n’importe lequel d’entre eux. Néanmoins, le gestionnaire est inquiet car il constate que les ouvriers sont occupés en permanence et que son carnet de commandes contient, en moyenne, une vingtaine de commandes en cours (enregistrées, mais non satisfaites). Pour mieux comprendre la situation, le gestionnaire aimerait estimer le temps moyen consacré par les ouvriers à chaque commande. Il voudrair également pouvoir annoncer à ses clients, au moment de la passation de commande, un délai de livraison attendu. On a: λeff = 5 et Ls = 20. Donc, par la loi de Little, W s = 20/5 = 4: le gestionnaire peut annoncer un délai de livraison de 4 jours. Par ailleurs, Ls - Lq = 6 (puisque les ouvriers sont occupés en permanence). Donc,
Ws
− Wq
−L 6 = = λ eff 5 Ls
q
,
et chaque commande requiert en moyenne 1,2 jours de travail effectif. En pratique, les modèles de files d'attente sont souvent utilisés dans des situations où les seules caractéristiques directement observables ou prédictibles du système concernent le processus d'arrivée des clients et la distribution du temps de service (c'est par exemple le cas dans la phase de conception d'un système). Le but de l'analyse est de calculer les paramètres Ls, Lq, Ws, Wq, ... sur base de ces données.
52
Dans de nombreux cas, il est impossible de dériver des expressions analytiques pour ces mesures de performance et il faut alors recourir à des procédures de calcul numérique ou à des simulations du système étudié pour estimer leur valeur. Dans d'autres cas, par contre, les processus d'arrivée et de service possèdent des propriétés autorisant une analyse très complète du système. Nous allons maintenant présenter les plus typiques de ces propriétés.
3. Processus de Poisson. Poisson. Nous notons N(t) le nombre d'arrivées de clients survenues dans l'intervalle de temps [0, t), pour t
≥
0. La quantité N(a+t)
−
N(a) représente alors le nombre d’arrivées enregistrées
entre les instants a et a+t, pour tout a En règle générale, pour chaque t
≥
≥ 0 et t ≥ 0. 0, N(t) est une variable aléatoire. L’ensemble de ces
variables aléatoires fournit une représentation mathématique, c’est-à-dire un modèle, des arrivées de clients dans le système. On baptise processus (stochastique) d'arrivée cet ensemble { N(t) : t ≥ 0 }. Le processus d'arrivée peut bien sûr présenter des caractéristiques variées en fonction de la situation modélisée. Mais il est fréquent dans la pratique que ce processus soit (du moins en première approximation) un processus de Poisson , ce qui signifie qu'il existe un paramètre
λ > 0 (appelé taux du processus) tel que: (i)
le nombre d'arrivées dans tout intervalle [a,a+t) de longueur t suit une loi de Poisson de moyenne λt, c'est-à-dire: pour a, t ≥ 0 et n = 0, 1, 2, ... Pr [ N(a + t) − N(a) =
(ii)
n −λ t (λ t) n] = e ;
n!
si [a,b) et [c,d) sont des intervalles de temps disjoints, alors le nombre d'arrivées dans [a,b) est indépendant du nombre d'arrivées d'arri vées dans [c,d).
(iii)
N(0) = 0.
Quelques commentaires s'imposent au sujet de cette définition. La propriété (iii) est évidemment requise si { N(t) : t
≥
0 } doit pouvoir être interprété comme un processus
d’arrivée. Par contre, la propriété (ii) n’est pas satisfaite satisfaite par tous les processus d’arrivée: intuitivement, elle implique que le nombre d'arrivées enregistrées dans un intervalle [a,b)
53
(par exemple, [0,5)) ne fournit aucune indication sur le nombre d'arrivées à attendre dans un intervalle disjoint [c,d) (par exemple l’intervalle [5,8)). La propriété (i), quant à elle, est encore plus restrictive et beaucoup moins intuitive. Elle implique en particulier que le processus d’arrivée est stationnaire , ce qui veut dire que les nombres d’arrivées enregistrés dans deux intervalles distincts de même durée suivent la même loi de probabilité (ceci, en dépit de leur indépendance mutuelle, exprimée par la propriété (ii)). Pour un intervalle de longueur t fixée, disons [0,t), le nombre espéré d'arrivées se calcule comme suit: ∞
E[ N( N(t)]
N(t) = n] = ∑ n Pr[ N( n= 0
∞
= ∑ ne
− λt
(λ t) n n!
n= 0
=λte
− λt
(λ t) n −1
∞
∑
(n − 1)!
n =1
Si l'on se souvient que e
x
E[ N(t)]
∞ xn
= ∑
n= 0
n!
, on obtie obtient nt
= λ t e − λ t e λt = λ t.
En posant t = 1, on voit que
λ
est exactement le nombre espéré d'arrivées par unité de
temps, ce qui explique l’appellation « taux du processus » donnée à
λ.
De façon similaire, on démontre que Var[ N(t)]
N (t)] = λt. = E[ N(
Nous avons déjà mentionné que le processus de Poisson fournit une bonne approximation de nombreux processus d'arrivée observés empiriquement. Un théorème remarquable dû à Palm et Khintchine fournit une justification théorique de cette omniprésence des processus de Poisson. Considérons un processus d’arrivée qui peut être envisagé comme résultant de la superposition de m processus d'arrivée indépendants les uns des autres (qui décrivent, par exemple, les processus d'arrivée de m classes de clients distinctes). Plus précisément, si N 1, N2, ..., N m désignent les m processus indépendants, alors N(t) = N 1(t) + N2(t) + ... + Nm(t). Supposons par ailleurs que chacun des processus N 1, N2, ..., Nm est stationnaire (attention: nous ne faisons pas l’hypothèse que ces processus sont poissonniens !!). Le théorème de
54
Palm-Khintchine affirme que, sous ces conditions (et quelques hypothèses plus techniques), le processus d'arrivée obtenu par superposition des m processus individuels se comporte approximativement comme un processus de Poisson lorsque m est assez grand (voir Heyman et Sobel, 1982 pour plus de détails). Le théorème de Palm-Khintchine indique donc que les processus de Poisson jouent vis-à-vis de la superposition des processus d'arrivée un rôle de « loi universelle » similaire à celui rempli par la loi normale vis-à-vis de l'addition des variables aléatoires (rôle exprimé par l e théorème central limite).
4. Distribution exponentielle. Intuitivement, il existe deux façons de décrire le processus selon lequel les arrivées de clients surviennent dans un système: on peut en effet vouloir placer l’accent sur
•
le nombre de clients qui arrivent dans un intervalle de temps donné (par exemple, 10 clients par heure), ou sur
•
l’intervalle de temps écoulé entre deux arrivées successives (par exemple, une arrivée toutes les 6 minutes).
La description adoptée dans la section précédente était du premier type, puisqu’elle reposait sur la considération du processus d’arrivée { N(t) : t
≥ 0 }.
Dans l'hypothèse où le processus d'arrivée considéré est poissonnien, on peut aisément passer d’un type de description à l’autre. En effet, considérons un instant a quelconque (par exemple, celui correspondant à l’arrivée d’un client) et désignons par X le temps écoulé jusqu’à la première arrivée de client observée après l’instant a. Calculons la loi de probabilité qui régit l'intervalle de temps X. Pour tout t ≥ 0, on a: Pr [ X > t ]
= probabilité qu’aucune arrivée ne soit enregistrée entre a et a+t = Pr[N(a + t) − N(a) = 0] = e − λ t .
Par définition, on dit que la variable aléatoire X suit une distribution exponentielle de paramètre
résultat avec la λ. En combinant ce résultat
propriété (ii) des processus de Poisson, on
obtient ainsi aisément une « moitié » du résultat fondamental suivant (la réciproque est plus délicate et nous l'énonçons sans démonstration).
Proposition 2. Un processus d'arrivée est un processus de Poisson de taux
λ
si et
seulement si les durées entre arrivées successives sont indépendantes et suivent toutes une loi exponentielle de paramètre λ.
55
Ce résultat montre que les processus de Poisson d’une part et les variables aléatoires à distribution exponentielle d’autre part ne procurent en réalité que deux visions différentes, mais équivalentes, d’un même phénomène stochastique: simplement, le processus de Poisson focalise l’attention sur le nombre d’arrivées par unité de temps, alors que la distribution exponentielle modélise plus directement l’intervalle de temps qui s’écoule entre deux arrivées successives. Mentionnons encore que, si X suit une loi exponentielle de paramètre λ, alors E[X] = 1/ λ et Var[X] = 1/ λ . La valeur de E[X], en particulier, est bien celle que l'on attend 2
λ
intuitivement: puisque
est le nombre moyen de clients arrivant par unité de temps,
l'intervalle de temps moyen séparant deux arrivées successives doit valoir 1/ λ. Notons enfin une dernière propriété caractéristique de la loi exponentielle:
Proposition 3. (« Evergreen property ») Si X est une variable aléatoire distribuée exponentiellement, alors Pr [X > t + s | X > s] = Pr [X > t ] quels que soient t, s ≥ 0, .
Première démonstration. Pr [X > t + s
=
|
X > s]
Pr[ X > t + s et X > s ]
> s] Pr [ X > t + s ] = Pr [ X > s ] =
Pr [X
e
− λ (t + s)
e
− λs
= e−λ t = Pr [X
> t ]. CQFD
Deuxième démonstration. Soit P = Pr [X > t + s⏐ X > s ]. En vertu de la Proposition 2, on peut interpréter X comme le temps écoulé entre la première et la deuxième arrivées d’un processus de Poisson. Supposons, pour fixer les idées, que la première arrivée a eu lieu à l’instant 0. Alors, P est la probabilité qu'il n'y ait pas d'arrivée entre les instants s et t + s sachant qu'il n'y en a pas eu entre 0 et s. Par la propriété d’indépendance (ii) des processus de Poisson, P est donc la probabilité qu'il n'y ait pas d'arrivée dans l’intervalle [s, t + s), et, par la propriété de stationnarité (i), P = Pr [X > t].
CQFD
56
On traduit la Proposition 3 de façon imagée en disant que la distribution exponentielle n'a pas de mémoire: si la durée de vie d'un être humain était distribuée exponentiellement, alors la probabilité qu'une personne âgée de s = 80 ans survive jusqu'à t + s = 120 ans serait identique à la probabilité qu'un nouveau-né atteigne l'âge de t = 40 ans (cette observation nous donne donc de bonnes raisons de penser que la longévité humaine ne suit pas une loi exponentielle !).
Exemple 2. A Lilliput, les trains arrivent à la gare centrale selon un processus de Poisson, à raison de 2 trains par heure en moyenne. Gulliver arrive à la gare, où un employé lui signale que le dernier train est passé il y a une heure déjà. Quelle est la probabilité que Gulliver doive attendre plus de 10 minutes avant de voir arriver le train suivant? Réponse: La durée d'attente X entre deux trains successifs est distribuée exponentiellement, avec paramètre λ = 2. La Proposition 3 nous montre que l'information donnée par l'employé l 'employé n’affecte pas la probabilité à calculer: Pr [X > 1 1/6 1/6 ⏐ X > 1] = Pr [X > 1/6] = e-1/3 . Un raisonnement alternatif conduit (heureusement) au même résultat. La probabilité recherchée est exactement celle qu'il n'y ait pas d'arrivée du processus de Poisson dans un intervalle de longueur 1/6, c'est-à-dire 0 −2 / 6 ( 2 / 6 ) Pr [ N(1 / 6) = 0 ] = e 0!
= e −1/ 3 .
5. Processus de service. Nous avons centré la discussion précédente autour de la modélisation du processus d’arrivée des clients, mais les mêmes concepts s’appliquent à la modélisation du processus de service. Plus précisément, on décrit généralement le processus de service par une suite de variables aléatoires X 1, X2, ..., où X i est la durée de service du client i (i = 1, 2, ...). Si l’on suppose que chaque serveur fournit le même service, il est assez naturel d’admettre que les variables X1, X 2, ... sont indépendantes et identiquement distribuées. Ainsi, dans la pratique des modèles de files d'attente, on posera souvent l’hypothèse que les durées de service des différents clients sont des variables indépendantes suivant toutes la même distribution exponentielle de paramètre
µ
(dans toute application spécifique, cette
57
hypothèse devrait être infirmée ou validée par un test d’hypothèse classique, comme par exemple le test du chi-carré). On dit que µ est le taux de service moyen des serveurs. Pour compléter cette discussion, supposons que le processus de service d’un serveur unique satisfait aux hypothèses précédentes: en particulier, les durées X 1, X2, ... sont indépendantes et suivent toutes une loi exponentielle de même paramètre µ. Remarquons que, si le serveur est occupé en permanence , alors ces durées peuvent être vues comme des ‘durées entre
sorties successives’ du système (par analogie avec les ‘durées entre arrivées successives’ dans le système). Notons S(t) le nombre de clients servis par le serveur dans l’intervalle de temps [0,t) ou, de façon équivalente, le nombre de sorties de clients enregistrées dans l’intervalle [0,t). Si le serveur est occupé en permanence, la Proposition 2 implique donc que { S(t) : t
≥ 0 } est un processus de Poisson de taux µ, et µ représente l’espérance du
nombre de clients servis par unité de temps. En général, cependant, le serveur n’est pas occupé en permanence (en raison du caractère aléatoire du processus d’arrivée, ou par suite d’un taux d'arrivée relativement faible). Dans ce cas, le processus de service diffère du processus de sortie et, en particulier, le taux de sortie du système est inférieur à
µ. Il est utile de bien comprendre cette distinction entre
taux de service et taux de sortie; nous y reviendrons dans notre discussion des processus de naissance et de mort.
6. Notations de Kendall. Suivant une suggestion de Kendall, on décrit souvent les caractéristiques essentielles d'un système de files d'attente par une notation abrégée de la forme a/b/c/N, où
•
a
∈
{M, G, ...} précise le processus d'arrivée: M (Markovien) pour un processus de
Poisson, G (général) pour un processus quelconque non précisé, ...;
•
b
∈ {M, G, ...} précise la distribution des durées de service: M (Markovien) pour des
durées indépendantes et distribuées exponentiellement avec moyenne identique pour chaque serveur, G pour des durées quelconques, ...;
• •
c ∈ {1, 2, ...,
∞} indique le nombre de serveurs; N ∈ {1, 2, ..., ∞} précise la capacité du système, c'est-à-dire le nombre de clients qui peuvent simultanément s'y trouver.
Le paramètre N est souvent omis lorsqu’il vaut + ∞. Ainsi, on parlera de systèmes M/M/1, M/M/5/8, M/G/1, etc. Par ailleurs, la notation a/b/c/N est parfois complétée par des champs
58
supplémentaires indiquant par exemple la discipline de service (FIFO, aléatoire, ...), le nombre de clients existant dans l'univers considéré, etc. Dans la suite de cet exposé, nous nous limiterons à l’étude des systèmes de type M/M/c/N (systèmes de file d'attente à arrivées poissonniennes et à durées de service exponentielles) pour lesquels les processus de naissance et de mort fournissent un cadre d’analyse uniforme.
7. Processus de naissance et de mort: mort: le cas général. Rappelons que l’ état d'un système de files d'attente à l'instant t, noté n(t), est simplement le nombre de clients présents dans le système à l’instant t. L'ensemble des variables aléatoires d’état décrit un processus stochastique {n(t): t
≥ 0}. Considérons à présent un système très
général, dans lequel nous ferons abstraction (du moins, à première vue) des caractéristiques telles que nombre de serveurs, capacité, etc. On peut utilement visualiser un tel système comme une ‘boîte noire’, simplement caractérisée par un processus d’arrivée, un processus de sortie et un processus d’état résultant de la combinaison des arrivées et des départs : à chaque instant t+∆t, l’état n(t+∆t) du système résulte des arrivées et sorties enregistrées entre t et t+∆t. Sans être parfaitement rigoureuse, la définition suivante permet d’introduire les caractéristiques d’un tel système auxquelles nous allons nous intéresser.
≥ 0} est un processus de naissance et de mort si, pour chaque n = 0, 1, 2, ..., il existe des paramètres λn et µn (avec µo = 0) tels que, lorsque le système est dans l'état n, le processus d'arrivée est poissonnien de taux λn et le processus de sortie est poissonnien de taux µn. Définition. Le processus d’état stochastique {n(t): t
Dans un processus de naissance et de mort, les taux d’arrivée et de service sont donc variables en fonction de l’état du système. Ceci semble nous éloigner des modèles de files d’attente M/M/c/N, puisque le taux d’arrivée des clients et le taux de sortie sont apparemment constants dans ces modèles (égaux à
λ et µ, respectivement). Mais en réalité,
les processus de naissance et de mort fournissent un cadre d’analyse idéal pour les modèles M/M/c/N, dans lequel les notions de « nombre de serveurs » et de « capacité du système » peuvent être traitées à un niveau d'abstraction élevé, à travers des variations des taux d'arrivée et de sortie. Plus précisément, nous montrerons ci-dessous que le processus {n(t): t
≥ 0} associé à un système M/M/c/N est toujours un processus de naissance et de mort.
59
Pour comprendre intuitivement ces remarques, il suffit de revenir à la remarque formulée à la fin de la Section 5. Nous y avons en effet observé que, même dans un système M/M/c, le taux moyen de sortie n’est généralement pas constant: pour un système à un seul serveur, par exemple, le taux moyen de sortie ne vaut
µ que lorsqu’il y a des clients dans le système,
et tombe à 0 sinon. Similairement, dans un système M/M/c/N à capacité finie, le taux d’arrivée des clients s’annule dès que le nombre de clients présents dans le système est égal à N. Dans de tels cas, les taux d’arrivée et de sortie peuvent donc être utilement modélisés comme des fonctions du nombre de clients présents. Nous allons maintenant procéder à une présentation plus systématique de quelques processus de naissance et de mort particuliers. 7.1. Processus de naissance pur. Dans un processus de naissance pur,
λn = λ et µn = 0 pour n = 0, 1, ... Donc, les arrivées ont
lieu à taux constant et il n'y a pas de départs. Pour un tel processus, le nombre de clients dans le système est évidemment égal au nombre d’arrivées enregistrées pour un processus de Poisson classique, si bien que pn (t) = probabilité que que l'état du système système à l'époque l'époque t soit égal égal à n = e
- λt
( λ t) n n!
(n = 0,1, . .. ) .
7.2. Processus de mort mort pur. Dans un processus de mort pur, l’ensemble des états possibles du système est {0,1,...,N} et
λn = 0 µn
=
pour n = 0, 1, 1, ..., N
⎧0 ⎨ ⎩µ
si n = 0 si n = 1, 2, 2, ..., N. N.
Intuitivement, l'état initial d’un tel système vaut N, il n'y a pas d'arrivées et les départs se produisent à taux (moyen) constant jusqu'à ce que le système soit vide. En interprétant les départs comme des « arrivées à l'extérieur du système », on conclut facilement que: pn(t)
= probabilité que N-n départs se produisent dans l'intervalle [0, t) = e
et
−µt
(µ t) N
−n
(N − n)!
(n = 1, 2, 2, .. .. . , N) N)
60
p0(t) = probabilité que N départs au moins se produisent dans l’intervalle [0, t) j ∞ − µ t (µ t) = e j! j= N
∑
N −1
= 1− ∑ e
−µ t
(µ t) j j!
j= 0 N
= 1 − ∑ p n (t) n =1
N
(une autre façon de calculer p 0(t) consiste à remarquer que l'identité
∑p n =0
n
(t)
= 1 doit être
satisfaite par les probabilités d’état).
7.3. Système M/M/1. Un système M/M/1 définit un processus de naissance et de mort caractérisé par les paramètres d’arrivée λn = pour n = 1,2,...
λ
pour n = 0, 1, ..., et les paramètres de sortie µ0 = 0 et µn =
µ
7.4. Système M/M/c. On obtient une description d’un système M/M/c en posant λn = λ pour n = 0, 1, ..., et ⎧ nµ si n ≤ c
µn = ⎨ ⎩cµ
si
n≥c
En effet, lorsque le nombre de clients présents dans le système est inférieur au nombre de serveurs, alors les n serveurs occupés donnent lieu à un processus de départ poissonnien de taux nµ (que le taux soit égal à n µ est évident; que le processus de départ soit poissonnien l'est moins, mais peut être démontré rigoureusement). Si le nombre de clients présents excède c, alors le taux du processus de départ reste limité à c µ, comme illustré par la figure ci-dessous.
µ λ
cµ
µ µ
61
7.5. Système M/M/c/N. Dans un système de file d’attente dont la capacité est finie (égale à N), les états possibles du système sont n = 0, 1, ..., N, et
⎧λ λn = ⎨ ⎩0 ⎧ nµ µn = ⎨ ⎩cµ
si n < N si n = N si n ≤ c si n ≥ c,
puisqu'aucun client n'a accès au système lorsque n = N.
7.6. Probabilités à long terme. Dans le cas simple d’un processus de naissance pur ou de mort pur, il est possible de calculer directement les probabilités d'état pn(t) sous forme analytique (voir ci-dessus). Par contre, pour des processus de naissance et de mort plus généraux, le calcul de ces probabilités devient difficile ou tout simplement impossible. On se contente donc souvent d’établir des formules analytiques pour les probabilités à long terme p n, n = 0, 1, 2, ... (voir Section 2). Nous allons à présent énoncer un résultat général permettant de dériver de telles formules.
Proposition 4. Lorsqu’elles existent, les probabilités à long terme pn (n = 0, 1, ...) d'un processus de naissance et de mort satisfont aux équations d'équilibre λ n p n = µ n + 1 p n + 1 (n = 0, 1 2,...) (9) ,
et à l’équation de normalisation ∞
∑ p = 1.
n=0
(10)
n
Nous ne donnerons pas de démonstration de ce résultat, et nous contenterons d’observer que les équations d’équilibre admettent une visualisation et une interprétation naturelles. Tout d’abord, considérons le graphe de transition associé à un processus de naissance et de mort arbitraire. pn-1 0
1
…
n-1
λn-1 µn
pn n
λn µn+1
pn+1 n+1
…
62
Dans ce graphe, les sommets correspondent aux états possibles du système, et chaque arc indique une transition possible d'un état vers un autre (remarquer que les arcs de la forme (n,n+2), (n,n-2), (n,n+3), ... ne figurent pas dans ce graphe, puisque les arrivées et les départs d'un processus de Poisson sont toujours individuels). Lorsque le système est dans l’état n, il passe à l’état n+1 au taux moyen
λn (attention: il
s’agit là d’un taux conditionnel au fait que le système est dans l’état n). Cette valeur se retrouve sur l’arc (n,n+1) du graphe de transition. Puisque p n est, intuitivement, la proportion du temps pendant laquelle le système se trouve dans l'état n, on en déduit:
λn pn = taux espéré auquel le système passe de l'état n à l’état n+1. De même, lorsque le système est dans l'état n+1 (ce qui se produit durant une proportion pn+1 du temps), il passe dans l’état n au taux moyen µn+1. On obtient ainsi: µn+1 pn+1 = taux espéré auquel le système passe de l'état n+1 à l’état n. Les équations d'équilibre traduisent donc simplement le fait que, en régime stationnaire, c’est-à-dire à l’équilibre, le système connaît autant de transitions (par unité de temps) de l’état n vers l’état n+1 que de l'état n+1 vers l’état n. Exemple 3. Supposons que pour un système particulier p 2 = 0,25 et
λ2 = 20 (clients par heure): si il y a
deux clients présents dans le système (ce qui se produit un quart du temps environ), le taux d’arrivée moyen est donc de 20 clients par heure. En moyenne, on assiste donc 5 fois par heure (0,25
×
20) à une transition de l’état ‘2 clients présents’ vers l’état ‘3 clients
présents’. Lorsque µn > 0 pour n = 1, 2, ... (ce qui est par exemple le cas pour tout système M/M/c/N avec
µ > 0), les équations d'équilibres peuvent être facilement résolues en terme de p 0. En
effet, on obtient successivement
p1 p2
λo p , µ1 0 λ = 1 p1 µ2 λ λ = ο 1 p o , µ1µ 2 =
63
et, plus généralement:
pn
=
λ ολ 1... λ n −1 po .. . µ n µ1µ 2 ...
pour n = 1, 2, .. .
(11)
Pour que (11) détermine une distribution de probabilité, il faut et il suffit qu'il existe une ∞
valeur de p0 telle que
∑p n=0
n
= 1.
En résumé, si les probabilités stationnaires d'un processus de naissance et de mort existent, alors ces probabilités définissent l'unique solution du système (9) −(10). Lorsque ces probabilités sont connues, l'analyse du comportement à long terme d'un tel système peut être complétée par le calcul des mesures de performance L s, Lq, Ws, Wq, ... Remarquons, en particulier, que l'utilisation de la loi de Little (formules (5) −(6)) requiert la détermination préalable du paramètre
λeff ,
le taux d'entrée moyen des clients dans le
système. Dans le cadre d'un processus de naissance et de mort, λeff n’est rien d’autre que la valeur espérée des taux d’arrivée λn et est donc calculé par la formule
∞
λ eff = ∑ λ n p n . n=0
Dans la section suivante, nous allons illustrer cette discussion générale par l'étude de quelques cas particuliers.
8. Processus de naissance et de mort: mort: cas particuliers. 8.1. Processus de naissance pur. Si
λn = λ
> 0 et
λ pn = 0
µn = 0
pour n = 0, 1, 2, ..., alors les équations d'équilibre deviennent: deviennent:
( n = 0,1, 2, .. . ).
Ce système a pour unique solution: p n = 0 pour n = 0, 1, 2, ..., et donc les p n ne forment pas une distribution de probabilité (l’équation de normalisation (10) n'est satisfaite). Cette conclusion aurait pu être anticipée: dans un processus de naissance pur, l’état du système croît indéfiniment, ce qui interdit l'existence de probabilités stationnaires.
64
8.2. Processus de mort mort pur. Ici, λn = 0 pour n = 0, 1, ... et
µn
⎧0 ⎨ ⎩µ
=
si n = 0 si n = 1, 2, 2, ..., N. N.
Les équations d'équilibre s’écrivent
⎧µ p1 = 0 ⎨µ p = 0 ⎩ n+1
(n = 1, .. . , N - 1)
= 0 pour n = 1, 2, ..., N. (A la différence du cas précédent, la valeur de p 0 n’est
et donc p n
pas déterminée par les équations d’équilibre). En substituant ces valeurs dans l'équation de normalisation (10), on obtient les probabilités stationnaires:
⎧p 0 = 1 ⎨ ⎩p n = 0
( n = 1, 2, . . . )
Ce résultat est bien celui attendu intuitivement. intuit ivement. (Pourquoi ?) 8.3. Système M/M/1. Lorsque
λn
=
λ
pour n
≥
0 et
µn
=
µ
pour n
≥
1, les équations d'équilibre prennent la
forme:
⎧ λ p o = µ p1 ⎨ ⎩λ p n = µ p n +1
(n ≥ 1)
La solution de ce système est donnée par la formule (11) qui devient ici:
pn
=(
La quantité
λ n ) µ
ρ= (
po
( n ≥ 1).
(12)
λ ) est baptisée intensité du trafic . Si les probabilités stationnaires existent, µ
alors elles doivent satisfaire à (12) et à (10), c'est-à-dire à
65
∞
∑ρ n= 0
n
p0
On sait que, si contre, si
=1
(13)
ρ ≥ 1, alors la série
ρ < 1, alors
∞
∑ρ
n
diverge, et donc (13) n'a pas de solution. Par
n=0
∞
∑ρ
n
n= 0
=
1 1− ρ
, et les probabilités stationnaires sont définies par les
relations: pn La condition
ρ
= ρn (1 − ρ).
(n = 0, 1, ...)
= λ / µ < 1, nécessaire pour l'existence des probabilités à long terme, peut
être intuitivement justifiée. En effet, si
λ > µ,
alors le taux taux d'arrivée dans le système est est
supérieur au taux de service, et le nombre moyen de clients dans le système tend à croître sans limite. Si
ρ < 1, on calcule encore: ∞
LS
= ∑ n pn n=0
∞
= ∑ n ρ n (1 −ρ) n=0
=
(1 - ρ)
[ρ + 2ρ + 3ρ +...] = [ρ + 2ρ + 3ρ + ...] − [ρ + 2ρ + 3ρ + ...] 2
2
3
3
2
3
4
= ρ + ρ2 + ρ3 + ... ρ . = 1− ρ Il est intéressant de remarquer que
lim L S
ρ→1−
=+∞:
ceci signifie que, lorsque
λ
est très
proche de µ, le nombre de clients dans le système est généralement élevé même si λ < µ. En particulier, l'intuition l'intuiti on selon laquelle le système est « en équilibre » si
ρ
= 1 est donc
trompeuse. Puisque le taux d'arrivée est constant, λeff = implique alors: 1 1 WS = L S = . λ µ(1 − ρ)
λ dans un système M/M/1. La loi de Little (5)
En observant que la durée moyenne de service de chaque client vaut 1/ µ, la relation (7) devient WS − Wq
=
1
µ
66
et donc Wq
=
ρ . µ (1 − ρ)
Finalement, la loi de Little (6) permet de calculer Lq
= λ Wq
ρ2 . = 1− ρ
La relation (8) implique alors: taux espéré d'utilisation du serveur = L s - Lq = ρ . Remarquons à nouveau que la performance d'un système M/M/1 (en terme de temps
ρ est proche de 1 (c'est-à-dire lorsque le serveur est très utilisé). Par exemple, si les clients arrivent au rythme de λ = 1 par heure et d'attente des clients) se dégrade rapidement lorsque
si le temps de service moyen est de
1
µ
= 0,9 heure = 54 minutes, alors le serveur sera
occupé 90% du temps ( ρ = 0,9), la file d'attente contiendra en moyenne plus de 8 clients (Lq = 8,1), et le temps d’attente moyen de chaque client sera donc supérieur à 8 heures (W q = 8,1) !!
8.4. Système M/M/c. Dans un système M/M/c,
λn = λ
(n = 0, 1, ...)
⎧n µ µn = ⎨ ⎩c µ
si n ≤ c
Donc, λeff =
si n ≥ c
λ et la durée moyenne du service par client vaut
(11), on obtient pour n
pn
λn
λn p = = (1µ) (2µ) (3µ ).. . ( nµ ) 0 n ! µ n
De même, pour n ≥ c, pn
≤c:
=
λn
(1µ) (2µ). . . (cµ) (cµ ) n − c
p0
=
p0 .
λn c ! c n−c µ n
p0 .
1
µ
. En utilisant la formule
67
∞
∑p
En exprimant que
n= 0
n
= 1,
on peut à nouveau déduire la valeur de p o. Il vient
successivement: ∞
c−1
∞
∑ p = ∑ p +∑ p n= 0
n
n
n =0
n= c
n
∞ λn λn =∑ n po + ∑ n− c n p o µ n =0 n! µ n= c c ! c ⎡ c−1 λn λc ∞ λn−c ⎤ p = ⎢∑ + ∑ ⎣ n=0 n! µ n c!µc n=c c n−cµ n−c ⎥⎦ o k ⎡ c−1 λn λc ∞ ⎛ λ ⎞ ⎤ = ⎢∑ ⎟ ⎥ po . n + c ∑ ⎜ n ! c ! c µ µ µ ⎝ ⎠ k = 0 ⎣ n= 0 ⎦ c−1
λ ≥ c, alors la série infine contenue dans le dernier terme diverge et les probabilités µ stationnaires n'existent pas. Par contre, si ρ < c, alors on obtient:
Si
ρ=
⎡ ⎢ c−1 ρn ρc ⎢ ∑ n! + c ! ⎢⎣ n=0
⎤ 1 ⎥ ρ ⎥ p 0 = 1, (1− ) ⎥ c ⎦
(14) (14)
d'où la valeur de po peut être déduite. Notons que la condition ρ < c est susceptible de la même interprétation que dans le cas c = 1, puisque c µ est le taux de service cumulé des c serveurs. Au prix de quelques calculs, on obtient encore:
Lq
=
ρc +1 ( c − 1) !(c − ρ) 2
po
et, puisque λeff = λ et le temps moyen de service de chaque client vaut 1/ µ : Lq
Wq
=
WS
= Wq +
λ 1
µ LS = λ WS = Lq + ρ.
(15)
68
Exemple 3. Gulliver est directeur de l'agence de banque de Lilliputville. Les clients se présentent à l'agence au rythme moyen de 10 clients par heure. Ils y sont servis par l'unique employé de l'agence, auprès duquel chaque client passe 5 minutes en moyenne. Selon les données recueillies par Gulliver, les arrivées de clients et les temps de service semblent caractéristiques de processus de Poisson. L'agence peut donc être vue comme un système M/M/1, avec λ = 1/6 (client par minute) et µ = 1/5 (client par minute). Il s'ensuit: ρ = 5/6 et
LS
=
WS
=
ρ = 5 clients 1− ρ LS
λ
= 30 minutes .
Gulliver juge que ces 30 minutes passées (en moyenne) par chaque client dans le système sont inacceptablement longues et envisage différentes façons de remédier au problème. Option a. Gulliver pourrait engager un second employé de qualifications similaires à celles de l'employé actuel et laisser chaque client s'adresser au premier employé disponible. Option b. Dans cette variante de l'option a, l'employé actuel (qui se tr ouve être un Géant) se limiterait à servir les clients Géants et Gulliver engagerait un Nain pour servir les clients Nains. Cette option paraît raisonnable dans la mesure où la clientèle de l'agence compte 50% de Géants et 50% de Nains, et où les clients pourraient y voir une personnalisation du service offert. Option c. Gulliver envisage également la possibilité de licencier son employé et de le remplacer par un employé plus qualifié, deux fois plus rapide que l’employé actuel. Comparons les trois options considérées sur base du temps moyen passé par les clients dans l'agence. Option a. Selon cette option, l'agence deviendrait un système M/M/2, avec
λ = 1/6, µ = 1/5
et ρ = 5/6. En utilisant la relation (14), on obtient 17 p =1 7 0
≈ 0,4. En substituant dans (15), on en déduit que L q ≈ 0,175, et finalement L s ≈ 1 client et Ws ≈ 6 minutes. Le dédoublement des employés entraîne donc une diminution et donc po
spectaculaire du temps moyen passé par les clients dans l'agence, par un facteur de 5 environ.
69
Option b. Selon cette option, l'agence va se comporter comme une paire de systèmes M/M/1 indépendants. Analysons un de ces systèmes, disons celui des Géants (celui des Nains est identique). On peut supposer que le processus d'arrivée des Géants reste poissonnien avec LS
=
ρ = 1− ρ LS
λ
=
5 7
≈
0,7 clients.
60
≈ 8,6 minutes. 7 Remarquons que L s est le nombre moyen de clients dans la section ‘Géants’: au total, il y a 10 donc en moyenne ≈ 1,4 clients (Géants ou Nains) présents dans l'agence. Chacun de ces 7 WS
=
λ = 1/12 et µ = 1/5. Donc, pour ce système, ρ = 5/12 et
clients séjourne en moyenne 8,6 minutes dans l'agence. En terme de temps passé dans l'agence, l'option a est donc préférable à l'option b. Il s'agit là d'un principe généralement valide dans les systèmes à serveurs multiples: il est plus efficace de constituer une file d'attente unique et d'orienter chaque client vers le premier serveur disponible que de constituer des files distinctes pour chaque serveur. Option c. On retrouve ici un seul système M/M/1, comme dans la situation initiale, mais à présent λ = 1/6 et µ = 2/5, soit ρ = 5/12. On calcule: 5 ρ LS = = ≈ 0,7 clients. 1− ρ 7 WS
=
LS
λ
=
30 7
≈
4,3 minutes.
Cette dernière option est donc la meilleure des trois. tr ois. La supériorité de l'option c sur l'option a peut être justifiée intuitivement. En effet, les taux de service dans ces deux options sont toujours égaux sauf lorsqu'il y a exactement un client présent dans le système; dans ce dernier cas (qui se présente assez souvent
− calculez p1
pour vous en persuader), l'option c est plus efficace. Par contre, l'amplitude du gain de performance réalisé par l'option c, relativement à la situation intiale, pose un plus grand défi à l'intuition: comment une diminution du temps de service moyen par un facteur de 2 peut-elle peut-elle entraîner une diminution du temps temps de séjour des clients par un facteur de 7 ?? Cette conclusion surprenante souligne la nécessité d'utiliser des modèles mathématiques précis pour l'analyse des systèmes stochastiques: trop souvent, le sens commun s’y révèle en effet mauvais juge !
70
Références. W. Feller, An Introduction to Probability Theory and its Applications, Vol. 1, Wiley & Sons, 1950. W. Feller, An Introduction to Probability Theory and its Applications, Vol. 2, Wiley & Sons, 1966. J.A. Fitzimmons and R.S. Sullivan, Service Operations Management , McGraw-Hill, McGraw-Hill , 1982. D.P. Heyman and M.J. Sobel, Stochastic Models in Operations Research , Vol. 1, McGraw Hill, 1982. S.M. Ross, Introduction to Probability Models , Academic Press, 1989. H.A. Taha, Operations Research: An Introduction (5ème éd.), McMillan Publishing Company, 1992.