用matlab实现排队过程的仿真

用matlab实现排队过程的仿真

ID:10239921

大小:1.06 MB

页数:3页

时间:2018-06-13

用matlab实现排队过程的仿真_第1页
用matlab实现排队过程的仿真_第2页
用matlab实现排队过程的仿真_第3页
资源描述:

《用matlab实现排队过程的仿真》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用Matlab实现排队过程的仿真李鹏王珊珊摘要:排队问题仿真的目的是要寻找服务对象与服务设置之间的最佳配置,保证系统具有最佳的服务效率与最合理的配置。通过Matlab平台对单服务台有限队长的排队系统进行过程仿真,可以协助设计人员分析顾客的需求,从而合理规划出符合实际条件的服务设施。关键词:排队;Matlab;仿真实现1引言排队是日常生活中经常遇到的现象,例如:出行坐火车,等待检票进站的排队;到食堂打饭所形成的排队;学校打预防针、体检所形成的排队;看电影、旅游时,前往售票处购票形成的排队等;另一种排队是物的排队,例如:使用FTP或P2P下载传递文件;流水线上生产的产

2、品等待接受检验;维修室的故障仪器等待维修等。排队现象的要素包括两个方面的内容:一是需要接受服务的顾客;二是提供服务的服务台。最近几十年来,排队理论在计算机网络、通信、交通以及其它公共事业领域的应用越来越广泛,已成为分析和设计这些系统的一个不可或缺的工具。Matlab是美国MathWorks公司研制开发的一套用于数值计算的交互式软件系统,具有强大的数值分析、矩阵运算、信息处理、图形显示等功能,其强大的数据处理能力和丰富的工采用面向对象的仿真方法,选取事件发生时刻为仿真时钟。由于Matlab中的计算均为矩阵计算,故利用矩阵形式建立事件参数表events,矩阵event

3、s的行表示顾客的不同参数,列表示不同的顾客。针对M/M/1/N/∞模型的特点,建立顾客信息如表1所示。表1顾客信息表其中,标志位具箱使得它的编程极为方便。正是基于此原因,Matlab软件来对M/M/1/N/∞排队模型进行仿真。2排队模型单服务台排队系统的结构模型如图1所示。才选择了仿真算法原理建立顾客信息后,面向对象的仿真模型算法分为以下两3.2步。3.2.1顾客信息初始化(1)根据到达率λ和服务率μ来确定每个顾客的到达时间间隔和服务时间间隔。服务间隔时间可以用负指数分布函数exprnd()来生成。由于泊松过程的时间间隔也服从负指数分布,故亦可由此函数生成顾客到达

4、时间间隔。需要注意的是,exprnd()的输入参数不是到达率λ和服务率μ,而是平均到达时间间隔1/λ和平均服务时间1/μ。(2)根据到达时间间隔,确定每个顾客的到达时刻。学习过C语言的人习惯于使用for循环来实现数值的累加,但for循环会引起运算复杂度的增加,而在Matlab仿真环境中,提图1单服务台排队系统的结构模型M/M/1/N/∞排队模型表示顾客源为无限,顾客的到达相互独立,到达规律服从泊松分布,平均到达率为λ;单服务台,队长限制为N(即系统中最多允许有N个顾客在排队,再来的顾客将被拒绝进入系统),先到先服务,各顾客的服务时间相互独立,且服从负指数分布,平均

5、服务率为μ。3问题仿真建立顾客信息3.1供了一个方便的函数cumsum()来实现累加功能,读者可以直接引用。(3)对当前顾客进行初始化。第1个到达系统的顾客不需要等待就可以直接接受服务,其离开时刻等于到达时刻与服务时间之和。3.2.2进队出队仿真在当前顾客到达时刻,根据系统内已有的顾客数来确定是否接纳该顾客。若接纳,则根据前一顾客的离开时刻来确定当前顾客的等待时间、离开时间和标志位;若拒绝,则标志位置为0。仿真的具体流程如图2所示。%初始化顾客源%*****************************************%总仿真时间Total_time=1

6、0;%队列最大长度N=20;%到达率与服务率lambda=10;mu=6;%平均到达时间与平均服务时间arr_mean=1/lambda;ser_mean=1/mu;%可能到达的最大顾客数(round:四舍五入求整数)arr_num=round(Total_time*lambda*2);%顾客事件表初始化events=[];%按负指数分布产生各顾客达到时间间隔events(1,:)=exprnd(arr_mean,1,arr_num);%各顾客的到达时刻等于时间间隔的累积和events(1,:)=cumsum(events(1,:));%按负指数分布产生各顾客服务

7、时间events(2,:)=exprnd(ser_mean,1,arr_num);%计算仿真顾客个数,即到达时刻在仿真时间内的顾客数len_sim=sum(events(1,:)<=Total_time);%*****************************************%计算第1个顾客的信息%*****************************************%第1个顾客进入系统后直接接受服务,无需等待events(3,1)=0;%其离开时刻等于其到达时刻与服务时间之和events(4,1)=events(1,1)+events(

8、2,1);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。