tiancanrong的个人博客分享 http://blog.sciencenet.cn/u/tiancanrong

博文

多个服务台的排队模型的蒙特卡罗模拟

已有 5589 次阅读 2009-11-1 21:48 |个人分类:未分类|系统分类:教学心得

%多个服务台的排队模型的蒙特卡罗模拟(以4个为例)
clear
TjMm=[]; %顾客到达的时间间隔序列
sTj=0;  %顾客到达时间序列
while (sTj<=480)
    Tjp=exprnd(10);%参数为0.1的指数分布
   % Tfp1=unifrnd(4,15);
     %Tfp2=unifrnd(4,15);
    TjMm=[TjMm;Tjp];
    sTj=sTj+Tjp;
end
n=length(TjMm);
n=n-1;%一天中顾客的个数
for i=1:n
    TjM(i)=TjMm(i);
end
TfM=unifrnd(50,80,[4,n]); %4个服务台的服务时间序列,50到80的均匀分布
dengtime=zeros(1,n); %顾客等待的时间序列
likaitime= zeros(1,n); %顾客离开的时间序列
fuwutime= zeros(1,n); %顾客服务的时间序列
daodatime(1)=TjM(1);%第1个顾客到达的时间
fuwutime(1)=TfM(1,1); %第1个顾客服务的时间
likaitime(1)=daodatime(1)+fuwutime(1); %第1个顾客离开的时间
deskkongxiantime(1,1)=likaitime(1); %第1个服务台空闲的时间
deskkongxiantime(2,1)=daodatime(1); %第2个服务台空闲的时间
deskkongxiantime(3,1)=daodatime(1); %第3个服务台空闲的时间
deskkongxiantime(4,1)=daodatime(1); %第4个服务台空闲的时间
for i=2:n
daodatime(i)=sum(TjM (1:i)); %第i个人到达的时间
kongxianmin=min(deskkongxiantime(:,i-1));%服务台最小的空间时间
for i1=1:4
    if deskkongxiantime(i1,i-1)==kongxianmin
        s=i1;break  %空闲时间最长服务台
    end
end
deskkongxiantime(:,i)=deskkongxiantime(:,i-1);%第i个人时服务台空闲的时间(s例外)
fuwutime(i)=TfM(s,i); %第i个顾客服务的时间
if deskkongxiantime(s,i-1)<=daodatime(i)
           dengtime(i)=0;
    else
        dengtime(i)=deskkongxiantime(s,i-1)-daodatime(i);%第i个顾客等待的时间
end
likaitime(i)=daodatime(i)+fuwutime(i)+dengtime(i); %第i个顾客离开的时间
deskkongxiantime(s,i)=likaitime(i);%第i个人时第s个服务台空闲的时间
 end
pingjundengtime=sum(dengtime)/n; %平均等待时间

https://blog.sciencenet.cn/blog-306734-266803.html


下一篇:看世界杯的阶段性总结
收藏 IP: .*| 热度|

1 田仁飞

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-27 22:44

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部