《数学与应用数学毕业设计(论文)排队系统的服务策略与评价体系.doc》由会员分享,可在线阅读,更多相关《数学与应用数学毕业设计(论文)排队系统的服务策略与评价体系.doc(37页珍藏版)》请在三一办公上搜索。
1、排队系统的服务策略与评价体系XXX(XXXXXXX)摘 要:本文首先介绍了排队系统的基础理论,其次建立了排队系统的评价体系用来评价一个排队系统的优劣,然后分析了两类排队系统,即非优先排队系统和优先排队系统.对于非优先服务排队系统建立了先到先服务策略模型,对于优先排队系统建立了短作业优先服务策略模型和高响应比优先服务策略模型. 最后通过三种策略模型的评价指标分析了不同策略的优良,为管理者合理地安排服务窗口、优化系统效率和系统成本,提供了科学的依据与可行的方法.关键词:排队论;评价体系;非优先排队;优先排队;服务策略0 引言排队论是研究服务系统的一门学科,是运筹学的一个分支排队是社会活动、生产过程
2、以及科学研究中经常遇到的现象由于接受服务的顾客数和服务时间的随机性,排队现象是不可避免的,当然增加服务能力可以减少排队现象,但这样势必增加投资,有时还会因供大于求而造成资源浪费因此,在排队系统中作为管理人员需要在满足顾客服务基本要求的条件下,研究如何提高服务质量、降低排队系统运营成本等问题1本文主要研究了排队系统的运营指标,建立评价体系,然后介绍了非优先排队系统和优先排队系统,并建立了相应的服务策略模型,对不同的服务策略进行模拟分析,通过此系统为管理者解决排队系统中遇到的部分问题.1 排队系统的概念与组成部分2排队是指需要得到某种服务的对象加入等待的队列.需要得到服务的对象泛称顾客,而从事服务
3、的设施或人等泛称服务台.顾客与服务台构成的系统称为服务系统.在某一服务系统中,若某一时刻顾客的数目超过服务台的数目,这时将会产生排队现象,为排队现象的服务系统称为排队系统.图1 排队系统构成因素一般的排队系统都有3个基本部分组成(如上图1)(1)输入过程.输入过程主要包括顾客总体数,包括无限和有限两种;顾客相继到达的时间,包括随机到达和确定到达;顾客到达排队系统的随机分布,常见的输入分布有:定长输入、泊松输入、爱尔朗输入、一般分布输入等.(2)排队规则.按顾客到达后是否等待可分为:损失制和等待制.本文只研究等待制.对于等待制,本文将其划分为:非优先服务和优先服务.对于非优先服务本文采用的服务策
4、略为先到先服务(FCFS),对于优先服务本文采用的策略为短服务优先服务(SJF);高响应比优先服务(FPF).(3)服务机构.服务机构主要指服务台的数目;多服务台时服务的方式包括并联和串联.2 排队系统的评价体系排队系统的性能主要由两方面来决定:顾客的满意度和服务机构的运营成本.对于顾客的满意度评价采用基于模糊数学的评价体系,而服务机构的运营成本指标,由于未获得相关数据,本文只给出不同服务台个数时的各个指标的图表分析,可以很清楚的在分析图中选择合适的服务台个数,来降低成本.(1) 建立顾客指标矩阵假设有n位顾客,对于每位顾客这里定义三个指标:第位顾客的等待时间:第位顾客的逗留时间:第位顾客的带
5、权逗留时间,其中顾客带权逗留时间指顾客逗留时间与顾客服务时间之比.因此顾客指标矩阵为= (1)式中为第个顾客第个指标的值,这里只有三个指标所以的值为3.(2) 数据无量纲化为了消除量纲效应,先对各指标数据进行无量纲化处理得到归一化矩阵,文中选用的无量纲化公式如下 (2)为第 () 个顾客第 ()个指标的特征值, 和为第个指标的最大值和最小值.(3) 顾客满意度评价模型本文使用加权定值法,分别在均值和方差两方面考虑,建立两个评价指标和: (3) (4)其中、为归一化矩阵的三列的期望值,、为归一化矩阵的三列的方差,为权值. 3 非优先排队系统3.1 非优先排队系统分析(1) 符号说明:顾客的平均等
6、待时间:顾客的平均逗留时间:顾客的平均等待队长:顾客的平均队长(2) 系统分析3假设顾客流是服从参数为的最简单流,只有一个服务台,服务时间服从参数为 的指数分布,在服务台忙时单位时间平均服务完的顾客数为,称为服务强度.则有(3) 实例分析快餐店有一个乘车通过的窗口,平均每小时有40位顾客到达此窗口.服务一位顾客平均需要1min.假设到达时间间隔和服务时间服从指数分布.求各参数值.解 已知,那么,可得,.3.2 先到先服务FCFS策略模型本模型的排队系统为,服务规则采用FCFS,对于非优先排队系统具体分析请参看3.1中的分析.图2 FCFS策略流程图(1) 服务规则先来先服务(FCFS),这是一
7、种最简单的排队规则,它按照顾客到达服务点的先后次序进行排队服务.服务的具体流程(如图2)表1 某快餐店一天内顾客到达与服务情况表顾客号到达时间(min)服务时间(min)102211338444571368171038116917510181112151230141331914371615423164611175941862111965220665217112272162374324751257772681127861228901429968309913110014321037331041341058351094361137371142381151391182401203(2) 实例分析实例
8、某快餐店在2个小时工作时间内统计了顾客到达与服务情况(见表1),只统计了顾客的到达时间和服务时间,对不同的服务策略和不同的服务台数量分别进行分析评价,得出最优策略.表2 FCFS策略且单服务台情况下服务表顾客号等待时间逗留时间带权逗留时间10212122308147112.7558211.61538466202121719227.3333335821274.5921265.2102526261123285.61219332.3571431332414.55555531435513.187515464916.3333341645565.09090917434711.751844555195254
9、2720535811.6215354542253694.312523677023.3333342469707025687510.714286267172722767796.58333352875896.35714329839111.3753088898931881027.285714329910615.142858331051061063410511314.1253510911328.253610911616.5714283711511758.53811611711739114116584011411739实例求解和结果分析将上述表格输入到软件中,设置服务台个数为一个,排队策略为FCFS可得结
10、果(见表2)设置的值分别为0.25、0.25、0.5,由公式(2)(3)(4)在Matlab中运行calculateCost函数(见附录)得结果增加服务台个数后观察三个指标的变化情况,在软件中设置服务台个数从1到4后得到的未归一化的指标变化图如下图3 FCFS指标变化图由图可知当服务台个数为2时三个指标都在10以下,当服务台数超过三个时指标基本无变化,所以在顾客满意度和服务台的运营成本两方面考虑可知服务台最优个数为2个.4 优先排队系统4.1 优先排队系统分析(1) 符号说明对于优先排队模型通常把顾客按照优先级分类,表示优先级为第类顾客的到达时间间隔服从指数分布,表示优先级为第类顾客的服务时间
11、服从的分布.然后令:类顾客的预期平稳等待时间:类顾客在系统中停留的预期平稳时间:排队等待的类顾客的预期平稳数量:类顾客在系统中的预期平稳数量(2) 系统非抢占式模型分析4假设编号较低的顾客类型的优先级高于编号较高的顾客类型的优先级,第类顾客的到达时间间隔服从参数为的指数分布,假设不同顾客的到达时间间隔是独立的,第类顾客的服务时间由随机变量描述,单位时间内平均服务完的第类顾客数为.可得第类顾客的服务强度 ,定义,且有,因此(3) 实例分析某操作系统中只有两类进程,短进程的优先级高于长进程,两类进程的到达时间间隔服从指数分布,平均每小时有12个短进程和6个长进程到达,设1类进程为短进程,2类进程为
12、长进程,已知,求各类进程停留的平均时间.解 已知,.那么,由于所以存在稳态.又,可得,因此可知长进程花费的时间比短进程的长.4.2 短服务优先服务SJF策略模型本模型的排队系统为,服务规则采用SJF,对于优先排队系统具体分析请参看4.1中的分析.(1) 服务规则短服务优先服务(SJF),这是一种优先服务策略,这种策略的规则是把当前到达的顾客按照服务时间排队,服务时间短的排在前面,即服务时间短的优先权高然后依次为顾客服务.服务的具体流程(如图4)图4 SJF策略流程图(2) 实例分析本模型的实例分析采用上面3.2节的实例.表3 SJF策略且单服务台情况下服务表顾客号等待时间逗留时间带权逗留时间1
13、02121223081411153.7551431561263447251.6666666819254.16666659381.61012211491.81213314710.5135141.55555561416818411.515362162131.181818117041181121.09090911911136.52016214.2213442214916510.312523472.3333333240112510172.428571526011278201.666666628871017.2142862938465.753078831911057.5325121.7142857333
14、443437455.6253514184.5361421337242380113902140031实例求解和结果分析将实例中的表格(即表1)输入到软件中,设置服务台个数为一个,排队策略为SJF可得结果(见表3)设置的值分别为0.25、0.25、0.5,由公式(2)(3)(4)在Matlab中运行calculateCost函数(见附录)得结果很显然和指标比FCFS策略指标小,但对于服务时间长的顾客明显不利,如顾客14等待时间长达168分钟.通过增加服务台个数后观察三个指标的变化情况,在软件中设置服务台个数从1到4后得到的指标变化图如下图5 SJF指标变化图由图可知当服务台个数为2时三个指标也同F
15、CFS策略结果类似都在10以下,当服务台数超过三个时指标基本无变化,所以在顾客满意度和服务台的运营成本两方面考虑可知服务台最优个数为2个.4.3 高响应比优先服务FPF策略模型本模型的排队系统为,服务规则采用FPF,对于优先排队系统具体分析请参看4.1中的分析.(1) 服务规则高响应比优先服务(FPF),这同SJF类似也是一种优先服务策略,由上述SJF策略结果可知,短作业优先服务的缺点是服务时间长的顾客的服务得不到保障,如果我们为每位顾客引入优先权时考虑到顾客的等待时间,那么既照顾短服务时间的顾客也不至于使长服务时间的顾客等待时间过长.高响应比优先服务FPF策略的优先权定义,即响应比:这种策略
16、的规则是把当前到达的顾客按照响应比的高低排队,响应比高的顾客排在前面.服务的具体流程(如图6)图6 FPF策略流程图(2) 实例分析本模型的实例分析采用上面3.2节的实例.实例求解和结果分析将实例中的表格(即表1)输入到软件中,设置服务台个数为一个,排队策略为FPF可得结果(见表4)表4 FPF策略且单服务台情况下服务表顾客号等待时间逗留时间带权逗留时间10212122308148123529423.23076926344769388142.333333399142.81078811101531231453.21428561321303.33333331466825.125157103.333
17、33331646575.1818181719235.751871827.454545519101262017224.421677221211378.56252315186247882544517.2857142678827951078.916667281191339.52955637.87530202121311231379.7857143256639331617173461698.6253535399.753661689.7142863715178.5381314143913157.540283110.333333设置的值分别为0.25、0.25、0.5,由公式(2)(3)(4)在Matla
18、b中运行calculateCost函数(见附录)得结果通过观察指标值介于FCFS策略的指标值与SJF策略指标值之间,但指标最小,这样既提高了系统的吞吐率又使长服务时间的顾客等待时间变短,通过折中的方法解决了上述两种策略的弊端.通过增加服务台个数后观察三个指标的变化情况,在软件中设置服务台个数从1到4后得到的指标变化图如下图7 FPF指标变化图由图可知当服务台个数为2时三个指标都在10以下,当服务台数超过三个时指标基本无变化,所以在顾客满意度和服务台的运营成本两方面考虑可知服务台最优个数为2个.5 两类排队系统比较通过以上三种策略模型的实例结果(如图8),可以看出SJF策略的指标值最小,这说明使
19、用SJF策略系统的吞吐率最大,但SJF策略的指标却比FPF策略的大,说明对于SJF策略没能解决服务时间长的顾客等待时间过长的问题.FPF策略的指标虽然略大于SJF策略,但是它的指标最小,所以FPF策略既提高了系统的吞吐率又使长服务时间的顾客等待时间变短,故FPF是最优的服务策略.图8 FPF三种策略的评价指标图通过上述分析我们得出两种排队系统的比较:对于非优先排队系统,优点是简单且易于现实操作,但对于服务时间短的顾客必须等到前面的顾客全部服务完毕才可以开始服务,这样会导致服务时间短的顾客很难对服务满意.对于优先排队系统,通过设置顾客的优先度可以避免以上缺点,提高服务系统的吞吐率和顾客的满意度.
20、本文提供了两类优先度设置的服务策略,即SJF策略和FPF策略.对于SJF策略,能在短时间内将顾客队列的队长降低到最短,但是它对服务时间长的顾客不利.对于FPF策略,既照顾服务时间短的顾客,又考虑到顾客到达的先后顺序,不会使服务时间长的顾客长期得不到服务;但是每次服务完毕都需计算响应比,这需要增加一些硬件设施来实现,比如叫号系统.参考文献:1 何选森. 随机过程与排队论M.长沙:湖南大学出版社,2010.2 朱德通. 最优化模型与实验M.上海:同济大学出版社,2005.3 刁在筠,刘桂珍等. 运筹学(第三版)M.北京:高等教育出版社,2008.4 Wayne L. Winston. Introd
21、uction to Probability Models: Operations Research, Volume IIM. Duxbury Press,2003.5 孙荣恒,李建平. 排队论基础M.北京:科学出版社,2002.6 吴士力. 通俗模糊数学与程序设计M . 北京:中国水利水电出版社,2008.7 张蕊. 服务行业排队论问题分析J.齐齐哈尔大学学报,2002,6:41-43.8 汤子瀛. 计算机操作系统M.西安:西安电子科技大学出版社,2001.9 华兴(美). 排队论与随机服务系统M.上海:上海翻译出版公司,1987.10 孟玉科. 排队论基础及其应用M.上海:同济大学出版社,1
22、989.11 Hideaki Takagi. Queueing AnalysisM. North-Holland,Amsterdam,1991.The Service Strategy and Evaluation System of Queuing SystemXu Zhenzhen(Department of Mathematics, Dezhou University, Dezhou Shandong 253023) Abstract: This paper introduces the basic theory of queueing system, and builds up an
23、evaluation parameter system for valuating the quality of the queueing ystem. Afterwards, the paper analyses two systems of priority queueing system and non-priority queueing system. For priority queueing system, FCFS model is established, and for non-priority queueing system, SJF model and FPF model
24、 are established. At last, through the analysis on the evaluation indexes of the models, the paper gets better service strategy. This paper provides the managers with scientific basis and feasible methods in order to arrange the service windows reasonably, optimize the system and rise the efficiency
25、 greatly.Key words: queuing theory; evaluation system; non-priority queueing; priority queueing; service strategy谢辞本研究及学位论文是在我的导师张智广的亲切关怀和悉心指导下完成的他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我从课题的选择到项目的最终完成,张老师都始终给予我细心的指导和不懈的支持张老师不仅在学业上给我以精心指导,同时还在思想、生活上给以无微不至的关怀,在此谨向张老师致以诚挚的谢意和崇高的敬意在此,我还要感谢在一起愉快的度过大学生活的同学和舍
26、友,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们! 附录:评价指标计算函数%本函数通过无量纲化计算评价指标值%r为求得的无量纲矩阵%x为原始矩阵function r=calculateCost(x)n,m=size(x);r=zeros(n,m);for i=1:n for j=1:m r(i,j)=(x(i,j)-min(x(:,j)/(max(x(:,j)-min(x(:
27、,j); endendRmean=mean(r)%三个指标的均值Rvar=var(r)%三个指标的方差costM=sum(Rmean.*0.25 0.25 0.5) %评价指标值costmcostV=sum(Rvar.*0.25 0.25 0.5) %评价指标值costv排队系统分析软件截图排队系统分析软件源码 1、 .test包:主程序的入口public class Test public static void main(String args) /主程序运行的入口函数MainFrame frame=new MainFrame();/主窗体frame.setVisible(true);/显
28、示主窗体2、.model包:MVC模式中的模型层/服务台实体类,用来模拟多个服务台public class CounterEntity private float counter;/服务台数组public CounterEntity(int num)counter=new floatnum;/创建num个服务台for(int i=0;inum;i+)counteri=0;public int getMinIndex()/获取时间最短的服务台的标号float min=counter0;int index=0;for(int i=1;icounter.length;i+)if(counterimi
29、n)min=counteri;index=i;return index;public float getMin()/获取最短的服务台的时间float min=counter0;for(int i=1;icounter.length;i+)if(counterimin)min=counteri;return min;public float get(int i)return counteri;public void set(int i,float value)counteri=value;/顾客实体类public class CustomEntity private String id;/顾客标
30、号private float comeTime;/顾客到达时间private float serviceTime;/顾客服务时间public CustomEntity(String id, float comeTime, float serviceTime) this.id = id;eTime = comeTime;this.serviceTime = serviceTime;public String getId() return id;public void setId(String id) this.id = id;public float getComeTime() return c
31、omeTime;public void setComeTime(float comeTime) eTime = comeTime;public float getServiceTime() return serviceTime;public void setServiceTime(float serviceTime) this.serviceTime = serviceTime;/策略实体类public class StrategyEntity private String id;/顾客标号private int serviceID=0;/服务台标号private float comeT;/到
32、达时间private float serviceT;/服务时间private float startT=0;/开始时间private float endT=0;/结束时间private float waitT=0;/等待时间private float wholeT=0;/逗留时间private float wholeWT=0;/带权逗留时间public StrategyEntity(String id, float comeT, float serviceT) this.id = id;eT = comeT;this.serviceT = serviceT;public String getI
33、d() return id;public void setId(String id) this.id = id;public int getServiceID() return serviceID;public void setServiceID(int serviceID) this.serviceID = serviceID;public float getComeT() return comeT;public void setComeT(float comeT) eT = comeT;public float getServiceT() return serviceT;public vo
34、id setServiceT(float serviceT) this.serviceT = serviceT;public float getStartT() return startT;public void setStartT(float startT) this.startT = startT;public float getEndT() return endT;public void setEndT(float endT) this.endT = endT;public float getWaitT() return waitT;public void setWaitT(float
35、waitT) this.waitT = waitT;public float getWholeT() return wholeT;public void setWholeT(float wholeT) this.wholeT = wholeT;public float getWholeWT() return wholeWT;public void setWholeWT(float wholeWT) this.wholeWT = wholeWT;public void computeTimes()/计算各项参数this.endT=startT+serviceT;this.waitT=startT
36、-comeT;this.wholeT=endT-comeT;this.wholeWT=wholeT/serviceT;3、.tablemodel包:表单模型包/顾客表单模型,用来在表格中显示顾客的初始状态public class CustomTableModel extends AbstractTableModelprivate CustomListener listener;/顾客监听器,当顾客改变时通知其他组件private ArrayList customs;/顾客数组private String columnNames=顾客标号,到达时间,服务时间;/表格的列名public Custo
37、mTableModel(CustomListener l,ArrayList cus)super();this.listener=l;this.customs=cus;public void add(CustomEntity cus)customs.add(cus);listener.customDataChanged();public ArrayList getCustoms() return customs;public int getColumnCount() return columnNames.length;public String getColumnName(int column
38、) return columnNamescolumn;public boolean isCellEditable(int rowIndex, int columnIndex) if(columnIndex=0)return false;return true;public void setValueAt(Object aValue, int rowIndex, int columnIndex) try float value=Float.parseFloat(aValue.toString();CustomEntity cus=customs.get(rowIndex);if(columnIn
39、dex=1)cus.setComeTime(value);if(columnIndex=2)cus.setServiceTime(value);listener.customDataChanged(); catch (Exception e) JOptionPane.showMessageDialog(null, 数据输入错误!, 警告,JOptionPane.ERROR_MESSAGE);public int getRowCount() return customs.size();public Object getValueAt(int row, int col) CustomEntity
40、cus=customs.get(row);if(col=0)return cus.getId();if(col=1)return cus.getComeTime();if(col=2)return cus.getServiceTime();return null;/策略表单模型,用来在表格中显示策略的结果public class StrategyTableModel extends AbstractTableModelprivate ArrayList list;/策略数组,用来显示顾客策略的结果private String columnNames=顾客,服务台,到达时间, 服务时间,开始时间,结束时间, 等待时间,逗留时间,带权逗留时间;public StrategyTableModel(ArrayList cus)list=new ArrayList();for(CustomEntit