Tutorials › Stochastic Processes › Deriving the Erlang B Loss Formula

Multi-Server and Finite Queues · Tutorial 661 of 994

Deriving the Erlang B Loss Formula

Derive the Erlang B formula from the stationary distribution of a finite-capacity loss system, and see how offered traffic determines blocking and carried traffic.

Advanced 11 min read

What You'll Learn

  • Specify the occupancy process and its birth and death rates in an M/M/c/c system.
  • Derive and verify the stationary occupancy probabilities.
  • Obtain the Erlang B formula and state the conditions for interpreting it as blocking probability.
  • Interpret offered traffic as the arrival rate times mean service time.
  • Relate blocking probability to carried traffic and mean occupied servers.
  • Identify why the stationary weights include a factorial.

Loss Systems and Offered Traffic

In an M/M/c/c system, \(c\) servers provide service, but there is no waiting room. An arrival that finds all servers occupied is blocked and leaves immediately. The central quantity is the probability of this event in steady state. The Erlang B formula expresses it using the offered traffic and the number of servers, with no need to calculate a waiting-time distribution.

Let \(c\ge 1\) be an integer, let arrivals form a Poisson process of rate \(\lambda>0\), and let each occupied server have independent exponential service times of rate \(\mu>0\). The state \(X_t\) is the number of busy servers, so its state space is \(S=\{0,1,\ldots,c\}\). On a probability space \((\Omega,\mathcal F,\mathbb P)\), take the natural filtration \((\mathcal F_t)_{t\ge0}\) containing the arrival and service history up to time \(t\). The occupancy process is a continuous-time Markov chain: when \(X_t=n<c\), an arrival increases the state to \(n+1\) at rate \(\lambda\); when \(X_t=n>0\), a service completion decreases it to \(n-1\) at rate \(n\mu\). The latter rate is \(n\mu\), not \(\mu\), because \(n\) independent servers are busy.

The offered traffic is \(a=\lambda/\mu\). It is dimensionless: \(\lambda\) has units of arrivals per unit time and \(1/\mu\) is the mean service time. The parameter \(a\) measures the amount of traffic offered to the system, whether or not the system has room to accept it.

Definition: For \(c\ge1\) servers and offered traffic \(a>0\), the Erlang B blocking formula is $$ B(c,a)=\frac{a^c/c!}{\displaystyle\sum_{n=0}^{c}a^n/n!}. $$ We will derive this expression as the steady-state probability that all \(c\) servers are busy. Its interpretation as the probability an arrival is blocked uses the Poisson-arrivals-see-time-averages (PASTA) result.

Stationary Occupancy and the Formula

The generator \(Q=(q_{ij})\) has off-diagonal entries equal to the transition rates and diagonal entries chosen so each row sums to zero. In particular, \(q_{n,n+1}=\lambda\) for \(n<c\), and \(q_{n,n-1}=n\mu\) for \(n>0\). There are no transitions beyond states \(0\) and \(c\): full capacity suppresses arrivals that would increase occupancy.

Theorem (Erlang B from stationary occupancy): Under the assumptions above, the occupancy chain has stationary probabilities $$ \pi_n=\frac{a^n/n!}{\displaystyle\sum_{k=0}^{c}a^k/k!},\qquad 0\le n\le c. $$ Consequently, its stationary probability of being full is \(\pi_c=B(c,a)\). Since the arrival process is Poisson and independent of service, PASTA implies that the long-run fraction of arrivals that are blocked is also \(B(c,a)\).

