Ah, queuing theory!
It's fascinating how mathematical models can help us understand and
manage waiting lines. Let's delve into pure birth, pure death, and birth-death processes, and
then explore those specific M/M/c queue models and Little's formula.
Pure Birth Process
Imagine a system where new customers or entities arrive, but once they're in, they never leave.
This is the essence of a pure birth process. It's characterized by:
● Arrivals only: The state of the system (number of entities) increases only due to arrivals.
● Poisson arrivals: Typically, we assume that arrivals follow a Poisson process with a
constant rate \lambda_n when there are n entities in the system. Often, for simplicity,
\lambda_n = \lambda (constant arrival rate regardless of the number in the system).
Let P_n(t) be the probability of having n entities in the system at time t. The probability of one
arrival in a small interval \Delta t is approximately \lambda_n \Delta t, and the probability of no
arrival is approximately 1 - \lambda_n \Delta t.
The differential equations governing this process are:
\frac{dP_0(t)}{dt} = -\lambda_0 P_0(t)
\frac{dP_n(t)}{dt} = \lambda_{n-1} P_{n-1}(t) - \lambda_n P_n(t) \quad \text{for } n \ge 1
In the simple case where \lambda_n = \lambda, we can solve these equations to find the
time-dependent probabilities.
Pure Death Process
Now, consider the opposite scenario: entities are in the system, but no new ones arrive. The
system state decreases only due to departures or "deaths." Key characteristics include:
● Departures only: The number of entities decreases due to service completion or some
other form of departure.
● Exponential service times: Often, we assume that the time an entity spends in the
system (its "lifetime") follows an exponential distribution with a rate \mu_n when there are
n entities in the system. For simplicity, \mu_n = \mu (constant departure rate per entity).
The probability of one departure in a small interval \Delta t, given n entities, is approximately n
\mu_n \Delta t (if each entity has a departure rate of \mu_n). The probability of no departure is
approximately 1 - n \mu_n \Delta t.
The differential equations for a pure death process are:
\frac{dP_N(t)}{dt} = -N \mu_N P_N(t) \quad \text{where } N \text{ is the initial number}
\frac{dP_n(t)}{dt} = (n+1) \mu_{n+1} P_{n+1}(t) - n \mu_n P_n(t) \quad \text{for } 0 \le n < N
\frac{dP_0(t)}{dt} = \mu_1 P_1(t)
Again, with a constant departure rate per entity (\mu_n = \mu), these equations can be solved.
Birth-Death Process
The birth-death process combines both arrivals and departures. It's a fundamental model in
queuing theory and many other areas. The key assumptions are:
● Arrivals and Departures: The system state can increase by one (birth) or decrease by
one (death).
● Poisson Arrivals: Arrivals occur at a rate \lambda_n when there are n entities in the
system.
● Exponential Service Times: Service times are exponentially distributed, and the overall
departure rate from the system is n \mu_n when there are n entities.
The steady-state probabilities P_n (probability of having n entities in the system in the long run)
can be found by setting the time derivatives of the probability equations to zero. This gives us
the balance equations:
\lambda_0 P_0 = \mu_1 P_1
\lambda_n P_n + \mu_n P_n = \lambda_{n-1} P_{n-1} + \mu_{n+1} P_{n+1} \quad \text{for } n
\ge 1
These equations can be solved recursively to find P_n in terms of P_0, and then the condition
\sum_{n=0}^{\infty} P_n = 1 is used to find P_0.
Mathematical Models for M/M/c Queues
The notation M/M/c is a standard way to describe a queuing system using Kendall's notation:
● First M: Arrival process is Markovian (Poisson).
● Second M: Service time distribution is Markovian (exponential).
● c: Number of parallel servers.
Let \lambda be the arrival rate and \mu be the service rate per server. The traffic intensity is \rho
= \frac{\lambda}{c\mu}. For a stable system, we generally require \rho < 1.
M/M/1 Queue
This is the simplest case with a single server (c=1).
● Steady-state probability of n customers: P_n = (1 - \rho) \rho^n, where \rho =
\frac{\lambda}{\mu}.
● Average number of customers in the system (L): L = \frac{\rho}{1 - \rho} =
\frac{\lambda}{\mu - \lambda}.
● Average number of customers in the queue (L_q): L_q = \frac{\rho^2}{1 - \rho} =
\frac{\lambda^2}{\mu(\mu - \lambda)}.
● Average time spent in the system (W): W = \frac{1}{\mu - \lambda} = \frac{L}{\lambda}.
● Average time spent in the queue (W_q): W_q = \frac{\lambda}{\mu(\mu - \lambda)} =
\frac{L_q}{\lambda}.
M/M/∞ Queue
Here, there are infinitely many servers, so no customer ever has to wait.
● Steady-state probability of n customers: P_n = \frac{e^{-\lambda/\mu}
(\lambda/\mu)^n}{n!} = \frac{e^{-\rho} \rho^n}{n!}, which follows a Poisson distribution with
mean \rho = \frac{\lambda}{\mu}.
● Average number of customers in the system (L): L = \rho = \frac{\lambda}{\mu}.
● Average number of customers in the queue (L_q): L_q = 0 (since there are always
servers available).
● Average time spent in the system (W): W = \frac{1}{\mu}.
● Average time spent in the queue (W_q): W_q = 0.
M/M/m Queue
This system has m parallel servers. A customer arriving finds a server free if there is one;
otherwise, they join a single queue.
● Steady-state probability P_0 (no customers in the system): P_0 = \left[
\sum_{n=0}^{m-1} \frac{(\lambda/\mu)^n}{n!} + \frac{(\lambda/\mu)^m}{m!} \frac{1}{1 -
\lambda/(m\mu)} \right]^{-1}, \quad \text{where } \lambda < m\mu
● Steady-state probability of n customers (P_n): P_n = \begin{cases}
\frac{(\lambda/\mu)^n}{n!} P_0 & \text{for } 0 \le n \le m \\ \frac{(\lambda/\mu)^n}{m!
m^{n-m}} P_0 & \text{for } n \ge m \end{cases}
● Probability that an arriving customer has to wait (Erlang's C formula, C(m,
\lambda/\mu)): C(m, \lambda/\mu) = \frac{(\lambda/\mu)^m / m!}{ (\lambda/\mu)^m / m! +
(1 - \lambda/(m\mu)) \sum_{n=0}^{m-1} (\lambda/\mu)^n / n! }
● Average number of customers in the queue (L_q): L_q = C(m, \lambda/\mu)
\frac{\lambda/\mu}{m - \lambda/\mu} = C(m, \rho) \frac{\rho}{1 - \rho}, where \rho =
\lambda/(m\mu).
● Average time spent in the queue (W_q): W_q = \frac{L_q}{\lambda}.
● Average number of customers in the system (L): L = L_q + \frac{\lambda}{\mu}.
● Average time spent in the system (W): W = W_q + \frac{1}{\mu} = \frac{L}{\lambda}.
M/M/1/K Queue
This is an M/M/1 queue with a finite capacity K. If a customer arrives and finds K customers
already in the system, they are blocked and do not enter.
● Steady-state probability of n customers: P_n = \begin{cases} \frac{(1 - \rho) \rho^n}{1 -
\rho^{K+1}} & \text{if } \rho \neq 1 \\ \frac{1}{K+1} & \text{if } \rho = 1 \end{cases}, \quad
\text{where } \rho = \frac{\lambda}{\mu}
● Probability of blocking (P_K): P_K = \frac{(1 - \rho) \rho^K}{1 - \rho^{K+1}} (if \rho \neq
1) or \frac{1}{K+1} (if \rho = 1).
● Effective arrival rate (\lambda_{eff}): \lambda_{eff} = \lambda (1 - P_K).
● Average number of customers in the system (L): L = \begin{cases} \frac{\rho (1 -
(K+1)\rho^K + K\rho^{K+1})}{(1 - \rho)(1 - \rho^{K+1})} & \text{if } \rho \neq 1 \\ \frac{K}{2}
& \text{if } \rho = 1 \end{cases}
● Average time spent in the system (W): W = \frac{L}{\lambda_{eff}}.
● Average number of customers in the queue (L_q): L_q = L - (1 - P_0), where P_0 =
\frac{1 - \rho}{1 - \rho^{K+1}} (if \rho \neq 1) or \frac{1}{K+1} (if \rho = 1).
● Average time spent in the queue (W_q): W_q = \frac{L_q}{\lambda_{eff}}.
M/M/m/m Queue
This is an m-server system with no waiting line. If all m servers are busy, arriving customers are
blocked and lost. This is also known as the Erlang B system.
● Steady-state probability of n customers (P_n): P_n = \frac{(\lambda/\mu)^n /
n!}{\sum_{i=0}^{m} (\lambda/\mu)^i / i!} \quad \text{for } 0 \le n \le m
● Probability of blocking (Erlang B formula, B(m, \lambda/\mu)): B(m, \lambda/\mu) =
\frac{(\lambda/\mu)^m / m!}{\sum_{i=0}^{m} (\lambda/\mu)^i / i!}
● Effective arrival rate (\lambda_{eff}): \lambda_{eff} = \lambda (1 - B(m, \lambda/\mu)).
● Average number of customers in the system (L): L = \sum_{n=0}^{m} n P_n =
\frac{(\lambda/\mu) (1 - B(m, \lambda/\mu))}{1 + (\lambda/\mu)/m \cdot B(m, \lambda/\mu)
\cdot m! \sum_{i=0}^{m-1} (\lambda/\mu)^i / i!} (This can be simplified). A more direct way
is L = \lambda_{eff} / \mu.
● Average time spent in the system (W): W = \frac{L}{\lambda_{eff}} = \frac{1}{\mu} (for
those who enter service).
● Average number of customers in the queue (L_q): L_q = 0.
● Average time spent in the queue (W_q): W_q = 0.
Little's Formula
Little's formula is a fundamental and remarkably simple relationship in queuing theory that holds
under very general conditions (it's not specific to M/M/c queues). It relates the average number
of customers in the system (L), the average arrival rate to the system (\lambda_{eff}), and the
average time a customer spends in the system (W):
L = \lambda_{eff} W
Similarly, for the queue itself:
L_q = \lambda_{eff} W_q
Here, \lambda_{eff} is the effective arrival rate of customers who actually enter the system
(which might be less than the total arrival rate \lambda in systems with blocking, like M/M/1/K
and M/M/m/m).
Little's formula provides a powerful way to find one of these average performance measures if
the other two are known or can be calculated. It's a cornerstone of queuing analysis and is
widely used in practice.
I hope this overview is helpful! Let me know if you have any specific questions about any of
these models or concepts.