数学建模之排队论基本模型与LINGO求解

读书使人充实,讨论使人机智,笔记使人准确…。凡有所学,皆成性格。
———— (英国)培根

排队论模型-----基本模型与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)keλ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=0pi=1pi0,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λPk1+μ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=0npn=(1ρ)n=0nρ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(n1)pn=(1ρ)n=1(n1)ρ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=0pi=1pi0,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+λPk1=(λ+kμ)Pk1ks1sμPk+1+λPk1=(λ+sμ)Pkks

系统中有 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=0s1k!(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 SloadT
其中 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 队模型的优化问题。  求最小的使,来访人员的  平均等待时间 Wq0.5 优化模型为 s.t. Pwait =@peb(load,S)load=λ/μT=1/μWq=Pwait S load TLq=λWqWq0.5SN

实现的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=λ(1Plost )

(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=λ(1Plost )Ls=λ/μη=Ls/SSN
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

  • 2
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值