# 16.22: Continuous-Time Queuing Chains

$$\newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}}$$

$$\newcommand{\id}{\mathrm{id}}$$ $$\newcommand{\Span}{\mathrm{span}}$$

( \newcommand{\kernel}{\mathrm{null}\,}\) $$\newcommand{\range}{\mathrm{range}\,}$$

$$\newcommand{\RealPart}{\mathrm{Re}}$$ $$\newcommand{\ImaginaryPart}{\mathrm{Im}}$$

$$\newcommand{\Argument}{\mathrm{Arg}}$$ $$\newcommand{\norm}[1]{\| #1 \|}$$

$$\newcommand{\inner}[2]{\langle #1, #2 \rangle}$$

$$\newcommand{\Span}{\mathrm{span}}$$

$$\newcommand{\id}{\mathrm{id}}$$

$$\newcommand{\Span}{\mathrm{span}}$$

$$\newcommand{\kernel}{\mathrm{null}\,}$$

$$\newcommand{\range}{\mathrm{range}\,}$$

$$\newcommand{\RealPart}{\mathrm{Re}}$$

$$\newcommand{\ImaginaryPart}{\mathrm{Im}}$$

$$\newcommand{\Argument}{\mathrm{Arg}}$$

$$\newcommand{\norm}[1]{\| #1 \|}$$

$$\newcommand{\inner}[2]{\langle #1, #2 \rangle}$$

$$\newcommand{\Span}{\mathrm{span}}$$ $$\newcommand{\AA}{\unicode[.8,0]{x212B}}$$

$$\newcommand{\vectorA}[1]{\vec{#1}} % arrow$$

$$\newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow$$

$$\newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vectorC}[1]{\textbf{#1}}$$

$$\newcommand{\vectorD}[1]{\overrightarrow{#1}}$$

$$\newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}}$$

$$\newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}}$$

$$\newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} }$$

$$\newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}}$$

$$\newcommand{\avec}{\mathbf a}$$ $$\newcommand{\bvec}{\mathbf b}$$ $$\newcommand{\cvec}{\mathbf c}$$ $$\newcommand{\dvec}{\mathbf d}$$ $$\newcommand{\dtil}{\widetilde{\mathbf d}}$$ $$\newcommand{\evec}{\mathbf e}$$ $$\newcommand{\fvec}{\mathbf f}$$ $$\newcommand{\nvec}{\mathbf n}$$ $$\newcommand{\pvec}{\mathbf p}$$ $$\newcommand{\qvec}{\mathbf q}$$ $$\newcommand{\svec}{\mathbf s}$$ $$\newcommand{\tvec}{\mathbf t}$$ $$\newcommand{\uvec}{\mathbf u}$$ $$\newcommand{\vvec}{\mathbf v}$$ $$\newcommand{\wvec}{\mathbf w}$$ $$\newcommand{\xvec}{\mathbf x}$$ $$\newcommand{\yvec}{\mathbf y}$$ $$\newcommand{\zvec}{\mathbf z}$$ $$\newcommand{\rvec}{\mathbf r}$$ $$\newcommand{\mvec}{\mathbf m}$$ $$\newcommand{\zerovec}{\mathbf 0}$$ $$\newcommand{\onevec}{\mathbf 1}$$ $$\newcommand{\real}{\mathbb R}$$ $$\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}$$ $$\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}$$ $$\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}$$ $$\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}$$ $$\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}$$ $$\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}$$ $$\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}$$ $$\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}$$ $$\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}$$ $$\newcommand{\laspan}[1]{\text{Span}\{#1\}}$$ $$\newcommand{\bcal}{\cal B}$$ $$\newcommand{\ccal}{\cal C}$$ $$\newcommand{\scal}{\cal S}$$ $$\newcommand{\wcal}{\cal W}$$ $$\newcommand{\ecal}{\cal E}$$ $$\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}$$ $$\newcommand{\gray}[1]{\color{gray}{#1}}$$ $$\newcommand{\lgray}[1]{\color{lightgray}{#1}}$$ $$\newcommand{\rank}{\operatorname{rank}}$$ $$\newcommand{\row}{\text{Row}}$$ $$\newcommand{\col}{\text{Col}}$$ $$\renewcommand{\row}{\text{Row}}$$ $$\newcommand{\nul}{\text{Nul}}$$ $$\newcommand{\var}{\text{Var}}$$ $$\newcommand{\corr}{\text{corr}}$$ $$\newcommand{\len}[1]{\left|#1\right|}$$ $$\newcommand{\bbar}{\overline{\bvec}}$$ $$\newcommand{\bhat}{\widehat{\bvec}}$$ $$\newcommand{\bperp}{\bvec^\perp}$$ $$\newcommand{\xhat}{\widehat{\xvec}}$$ $$\newcommand{\vhat}{\widehat{\vvec}}$$ $$\newcommand{\uhat}{\widehat{\uvec}}$$ $$\newcommand{\what}{\widehat{\wvec}}$$ $$\newcommand{\Sighat}{\widehat{\Sigma}}$$ $$\newcommand{\lt}{<}$$ $$\newcommand{\gt}{>}$$ $$\newcommand{\amp}{&}$$ $$\definecolor{fillinmathshade}{gray}{0.9}$$
$$\newcommand{\P}{\mathbb{P}}$$ $$\newcommand{\E}{\mathbb{E}}$$ $$\newcommand{\R}{\mathbb{R}}$$ $$\newcommand{\N}{\mathbb{N}}$$ $$\newcommand{\Z}{\mathbb{Z}}$$ $$\newcommand{\bs}{\boldsymbol}$$

## Basic Theory

### Introduction

In a queuing model, customers arrive at a station for service. As always, the terms are generic; here are some typical examples:

• The customers are persons and the service station is a store.
• The customers are file requests and the service station is a web server.

Queuing models can be quite complex, depending on such factors as the probability distribution that governs the arrival of customers, the probability distribution that governs the service of customers, the number of servers, and the behavior of the customers when all servers are busy. Indeed, queuing theory has its own lexicon to indicate some of these factors. In this section, we will discuss a few of the basic, continuous-time queuing chains. In a general sense, the main interest in any queuing model is the number of customers in the system as a function of time, and in particular, whether the servers can adequately handle the flow of customers. This section parallels the section on discrete-time queuing chains.

Our main assumptions are as follows:

1. There are $$k \in \N_+ \cup \{\infty\}$$ servers.
2. The customers arrive according to a Poisson process with rate $$\mu \in (0, \infty)$$.
3. If all of the servers are busy, a new customer goes to the end of a single line of customers waiting service.
4. The time required to service a customer has an exponential distribution with parameter $$\nu \in (0, \infty)$$.
5. The service times are independent from customer to customer, and are independent of the arrival process.

Assumption (b) means that the times between arrivals of customers are independent and exponentially distributed, with parameter $$\mu$$. Assumption (c) means that we have a first-in, first-out model, often abbreviated FIFO. Note that there are three parameters in the model: the number of servers $$k$$, the exponential parameter $$\mu$$ that governs the arrivals, and the exponential parameter $$\nu$$ that governs the service times. The special cases $$k = 1$$ (a single server) and $$k = \infty$$ (infinitely many servers) deserve special attention. As you might guess, the assumptions lead to a continuous-time Markov chain.

Let $$X_t$$ denote the number of customers in the system (waiting in line or being served) at time $$t \in [0, \infty)$$. Then $$\bs{X} = \{X_t: t \in [0, \infty)\}$$ is a continuous-time Markov chain on $$\N$$, known as the M/M/$$k$$ queuing chain.

In terms of the basic structure of the chain, the important quantities are the exponential parameters for the states and the transition matrix for the embedded jump chain.

For the M/M/$$k$$ chain $$\bs{X}$$,

1. The exponential parameter function $$\lambda$$ is given by $$\lambda(x) = \mu + \nu x$$ if $$x \in \N$$ and $$x \lt k$$ and $$\lambda(x) = \mu + \nu k$$ if $$x \in \N$$ and $$x \ge k$$.
2. The transition matrix $$Q$$ for the jump chain is given by \begin{align*} Q(x, x - 1) & = \frac{\nu x}{\mu + \nu x}, \; Q(x, x + 1) = \frac{\mu}{\mu + \nu x}, \quad x \in \N, \, x \lt k \\ Q(x, x - 1) & = \frac{\nu k}{\mu + \nu k}, \; Q(x, x + 1) = \frac{\mu}{\mu + \nu k}, \quad x \in \N, x \ge k \end{align*}

So the M/M/$$k$$ chain is a birth-death chain with 0 as a reflecting boundary point. That is, in state $$x \in \N_+$$, the next state is either $$x - 1$$ or $$x + 1$$, while in state 0, the next state is 1. When $$k = 1$$, the single-server queue, the exponential parameter in state $$x \in \N_+$$ is $$\mu + \nu$$ and the transition probabilities for the jump chain are $Q(x, x - 1) = \frac{\nu}{\mu + \nu}, \; Q(x, x + 1) = \frac{\mu}{\mu + \nu}$ When $$k = \infty$$, the infinite server queue, the cases above for $$x \ge k$$ are vacuous, so the exponential parameter in state $$x \in \N$$ is $$\mu + x \nu$$ and the transition probabilities are $Q(x, x - 1) = \frac{\nu x}{\mu + \nu x}, \; Q(x, x + 1) = \frac{\mu}{\mu + \nu x}$

### Infinitesimal Generator

The infinitesimal generator of the chain gives the same information as the exponential parameter function and the jump transition matrix, but in a more compact form.

For the M/M/$$k$$ queuing chain $$\bs{X}$$, the infinitesimal generator $$G$$ is given by \begin{align*} G(x, x) & = -(\mu + \nu x), \; G(x, x - 1) = \nu x, \; G(x, x + 1) = \mu; \quad x \in \N, \, x \lt k \\ G(x, x) & = -(\mu + \nu k), \; G(x, x - 1) = \nu k, \; G(x, x + 1) = \mu; \quad x \in \N, \, x \ge k \end{align*}

So for $$k = 1$$, the single server queue, the generator $$G$$ is given by $$G(0, 0) = -\mu$$, $$G(0, 1) = \mu$$, while for $$x \in \N_+$$, $$G(x, x) = -(\mu + \nu)$$, $$G(x, x - 1) = \nu$$, $$G(x, x + 1) = \mu$$. For $$k = \infty$$, the infinite server case, the generator $$G$$ is given by $$G(x, x) = -(\mu + \nu x)$$, $$G(x, x - 1) = \nu x$$, and $$G(x, x + 1) = \mu$$ for all $$x \in \N$$.

### Classification and Limiting Behavior

Again, let $$\bs{X} = \{X_t: t \in [0, \infty)\}$$ denote the M/M/$$k$$ queuing chain with arrival rate $$\mu$$, service rate $$\nu$$ and with $$k \in \N_+ \cup \{\infty\}$$ servers. As noted in the introduction, of fundamental importance is the question of whether the servers can handle the flow of customers, so that the queue eventually empties, or whether the length of the queue grows without bound. To understand the limiting behavior, we need to classify the chain as transient, null recurrent, or positive recurrent, and find the invariant functions. This will be easy to do using our results for more general continuous-time birth-death chains. Note first that $$\bs{X}$$ is irreducible. It's best to consider the single server and infinite server cases individually.

The single server queuing chain $$\bs{X}$$ is

1. Transient if $$\nu \lt \mu$$.
2. Null recurrent if $$\nu = \mu$$.
3. Positive recurrent if $$\nu \gt \mu$$. The invariant distribution is the geometric distribution on $$\N$$ with parameter $$\mu / \nu$$. The invariant probability density function $$f$$ is given by $f(x) = \left(1 - \frac{\mu}{\nu}\right) \left(\frac{\mu}{\nu}\right)^x, \quad x \in \N$
Proof

This follows directly from results for the continuous-time birth-death chain, with constant birth rate $$\mu$$ on $$\N$$ and constant death rate $$\nu$$ on $$\N_+$$.

The result makes intuitive sense. If the service rate is less than the arrival rate, the chain is transient and the length of the queue grows to infinity. If the service rate is greater than the arrival rate, the chain is positive recurrent. At the boundary between these two cases, when the arrival and service rates are the same, the chain is null recurrent.

The infinite server queuing chain $$\bs{X}$$ is positive recurrent. The invariant distribution is the Poisson distribution with parameter $$\mu / \nu$$. The invariant probability density function $$f$$ is given by $f(x) = e^{-\mu / \nu} \frac{\left(\mu / \nu\right)^x}{x!}, \quad x \in \N$

Proof

This also follows from results for the continuous-time birth-death chain. In the notation of that section, the birth rate is constant, $$\mu(x) = \mu$$ for $$x \in \N$$ and the death rate is proportional to the number of customers in the system: $$\nu(x) = \nu x$$ for $$x \in \N_+$$. Hence the invariant function (unique up to multiplication by constants) is $x \mapsto \frac{\mu(0) \cdots \mu(x - 1)}{\nu(1) \cdots \nu(x)} = \frac{\mu^x}{\nu^x x!}$ Normalized, this is the Poisson distribution with parameter $$\mu / \nu$$.

This result also makes intuitive sense.

This page titled 16.22: Continuous-Time Queuing Chains is shared under a CC BY 2.0 license and was authored, remixed, and/or curated by Kyle Siegrist (Random Services) via source content that was edited to the style and standards of the LibreTexts platform.