Jump to content

M/M/c queue: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Undid revision 583767994 by Shuroo (talk) remove link as this link redirects to this section
m use proper minus signs and italics
Line 3: Line 3:
==Model definition==
==Model definition==


An M/M/c queue is a stochastic process whose [[state space]] is the set {0,1,2,3,...} where the value corresponds to the number of customers in the system, including any currently in service.
An M/M/c queue is a stochastic process whose [[state space]] is the set {0, 1, 2, 3, ...} where the value corresponds to the number of customers in the system, including any currently in service.


* Arrivals occur at rate λ according to a [[Poisson process]] and move the process from state ''i'' to ''i'' + 1.
* Arrivals occur at rate ''λ'' according to a [[Poisson process]] and move the process from state ''i'' to ''i''+1.
* Service times have an [[exponential distribution]] with parameter μ in the M/M/c queue.
* Service times have an [[exponential distribution]] with parameter ''μ'' in the M/M/c queue.
* There are c servers, which serve from the front of the queue. If there are less than c jobs, some of the servers will be idle. If there are more than c jobs, the jobs queue in a buffer.
* There are ''c'' servers, which serve from the front of the queue. If there are less than ''c'' jobs, some of the servers will be idle. If there are more than ''c'' jobs, the jobs queue in a buffer.
* The buffer is of infinite size, so there is no limit on the number of customers it can contain.
* The buffer is of infinite size, so there is no limit on the number of customers it can contain.


Line 23: Line 23:
\end{pmatrix}</math>
\end{pmatrix}</math>


on the state space {0,1,2,3,...}. The model is a type of [[birth–death process]]. We write ''ρ''&nbsp;=&nbsp;''λ''/(''c&nbsp;μ'') for the server utilization and require ρ&nbsp;<&nbsp;1 for the queue to be stable. ρ represents the average proportion of time which each of the servers is occupied (assuming jobs finding more than one vacant server choose their servers randomly).
on the state space {0, 1, 2, 3, ...}. The model is a type of [[birth–death process]]. We write ''ρ''&nbsp;=&nbsp;''λ''/(''c&nbsp;μ'') for the server utilization and require ''ρ''&nbsp;&lt;&nbsp;1 for the queue to be stable. ''ρ'' represents the average proportion of time which each of the servers is occupied (assuming jobs finding more than one vacant server choose their servers randomly).


The [[state space]] diagram for this chain is as below.
The [[state space]] diagram for this chain is as below.
Line 33: Line 33:
===Number of customers in the system===
===Number of customers in the system===


