資源描述:
《MMN的排隊源程序matlab》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、旅客登機前需要進行安檢。首先接受安檢人員的檢查,有兩名安檢人員,旅客根據(jù)安檢人員前的等待人數(shù)排隊;然后通過一道安檢門完成檢查。如下圖所示(時間單位分鐘)。請編制仿真程序,估計顧客通過安檢所需時間。添加函數(shù)newMM2andMM1,參數(shù)的解釋也在源程序里說明了。則按題意輸入meant=newMM2andMM1(1,1.5,2,0.2,1,300),得到結(jié)果為時間為meant=2.2418;各個人得到的結(jié)果是不太一樣的,是正確的,因為程序模擬的隨機分布的數(shù),是符合實際的。源程序如下:function[meant]=newMM2a
2、ndMM1(mean_arr,mean_serv,mean_serv1,mean_serv21,mean_serv22,peo_num)%mean_arr,到達的時間參數(shù)%mean_serv,服務(wù)臺a的服務(wù)時間參數(shù)%mean_serv1,服務(wù)臺b的服務(wù)時間參數(shù)%mean_serv21,mean_serv22,二級服務(wù)臺的均勻分布的參數(shù)%peo_num,總服務(wù)人數(shù)nt=exprnd(mean_arr,1,peo_num);%各顧客到達時間間隔服從指數(shù)分布state_a=zeros(3,peo_num);??%用一個三行矩陣表示
3、a臺每個顧客的狀態(tài)??%三行依次為:到達時間間隔,服務(wù)時間,等待時間????????????state_b=zeros(3,peo_num);????%用一個三行矩陣表示b臺每個顧客的狀態(tài)??%三行依次為:到達時間間隔,服務(wù)時間,等待時間??????????????state_a(2,:)=exprnd(mean_serv,1,peo_num);%生成a臺各顧客服務(wù)時間的矩陣state_b(2,:)=exprnd(mean_serv1,1,peo_num);%生成b臺各顧客服務(wù)時間的矩陣state_a(3,1)=0;??st
4、ate_b(3,1)=0;a=1;%a臺服務(wù)的人數(shù)b=1;%b臺服務(wù)的人數(shù)arr_time=cumsum(nt);??%到達時間由時間間隔變成連續(xù)時間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名顧客的離
5、開時間????????????????????fori=3:peo_numif??lea_time_a(a)6、-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);??????ifstate_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,
7、b-1);????????else??????????state_b(3,b)=0;????????end??????lea_time_b(b)=sum(state_b(:,b));??endend%連接兩個狀態(tài)矩陣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_
8、a,lea_time_b];%按離開時間的先后順序排隊guodu1=lea_time;guodu2=zeros(1,peo_num);fori=1:peo_num??[guodu2(i),j]=min(guodu1);??guodu1(j)=max(guodu1);end?????????