MMN的排队源程序matlab.doc_第1页
MMN的排队源程序matlab.doc_第2页
MMN的排队源程序matlab.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

旅客登机前需要进行安检。首先接受安检人员的检查,有两名安检人员,旅客根据安检人员前的等待人数排队;然后通过一道安检门完成检查。如下图所示(时间单位分钟)。请编制仿真程序,估计顾客通过安检所需时间。添加函数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 iflea_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); endend%连接两个状态矩阵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(lea_time_b);lea_time=lea_time_a,lea_time_b;%按离开时间的先后顺序排队guodu1=lea_time;guodu2=zeros(1,peo_num);for i=1:peo_num guodu2(i),j=min(guodu1); guodu1(j)=max(guodu1);end state2=zeros(3,peo_num); %用一个三行矩阵表示二级服务台每个顾客的状态 %三行依次为:到达时间间隔,服务时间,等待时间 state2(2,:)=unifrnd(mean_serv21,mean_serv22,1,peo_num);%产生二级服务台的服务时间分布 state2(1,:)=guodu2; for i=2:peo_num if state2(1,i)=state2(3,i-1)+state2(2,i-1)%需要等待,更新等待时间 state2(3,i)=state2(3,i-1)+state2(2,i-1)-state2(1,i); else state2(3,i)=0; end; end; %arr_time2=cumsum(state2(1,:); %state2(1,:)=arr_time2; lea_time2=sum(state2);%计算平均时间t1=0;t2=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论