资源简介

编写此代码的目的是解决17年美赛D题,采用排队论模型进行仿真,计算出各个区域的总耗费时间,代码为原创,是单通道多服务台模型,后续的多通道多服务台混联模型编写好后也会上传,和大家一起学习

资源截图

代码片段和文件信息

clear
clc
%% MM1∞和单队列单通道—多服务台串联式
N=100;%乘客总数
M=4;%服务台总数
lambda0=4.65;%乘客的到达率(每分钟平均到达4.65人)
%%
%乘客的平均到达时间
l0=1/lambda0;
%每个区域的平均服务时间,时间单位均为分钟
lambda1=11.21/60;
lambda2=13.2/60;
lambda3=27/60;
lambda4=13.2/60;
%%
%按负指数分布产生各乘客到达的时间间隔
arr_interval= exprnd(l01N);
%各乘客的到达时刻等于时间间隔的累积和
arr_moment= cumsum(arr_interval);
%按负指数分布产生每个乘客在各区域的服务时间serve(ij)表示第i个乘客在第j个区域的服务时间
serve(:1)=exprnd(lambda11N)‘;
serve(:2)=exprnd(lambda21N)‘;
serve(:3)=exprnd(lambda31N)‘;
serve(:4)=exprnd(lambda41N)‘;
%%
%第i个乘客在第j个区域花费的时间为A(ij)(i=1:100j=1:4花费的时间等于服务的时间加上等待的时间)
%第i个乘客离开第j个区域的时刻为B(ij)
%在假设不计区域之间花费的时间的条件下有这样一个关系:到达第j个区域的时刻等于离开第j-1个区域的时刻
A=zeros(NM);
%先计算第一个乘客的花费时间和离开时刻,然后采用迭代的方法计算出剩下所有乘客的花费时间
A(1:)=serve(1:);
B(11)=A(11)+arr_moment(1);
for j=2:4
   B(1j)=B(1j-1)+A(1j);
end
for i=2:N
    for j=1:M
        
        if j==1
            if arr_moment(i)               A(ij)=B(i-1j)-arr_moment(i)+serve(ij);
               B(ij)=B(i-1j)+serve(ij);
            else
               A(ij)=serve(ij);
               B(ij)=arr_moment(i)+serve(ij);
            end
    
        else

评论

共有 条评论