多服务台排队系统的仿真

多服务台排队系统的仿真

ID:47409934

大小:190.50 KB

页数:8页

时间:2019-06-29

多服务台排队系统的仿真_第1页
多服务台排队系统的仿真_第2页
多服务台排队系统的仿真_第3页
多服务台排队系统的仿真_第4页
多服务台排队系统的仿真_第5页
资源描述:

《多服务台排队系统的仿真》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Word格式实验3---多服务台排队系统的仿真姓名:学号:一、目标任务已知一个系统有N个服务员,能力相等,服务时间服从指数分布。顾客的到达时间间隔服从指数分布。用Monte-Carlo仿真,分别求按下列方案的总体平均排队时间:①M

2、M

3、N。②N个单通道系统并列,按1/N概率分裂到达流。③N个单通道并列,挑选最短的队。要求:①给出程序设计的过程。②如果采用固定的N,则要求N>2。③至少取ρ=0.3和ρ=0.7两种强度运行程序。④对结果进行分析。二、编程语言Matlab三、关键代码方案一:N=3;%服务员人数r=6;%顾客到达流强度u=20;%服务员服务强度T=1

4、000000;%仿真运行时间avg_wait_time=[];%平均等待时间fori=1:100%模拟排队函数server_time=[0.0,0.0,0.0];%用来保存服务员下一空闲时间time=0;%绝对时钟,初始为0client_num=0;%顾客总数,初始为0CRTime=0;%顾客到达时间间隔ServeTime=0;%顾客服务时间server_id=0;%当前进入排队窗口的服务员编号total_wait_time=0;%系统中到达顾客的总等待时间while1CRTime=exprnd(1/r);%按指数分布产生顾客到达时间间隔time=time+C

5、RTime;%更新系统的绝对时钟完美整理Word格式iftime>Tbreak;endclient_num=client_num+1;%顾客数加1ServeTime=exprnd(1/u);%按指数分布产生顾客服务间隔server_id=mod(client_num,N);%按1..N的顺序循环排入服务员窗口ifserver_id==0server_id=N;endifserver_time(1,server_id)<=time%如果当前server_id号服务员空闲,则直接接收服务server_time(1,server_id)=time+ServeTime

6、;%服务员下一空闲时间为当前绝对时钟加上当前服务时间else%否则所有服务员都在忙碌,顾客要排队等候total_wait_time=total_wait_time+server_time(1,server_id)-time;%顾客排队等候时间为当前服务员下一空闲时间减去绝对时钟server_time(1,server_id)=server_time(1,server_id)+ServeTime;endendavg_wait_time=[avg_wait_time,total_wait_time/client_num];end%计算平均等待时间mean_avg_

7、wait_time=mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f',r/u,mean_avg_wait_time);%打印平均等待时间%绘制每次仿真的平均等待时间和总体平均等待时间线状图x=1:100;%plot(x,avg_wait_time,x,mean_avg_wait_time);scatter(x,avg_wait_time,'.');方案二:N=3;%服务员人数r=6;%顾客到达流强度u=20;%服务员服务强度T=1000;%仿真运行时间avg_wait_time=[];%平均等待时间完美整理W

8、ord格式fori=1:100%模拟排队函数server_time=[0.0,0.0,0.0];%用来保存服务员下一空闲时间time=0;%绝对时钟,初始为0client_num=0;%顾客总数,初始为0CRTime=0;%顾客到达时间间隔ServeTime=0;%顾客服务时间server_id=0;%当前进入排队窗口的服务员编号total_wait_time=0;%系统中到达顾客的总等待时间while1CRTime=exprnd(1/r);%按指数分布产生顾客到达时间间隔time=time+CRTime;%更新系统的绝对时钟iftime>Tbreak;end

9、client_num=client_num+1;%顾客数加1ServeTime=exprnd(1/u);%按指数分布产生顾客服务时间间隔server_id=randi([1N]);%按1/N的概率排入服务员窗口ifserver_time(1,server_id)<=time%如果当前server_id号服务员空闲,则直接接收服务server_time(1,server_id)=time+ServeTime;%服务员下一空闲时间为当前绝对时钟加上当前服务时间else%否则所有服务员都在忙碌,顾客要排队等候total_wait_time=total_wait_ti

10、me+server_time(1,se

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

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

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