电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

多服务台排队系统的仿真VIP专享VIP免费

多服务台排队系统的仿真_第1页
多服务台排队系统的仿真_第2页
多服务台排队系统的仿真_第3页
实验3---多服务台排队系统的仿真姓名:学号:一、目标任务已知一个系统有N个服务员,能力相等,服务时间服从指数分布。顾客的到达时间间隔服从指数分布。用Monte-Carlo仿真,分别求按下列方案的总体平均排队时间:①M|M|N。②N个单通道系统并列,按1/N概率分裂到达流。③N个单通道并列,挑选最短的队。要求:①给出程序设计的过程。②如果采用固定的N,则要求N>2。③至少取ρ=0.3和ρ=0.7两种强度运行程序。④对结果进行分析。二、编程语言Matlab三、关键代码方案一:N=3;%服务员人数r=6;%顾客到达流强度u=20;%服务员服务强度T=1000000;%仿真运行时间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+CRTime;%更新系统的绝对时钟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;%服务员下一空闲时间为当前绝对时钟加上当前服务时间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_wait_time=mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f\n',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=[];%平均等待时间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;endclient_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_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_wait_time=mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f\n',r/u,mean_avg_wait_time);%打印平均等待时间%绘制每次仿真的平均等待时间散点图x=1:100;scatter(x,avg_wait_time,'.');方案三:N=3;%服务员人数r=6;%顾客到达流强度u=20;%服务员服务强度T=1000;%仿真运行时间avg_wait_time=[];%平均等待时间fori=1:100%模拟排队函数server_time=[0.0,0.0,0.0];%用来保存服务员下一空闲时间time=0;%绝对时钟,初始为0client_num=0;%顾客总数,初始...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部