闭环排队理论简介
- 1. 系统情景
- 2. 数学描述
在排队理论简介一文中,笔者详细介绍了排队理论的基本内容。在该文中,申请流是来自系统外部的,其强度(或密度)并不取决于系统本身,也不取决于系统的状态。而在本文中,将探讨另一种排队理论,其申请流的强度与系统的状态有关,因而称之为闭环排队系统。
1. 系统情景
设想如下情景。在一家工厂中,调试员看管
n
n
n架机床。每架机床可能在任意时刻发生故障并停止工作,需要调试员的维修,该故障发生的强度(密度)为
λ
\lambda
λ。如果此时调试员空闲,则开始维修,维修用时
t
ˉ
m
t
=
1
μ
\bar t_{mt} = \frac{1}{\mu}
tˉmt=μ1而如果机床故障时调试员并不空闲(处于忙状态),则故障机床加入等待队列直到调试员来维修。
针对此情景,一般我们感兴趣如下3个指标:
- 调试员空闲的概率;
- 出现排队队列的概率;
- 等待维修的机床数量的平均数。
在此情景中,申请流来自于机床本身,其数量是有限的,并依据其自身的状态(正常/故障)来发出申请。因此,整个申请流的强度自然而然取决于有多少个机床与维修挂钩(不论是正在被维修的还是等待维修的)。
与排队理论简介一文不同的是,闭环排队系统中,申请流的数量是有限的(机床个数有限)。而当申请流的数量过于庞大时,实际上排队系统本身的状态将几乎不影响申请流的状态,因此可以认为二者无关。
2. 数学描述
在该情景中,根据
n
n
n架机床中出现故障的个数,可以定义系统的不同状态:
S
0
S_0
S0 – 所有机床正常工作,没有机床故障;
S
1
S_1
S1 – 有1个机床故障,调试员维修该机床,其他机床正常工作;
S
2
S_2
S2 – 有2个机床故障,调试员维修一个,另一个等待,而其他机床正常工作;
⋮
\vdots
⋮
S
n
S_n
Sn – 所有
n
n
n个机床都故障,调试员维修一个,其余
(
n
−
1
)
(n-1)
(n−1)个排队等待。
状态图如图所示。
从状态
S
0
S_0
S0到
S
1
S_1
S1的过程中,起初是所有机床都工作的,因此该过程的强度(密度)是
n
λ
n\lambda
nλ。同样,从状态
S
1
S_1
S1到
S
2
S_2
S2的过程中,起初是
(
n
−
1
)
(n-1)
(n−1)架机床工作、1架机床故障的,因此该过程的强度(密度)是
(
n
−
1
)
λ
(n-1) \lambda
(n−1)λ。该低占用向高占用转化的过程以此类推。
而由于只有1个调试员,每次只能修1个机床,因此每次从高占用向低占用转化时的强度一样,都是 μ \mu μ。
这里给出不同状态
S
i
S_i
Si出现的概率:
p
1
=
n
λ
μ
p
0
p
2
=
n
(
n
−
1
)
λ
2
μ
2
p
0
⋮
p
n
=
n
(
n
−
1
)
(
n
−
2
)
⋯
2
⋅
1
⋅
λ
n
μ
n
p
0
p
0
=
1
1
+
n
(
λ
/
μ
)
+
n
(
n
−
1
)
(
λ
/
μ
)
2
+
⋯
+
n
(
n
−
1
)
⋯
2
⋅
1
⋅
(
λ
/
μ
)
n
p_1 = \frac{ n \lambda }{\mu} p_0 \\ p_2 = \frac{ n (n-1) \lambda ^2 }{\mu^2} p_0 \\ \vdots \\ p_n = \frac{ n (n-1) (n-2) \cdots 2 \cdot 1 \cdot \lambda ^n}{\mu ^n} p_0 \\ p_0 = \frac{1}{ 1 + n \left( \lambda / \mu \right) + n (n-1) \left( \lambda / \mu \right)^2 + \cdots + n (n-1) \cdots 2 \cdot1 \cdot \left( \lambda / \mu \right)^n }
p1=μnλp0p2=μ2n(n−1)λ2p0⋮pn=μnn(n−1)(n−2)⋯2⋅1⋅λnp0p0=1+n(λ/μ)+n(n−1)(λ/μ)2+⋯+n(n−1)⋯2⋅1⋅(λ/μ)n1设
λ
/
μ
=
ρ
\lambda / \mu = \rho
λ/μ=ρ则上式可以写为
p
0
=
1
1
+
n
ρ
+
n
(
n
−
1
)
ρ
2
+
⋯
+
n
(
n
−
1
)
⋯
2
⋅
1
⋅
ρ
n
p_0 = \frac{1}{ 1 + n \rho + n (n-1) \rho^2 + \cdots + n (n-1) \cdots 2 \cdot1 \cdot \rho^n }
p0=1+nρ+n(n−1)ρ2+⋯+n(n−1)⋯2⋅1⋅ρn1
p
1
=
n
ρ
p
0
p_1 = n \rho p_0
p1=nρp0
p
2
=
n
(
n
−
1
)
ρ
2
p
0
⋮
p
n
=
n
(
n
−
1
)
⋯
2
⋅
1
⋅
ρ
n
p
0
(1)
p_2 = n (n-1) \rho^2 p_0 \\ \vdots \\ p_n = n (n-1) \cdots 2 \cdot 1 \cdot \rho^n p_0 \tag{1}
p2=n(n−1)ρ2p0⋮pn=n(n−1)⋯2⋅1⋅ρnp0(1)式中,进入每个方块的强度为乘,出每个方块的强度为除。
对于该系统来说,绝对通过性指的是单位时间内故障的平均次数。当没有故障时的概率为
p
0
p_0
p0,那么显然,有故障的概率(也是调试员不空闲的概率)为
P
=
1
−
p
0
P = 1 - p_0
P=1−p0如果调试员为忙,则单位时间内他可修理的机床数为
μ
\mu
μ,因此绝对通过性为
A
=
(
1
−
p
0
)
μ
A = \left( 1 - p_0 \right) \mu
A=(1−p0)μ而调试员空闲的概率即为没有故障发生的概率
p
0
p_0
p0。
故障机床的平均个数可以用如下期望来计算
w
ˉ
=
1
⋅
p
1
+
2
⋅
p
2
+
⋯
+
n
⋅
p
n
=
∑
i
=
1
n
i
⋅
p
i
\bar w = 1 \cdot p_1 + 2 \cdot p_2 + \cdots + n \cdot p_n = \sum_{i=1} ^n i \cdot p_i
wˉ=1⋅p1+2⋅p2+⋯+n⋅pn=i=1∑ni⋅pi此数值也可以通过绝对通过性来计算。我们知道,每架机床发生故障的强度为
λ
\lambda
λ;同时,平均来说系统中将正常工作有
(
n
−
w
ˉ
)
\left( n - \bar w \right)
(n−wˉ)架机床;因而这些正常工作的机床发生的故障数应该为
(
n
−
w
ˉ
)
λ
\left( n - \bar w \right) \lambda
(n−wˉ)λ;根据绝对通过性的定义,有
(
n
−
w
ˉ
)
λ
=
(
1
−
p
0
)
μ
\left( n - \bar w \right) \lambda = \left( 1 - p_0 \right) \mu
(n−wˉ)λ=(1−p0)μ由此得到
w
ˉ
=
n
−
μ
λ
(
1
−
p
0
)
=
n
−
1
−
p
0
ρ
\bar w = n - \frac{\mu}{\lambda} \left( 1 - p_0 \right) = n - \frac{1 - p_0}{\rho}
wˉ=n−λμ(1−p0)=n−ρ1−p0接下来计算等待队列中等待修理的机床的个数。设所有与“修理”相关的机床数为
W
W
W,包括队列中等待的个数
R
R
R与正在修理的个数
Ω
\Omega
Ω:
W
=
R
+
Ω
W = R + \Omega
W=R+Ω显然,由于只有一个调试员,因此
Ω
\Omega
Ω只能取1或0。相应地,其期望为
Ω
ˉ
=
0
⋅
p
0
+
1
⋅
(
1
−
p
0
)
=
1
−
p
0
\bar \Omega = 0 \cdot p_0 + 1 \cdot \left(1 - p_0 \right) = 1 - p_0
Ωˉ=0⋅p0+1⋅(1−p0)=1−p0那么队伍中等待修理的机床的平均个数为
R
ˉ
=
w
ˉ
−
Ω
ˉ
=
n
−
1
−
p
0
ρ
−
(
1
−
p
0
)
=
n
−
(
1
−
p
0
)
(
1
+
1
ρ
)
\bar R = \bar w - \bar \Omega = n - \frac{1 - p_0}{\rho} - \left(1 - p_0 \right) = n - \left(1 - p_0 \right) \left( 1 + \frac{1}{\rho} \right)
Rˉ=wˉ−Ωˉ=n−ρ1−p0−(1−p0)=n−(1−p0)(1+ρ1)最后来看产能相关的指标。设一架机床的产能为
l
l
l,则可以计算出单位时间内因故障而造成的产能损失为
L
=
w
ˉ
l
L = \bar w l
L=wˉl