06. 排队论

定义

排队论也称随机服务系统理论,它研究的内容有三部分:

  • 形态问题:各种排队系统的概率规律性,如队长分布、等待时间分布、忙期分布等;
  • 最优化问题:分静态最优 (最优设计) 和动态最优 (最优运营);
  • 排队系统的统计推断:判断一个给定的排队系统符合于哪种模型。

排队论的一般模型如图:

排队系统
顾客排队
服务机构(服务时间随机)
顾客随机到达
顾客离去

一般的排队过程由三部分组成:

  • 输入过程:顾客到来时间的规律性;
    • 顾客组成可能有限或无限;
    • 顾客到达可能逐个或成批;
    • 顾客到达可以是相互独立或相关;
    • 输入过程可以平稳 (与时间无关) 或非平稳。
  • 排队规则:顾客按怎样的规则排队等待;
    • 损失制 (消失制):顾客到达时所有服务台均被占用,顾客随机离去;
    • 等待制:顾客到达时所有服务台均被占用,顾客排队等待,直到接受完服务才离去;
    • 混合制:既有等待又有损失,有队列长度有限和排队等待时间有限两种情况。
  • 服务过程:
    • 先到先服务;
    • 后到先服务;
    • 随机服务;
    • 优先服务。

排队模型用六个符号表示:X/Y/Z/A/B/CX/Y/Z/A/B/CX/Y/Z/A/B/C

  • XXX 表示顾客到达流或顾客到达间隔时间分布;
  • YYY 表示服务时间分布;
  • ZZZ 表示服务台数目;
  • AAA 表示系统容量限制;
  • BBB 表示顾客源数目;
  • CCC 表示服务规则。

如略去后三项,即指 X/Y/Z/∞/∞/FCFSX/Y/Z/\infty/\infty/FCFSX/Y/Z/∞/∞/FCFS。

基本模型

M/M/1

M/M/1 模型表示顾客到达的时间间隔和服务时间均服从指数分布,服务台数量为 1 的排队模型。

泊松流与指数分布

如何理解顾客到达时间和服务时间服从指数分布?

首先,当顾客到达时间符合如下条件时,可以看作泊松分布:

  • 将时间段无限分割成若干小的时间段,在每个接近于零的小时间段里,事件发生一次的概率与时间段的长度接近成正比;
  • 在这个极小时间段内,事件发生二次及以上的概率恒等于 0;
  • 事件在不同的时间段内发生与否相互独立。

推导过程如下:

  1. 在时间 TTT​ 内,有 kkk​ 个顾客到达,将 TTT​ 平均分为 nnn​ 个时间段,使得每个时间段内至多只有一个顾客到达,若每个时间段有顾客到达与否相互独立,则有二项分布 X∼B(n,p)X\sim B(n,p)X∼B(n,p)​,即
    P{X=k}=Cnkpk(1−p)n−k, P\{X=k\}=C_n^kp^k(1-p)^{n-k}, P{X=k}=Cnk​pk(1−p)n−k,
    其中 ppp 表示每个时间段有顾客到达的概率;

  2. 二项分布的期望为
    E(X)=np=μ, E(X)=np=\mu, E(X)=np=μ,
    则 p=μnp=\frac{\mu}{n}p=nμ​;

  3. 取时间段数量为无限,即令 n→∞n\to\inftyn→∞​​​,并设 λ=μ\lambda=\muλ=μ,则有
    lim⁡n→∞Cnk(μn)k(1−μn)n−k=λkk!e−λ, \lim_{n\to\infty}C_n^k(\frac{\mu}{n})^k(1-\frac{\mu}{n})^{n-k}=\frac{\lambda^k}{k!}e^{-\lambda}, n→∞lim​Cnk​(nμ​)k(1−nμ​)n−k=k!λk​e−λ,
    其中,kkk​ 即为总时间 TTT​ 内到达的顾客数,λ\lambdaλ​​ 为 npnpnp​,即平均到达的顾客数。