Proof. We first derive the stationary probabilities. For a finite-state continuous-time Markov chain, a row vector \(\pi\) is stationary if it is a probability vector and satisfies \(\pi Q=0\). At state \(0\), the balance equation is \(\lambda\pi_0=\mu\pi_1\). At an interior state \(n\), where \(1\le n<c\), it is $$ \lambda\pi_{n-1}+(n+1)\mu\pi_{n+1}=(\lambda+n\mu)\pi_n. $$ The equation at state \(c\) is \(\lambda\pi_{c-1}=c\mu\pi_c\). The boundary equation at \(0\), and then the interior equations in order, give the adjacent-state relations \(\lambda\pi_{n-1}=n\mu\pi_n\). Indeed, if this relation holds for \(n\), substituting it into the interior equation yields \((n+1)\mu\pi_{n+1}=\lambda\pi_n\), which is the relation for \(n+1\). For \(c=1\), the boundary equation at \(0\) already gives the sole adjacent-state relation. Thus, for every \(1\le n\le c\), $$ \pi_n=\frac{\lambda}{n\mu}\pi_{n-1}=\frac{a}{n}\pi_{n-1}, \qquad \pi_n=\frac{a^n}{n!}\pi_0. $$ Normalization \(\sum_{n=0}^c\pi_n=1\) then forces \(\pi_0=(\sum_{k=0}^c a^k/k!)^{-1}\), giving the stated formula. These probabilities do satisfy \(\pi Q=0\): the adjacent-state relations cancel the upward and downward flows at each boundary and interior state, so every balance equation holds. Their entries are nonnegative and sum to one. Conversely, every stationary probability vector must satisfy the boundary and interior equations just used and hence the same recurrence and normalization; this proves uniqueness. The rate matrix describes a finite irreducible chain because \(\lambda,\mu>0\) permit movement between every pair of occupancy states through adjacent states, so this stationary vector is the steady-state occupancy distribution.

It remains to connect fullness to arrival blocking. We use the standard PASTA result: for a system in stationarity whose state just before time \(t\) is determined by the history up to \(t\), an independent Poisson arrival process of constant rate sees the same state distribution at its arrival epochs as the time-stationary distribution. This result applies here: the Poisson input is independent of service, and an arrival is blocked exactly when the pre-arrival occupancy is \(c\). Therefore the probability an arrival is blocked equals \(\pi_c\). Substituting \(n=c\) in the stationary formula gives \(B(c,a)\). \(\square\)

The stationary weights have a useful interpretation. Each added busy server contributes a factor \(a\) from the arrival-to-service rate ratio, while the factor \(1/n\) in the recurrence accounts for the \(n\) possible service completions from occupancy \(n\). Repeated multiplication produces \(a^n/n!\). The denominator normalizes the weights across the only possible occupancy states.

Worked Calculations

Worked Example: Two Servers with Light Offered Traffic

Take \(c=2\), arrival rate \(\lambda=1\), and service rate \(\mu=2\). First check the generator, with states ordered \(0,1,2\): $$ Q=\begin{bmatrix}-1&1&0\\2&-3&1\\0&4&-4\end{bmatrix}. $$ The row sums are \(-1+1+0=0\), \(2-3+1=0\), and \(0+4-4=0\), as required. The offered traffic is \(a=\lambda/\mu=1/2\). The unnormalized stationary weights are $$ 1,\qquad \frac12,\qquad \frac{(1/2)^2}{2!}=\frac18. $$ Their sum is \(1+\tfrac12+\tfrac18=\tfrac{13}{8}\). Dividing by this sum gives $$ \pi_0=\frac8{13},\qquad \pi_1=\frac4{13},\qquad \pi_2=\frac1{13}. $$ Thus \(B(2,1/2)=1/13\). Check: the probabilities sum to \((8+4+1)/13=1\), and the top-state balance is \(\lambda\pi_1=1\cdot4/13=4/13=2\mu\pi_2=4\cdot1/13\). The blocking probability is small here because the offered traffic is light relative to the two-server capacity.

Worked Example: Three Servers and Offered Traffic Two

Take \(c=3\), \(\lambda=4\), and \(\mu=2\), so \(a=4/2=2\). The generator, in states \(0,1,2,3\), is $$ Q=\begin{bmatrix} -4&4&0&0\\ 2&-6&4&0\\ 0&4&-8&4\\ 0&0&6&-6 \end{bmatrix}. $$ Its row sums are \(-4+4=0\), \(2-6+4=0\), \(4-8+4=0\), and \(6-6=0\). The unnormalized weights are \(1\), \(2\), \(2^2/2!=2\), and \(2^3/3!=8/6=4/3\). Their sum is \(1+2+2+4/3=19/3\). Hence $$ (\pi_0,\pi_1,\pi_2,\pi_3) =\left(\frac3{19},\frac6{19},\frac6{19},\frac4{19}\right), \qquad B(3,2)=\frac4{19}. $$ Check: the entries sum to \((3+6+6+4)/19=1\). At the full state, the upward flow into state \(3\) is \(\lambda\pi_2=4\cdot6/19=24/19\), and the downward flow out is \(3\mu\pi_3=6\cdot4/19=24/19\). The formula therefore agrees with the boundary balance.

