OperationalResearch.org

Topics

← Back to Queueing

Simple Markovian Queueing Models

2.1 Birth–Death Processes

Concept: A birth-death process is a continuous-time Markov process where transitions only occur between neighboring states:

  • "Birth" (arrival): nn+1n \rightarrow n + 1 with rate λn\lambda_n
  • "Death" (service completion): nn1n \rightarrow n - 1 with rate μn\mu_n

Steady-state probabilities: Let PnP_n be the probability of nn customers in the system. The steady-state condition is:

λnPn=μn+1Pn+1\lambda_n P_n = \mu_{n+1} P_{n+1}

By recursion:

Pn=P0k=0n1λkμk+1P_n = P_0 \prod_{k=0}^{n-1} \frac{\lambda_k}{\mu_{k+1}}

Real-life Example: Hospital ICU beds. Patients arrive (birth), and after treatment, leave (death). Bed availability and service time determine the flow.

2.2 Single-Server Queues (M/M/1)

  • Assumptions:

    • Poisson arrival: λ\lambda
    • Exponential service: μ\mu
    • Single server, infinite queue, FCFS discipline

Key results (for $\rho = \frac{\lambda}{\mu} < 1$):

  • L=ρ1ρL = \frac{\rho}{1 - \rho}
  • Lq=ρ21ρL_q = \frac{\rho^2}{1 - \rho}
  • W=1μλW = \frac{1}{\mu - \lambda}
  • Wq=λμ(μλ)W_q = \frac{\lambda}{\mu(\mu - \lambda)}

Real-life Example: ATM kiosk with a single machine. Customers arrive randomly and are served one by one.

2.3 Multiserver Queues (M/M/c)

  • Assumptions:

    • cc servers
    • Same arrival and service assumptions as M/M/1

Utilization:

ρ=λcμ\rho = \frac{\lambda}{c\mu}

Let:

P0=[n=0c1(λ/μ)nn!+(λ/μ)cc!11ρ]1P_0 = \left[ \sum_{n=0}^{c-1} \frac{(\lambda/\mu)^n}{n!} + \frac{(\lambda/\mu)^c}{c!} \cdot \frac{1}{1 - \rho} \right]^{-1}

Then:

  • Lq=P0(λ/μ)cρc!(1ρ)2L_q = \frac{P_0 (\lambda/\mu)^c \cdot \rho}{c!(1 - \rho)^2}
  • Wq=LqλW_q = \frac{L_q}{\lambda}

Real-life Example: Call centers with multiple agents answering customer calls simultaneously.

2.4 Choosing the Number of Servers

  • Trade-off between cost of servers and customer waiting time
  • Objective: minimize total cost

Total Cost Function:

C=Csc+CwLqC = C_s \cdot c + C_w \cdot L_q

Where:

  • CsC_s = cost per server per unit time
  • CwC_w = cost per customer waiting

Real-life Example: Bank managers determining the number of tellers needed to avoid excessive queues during peak hours.

2.5 Queues with Truncation (M/M/c/K)

  • System capacity is limited to K customers (includes customers in service + queue)
  • New arrivals are blocked or lost when system is full

Probability of blocking (Erlang B formula):

PK=(λ/μ)KK!n=0K(λ/μ)nn!P_K = \frac{ \frac{(\lambda/\mu)^K}{K!} }{ \sum_{n=0}^K \frac{(\lambda/\mu)^n}{n!} }

Real-life Example: Parking lot with fixed capacity—new vehicles are turned away when full.

2.6 Erlang’s Loss Formula (M/M/c/c)

  • Also called Erlang B system
  • No queue, only cc servers
  • New arrivals are lost if all servers are busy

Blocking probability (Erlang B):

B(c,ρ)=ρcc!n=0cρnn!B(c, \rho) = \frac{ \frac{\rho^c}{c!} }{ \sum_{n=0}^c \frac{\rho^n}{n!} }

Real-life Example: Telecommunication switch circuits—calls are dropped if all circuits are engaged.

2.7 Queues with Unlimited Service (M/M/∞)

  • Infinite number of servers
  • No waiting; every arrival is instantly served

Distribution: Poisson with mean λ/μ\lambda/\mu

Pn=(λ/μ)neλ/μn!P_n = \frac{(\lambda/\mu)^n e^{-\lambda/\mu}}{n!}

Real-life Example: Online web servers where each user session is handled by its own virtual server (cloud-based architecture).

2.8 Finite-Source Queues

  • Population of potential customers is limited
  • Arrival rate depends on the number of customers not currently in system

Let population = NN

  • λn=(Nn)λ\lambda_n = (N - n) \cdot \lambda
  • μn=nμ\mu_n = n \cdot \mu (if $n \le c$)

Real-life Example: Maintenance system where a fixed number of machines can fail and request repair from a limited pool of repairmen.

2.9 State-Dependent Service

  • Service rate changes with the number of customers in the system:

    • μn\mu_n varies with nn

Examples:

  • Faster service when queue is long
  • Slower service due to congestion

Real-life Example: Customer support where more agents join calls when wait times grow.

2.10 Queues with Impatience

  • Reneging: customer leaves after waiting too long
  • Balking: customer decides not to enter upon seeing queue
  • Jockeying: switching between lines

Models include:

  • Reneging probability functions
  • Average time before a customer leaves

Real-life Example: Retail stores—shoppers abandoning carts if checkout lines are too long.

2.11 Transient Behavior

  • Analyzes system behavior before it reaches steady state
  • Uses Kolmogorov forward equations (differential equations)
dPn(t)dt=λn1Pn1(t)+μn+1Pn+1(t)(λn+μn)Pn(t)\frac{dP_n(t)}{dt} = \lambda_{n-1}P_{n-1}(t) + \mu_{n+1}P_{n+1}(t) - (\lambda_n + \mu_n)P_n(t)

Real-life Example: Airport security during opening hours—understanding how queues evolve in the first few minutes.

2.12 Busy-Period Analysis

  • Time from when the server becomes busy until it is idle again

For M/M/1:

  • Expected busy period = 1μλ\frac{1}{\mu - \lambda}

Real-life Example: Coffee shop—analyzing the duration of continuous customer flow from the first arrival to the moment the barista gets a break.

ORA.ai

🤖

Hello! I'm your AI assistant

Ask me anything about Operations Research, algorithms, or optimization!