因此,若单位时间到达的顾客数为 λ\lambdaλ,则 [0,t][0,t][0,t] 内到达的顾客数 X(t)X(t)X(t) 服从
P{X(t)=k}=(λt)kk!e−λt. P\{X(t)=k\}=\frac{(\lambda t)^k}{k!}e^{-\lambda t}. P{X(t)=k}=k!(λt)k​e−λt.
因此,如果下一个顾客到达时间间隔为 ttt​,即为 [0,t][0,t][0,t]​ 内的顾客数为 0,即
P{T>t}=P{X(t)=0}=e−λt P\{T>t\}=P\{X(t)=0\}=e^{-\lambda t} P{T>t}=P{X(t)=0}=e−λt
于是有
F(t)=P{T≤t}={1−e−λt,t≥0,0,t<0. F(t)=P\{T\le t\}=\left\{\begin{aligned} &1-e^{-\lambda t},&t\ge0,\\ &0,&t<0. \end{aligned}\right. F(t)=P{T≤t}={​1−e−λt,0,​t≥0,t<0.​

f(t)=λe−λt,t>0. f(t)=\lambda e^{-\lambda t},t>0. f(t)=λe−λt,t>0.

即顾客到达时间间隔 ttt​​ 服从指数分布,其中 λ\lambdaλ​ 为单位时间到达的顾客数。

顾客数分布计算

对于 M/M/1 模型,顾客到达时间间隔服从参数为 λ\lambdaλ​ 的指数分布,服务时间服从参数为 μ\muμ​ 的指数分布,服务台数量为 1。

即单位时间平均到达的顾客数 (到达率) 为 λ\lambdaλ​​​,单位时间平均服务的顾客数 (服务率) 为 μ\muμ​​。

令状态 iii​ 代表系统当前的顾客数为 iii​,状态转移如下图

λ
λ
λ
λ
λ
μ
μ
μ
μ
μ
0
1
...
n-1
n
...

设系统平稳后顾客数为 nnn 的概率为 pnp_npn​。

若系统平稳,则对于任一状态,都有单位时间内进入该状态和单位时间内离开该状态的顾客平均数相等,即

  • 状态 0:λp0=μp1,\lambda p_0=\mu p_1,λp0​=μp1​,​

  • 状态 1:μp1+λp1=λp0+μp2,\mu p_1+\lambda p_1=\lambda p_0+\mu p_2,μp1​+λp1​=λp0​+μp2​,​

  • 状态 n:μpn+λpn=λpn−1+μpn+1.\mu p_n+\lambda p_n=\lambda p_{n-1}+\mu p_{n+1}.μpn​+λpn​=λpn−1​+μpn+1​.

而有 λp0=μp1\lambda p_0=\mu p_1λp0​=μp1​​,因此状态 1 可化为
λp1=μp2, \lambda p_1=\mu p_2, λp1​=μp2​,
同理有
λpn=μpn+1, \lambda p_n=\mu p_{n+1}, λpn​=μpn+1​,
即
pn+1=λμpn=(λμ)n+1p0,n=0,1,… p_{n+1}=\frac{\lambda}{\mu}p_n=(\frac{\lambda}{\mu})^{n+1}p_0,n=0,1,\dots pn+1​=μλ​pn​=(μλ​)n+1p0​,n=0,1,…
因此 {p0,p1,…,pn,… }\{p_0,p_1,\dots,p_n,\dots\}{p0​,p1​,…,pn​,…} 构成首项为 p0p_0p0​,公比为 λμ\frac{\lambda}{\mu}μλ​​ 的等比数列。

由等比数列求和公式,{p0,p1,…,pn,… }\{p_0,p_1,\dots,p_n,\dots\}{p0​,p1​,…,pn​,…} 的和为
S=lim⁡n→∞Sn S=\lim_{n\to\infty}S_n S=n→∞lim​Sn​

=lim⁡n→∞p0(1−(λμ)n)1−λμ=p01−λμ. =\lim_{n\to\infty}\frac{p_0(1-(\frac{\lambda}{\mu})^n)}{1-\frac{\lambda}{\mu}}=\frac{p_0}{1-\frac{\lambda}{\mu}}. =n→∞lim​1−μλ​p0​(1−(μλ​)n)​=1−μλ​p0​​.

而 {p0,p1,…,pn,… }\{p_0,p_1,\dots,p_n,\dots\}{p0​,p1​,…,pn​,…} 和为 1 (所有状态概率之和为 1),故
p01−λμ=1, \frac{p_0}{1-\frac{\lambda}{\mu}}=1, 1−μλ​p0​​=1,
记服务强度 ρ=λμ\rho=\frac{\lambda}{\mu}ρ=μλ​,则
p0=1−ρ, p_0=1-\rho, p0​=1−ρ,
故
pn=(1−ρ)ρn, p_n=(1-\rho)\rho^n, pn​=(1−ρ)ρn,
因此系统中有 n 个顾客的概率为 (1−ρ)ρn(1-\rho)\rho^n(1−ρ)ρn。

指标计算
  • 平均顾客数 (平均队长)

Ls=∑n=0∞npn=ρ1−ρ=λμ−λ. L_s=\sum_{n=0}^\infty np_n=\frac{\rho}{1-\rho}=\frac{\lambda}{\mu-\lambda}. Ls​=n=0∑∞​npn​=1−ρρ​=μ−λλ​.

  • 平均排队长

Lq=∑n=0∞(n−1)pn=L−ρ=λ2μ(μ−λ). L_q=\sum_{n=0}^\infty (n-1)p_n=L-\rho=\frac{\lambda^2}{\mu(\mu-\lambda)}. Lq​=n=0∑∞​(n−1)pn​=L−ρ=μ(μ−λ)λ2​.

  • 平均逗留时间

对于逗留时间 TTT 有
P{T>t}=e−(μ−λ)t,t≥0. P\{T>t\}=e^{-(\mu-\lambda)t},t\ge0. P{T>t}=e−(μ−λ)t,t≥0.
故平均逗留时间即为期望
Ws=1μ−λ. W_s=\frac{1}{\mu-\lambda}. Ws​=μ−λ1​.

  • 平均等待时间
    Wq=Ws=1μ=λμ(μ−λ). W_q=W_s=\frac{1}{\mu}=\frac{\lambda}{\mu(\mu-\lambda)}. Wq​=Ws​=μ1​=μ(μ−λ)λ​.

  • 平均忙期

平均忙期与平均闲期之比为
B‾I‾=ρ1−ρ, \frac{\overline{B}}{\overline{I}}=\frac{\rho}{1-\rho}, IB​=1−ρρ​,
而闲期到有顾客到达的时间间隔服从参数为 λ\lambdaλ 的指数分布,因此 I‾=1λ\overline{I}=\frac{1}{\lambda}I=λ1​,故
B‾=1μ−λ. \overline{B}=\frac{1}{\mu-\lambda}. B=μ−λ1​.

M/M/s

对于服务台为 sss 的排队模型,其服务率 μ\muμ 是变化的。记状态 iii 的到达率为 λi\lambda_iλi​,服务率为 uiu_iui​
μn={nμ,n=1,2,…,s−1,sμ,Others. \mu_n=\left\{\begin{aligned} &n\mu,n=1,2,\dots,s-1,\\ &s\mu,Others. \end{aligned}\right. μn​={​nμ,n=1,2,…,s−1,sμ,Others.​
其中 μ\muμ​​ 代表一个服务台的服务率,同样构造平衡方程,记 ρs=ρs=λsμ\rho_s=\frac{\rho}{s}=\frac{\lambda}{s\mu}ρs​=sρ​=sμλ​​​​,于是
pn={ρnn!p0,0≤n<s,ρns!sn−sp0,n≥s. p_n=\left\{\begin{aligned} \frac{\rho^n}{n!}p_0,0\le n<s,\\ \frac{\rho^n}{s!s^{n-s}}p_0,n\ge s. \end{aligned}\right. pn​=⎩⎪⎨⎪⎧​n!ρn​p0​,0≤n<s,s!sn−sρn​p0​,n≥s.​
其中
p0=[∑n=0s−1ρnn!+ρss!(1−ρs)]−1. p_0=[\sum_{n=0}^{s-1}\frac{\rho^n}{n!}+\frac{\rho^s}{s!(1-\rho_s)}]^{-1}. p0​=[n=0∑s−1​n!ρn​+s!(1−ρs​)ρs​]−1.

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