Worked Example: Blocking, Carried Traffic, and Busy Servers

Take \(c=2\), \(\lambda=6\), and \(\mu=3\). The generator is $$ Q=\begin{bmatrix}-6&6&0\\3&-9&6\\0&6&-6\end{bmatrix}. $$ Its row sums are \(-6+6=0\), \(3-9+6=0\), and \(6-6=0\). Here \(a=6/3=2\). The weights are \(1\), \(2\), and \(2^2/2!=2\), with sum \(5\), so \((\pi_0,\pi_1,\pi_2)=(1/5,2/5,2/5)\) and \(B(2,2)=2/5\).

The accepted fraction is \(1-B=1-2/5=3/5\), so the carried arrival rate is \(\lambda(1-B)=6\cdot3/5=18/5\). Independently, the mean number of busy servers is $$ \mathbb E[X_t]=0\cdot\frac15+1\cdot\frac25+2\cdot\frac25=\frac65. $$ The departure rate is \(\mu\mathbb E[X_t]=3\cdot6/5=18/5\), matching the carried arrival rate. Check: the occupancy probabilities sum to \(1/5+2/5+2/5=1\), and both rate calculations give \(18/5\). The offered rate is \(6\), but only \(18/5\) arrivals per unit time are carried in steady state; the difference is the blocked rate \(6\cdot2/5=12/5\).

What Offered Traffic Does—and Does Not—Measure

The parameter \(a=\lambda/\mu\) combines arrival rate and service speed. If both rates are multiplied by the same positive factor, then \(a\) and \(B(c,a)\) stay unchanged, although the system completes its activity faster in real time. The blocking formula depends on the offered traffic and server count, not on the units used to measure time.

Offered traffic is not the mean number of busy servers in a loss system. The stationary mean occupancy is $$ \mathbb E[X_t]=\sum_{n=0}^c n\pi_n, $$ which reflects traffic that is actually admitted. Since some offered arrivals are blocked, this mean need not equal \(a\). In the last example, \(a=2\) but the mean occupancy is \(6/5\). The identity between carried arrivals and departures follows from stationarity: each admitted arrival eventually completes service, and the long-run departure rate is \(\mu\mathbb E[X_t]\).

Common mistake: omitting the factorial. For \(c=3\) and \(a=2\), using \(a^n\) as the stationary weights gives the incorrect list \(1,2,4,8\), and the incorrect blocking value \(8/(1+2+4+8)=8/15\). The death rate from state \(n\) is \(n\mu\), so the correct recurrence divides by \(n\) at each step. The correct weights are \(1,2,2,4/3\), and the correct blocking value is \((4/3)/(1+2+2+4/3)=4/19\). The error is not a different normalization: it is a wrong transition rate and therefore a wrong stationary distribution.

A second distinction is between being full at a randomly chosen time and being blocked at an arrival. These probabilities agree here because arrivals are Poisson and PASTA applies. That agreement depends on the arrival assumptions; it should not be transferred without justification to an arrival process that systematically concentrates arrivals in particular system states.

Check Your Understanding

For each question, use the occupancy weights \(a^n/n!\) and verify any probability vector by checking its sum.

  1. For \(c=1\) and \(a=3/2\), calculate the stationary probabilities and the Erlang B blocking probability.
  2. For \(c=2\), explain why the death rate from occupancy state \(2\) is \(2\mu\), not \(\mu\).
  3. With \(c=2\), \(\lambda=2\), and \(\mu=1\), compute the three unnormalized weights, their sum, and the blocking probability.
  4. In a stationary M/M/c/c system, express the carried arrival rate in terms of \(\lambda\) and \(B(c,a)\). What departure-rate expression must agree with it?
  5. If \(\lambda\) and \(\mu\) are both multiplied by the same positive constant, which of \(a\) and \(B(c,a)\) change? Explain.