MMN的排队源程序matlab.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
旅客登机前需要进行安检。首先接受安检人员的检查,有两名安检人员,旅客根据安检人员前的等待人数排队;然后通过一道安检门完成检查。如下图所示(时间单位分钟)。请编制仿真程序,估计顾客通过安检所需时间。 添加函数newMM2andMM1,参数的解释也在源程序里说明了。则按题意输入meant=newMM2andMM1(1,1.5,2,0.2,1,300) ,得到结果为时间为meant =2.2418; 各个人得到的结果是不太一样的,是正确的,因为程序模拟的随机分布的数,是符合实际的。 源程序如下: function [meant]=newMM2andMM1(mean_arr,mean_serv,mean_serv1,mean_serv21,mean_serv22,peo_num) %mean_arr,到达的时间参数 %mean_serv,服务台a的服务时间参数 %mean_serv1,服务台b的服务时间参数 %mean_serv21,mean_serv22,二级服务台的均匀分布的参数 %peo_num,总服务人数 nt=exprnd(mean_arr,1,peo_num); %各顾客到达时间间隔服从指数分布 state_a=zeros(3,peo_num);?? %用一个三行矩阵表示a台每个顾客的状态? ? %三行依次为:到达时间间隔,服务时间,等待时间? ?? ?? ?? ?? ?? ? state_b=zeros(3,peo_num);? ??? %用一个三行矩阵表示b台每个顾客的状态? ? %三行依次为:到达时间间隔,服务时间,等待时间? ?? ?? ?? ?? ?? ??? state_a(2,:)=exprnd(mean_serv,1,peo_num); %生成a台各顾客服务时间的矩阵 state_b(2,:)=exprnd(mean_serv1,1,peo_num); %生成b台各顾客服务时间的矩阵 state_a(3,1)=0;? ? state_b(3,1)=0; a=1;%a台服务的人数 b=1;%b台服务的人数 arr_time=cumsum(nt);? ? %到达时间由时间间隔变成连续时间 state_b(1,1)=arr_time(1); state_a(1,1)=arr_time(2);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??? %state(1,:)=arr_time;?? lea_time_a(1)=sum(state_a(:,1));? ? %先计算前1名顾客的离开时间? ? lea_time_b(1)=sum(state_b(:,1));? ? %先计算第2名顾客的离开时间 ? ?? ?? ?? ?? ? ? ?? ?? ?? ?? ? for i=3:peo_num if??lea_time_a(a)lea_time_b(b) %第i个顾客到达,服务台满,等待时间为? ? %当时服务台最早离开的顾客的离开时间减去第i个顾客的到达时间 ? ?? ???a=a+1; ? ?? ???state_a(1,a)=arr_time(i); ? ?? ???if state_a(1,a)=state_a(3,a-1)+state_a(2,a-1)? ? ? ?? ?? ???state_a(3,a)=state_a(3,a-1)+state_a(2,a-1)-state_a(1,a-1);? ? ? ?? ???else? ? ? ?? ?? ?? ?state_a(3,a)=0;? ? ? ?? ???end ? ?? ???lea_time_a(a)=sum(state_a(:,a)); ? ? else ? ?? ???b=b+1; ? ?? ???state_b(1,b)=arr_time(i); ? ?? ???if state_b(1,b)=state_b(3,b-1)+state_b(2,b-1)? ? ? ?? ?? ???state_b(3,b)=state_b(3,b-1)+state_b(2,b-1)-state_b(1,b-1);? ? ? ?? ???else? ? ? ?? ?? ?? ?state_b(3,b)=0;? ? ? ?? ???end ? ?? ???lea_time_b(b)=sum(state_b(:,b)); ? ? end end %连接两个状态矩阵 state=[state_a(:,1:a),state_b(:,1:b)]; state(3,:)=[lea_time_a(1:a),lea_time_b(1:b)]; %连接两个离开时间 %[g,m]=min(lea_time_a); %[h,n]=min

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档