If the traffic intensity is greater than one then the queue will grow without bound but if server utilization ''ρ''&nbsp;<&nbsp;1 then the system has a stationary distribution with [[probability mass function]]<ref name="kleinrock">{{cite book | title = Queueing Systems Volume 1: Theory | first1=Leonard | last1=Kleinrock | authorlink = Leonard Kleinrock | isbn = 0471491101 | year=1975 | pages=101–103,404}}</ref><ref>{{cite doi | 10.1002/0471200581.ch6 }}</ref>
If the traffic intensity is greater than one then the queue will grow without bound but if server utilization ''ρ''&nbsp;&lt;&nbsp;1 then the system has a stationary distribution with [[probability mass function]]<ref name="kleinrock">{{cite book | title = Queueing Systems Volume 1: Theory | first1=Leonard | last1=Kleinrock | authorlink = Leonard Kleinrock | isbn = 0471491101 | year=1975 | pages=101–103,404}}</ref><ref>{{cite doi | 10.1002/0471200581.ch6 }}</ref>
:: <math>\pi_0 = \left[\sum_{k=0}^{c-1}\frac{(c\rho)^k}{k!} + \frac{(c\rho)^c}{c!}\frac{1}{1-\rho}\right]^{-1}</math>
:: <math>\pi_0 = \left[\sum_{k=0}^{c-1}\frac{(c\rho)^k}{k!} + \frac{(c\rho)^c}{c!}\frac{1}{1-\rho}\right]^{-1}</math>
:: <math>\pi_k = \begin{cases}
:: <math>\pi_k = \begin{cases}
Line 42: Line 42:
The probability that an arriving customer is forced to join the queue (all servers are occupied) is given by
The probability that an arriving customer is forced to join the queue (all servers are occupied) is given by
::<math>\text{ C}(c,\lambda/\mu)=\frac{\left( \frac{(c\rho)^c}{c!}\right) \left( \frac{1}{1-\rho} \right)}{\sum_{k=0}^{c-1} \frac{(c\rho)^k}{k!} + \left( \frac{(c\rho)^c}{c!} \right) \left( \frac{1}{1-\rho} \right)}</math>
::<math>\text{ C}(c,\lambda/\mu)=\frac{\left( \frac{(c\rho)^c}{c!}\right) \left( \frac{1}{1-\rho} \right)}{\sum_{k=0}^{c-1} \frac{(c\rho)^k}{k!} + \left( \frac{(c\rho)^c}{c!} \right) \left( \frac{1}{1-\rho} \right)}</math>
which is referred to as [[Erlang's C formula]] and is often denoted C(''c'',''λ''/''μ'') or E<sub>2,''c''</sub>(''λ''/''μ'').<ref name="kleinrock" /> The average number of customers in the system (in service and in the queue) is given by<ref name="barbeau">{{cite book | title = Principles of Ad-hoc Networking | page = 42 | first1=Michel |last1=Barbeau | first2= Evangelos |last2 =Kranakis | publisher = John Wiley & Sons| year = 2007 | isbn=0470032901}}</ref>
which is referred to as [[Erlang's C formula]] and is often denoted C(''c'', ''λ''/''μ'') or E<sub>2,''c''</sub>(''λ''/''μ'').<ref name="kleinrock" /> The average number of customers in the system (in service and in the queue) is given by<ref name="barbeau">{{cite book | title = Principles of Ad-hoc Networking | page = 42 | first1=Michel |last1=Barbeau | first2= Evangelos |last2 =Kranakis | publisher = John Wiley & Sons| year = 2007 | isbn=0470032901}}</ref>
::<math>\frac{\rho}{1-\rho} \text{ C}(c,\lambda/\mu) + c \rho.</math>
::<math>\frac{\rho}{1-\rho} \text{ C}(c,\lambda/\mu) + c \rho.</math>


Line 48: Line 48:


The busy period of the M/M/c queue can either refer to
The busy period of the M/M/c queue can either refer to
*full busy period: the time period between an arrival which finds c&nbsp;-&nbsp;1 customers in the system until a departure which leaves the system with c&nbsp;-&nbsp;1 customers
*full busy period: the time period between an arrival which finds ''c''−1 customers in the system until a departure which leaves the system with ''c''−1 customers
*partial busy period: the time period between an arrival which finds the system empty until a departure which leaves the system again empty.<ref>{{cite jstor|3215752}}</ref>
*partial busy period: the time period between an arrival which finds the system empty until a departure which leaves the system again empty.<ref>{{cite jstor|3215752}}</ref>


Line 56: Line 56:
(k-1) \text{ jobs in the system at time } t
(k-1) \text{ jobs in the system at time } t
\end{align}\right]</math>
\end{align}\right]</math>
and η<sub>''k''</sub>(''s'') for the [[Laplace–Stieltjes transform]] of the distribution of T<sub>''k''</sub>. Then<ref name="omahen" />
and ''η''<sub>''k''</sub>(''s'') for the [[Laplace–Stieltjes transform]] of the distribution of ''T''<sub>''k''</sub>. Then<ref name="omahen" />
# For ''k''&nbsp;>&nbsp;''c'', T<sub>''k''</sub> has the same distribution as T<sub>c</sub>.
# For ''k''&nbsp;&gt;&nbsp;''c'', ''T''<sub>''k''</sub> has the same distribution as ''T''<sub>''c''</sub>.
# For ''k''&nbsp;=&nbsp;''c'',
# For ''k''&nbsp;=&nbsp;''c'',
::<math>\eta_c(s) = \frac{c \mu}{k \mu + s + \lambda-\lambda \eta_{c}(s)}.</math>
::<math>\eta_c(s) = \frac{c \mu}{k \mu + s + \lambda-\lambda \eta_{c}(s)}.</math>
# For ''k''&nbsp;<&nbsp;''c'',
# For ''k''&nbsp;&lt;&nbsp;''c'',
::<math>\eta_k(s) = \frac{k \mu}{k \mu + s + \lambda-\lambda \eta_{k+1}(s)}.</math>
::<math>\eta_k(s) = \frac{k \mu}{k \mu + s + \lambda-\lambda \eta_{k+1}(s)}.</math>


Line 78: Line 78:
==Finite capacity==
==Finite capacity==


In an M/M/''c''/''K'' queue (sometimes known as the Erlang–A model<ref name="gautam" />{{rp|495}}) only ''K'' customers can queue at any one time (including those in service<ref name="kleinrock" />). Any further arrivals to the queue are considered "lost". We assume that K&nbsp;≥&nbsp;c. The model has transition rate matrix
In an M/M/''c''/''K'' queue (sometimes known as the Erlang–A model<ref name="gautam" />{{rp|495}}) only ''K'' customers can queue at any one time (including those in service<ref name="kleinrock" />). Any further arrivals to the queue are considered "lost". We assume that ''K''&nbsp;≥&nbsp;''c''. The model has transition rate matrix
:<math>Q=\begin{pmatrix}
:<math>Q=\begin{pmatrix}
-\lambda & \lambda \\
-\lambda & \lambda \\
Line 90: Line 90:
&&&&&&&c\mu & -(c\mu) \\
&&&&&&&c\mu & -(c\mu) \\
\end{pmatrix}</math>
\end{pmatrix}</math>
on the state space {0,1,2,...,c,...,K}. In the case where ''c''&nbsp;=&nbsp;''K'', the M/M/''c''/''c'' queue is also known as the Erlang–B model.<ref name="gautam" />{{rp|495}}
on the state space {0, 1, 2, ..., ''c'', ..., ''K''}. In the case where ''c''&nbsp;=&nbsp;''K'', the M/M/''c''/''c'' queue is also known as the Erlang–B model.<ref name="gautam" />{{rp|495}}


===Transient analysis===
===Transient analysis===

Revision as of 19:20, 30 December 2013

In queueing theory, a discipline within the mathematical theory of probability, the M/M/c queue (or Erlang–C model[1]: 495 ) is a multi-server queueing model.[2] In Kendall's notation it describes a system where arrivals form a single queue and are governed by a Poisson process, there are c servers and job service times are exponentially distributed.[3] It is a generalisation of the M/M/1 queue which considers only a single server. The model with infinitely many servers is the M/M/∞ queue.

Model definition

An M/M/c queue is a stochastic process whose state space is the set {0, 1, 2, 3, ...} where the value corresponds to the number of customers in the system, including any currently in service.

  • Arrivals occur at rate λ according to a Poisson process and move the process from state i to i+1.
  • Service times have an exponential distribution with parameter μ in the M/M/c queue.
  • There are c servers, which serve from the front of the queue. If there are less than c jobs, some of the servers will be idle. If there are more than c jobs, the jobs queue in a buffer.
  • The buffer is of infinite size, so there is no limit on the number of customers it can contain.

The model can be described as a continuous time Markov chain with transition rate matrix

on the state space {0, 1, 2, 3, ...}. The model is a type of birth–death process. We write ρ = λ/(c μ) for the server utilization and require ρ < 1 for the queue to be stable. ρ represents the average proportion of time which each of the servers is occupied (assuming jobs finding more than one vacant server choose their servers randomly).

The state space diagram for this chain is as below.

Stationary analysis

Number of customers in the system

If the traffic intensity is greater than one then the queue will grow without bound but if server utilization ρ < 1 then the system has a stationary distribution with probability mass function[4][5]

The probability that an arriving customer is forced to join the queue (all servers are occupied) is given by

which is referred to as Erlang's C formula and is often denoted C(c, λ/μ) or E2,c(λ/μ).[4] The average number of customers in the system (in service and in the queue) is given by[6]

Busy period of server

The busy period of the M/M/c queue can either refer to

  • full busy period: the time period between an arrival which finds c−1 customers in the system until a departure which leaves the system with c−1 customers
  • partial busy period: the time period between an arrival which finds the system empty until a departure which leaves the system again empty.[7]

Write[8][9]

and ηk(s) for the Laplace–Stieltjes transform of the distribution of Tk. Then[8]

  1. For k > c, Tk has the same distribution as Tc.
  2. For k = c,
  1. For k < c,

Response time

The response time is the total amount of time a customer spends in both the queue and in service. The average response time is the same for all work conserving service disciplines and is[6]

Customers in first-come, first-served discipline

The customer either experiences an immediate exponential service, or must wait for k customers to be served before their own service, thus experiencing an Erlang distribution with shape parameter k + 1.[10]

Customers in processor sharing discipline

In a processor sharing queue the service capacity of the queue is split equally between the jobs in the queue. In the M/M/c queue this means that when there are c or fewer jobs in the system, each job is serviced at rate μ. However, when there are more than c jobs in the system the service rate of each job decreases and is where n is the number of jobs in the system. This means that arrivals after a job of interest can impact the service time of the job of interest. The Laplace–Stieltjes transform of the response time distribution has been shown to be a solution to a Volterra integral equation from which moments can be computed.[11] An approximation has been offered for the response time time distribution.[12][13]

Finite capacity

In an M/M/c/K queue (sometimes known as the Erlang–A model[1]: 495 ) only K customers can queue at any one time (including those in service[4]). Any further arrivals to the queue are considered "lost". We assume that K ≥ c. The model has transition rate matrix

on the state space {0, 1, 2, ..., c, ..., K}. In the case where c = K, the M/M/c/c queue is also known as the Erlang–B model.[1]: 495 

Transient analysis

See Takács for a transient solution[14] and Stadje for busy period results.[15]

Stationary analysis

Stationary probabilities are given by[16]

The average number of customers in the system is[16]

and number of average response time for a customer[16]

Heavy traffic limits

Writing X(t) for the number of customers in the system at time t, it can be shown that under three different conditions the process

converges to a diffusion process.[1]: 490 

  1. Fix μ and c, increase λ and scale by n = 1/(1 − ρ)2.
  2. Fix μ and ρ, increase λ and c, and scale by n = c.
  3. Fix as a constant β where

and increase λ and c using the scale n = c or n = 1/(1 − ρ)2. This case is called the Halfin–Whitt regime.[17]

See also

References

  1. ^ a b c d Gautam, Natarajan (2012). Analysis of Queues: Methods and Applications. CRC Press. ISBN 9781439806586.
  2. ^ Harrison, Peter; Patel, Naresh M. (1992). Performance Modelling of Communication Networks and Computer Architectures. Addison–Wesley. p. 173.
  3. ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1214/aoms/1177728975, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi=10.1214/aoms/1177728975 instead.
  4. ^ a b c Kleinrock, Leonard (1975). Queueing Systems Volume 1: Theory. pp. 101–103, 404. ISBN 0471491101.
  5. ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi: 10.1002/0471200581.ch6 , please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi= 10.1002/0471200581.ch6 instead.
  6. ^ a b Barbeau, Michel; Kranakis, Evangelos (2007). Principles of Ad-hoc Networking. John Wiley & Sons. p. 42. ISBN 0470032901.
  7. ^ Attention: This template ({{cite jstor}}) is deprecated. To cite the publication identified by jstor:3215752, please use {{cite journal}} with |jstor=3215752 instead.
  8. ^ a b Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1145/322063.322072, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi=10.1145/322063.322072 instead.
  9. ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1239/jap/1032438390, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi=10.1239/jap/1032438390 instead.
  10. ^ Iversen, Villy B. (June 20, 2001). "ITU/ITC Teletraffic Engineering Handbook" (PDF). Retrieved August 7, 2012.
  11. ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1080/15326349408807309, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi=10.1080/15326349408807309 instead.
  12. ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1007/BF01150417, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi=10.1007/BF01150417 instead.
  13. ^ Braband, Jens; Schassberger, Rolf (21-23). B. Walke and O. Spaniol (ed.). "Random Quantum Allocation: A New Approach to Waiting Time Distributions for M/M/N Processor Sharing Queues". Aachen: Springer: 130–142. ISBN 3540572015. {{cite journal}}: Check date values in: |date= and |year= / |date= mismatch (help); Cite journal requires |journal= (help); Unknown parameter |booktitle= ignored (help); Unknown parameter |month= ignored (help)
  14. ^ Takács, L. (1962). Introduction to the Theory of Queues. London: Oxford University Press. pp. 12–21.
  15. ^ Attention: This template ({{cite doi}}) is deprecated. To cite the publication identified by doi:10.1016/0304-4149(94)00032-O, please use {{cite journal}} (if it was published in a bona fide academic journal, otherwise {{cite report}} with |doi=10.1016/0304-4149(94)00032-O instead.
  16. ^ a b c Allen, Arnold O. (1990). Probability, Statistics, and Queueing Theory: With Computer Science Applications. Gulf Professional Publishing. pp. 679–680. ISBN 0120510510.
  17. ^ Attention: This template ({{cite jstor}}) is deprecated. To cite the publication identified by jstor:170115, please use {{cite journal}} with |jstor=170115 instead.