排队问题的MonteCarlo模拟.docxVIP

  • 7
  • 0
  • 约2.06千字
  • 约 4页
  • 2017-08-11 发布于重庆
  • 举报
排队问题的MonteCarlo模拟

排队问题的Monte Carlo模拟问题的提出排队是生活中经常遇到的情况,如在学校食堂买饭,去ATM机上提款,上公交车等,都需要排队,排队是素质的体现,也能提高效率。在一个商店中有一个售货员,顾客陆续到来,售货员逐个地接待顾客,当到来一定数量的顾客时,一部分顾客就需要排队,被接待后的顾客便离开商店。那么,在一个工作日内完成服务的个数及顾客的平均等待时间为多少?在100个工作日中,求出平均每日完成服务的个数及每日顾客的平均等待时间。问题的分析问题所给出的情景是一个明显的单服务源的排队模型。在排队排队论理论中,排队论是一门研究随机服务系统工作过程的理论和方法。在这类系统中,服务对象的到达时间及系统用于每个服务对象的服务时间是随机的。排队论通过对每个个别的随机服务现象的统计研究,找出反映这些随机现象平均水平特性的规律,从而为设计新的服务系统和改善现有的服务系统的工作提供依据。一般来说,可采用模拟的方法来解决这类比较复杂的排队问题。问题的假设顾客到来的时间间隔服从参数为的指数分布;对顾客的服务时间服从上的均匀分布;排队按先到先服务规则,队长无限制;工作日时长8h。问题求解符号说明:则对问题(1),有如下的模拟过程图用MATLAB编程如下:%simulate.m 计算机模拟单服务源排队问题一天可服务的人数%假设服务对象的到来的时间间隔服从指数分布%假设对顾客的服务时间服从均匀分布%服务按先到先服务规则,队长无限制%By YJF%Email: yang.jianfeng@%==========================================================================function [m,t]=simulate(lumda,a1,a2)%m表示可服务的顾客数,t表示平均等待时间,%lumda表示指数分布的参数,a1、a2表示均匀分布的参数i=2;w=0;e(i-1)=0; %初始化x(i)=exprnd(1/lumda); %顾客到来时间间隔c(i)=x(i); %第i个顾客到达时间b(i)=x(i); %第i个顾客开始服务时间while b(i)=480 y(i)=unifrnd(a1,a2); %对顾客服务时间 e(i)=b(i)+y(i); %第i个顾客服务结束时间 w=w+b(i)-c(i); %累计等待时间 i=i+1; x(i)=exprnd(1/lumda); c(i)=c(i-1)+x(i); b(i)=max(c(i),e(i-1));endi=i-1;t=w/im=i对于问题(2),只需对问题i稍作修改即可程序如下:%simulate.m 计算机模拟单服务源排队问题n天可服务的人数%假设服务对象的到来的时间间隔服从指数分布%假设对顾客的服务时间服从均匀分布%服务按先到先服务规则,队长无限制%By YJF%Email: yang.jianfeng@%==========================================================================function [pm,pt]=simulate1(n,lumda,a1,a2)%m表示可服务的顾客数,t表示平均等待时间,n表示天数%lumda表示指数分布的参数,a1、a2表示均匀分布的参数cs=n;for j=1:cs w(j)=0; i=2; %初始化 x(i)=exprnd(1/lumda); %顾客到来时间间隔 c(i)=x(i); %第i个顾客到达时间 b(i)=x(i); %第i个顾客开始服务时间 while b(i)=480 y(i)=unifrnd(a1,a2); %对顾客服务时间 e(i)=b(i)+y(i); %第i个顾客服务结束时间 w=w+b(i)-c(i); %累计等待时间 i=i+1; x(i)=exprnd(1/lumda); c(i)=c(i-1)+x(i); b(i)=max(c(i),e(i-1)); end i=i-1; t(j)=w(j)/i; m(j)=i;endpt=0;pm=0;for j=1:cs pt=pt

文档评论(0)

1亿VIP精品文档

相关文档