读书使人充实,讨论使人机智,笔记使人准确…。凡有所学,皆成性格。
———— (英国)培根
文章目录
排队论模型-----基本模型与LINGO求解
排队论又称随机服务系统, 它应用于一切服务系统, 包括生产管理系统、 通信系统、 交通系统、 计算机存储系统。 现实生活中如排队买票、 病人排队就诊、 轮船进港、 高速路上汽车排队通过收费站、 机器等待修理等等都属于排队论问题。 在历年数模竞赛中, 排队论模型应用的全国数模竞赛中2009B的眼科病床的合理安排问题, 美国数模竞赛中2005B收费站最佳配置问题, 2017D机场安检问题。本部分内容分为三部分: 排队论基本构成与指标, 排队论的四种重要模型, 排队论的计算机模拟。
排队论基本构成与指标
排队论的基本构成
- 输入过程。
输入过程是描述顾客是按照怎样的规律到达排队系统。 包括
①顾客总体: 顾客的来源是有限的还是无限的。
②到达的类型: 顾客到达是单个到达还是成批到达。
③相继顾客到达的时间间隔: 通常假定相互独立同分布, 有的是等间
隔到达 , 有的是服从负指数分布, 有的是服从k阶Erlang分布。 - 排队规则
排队规则指顾客按怎样的规定的次序接受服务。 常见的有等待制, 损
失制, 混合制, 闭合制。 - 服务机构
服务机构主要包括: 服务台的数量; 服务时间服从的分布。 常见的有定长分布、 负
指数分布、 几何分布等。
排队系统的数量指标
-
队长与等待队长
队长(记为 L s L_{s} Ls)是指系统中的平均顾客数(包括正在接受服务的顾客)。
等待队长(记为 L q L_{q} Lq)指系统中处于等待的顾客的数量。
队长等于等待队长加上正在服务的顾客数 -
等待时间
等待时间包括顾客的平均逗留时间(记为 W s W_{s} Ws)
平均等待时间 (记为 W q W_{q} Wq)顾客的平均逗留时间,是指顾客进入系统到离开系统这段时间,包括等待时间和接受服务的时间。
-
忙期
从顾客到达空闲的系统, 服务立即开始, 直到再次变为空闲, 这段时间
是系统连续繁忙的时期, 称之为系统的忙期。
服务强度=忙期/服务总时间=1─闲期/服务总时间
排队论中的符号表示
排队论中的记号是20世纪50年代初由D.G.Kendall引入的, 由3~5个字母组成, 形式为: A/B/C/n
A表示输入过程, B代表服务时间, C代表服务台数量, n表示系统容量。
- (1) M/M/S/∞表示输入过程是Poisson流, 服务时间服从负指数分布, 系
统有S个服务台平行服务, 系统容量为无穷大的等待制排队系统。 - (2) M/G/S/∞表示输入过程是Poisson流, 服务时间服从一般概率分布, 系
统有S个服务台平行服务, 系统容量为无穷大的等待制排队系统。 - (3)D/M/S/K表示顾客相继到达时间间隔独立、 服从定长分布, 服务时间服
从负指数分布,系统S个服务台平行服务,系统容量K个的混合制系统。 - (4) M/M/S/S表示输入过程是Poisson流, 服务时间服从负指数分布, 系
统有S个服务台平行服务, 顾客到达后不等待的损失制系统。 - (5)M/M/S/K/K表示输入过程是Poisson流, 服务时间服从负指数分布, 系
统S个服务台平行服务,系统容量和顾客容量都为K个的闭合制系统。
排队论中四种重要模型
等待制模型M/M/S/∞
该模型中顾客到达服从参数为λ的 Poisson分布,
在[0,t]时间内到达的顾客数
X
(
t
)
X(t)
X(t)服从的的分布为:
P
{
X
(
t
)
=
k
}
=
(
λ
t
)
k
⋅
e
−
λ
t
k
!
P\{X(t)=k\}=\frac{(\lambda t)^{k} \cdot e^{-\lambda t}}{k !}
P{X(t)=k}=k!(λt)k⋅e−λt
其单位时间到达的顾客平均数为
λ
,
[
0
,
t
]
\lambda,[0, t]
λ,[0,t] 时间内到达的顾客平均数为
λ
t
\lambda t
λt 。
顾客接受服务的时间服从负指数分布, 单位时间服务的顾客平均数为
μ
\mu
μ, 服务时间的分布为:
f
(
t
)
=
{
μ
e
−
μ
t
t
>
0
0
f(t)=\left\{\begin{array}{cc} \mu e^{-\mu t} & t>0 \\ 0 & \end{array}\right.
f(t)={μe−μt0t>0
每个顾客接受服务的平均时间为
1
μ
\frac{1}{\mu}
μ1 。
下面分别给出S=1和S>1的一些主要结果。
只有一个服务台S=1情形
当系设稳定状太下系统有 i i i 个顾客的概率为 p i ( i = 0 , 1 , 2 , ⋯ ) p_{i}(i=0,1,2, \cdots) pi(i=0,1,2,⋯) 。
p 0 p_{0} p0 表示系统空闲的概率。则 ∑ i = 0 ∞ p i = 1 p i ≥ 0 , i = 1 , 2 , ⋯ , K \sum_{i=0}^{\infty} p_{i}=1 \quad p_{i} \geq 0, i=1,2, \cdots, K ∑i=0∞pi=1pi≥0,i=1,2,⋯,K
平衡方程为: \quad { λ P 0 = μ P 1 λ P k − 1 + μ P k + 1 = ( λ + μ ) P k k = 1 , 2 , 3 , … . \left\{\begin{array}{l}\lambda P_{0}=\mu P_{1} \\ \lambda P_{k-1}+\mu P_{k+1}=(\lambda+\mu) P_{k}\end{array} \quad k=1,2,3, \ldots .\right. {λP0=μP1λPk−1+μPk+1=(λ+μ)Pkk=1,2,3,….
则系统没有顾客的概率为: p 0 = 1 − ρ = 1 − λ μ p_{0}=1-\rho=1-\frac{\lambda}{\mu} p0=1−ρ=1−μλ
计算出稳定状态下系统有 n n n 个顾客的概率
p
n
=
(
1
−
ρ
)
ρ
n
n
=
0
,
1
,
2
,
3
⋯
p_{n}=(1-\rho) \rho^{n} \quad n=0,1,2,3 \cdots
pn=(1−ρ)ρnn=0,1,2,3⋯
其中
ρ
=
λ
μ
\rho=\frac{\lambda}{\mu}
ρ=μλ 称为系统的服务强度
系统中顾客平均队长:
L
s
=
∑
n
=
0
∞
n
⋅
p
n
=
(
1
−
ρ
)
∑
n
=
0
∞
n
⋅
ρ
n
=
ρ
1
−
ρ
=
λ
μ
−
λ
\quad L_{s}=\sum_{n=0}^{\infty} n \cdot p_{n}=(1-\rho) \sum_{n=0}^{\infty} n \cdot \rho^{n}=\frac{\rho}{1-\rho}=\frac{\lambda}{\mu-\lambda}
Ls=n=0∑∞n⋅pn=(1−ρ)n=0∑∞n⋅ρn=1−ρρ=μ−λλ
系统中顾客平均等待队长:
L
q
=
∑
n
=
1
∞
(
n
−
1
)
⋅
p
n
=
(
1
−
ρ
)
∑
n
=
1
∞
(
n
−
1
)
⋅
ρ
n
=
ρ
2
1
−
ρ
=
λ
2
μ
(
μ
−
λ
)
L_{q}=\sum_{n=1}^{\infty}(n-1) \cdot p_{n}=(1-\rho) \sum_{n=1}^{\infty}(n-1) \cdot \rho^{n}=\frac{\rho^{2}}{1-\rho}=\frac{\lambda^{2}}{\mu(\mu-\lambda)}
Lq=n=1∑∞(n−1)⋅pn=(1−ρ)n=1∑∞(n−1)⋅ρn=1−ρρ2=μ(μ−λ)λ2
系统中顾客平均逗留时间:
W
s
=
1
μ
−
λ
\quad W_{s}=\frac{1}{\mu-\lambda}
Ws=μ−λ1
系统中顾客平均等待时间: W q = 1 μ − λ − 1 μ = λ μ ( μ − λ ) \quad W_{q}=\frac{1}{\mu-\lambda}-\frac{1}{\mu}=\frac{\lambda}{\mu(\mu-\lambda)} Wq=μ−λ1−μ1=μ(μ−λ)λ
容易得到:
L s = λ W s , L q = λ W q W s = L s λ , W q = L q λ L_{s}=\lambda W_{s}, \quad L_{q}=\lambda W_{q} \quad W_{s}=\frac{L_{s}}{\lambda}, \quad W_{q}=\frac{L_{q}}{\lambda} Ls=λWs,Lq=λWqWs=λLs,Wq=λLq
该公式称为Little公式。在其它排队论模型中依然适用。
系统有多个服务台s>1情形
当系设稳定状太下系统有 i i i 个顾客的概率为 p i ( i = 0 , 1 , 2 , ⋯ ) p_{i}(i=0,1,2, \cdots) pi(i=0,1,2,⋯) 。
p 0 p_{0} p0 表示係统空闲的概率。则 ∑ i = 0 ∞ p i = 1 p i ≥ 0 , i = 1 , 2 , ⋯ , K \sum_{i=0}^{\infty} p_{i}=1 \quad p_{i} \geq 0, i=1,2, \cdots, K ∑i=0∞pi=1pi≥0,i=1,2,⋯,K
平衡方程为:
{
μ
P
1
=
λ
P
0
(
k
+
1
)
μ
P
k
+
1
+
λ
P
k
−
1
=
(
λ
+
k
μ
)
P
k
1
≤
k
≤
s
−
1
s
μ
P
k
+
1
+
λ
P
k
−
1
=
(
λ
+
s
μ
)
P
k
k
≥
s
\left\{\begin{array}{l}\mu P_{1}=\lambda P_{0} \\ (k+1) \mu P_{k+1}+\lambda P_{k-1}=(\lambda+k \mu) P_{k} \quad 1 \leq k \leq s-1 \\ s \mu P_{k+1}+\lambda P_{k-1}=(\lambda+s \mu) P_{k} \quad k \geq s\end{array}\right.
⎩⎨⎧μP1=λP0(k+1)μPk+1+λPk−1=(λ+kμ)Pk1≤k≤s−1sμPk+1+λPk−1=(λ+sμ)Pkk≥s
系统中有 S \mathrm{S} S 个服务台, 系统服务能力为 s μ s \mu sμ, 服务强度为 ρ = λ s μ \rho=\frac{\lambda}{s \mu} ρ=sμλ 。
系统中顾客平均队长:
L
s
=
s
ρ
+
(
s
ρ
)
s
ρ
s
!
(
1
−
ρ
)
2
⋅
p
0
L_{s}=s \rho+\frac{(s \rho)^{s} \rho}{s !(1-\rho)^{2}} \cdot p_{0}
Ls=sρ+s!(1−ρ)2(sρ)sρ⋅p0
其中
p
0
=
[
∑
k
=
0
s
−
1
(
s
ρ
)
k
k
!
+
(
s
ρ
)
s
s
!
(
1
−
ρ
)
]
−
1
p_{0}=\left[\sum_{k=0}^{s-1} \frac{(s \rho)^{k}}{k !}+\frac{(s \rho)^{s}}{s !(1-\rho)}\right]^{-1}
p0=[∑k=0s−1k!(sρ)k+s!(1−ρ)(sρ)s]−1, 表示服务台都空闲的概率。
系统中顾客的逗留时间为:
W
s
=
L
s
λ
\quad W_{s}=\frac{L_{s}}{\lambda}
Ws=λLs
系统中顾客的平均等待时间为:
W
q
=
W
s
−
1
μ
W_{q}=W_{s}-\frac{1}{\mu}
Wq=Ws−μ1
系统中顾客的平均等待队长为:
L
q
=
λ
W
q
L_{q}=\lambda W_{q}
Lq=λWq
LINGO中的相关函数及相关参数计算公式
(1) 顾客等待概率的公式:
P
wait
=
@
\mathrm{P}_{\text {wait }}=@
Pwait =@ peb
(
load
,
S
)
(\operatorname{load}, \mathrm{S})
(load,S)
其中
S
\mathrm{S}
S 为服务台服务台个数, load 为系统到达的牫荷, 即
load
=
λ
μ
\operatorname{load}=\frac{\lambda}{\mu}
load=μλ 。
(2) 顾客的平均等待时间公式:
W
q
=
P
wait
T
S
−
l
o
a
d
\mathrm{W}_{\mathrm{q}}=\mathrm{P}_{\text {wait }} \frac{\mathrm{T}}{\mathrm{S}-\mathrm{load}}
Wq=Pwait S−loadT
其中
T
\mathrm{T}
T 为顾客接受服务的平均时间, 有
T
=
1
μ
T=\frac{1}{\mu}
T=μ1.
(3)系统中顾客的平均逗留时间
W
s
=
W
q
+
1
μ
W_{s}=W_{q}+\frac{1}{\mu}
Ws=Wq+μ1
(4) 系统中顾客的的平均队长
L
t
=
λ
W
s
L_{t}=\lambda W_{s}
Lt=λWs
(5) 系统中顾客的的平均等待队长
L
q
=
λ
W
q
L_{q}=\lambda W_{q}
Lq=λWq
问题1 某机关接待室只有1名对外接待人员, 每天工作10小时, 来访人员和接待时间都是随机的。 设来访人员按照Poisson流到达, 到达速率为 λ = 8 \lambda=8 λ=8人/小时, 接待人员的服务速率为 λ = 9 \lambda=9 λ=9人/小时, 接待时间服从负指数分布。
(1) 计算来访人员的平均等待时间, 等候的平均人数。
(2) 若到达速率增大为
λ
=
20
\lambda=20
λ=20人/小时, 每个接待人员的服务速率不变, 为使来访问人员平均等待时间不超过半小时, 最少应该配置几名接待人员。
解答:
(1) 该问题属于M/M/1/∞排队模型
S
=
1
,
λ
=
8
,
μ
=
9
S=1,\lambda=8,\mu=9
S=1,λ=8,μ=9
需计算来访人员平均等待时间
W
q
W_{q}
Wq,等候的平均人数
L
q
L_{q}
Lq
LINGO程序为:
model:
lp=8;
u=9;
T=1/u;
load=lp/u;
S=1;
Pwait=@PEB(load,S);!等待概率;
W_q=Pwait*T/(S-load);!平均等待时间;
L_q=lp*W_q;!顾客的平均等待队长;
end
计算结果:
平均等待时间
W
q
=
0.89
W_{q}=0.89
Wq=0.89 小时=53分
W
q
W_{q}
Wq,等待队长
L
q
=
7.1
L_{q}=7.1
Lq=7.1人
(2)该问题属于
M
/
M
/
S
/
∞
排
min
S
队模型的优化问题。
求最小的使,来访人员的
平均等待时间
W
q
≤
0.5
优化模型为:
s.t.
{
P
wait
=
@
p
e
b
(
l
o
a
d
,
S
)
load
=
λ
/
μ
T
=
1
/
μ
W
q
=
P
wait
T
S
−
load
L
q
=
λ
W
q
W
q
≤
0.5
S
∈
N
\begin{array}{l} \text { (2)该问题属于 } \mathrm{M} / \mathrm{M} / \mathrm{S} / \infty \text { 排 } \quad \min S\\ \begin{array}{l} \text { 队模型的优化问题。 } \\ \text { 求最小的使,来访人员的 } \\ \text { 平均等待时间 } W_{q} \leq 0.5 \\ \text { 优化模型为: } \end{array} \quad \text { s.t. }\left\{\begin{array}{l} \mathrm{P}_{\text {wait }}=@ \mathrm{peb}(\mathrm{load}, \mathrm{S}) \\ \operatorname{load}=\lambda / \mu \\ T=1 / \mu \\ \mathrm{W}_{\mathrm{q}}=\mathrm{P}_{\text {wait }} \frac{\mathrm{T}}{\mathrm{S}-\text { load }} \\ L_{q}=\lambda W_{q} \\ W_{q} \leq 0.5 \\ S \in N \end{array}\right. \end{array}
(2)该问题属于 M/M/S/∞ 排 minS 队模型的优化问题。 求最小的使,来访人员的 平均等待时间 Wq≤0.5 优化模型为: s.t. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧Pwait =@peb(load,S)load=λ/μT=1/μWq=Pwait S− load TLq=λWqWq≤0.5S∈N
实现的LINGO程序为:
model:
min=S;
lp=20;
u=9; !服务率;
T=1/u;
load=lp/u;
Pwait=@PEB(load,S);!接待人员的等待概率
W_q=Pwait*T/(S-load);!平均等待时间;
W_q<=0.5;
L_q=lp*W_q;!顾客的平均等待队长;
TT=W_q*60;
!S>=3;
@gin(S);
end
计算结果:
最少需要接待人员S=3人
来访人员等待概率为0.55
平均等待时间为
W
q
=
4.7
W_{q}=4.7
Wq=4.7分钟
平均等待队长为
L
q
=
1.58
L_{q}=1.58
Lq=1.58人
损失制模型M/M/S/S
M/M/S/S模型表示顾客到达人数服从Poisson分布, 单位时间到达率为 , 服务台服务
时间服从负指数分布, 单位时间服务平均人数为 。 当S个服务台被占用后, 顾客自动
离开, 不再等待。
我们给出LINGO中的有关函数及相关参数的计算公式
(1) 系统损失概率 P lost = @ pel ( l o a d , S ) \quad \mathrm{P}_{\text {lost }}=@ \operatorname{pel}(\mathrm{load}, \mathrm{S}) Plost =@pel(load,S)
其中 S \mathrm{S} S 为服务台个数, l o a d \mathrm{load} load 为系统到达的载荷, 即 l o a d = λ μ \mathrm{load}=\frac{\lambda}{\mu} load=μλ 。
(2) 单位时间内进入系统平均顾客数 λ e = λ ( 1 − P lost ) \quad \lambda_{e}=\lambda\left(1-\mathrm{P}_{\text {lost }}\right) λe=λ(1−Plost )
(3)系统中顾客的平均队长(系统在单位时间内占用服务台比值) L s = λ e μ L_{s}=\frac{\lambda_{e}}{\mu} Ls=μλe
(4) 系统中顾客的平均逗留时间(服务时间) W s = 1 μ = T W_{s}=\frac{1}{\mu}=T Ws=μ1=T
(5)系统服务台的效率 η = L s s \quad \eta=\frac{L_{s}}{s} η=sLs 在损失制排队模型中, 顾客平均等待时间 W q = 0 W_{q}=0 Wq=0,平均等待队长 L q = 0 L_{q}=0 Lq=0, 因为没有顾客等待。
问题2 某单位电话交换台有一部300门内线电话的总机, 已知上班时间有30%的内线分机平均每30分钟要一次外线电话, 70%的分机每隔70分钟时要一次外线电话。 又知从外单位打来的电话的呼唤率平均30秒一次, 设与外线的平均通话时间为3分钟, 以上时间都服从负指数分布。 如果要求外线电话接通率为95%以上, 问电话交换台应设置多少外线?
解: 电话交换台服务分为两部分,
一类是内线打外线, 一类是外线打内线。
内线打外线的服务强度(每小时通话平均次数)(到达率)
λ
1
=
(
60
30
×
30
%
+
60
70
×
70
%
)
×
300
=
1.2
×
300
=
360
\lambda_{1}=\left(\frac{60}{30} \times 30 \%+\frac{60}{70} \times 70 \%\right) \times 300=1.2 \times 300=360
λ1=(3060×30%+7060×70%)×300=1.2×300=360
外线打内线的服务强度(到达率)
λ
2
=
60
0.5
=
120
\lambda_{2}=\frac{60}{0.5}=120
λ2=0.560=120
总强度为 λ = λ 1 + λ 2 = 360 + 120 = 480 \lambda=\lambda_{1}+\lambda_{2}=360+120=480 λ=λ1+λ2=360+120=480
电话平均服务时间为 T = 3 60 = 0.05 T=\frac{3}{60}=0.05 T=603=0.05 小时,服务率 μ = 60 3 = 20 \mu=\frac{60}{3}=20 μ=360=20 个
对该问题, 目标求最小电话交换台数S,使顾客(外线电话)损失率不超过5%, 即
P lost ≤ 5 \mathrm{P}_{\text {lost }}\leq5% Plost ≤5
建立的优化模型为:
min
P
lost
=
@
pel
(
load
,
S
)
load
=
λ
μ
P
lost
≤
0.05
λ
e
=
λ
(
1
−
P
lost
)
L
s
=
λ
/
μ
η
=
L
s
/
S
S
∈
N
\begin{array}{l} \min\\ \begin{array}{l} \mathrm{P}_{\text {lost }}=@ \operatorname{pel}(\operatorname{load}, \mathrm{S}) \\ \operatorname{load}=\frac{\lambda}{\mu} \\ \mathrm{P}_{\text {lost }} \leq 0.05 \\ \lambda_{e}=\lambda\left(1-\mathrm{P}_{\text {lost }}\right) \\ L_{s}=\lambda / \mu \\ \eta=L_{s} / S \\ S \in N \end{array} \end{array}
minPlost =@pel(load,S)load=μλPlost ≤0.05λe=λ(1−Plost )Ls=λ/μη=Ls/SS∈N
LINGO程序为:
model:
min=S;
lp=480;!每小时平均到达电话数;
u=20; !服务率;
load=lp/u;
Plost=@PEL(load,S);!损失率;
Plost<=0.05;
lpe=lp*(1-Plost);
L_s=lpe/u;!顾客的平均队长;
eta=L_s/S; !系统服务台的效率;
@gin(S);
end
计算结果为:
最小的电话交换台为S=30
电话损失率为P=0.04
实际进入系统的电话平均为A=460.7
平均队长
L
L
L=23.037
系统服务台的效率刀
η
=
0.768
\eta=0.768
η=0.768