机器维修问题(Machine Repair Problem,MRP)或称机器干扰问题(Machine Interference Problem)是排队问题中的典型问题,下面首先介绍排队论的基础知识和分析方法,接着介绍MRP的一些结论。
1 排队论基础知识
1.1 排队系统组成
排队系统由输入过程、排队规则和服务过程三部分组成。
- 输入过程:主要考虑因素包括顾客类型(有几种顾客)、顾客到达方式(一个一个到达还是分批到达)、顾客到达的相关性(以前的到达情况是否对以后的到达情况有影响)、顾客到达间隔时间的分布、间隔时间的分布是否与时间相关。
- 排队规则:包括损失制、等待制、混合制三种,通过最长等待队长和最长等待时间进行区分。损失制是指最长等待队长和最长等待时间为0,即服务台被占用时顾客不等待立即离开;等待制是指最长等待队长和最长等待时间为无穷大,顾客一直等到被服务为止;混合制是指设置有限的最长等待队长和最长等待时间,超过其中一个阈值时顾客离开。
- 服务过程:考虑因素包括服务机构类型(多服务台并联还是串联)、服务规则(先到先服务、后到先服务、随机、优先级排序)和服务时间分布三个。
基于上述组成,可以用六元组“顾客到达间隔时间的分布 / 服务时间分布 / 服务台数量 / 系统容量限制 / 顾客类型数量 / 服务规则”表示一个排队系统,符号表示为X/Y/Z/A/B/C,其中系统容量是指正在接受服务的人数和排队人数的总和。时间分布主要有指数分布(M)、常数(D)、k 阶爱尔朗(Erlang)分布( E k E_k Ek)、一般分布(G)等。
Remark:需要注意,当有多台服务台时,M/M/c排队系统是指c个服务台,只有一个等待队列。
1.2 系统指标
一个排队系统的优劣可以用以下指标衡量:
- 平均队长( L L L):指系统内顾客数(包括正被服务的顾客与排队等待服务的顾客)的数学期望;
- 平均排队长( L q L_q Lq):指系统内等待服务的顾客数的数学期望;
- 平均逗留时间( W W W):顾客在系统内时间(包括排队等待的时间和接受服务的时间)的数学期望;
- 平均等待时间( W q W_q Wq):指一个顾客在排队系统中排队等待时间的数学期望;
- 平均忙期( T b T_b Tb):指服务机构连续繁忙时间(顾客到达空闲服务机构起,到服务机 构再次空闲止的时间)长度的数学期望;
1.3 系统稳态分析
一般使用生灭过程进行排队系统分析。在排队系统中,称一个顾客的到达为“生”,一个顾客的离去为“灭”。定义 N ( t ) N(t) N(t)表示t时刻系统中的顾客数,则 { N ( t ) , t ≥ 0 } \{N(t), t\geq 0\} {N(t),t≥0}构成一个随机过程。对该随机过程引入如下假设。
假设1:当 N ( t ) = n N(t)=n N(t)=n时,
- 从t时刻开始到下一个顾客到达为止的时间间隔 T B T_B TB服从参数为 λ n \lambda_n λn的指数分布;
- 从t时刻开始到下一个顾客离开为止的时间间隔 T D T_D TD服从参数为 μ n \mu_n μn的指数分布;
- T B , T D T_B, T_D TB,TD是相互独立的随机变量。
当 { N ( t ) , t ≥ 0 } \{N(t), t\geq 0\} {N(t),t≥0}满足假设1时,称该过程为一个生灭过程。可以使用以下马尔科夫链描述以上状态转换过程。
当系统达到平衡状态时,对每个状态有如下平衡方程:
状态 | 平衡方程 |
---|---|
0 | μ 1 p 1 = λ 0 p 0 \mu_1 p_1 = \lambda_0 p_0 μ1p1=λ0p0 |
1 | μ 0 p 0 + μ 2 p 2 = ( λ 1 + μ 1 ) p 1 \mu_0 p_0 + \mu_2 p_2 = (\lambda_1+\mu_1) p_1 μ0p0+μ2p2=(λ1+μ1)p1 |
2 | μ 1 p 1 + μ 3 p 3 = ( λ 2 + μ 2 ) p 2 \mu_1 p_1 + \mu_3 p_3 = (\lambda_2+\mu_2) p_2 μ1p1+μ3p3=(λ2+μ2)p2 |
… | … |
n | μ n − 1 p n − 1 + μ n + 1 p n + 1 = ( λ n + μ n ) p n \mu_{n-1} p_{n-1} + \mu_{n+1} p_{n+1} = (\lambda_n+\mu_n) p_n μn−1pn−1+μn+1pn+1=(λn+μn)pn |
… | … |
记
C
n
=
λ
n
−
1
λ
n
−
2
⋯
λ
0
μ
n
μ
n
−
1
⋯
μ
1
,
n
=
1
,
2
,
⋯
C_n = \frac{\lambda_{n-1}\lambda_{n-2}\cdots\lambda_{0}}{\mu_{n}\mu_{n-1}\cdots\mu_{1}}, ~n=1,2,\cdots
Cn=μnμn−1⋯μ1λn−1λn−2⋯λ0, n=1,2,⋯
由平衡方程可得
p
n
=
C
n
p
0
,
n
=
1
,
2
,
⋯
p_n = C_n p_0, ~n=1,2,\cdots
pn=Cnp0, n=1,2,⋯
由于概率分布要求
∑
n
=
0
∞
p
n
=
1
\sum_{n=0}^\infty p_n=1
∑n=0∞pn=1,将上式代入可得
p
0
=
1
1
+
∑
n
=
0
∞
C
n
p_0 = \frac{1}{1+\sum_{n=0}^\infty C_n}
p0=1+∑n=0∞Cn1
因此,已知
λ
n
,
μ
n
\lambda_n, \mu_n
λn,μn,便可求得每个系统状态的概率
p
n
p_n
pn。则系统平均队长和平均排队长分别为
L
=
∑
n
=
0
∞
n
p
n
,
L
q
=
∑
n
=
s
∞
(
n
−
s
)
p
n
L = \sum_{n=0}^\infty np_n, ~L_q = \sum_{n=s}^\infty (n-s)p_n
L=n=0∑∞npn, Lq=n=s∑∞(n−s)pn
其中
s
s
s表示服务台个数。记
λ
∗
=
∑
n
=
0
∞
λ
n
p
n
\lambda^* = \sum_{n=0}^\infty\lambda_n p_n
λ∗=∑n=0∞λnpn表示系统中顾客的平均到达率,则平均等待时间和平均逗留时间分别为
W
=
L
λ
∗
,
W
q
=
L
q
λ
∗
W = \frac{L}{\lambda^*}, ~W_q = \frac{L_q}{\lambda^*}
W=λ∗L, Wq=λ∗Lq
2 机器维修问题
机器维修问题是指有s个工人同时看管m台机器,当机器发生故障时即停下来等待维修,修好后再投入使用,且仍然可能再发生故障。这是典型的有限源的排队模型。
2.1 负指数分布的运行时间和修复时间
在有限源的条件下,必须考虑每台机器的工作状态。引入如下假设:
假设2:
- (正常运转时间)每台机器连续正常运转的时间服从参数为 λ \lambda λ的负指数分布,即每台机器平均连续运转时间为 1 λ \frac{1}{\lambda} λ1,一台机器在单位运转时间内发生故障的平均次数为 λ \lambda λ。
- (修复时间)每台机器的修复时间都服从参数为 μ \mu μ的负指数分布,即工人修理机器的平均时间为 1 μ \frac{1}{\mu} μ1。
- 每台机器在任何时段内连续运转的时间与工人修复时间彼此独立。
基于假设2,系统的到达率和服务率为
λ
n
=
(
m
−
n
)
λ
,
n
=
0
,
1
,
2
,
⋯
,
m
−
1
μ
n
=
{
n
μ
,
n
=
1
,
2
,
⋯
,
s
s
μ
,
n
=
s
+
1
,
⋯
,
m
\begin{align*} \lambda_n &= (m-n)\lambda, ~n=0,1,2,\cdots, m-1\\ \mu_n &= \begin{cases} n\mu,\quad n=1,2,\cdots, s\\ s\mu, \quad n=s+1,\cdots, m \end{cases} \end{align*}
λnμn=(m−n)λ, n=0,1,2,⋯,m−1={nμ,n=1,2,⋯,ssμ,n=s+1,⋯,m
根据第一节结果可算出稳态概率如下:
p
0
=
[
∑
n
=
0
s
−
1
m
!
(
m
−
n
)
!
n
!
ρ
n
+
∑
n
=
s
m
m
!
(
m
−
n
)
!
s
!
s
n
−
s
ρ
n
]
−
1
p
n
=
{
m
!
(
m
−
n
)
!
n
!
ρ
n
p
0
,
n
=
1
,
2
,
⋯
,
s
m
!
(
m
−
n
)
!
s
!
s
n
−
s
ρ
n
p
0
,
n
=
s
+
1
,
⋯
,
m
\begin{align*} p_0 &= \left[ \sum_{n=0}^{s-1}\frac{m!}{(m-n)!n!}\rho^n + \sum_{n=s}^m \frac{m!}{(m-n)!s!s^{n-s}}\rho^n \right]^{-1}\\ p_n &= \begin{cases} \frac{m!}{(m-n)!n!}\rho^np_0,\quad n=1,2,\cdots, s\\ \frac{m!}{(m-n)!s!s^{n-s}}\rho^np_0, \quad n=s+1,\cdots, m \end{cases} \end{align*}
p0pn=[n=0∑s−1(m−n)!n!m!ρn+n=s∑m(m−n)!s!sn−sm!ρn]−1={(m−n)!n!m!ρnp0,n=1,2,⋯,s(m−n)!s!sn−sm!ρnp0,n=s+1,⋯,m
其中
ρ
=
λ
μ
\rho = \frac{\lambda}{\mu}
ρ=μλ。进而可计算平均队长为
L
=
∑
n
=
0
m
n
p
n
L = \sum_{n=0}^m np_n
L=n=0∑mnpn
值得注意的是,这里顾客的平均到达率为
λ
e
=
∑
n
=
0
m
(
m
−
n
)
λ
p
n
=
λ
(
m
−
L
)
\lambda_e = \sum_{n=0}^m (m-n)\lambda p_n = \lambda (m-L)
λe=n=0∑m(m−n)λpn=λ(m−L)
因此,根据李特尔公式(Little’s law),平均等待队长为
L
q
=
L
−
λ
e
μ
=
L
−
ρ
(
m
−
L
)
L_q = L-\frac{\lambda_e }{\mu} = L-\rho(m-L)
Lq=L−μλe=L−ρ(m−L)
2.2 一般分布的运行时间和负指数分布的修复时间
当运行时间为一般分布时,即 G / M / r G/M/r G/M/r的机器维修问题,Bunday在其《The G/M/r machine interference model》1与《A closed form solution for the G/M/r machine interference model》2论文中证明,当机器的运行时间独立同分布时,稳态概率 p n p_n pn计算结果与 M / M / r M/M/r M/M/r模型的结果相同,仅与这些分布的均值 1 / λ i 1/\lambda_i 1/λi(异构时)有关,说明正常运行时间的分布情况对系统的稳态概率计算没有影响。