資源簡介
編寫此代碼的目的是解決17年美賽D題,采用排隊論模型進行仿真,計算出各個區(qū)域的總耗費時間,代碼為原創(chuàng),是單通道多服務臺模型,后續(xù)的多通道多服務臺混聯模型編寫好后也會上傳,和大家一起學習
代碼片段和文件信息
clear
clc
%%?MM1∞和單隊列單通道—多服務臺串聯式
N=100;%乘客總數
M=4;%服務臺總數
lambda0=4.65;%乘客的到達率(每分鐘平均到達4.65人)
%%
%乘客的平均到達時間
l0=1/lambda0;
%每個區(qū)域的平均服務時間,時間單位均為分鐘
lambda1=11.21/60;
lambda2=13.2/60;
lambda3=27/60;
lambda4=13.2/60;
%%
%按負指數分布產生各乘客到達的時間間隔
arr_interval=?exprnd(l01N);
%各乘客的到達時刻等于時間間隔的累積和
arr_moment=?cumsum(arr_interval);
%按負指數分布產生每個乘客在各區(qū)域的服務時間serve(ij)表示第i個乘客在第j個區(qū)域的服務時間
serve(:1)=exprnd(lambda11N)‘;
serve(:2)=exprnd(lambda21N)‘;
serve(:3)=exprnd(lambda31N)‘;
serve(:4)=exprnd(lambda41N)‘;
%%
%第i個乘客在第j個區(qū)域花費的時間為A(ij)(i=1:100j=1:4花費的時間等于服務的時間加上等待的時間)
%第i個乘客離開第j個區(qū)域的時刻為B(ij)
%在假設不計區(qū)域之間花費的時間的條件下有這樣一個關系:到達第j個區(qū)域的時刻等于離開第j-1個區(qū)域的時刻
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
評論
共有 條評論