用R软件模拟两服务员的并联排队系统
2018-01-08黄雅楠
黄雅楠
【摘要】首先,本文介绍了经典的两个服务员的并联系统;其次,通过对排队规则的改变,更新该系统并给出算法;最后,用R软件对系统进行模拟.
【关键词】排队论;并联系统;R软件模拟
一、引言
排队是人们日常生活中经常遇到的现象.排队论,又称随机服务系统,是通过对服务对象到来和服务时间的统计研究,得出一些数量指标的统计规律,根据这些规律来改进并优化服务系统的结构.由于排队论的应用越来越广泛,排队规则和服务机构也变得愈之复杂,解析方法已无法求解,而随着计算机技术的发展,计算机模拟成为求解排队系统并分析系统性能的一种有效的方法.
二、排队系统理论
一个排队系统有四个基本要素:输入过程、排队规则、服务时间和服务系统.
输入过程,是描述顾客来源及顾客是按照怎样的规律到达排队系统,它包括顾客总体数、顾客到达类型、相继顾客到达的间隔时间服从怎样的分布,分布参数是什么.排队规则,是指服务是否允许排队,顾客是否愿意等待,在排队等待的情况下,服务的顺序是怎样的.服务时间,是指服务员对顾客服务所消耗的时间,是一个随机变量,它们相互之间独立同分布.服务机构,即服务台的数目.
三、模型分析
考虑两个服务员的模型,顾客按照非齐次的Possion过程到来.若两个服务员1,2都是忙的,则来到的顾客进入排队等候的队伍,设每个服务员都有其自己的排队,一个来到者加入最短的队伍.当来到者发现两个队伍一样长(或两个服务员前都是空的)时,就来到服务员1前.当顾客接受完一个服务员的服务后将自动离开此系统.每个顾客接受服务员i的服务时间有分布函数Gi,i=1,2.
我们要模拟上述模型来分析每个顾客花费在这个系统中的总时间和每个服务员服务的顾客数.由于有两个服务员,故顾客不必按照来时的顺序离开,要知道哪一个顾客将离开此系统就要根据服务的完成情况来确定,故我们必须了解哪些顾客是在该服务系统中.当顾客到达时,我们对其进行编号,第一个到达的顾客编号为1,下一个编号为2,等等.假设顾客i和j正在接受服务,其中i
为了分析此系统,我们引入下述变量.
1.时间变量:(1)当前时间t;(2)规定计时从0开始t0;(3)顾客到达时间tA;(4)顾客花在系统中的平均时间TT;(5)离开服务员1,2的时间t1,t2.2.系统状态变量:S1,S2.3.计数变量:(1)接受S1,S2服务顾客数统计c1,c2;(2)S1,S2中接受服务顾客序列号i1,i2;(3)到达人数N;(4)系统中的人数n.4.输出变量:(1)在S1中接受服务顾客所占比重c1_percent;(2)离开S1,S2的时间及最后一个顾客离开的时间D1,D2,D.
四、算法
设yi是分布Gi,i=1,2的随机变量.模拟算法如下:
第一步:初始步,令t=t0=tA=0,c1=c2=0,n=N=0,i1=i2=0,TT=0,
D1=D2=0,c1_percent=0,wq=99 999,t1=t2=wq,输出结果.
第二步:当到达时间及离开服务员的时间有限,若tA是t1,t2,tA中最小的,则将tA赋给t,到达人数N递增,赋予tA一个分布,进行第三步;若t1是t1,t2,tA中最小的,则将t1赋给t,接受S1服务的顾客c1递增,进行第四步;若t2是t1,t2,tA中最小的,则将t2赋给t,接受S2服务的顾客c2递增,进行第五步.
第三步:有顾客到达的情況,若人数n=0,则n=n+1,i1=N,令y1为指数分布,且t1=t+y1;若人数n=1且第i1个顾客数大于0,则n=n+1,i1=N,令y2为另一指数分布,且t2=t+y2;若人数n=1且第i2个顾指数大于0,令n=n+1,i1=N,令y1为指数分布,且t1=t+y1;若人数n>1,令n=n+1,表明S1,S2都有人在接受服务,只能等待,需更新系统人数;若顾客数到达上限,则不再接受顾客.
第四步:有顾客离开S1的情况,若人数n=1,则令n=n-1,i1=i2=0,把t1赋给D1,令t1为无穷大;若人数n=2,则令n=n-1,i1=0,令t1为无穷大;若人数n>2,则令n=n-1,i1=max{i1,i2}+1,令y1为指数分布,且t1=t+y1.
第五步:有顾客离开S2的情况,若人数n=1,则令n=n-1,i1=i2=0,把t2赋给D1,令t2为无穷大;若人数n=2,则令n=n-1,i2=0,令t2为无穷大;若人数n>2,则令n=n-1,i2=max{i1,i2}+1,令y2为另一指数分布,且t2=t+y2.
第六步:输出数据,S1服务的顾客占总顾客数的百分比和顾客在系统中平均等待的时间.
五、具体算例及结果展示
假设服务员1是速率为4的指数分布,服务员2是速率为3的指数分布,顾客以速率为6的Possion过程到来.试求1 000个顾客花费在系统中的平均时间及这1 000个来到者中由服务员1服务所占的比例.10 000及100 000个顾客呢?
用R软件模拟的结果如下表所示.
1 000个顾客10 000个顾客100 000个顾客
花费时间0.561 000 00.575 900 00.574 040
所占比例0.160 479 80.144 944 40.142 786
六、结束语
由上述过程可以看出,通过运用计算机对排队系统进行模拟,可以考察系统状态的动态行为和特征.通过大量的多次试验,获得更加有益的排队规则,可降低试验成本,提高系统可靠性.
【参考文献】
[1]肖枝红,朱强.统计模拟及其R实现[M].武汉:武汉大学出版社,2010.
[2]王勇.排队管理系统在银行管理中的应用[J].黑龙江大学自然科学学报,2006(2):157-162.