排队论
一、泊松过程和负指数分布
1.1 泊松分布
如果直接看泊松分布表达式,会觉得十分费解,不知道这个式子是怎么搞出来的。但是这个式子是可以推导出来的,他其实是下面这个式子的当n趋于正无穷的极限。
C
n
k
p
k
(
1
−
p
)
n
−
k
,
p
=
λ
n
(1)
C^k_np^k(1-p)^{n-k},\tag{1}\\ p = \frac \lambda n
Cnkpk(1−p)n−k,p=nλ(1)
这个式子很好解释,第一行描述的是一个二项分布,做n次实验,有k个人来的概率。而第二个式子就是描述的是概率的计算过程,当实际观测中,在n次实验中,平均有
λ
\lambda
λ 个人来,那么概率就可以用两者的比值来近似。
那么对n取无穷极限的意思是什么,就是说对一段固定的时间进行极细密的分割,达到一种从离散到连续的过度,需要注意的是,
λ
\lambda
λ 的值不会随n的极限而变大,是因为在一段固定时间内发生的次数不会随分割的细度而增加,n的无穷是分割的意思,而不是重复原来的条件无数遍的意思,后面就是取极限的过程。
lim
n
→
∞
C
n
k
(
λ
n
)
k
(
1
−
λ
n
)
n
−
k
=
lim
n
→
∞
n
(
n
−
1
)
(
n
−
2
)
⋯
(
n
−
k
+
1
)
k
!
λ
k
n
k
(
1
−
λ
n
)
n
(
1
−
λ
n
)
−
k
=
λ
k
k
!
lim
n
→
∞
n
(
n
−
1
)
(
n
−
2
)
⋯
(
n
−
k
+
1
)
n
k
⋅
lim
n
→
∞
(
1
−
λ
n
)
−
k
⋅
lim
n
→
∞
(
1
−
λ
n
)
n
=
λ
k
k
!
e
−
λ
(2)
\lim_{n\rightarrow\infty}C^k_n(\frac\lambda n)^k(1-\frac\lambda n)^{n-k}\\= \lim_{n\rightarrow\infty}\frac{n(n-1)(n-2)\cdots(n-k+1)}{k!}\frac{\lambda^k}{n^k}(1-\frac\lambda n)^n(1-\frac\lambda n)^{-k}\\= \frac{\lambda^k}{k!}\lim_{n\rightarrow\infty}\frac{n(n-1)(n-2)\cdots(n-k+1)}{n^k}\cdot\lim_{n\rightarrow\infty}(1-\frac\lambda n)^{-k}\cdot\lim_{n\rightarrow\infty}(1-\frac\lambda n)^n\\= \frac{\lambda^k}{k!}e^{-\lambda}\tag2
n→∞limCnk(nλ)k(1−nλ)n−k=n→∞limk!n(n−1)(n−2)⋯(n−k+1)nkλk(1−nλ)n(1−nλ)−k=k!λkn→∞limnkn(n−1)(n−2)⋯(n−k+1)⋅n→∞lim(1−nλ)−k⋅n→∞lim(1−nλ)n=k!λke−λ(2)
泊松分布的期望和方差均是
λ
\lambda
λ 。
1.2 负指数分布
介绍这个的原因是因为在排队论中,有一个重要结论,泊松流与时间间隔乘负指数分布的流等价,现在进行证明:
首先我们需要对之前的泊松分布进行修改,之前的时间间隔默认是1,但是我们要考量时间间隔,单位化的时间单位是不足的,我们将原来的
λ
\lambda
λ 改为
λ
t
\lambda t
λt ,其中t比如是2,那么就是在两个时间间隔中有人来的次数,用线性模拟很正常。所以现在的式子就变成了
P
(
X
=
k
,
t
)
=
(
λ
t
)
k
k
!
e
−
λ
t
(3)
P(X=k,t)=\frac{(\lambda t)^k}{k!}e^{-\lambda t}\tag3
P(X=k,t)=k!(λt)ke−λt(3)
表示在时间t内,有k个人来的概率,当x = 0的时候,就是说没有没有人来,就可以对应在时间段t内,没有人来的情况,也就是两个人到来的时间间隔,设Y是两个人来的时间间隔,有
P
(
Y
>
t
)
=
P
(
X
=
0
,
t
)
=
e
−
λ
t
,
P
(
Y
<
=
t
)
=
1
−
P
(
Y
>
t
)
=
1
−
e
−
λ
t
(4)
P(Y>t)=P(X=0,t)=e^{-\lambda t},\\ P(Y<=t) = 1-P(Y>t)=1-e^{-\lambda t}\tag4
P(Y>t)=P(X=0,t)=e−λt,P(Y<=t)=1−P(Y>t)=1−e−λt(4)
可见是时间间隔符合负指数分布。正是如此,两者等价。
指数分布的期望是 $ \frac1\lambda , 方 差 是 ,方差是 ,方差是 \frac1{\lambda^2}$
二、排队论基本概念
2.1 排队论的分类
为了描述一个排队系统,排队论广泛采用“肯德尔记号”
X
/
Y
/
Z
/
A
/
B
/
C
(5)
X/Y/Z/A/B/C\tag5
X/Y/Z/A/B/C(5)
符号解释如下
- X:顾客相继到达时间间隔分布
- Y:服务时间的分布
- Z:服务台的数目
- A:系统的容量
- B:客户源数目
- C:服务规则
其中,分布有如下记号
符号 | 解释 |
---|---|
M | 负指数分布,随机现象对于过去的事件无记忆性 |
D | 定长分布,时间是以不变的方式发生的 |
E k E_k Ek | k阶爱尔朗分布 |
G | 一般随机分布 |
2.2 排队论指标
评价指标:
符号 | 解释 |
---|---|
L L L | 系统中的总人数,包括在排队的人数和在被服务的人数 |
L q L_q Lq | 在排队的人数 |
W W W | 一个人从进入系统到离开系统的总时间,包括排队时间和服务时间 |
W q W_q Wq | 一个人排队的时间 |
需要注意的是,这四项的计算都是期望计算。
系统指标:
符号 | 解释 |
---|---|
λ \lambda λ | 到达率,单位时间内达到系统的平均顾客数(进入) |
μ \mu μ | 服务率,单位时间可以服务完的的平均顾客数(离开) |
ρ \rho ρ | 服务强度,有 ρ = λ μ \rho = \frac\lambda\mu ρ=μλ ,反映了系统的繁忙程度,不能超过1 |
2.3 重要定理
2.3.1 基本公式
L = ∑ n = 0 ∞ n P n L q = ∑ n = 1 ∞ ( n − 1 ) P n L=\sum^\infty_{n=0}nP_n\\ L_q = \sum^\infty_{n=1}(n-1)P_n L=n=0∑∞nPnLq=n=1∑∞(n−1)Pn
2.3.2 Little定理
虽然可以用基本公式进行计算,但是如果每一个都这样算的话,解太难了,因此我们开发了2.3.2和2.3.3的公式,有
L
=
λ
W
L
q
=
λ
W
q
W
=
W
q
+
1
μ
L
=
L
q
+
λ
μ
L=\lambda W\\ L_q = \lambda W_q\\ W = W_q+\frac1\mu\\ L = L_q+\frac\lambda\mu
L=λWLq=λWqW=Wq+μ1L=Lq+μλ
这组公式是可以在生灭过程的计算中得到验证的,但是这组公式不止局限于生灭过程,而是所有的排队论模型都适用。
2.3.3 P-K公式
P-K公式全称Pollaczek-Khintchine公式,因为推导中涉及构造性证明和分析性质,所以不建议自行推导。记住就好
L
q
=
λ
2
σ
2
+
ρ
2
2
(
1
−
ρ
)
L_q = \frac{\lambda^2\sigma^2+\rho^2}{2(1-\rho)}
Lq=2(1−ρ)λ2σ2+ρ2
这个也是所有的模型都适用。
结合2.3.2和2.3.3,可以知道排队论的评价指标仅仅依赖于服务强度 ρ \rho ρ 和服务时间的方差 σ 2 \sigma^2 σ2。与分布的类型没有关系。当方差越大时,队列越长,当强度越高时,队列越长。
2.4 状态平衡与生灭过程
在排队论里,我们最重要的一个变量是 P n P_n Pn ,他代表的是稳定系统中有n个人的概率。仔细思考这个概念,什么是稳定系统?稳定的意思就是时间过了足够久以后再研究这个系统。当时间不足的时候,很容易上研究没意义,比如当时间接近0的时候,队伍肯定排不长。当到达稳定系统的时候, P n P_n Pn就不会再受到时间t的影响了,这就是稳定的意思,有点像生理学中的稳态。
P n P_n Pn不变,不是静止的,而是动态平衡,应该说, P n P_n Pn会输入 P n − 1 P_{n-1} Pn−1, P n + 1 P_{n+1} Pn+1会输出 P n P_n Pn,所以 P n P_n Pn是一种动态平衡,可以列出平衡方程。我们可以根据平衡方程和 P n P_n Pn的级数为1求解出 P n P_n Pn。
在排队论中,有一类模型符合生灭过程,其满足的条件就是输入和输出都具有马尔科夫性,也 就是 M / M / ⋯ M/M/\cdots M/M/⋯ 这种形式的模型。如果不符合这种性质,推导会变得极为困难,所以要大量应用2.3.2和2.3.3的公式。
三、生灭过程
3.1 M/M/1/ ∞ \infty ∞/ ∞ \infty ∞
这是最基本的模型,我们在这里展示一下怎样求出关于 P n P_n Pn 的差分方程,然后在根据差分方程求出 P n P_n Pn 。
情况 | t时刻顾客数 | 到达 | 离去 | t + Δ t t+\Delta t t+Δt时刻顾客数 | 概率 |
---|---|---|---|---|---|
A | n | 0 | 0 | n | P n ( t ) ( 1 − λ Δ t ) ( 1 − μ Δ t ) + o ( Δ t ) P_n(t)(1-\lambda\Delta t)(1-\mu \Delta t)+o(\Delta t) Pn(t)(1−λΔt)(1−μΔt)+o(Δt) |
B | n +1 | 0 | 1 | n | P n + 1 ( t ) ( 1 − λ Δ t ) μ Δ t + o ( Δ t ) P_{n+1}(t)(1-\lambda\Delta t)\mu \Delta t+o(\Delta t) Pn+1(t)(1−λΔt)μΔt+o(Δt) |
C | n - 1 | 1 | 0 | n | P n ( t ) λ Δ t ( 1 − μ Δ t ) + o ( Δ t ) P_n(t)\lambda\Delta t(1-\mu \Delta t)+o(\Delta t) Pn(t)λΔt(1−μΔt)+o(Δt) |
D | n | 1 | 1 | n | P n ( t ) λ Δ t μ Δ t + o ( Δ t ) P_n(t)\lambda\Delta t\mu \Delta t+o(\Delta t) Pn(t)λΔtμΔt+o(Δt) |
首先,要强调的是,上表能写成这种形式,最重要的就是输入过程和服务过程都是可以写成负指数分布的,只有是负指数分布,才能对其麦克劳林展开成这种形式,只有负指数分布,才可以应用马尔科夫性质。所以比如说是定长输入,就既不具有这种展开性质(都不连续),也不具有马尔科夫性质,所以才会存在很大的计算困难。
因为要不受时间影响,所以
P
n
(
t
)
P_n(t)
Pn(t) 的导数应该为0,借助这个条件,可以得到差分方程组
{
−
λ
P
0
+
μ
P
1
=
0
λ
P
n
−
1
+
μ
P
n
+
1
−
(
λ
+
μ
)
P
n
=
0
\begin{cases}-\lambda P_0+\mu P_1 = 0\\ \lambda P_{n-1}+\mu P_{n+1}-(\lambda+\mu)P_n=0\end{cases}
{−λP0+μP1=0λPn−1+μPn+1−(λ+μ)Pn=0
解得:
P
n
=
(
λ
μ
)
n
P
0
P_n = (\frac\lambda\mu)^nP_0
Pn=(μλ)nP0
据此可以解出各种指标,列举如下
L
=
λ
μ
−
λ
L
q
=
ρ
λ
μ
−
λ
W
=
1
μ
−
λ
W
q
=
ρ
μ
−
λ
L = \frac{\lambda}{\mu-\lambda}\\ L_q = \frac{\rho\lambda}{\mu-\lambda}\\ W = \frac{1}{\mu-\lambda}\\ W_q = \frac\rho{\mu - \lambda}
L=μ−λλLq=μ−λρλW=μ−λ1Wq=μ−λρ
3.2 系统容量有限情形 M/M/1/N/ ∞ \infty ∞
只是把原来的求级数变成等比数列求和,因为差分方程相同,所以结构相似
P
n
=
1
−
ρ
1
−
ρ
N
+
1
ρ
n
P_n = \frac{1-\rho}{1-\rho^{N+1}}\rho^n
Pn=1−ρN+11−ρρn
评价指标如下
L
=
ρ
1
−
ρ
−
(
N
+
1
)
ρ
N
+
1
1
−
ρ
N
+
1
L
q
=
L
−
(
1
−
p
0
)
W
=
L
s
μ
(
1
−
P
0
)
W
q
=
W
s
−
1
μ
L=\frac{\rho}{1-\rho}-\frac{(N+1)\rho^{N+1}}{1-\rho^{N+1}}\\ L_q = L -(1-p_0)\\ W = \frac{L_s}{\mu(1-P_0)}\\ W_q = W_s - \frac{1}{\mu}
L=1−ρρ−1−ρN+1(N+1)ρN+1Lq=L−(1−p0)W=μ(1−P0)LsWq=Ws−μ1
3.3 顾客源有限情形 M/M/1/ ∞ \infty ∞/m
这个的差分方程发生了变化,但是还是可以用归纳法求出
P
n
P_n
Pn 的,因为太繁了,就不写了。
P
0
=
1
∑
i
=
0
m
m
!
(
m
−
i
)
!
ρ
i
P
n
=
m
!
(
m
−
n
)
!
ρ
n
P
0
P_0 = \frac{1}{\sum^m_{i = 0}\frac{m!}{(m-i)!}\rho^i}\\ P_n = \frac{m!}{(m-n)!}\rho^nP_0
P0=∑i=0m(m−i)!m!ρi1Pn=(m−n)!m!ρnP0
L = m − μ λ ( 1 − P 0 ) L q = L s − ( 1 − P 0 ) W = m μ ( 1 − P 0 ) − 1 λ W q = W s − 1 μ L = m-\frac{\mu}{\lambda}(1-P_0)\\ L_q = L_s-(1-P_0)\\ W = \frac{m}{\mu(1-P_0)} - \frac{1}{\lambda}\\ W_q = W_s - \frac1\mu L=m−λμ(1−P0)Lq=Ls−(1−P0)W=μ(1−P0)m−λ1Wq=Ws−μ1
四、非生灭过程
4.1 M/D/1/ ∞ \infty ∞/ ∞ \infty ∞
这个在上面已经阐述过了,是没有办法采用微分方程的形式求解差分方程,进而求解
P
n
P_n
Pn 的,所以只能用P-K公式进行计算,因为是定长的服务,所以方差为0。
L
q
=
ρ
2
2
(
1
−
ρ
)
L
=
L
q
+
ρ
W
q
=
L
q
λ
W
=
L
λ
L_q=\frac{\rho^2}{2(1-\rho)}\\ L = L_q + \rho\\ W_q = \frac{L_q}\lambda\\ W = \frac{L}\lambda
Lq=2(1−ρ)ρ2L=Lq+ρWq=λLqW=λL