單服務(wù)臺(tái)排隊(duì)系統(tǒng)離散事件系統(tǒng)仿真實(shí)驗(yàn)_第1頁(yè)
單服務(wù)臺(tái)排隊(duì)系統(tǒng)離散事件系統(tǒng)仿真實(shí)驗(yàn)_第2頁(yè)
單服務(wù)臺(tái)排隊(duì)系統(tǒng)離散事件系統(tǒng)仿真實(shí)驗(yàn)_第3頁(yè)
單服務(wù)臺(tái)排隊(duì)系統(tǒng)離散事件系統(tǒng)仿真實(shí)驗(yàn)_第4頁(yè)
單服務(wù)臺(tái)排隊(duì)系統(tǒng)離散事件系統(tǒng)仿真實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、離散事件系統(tǒng)仿真實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)繕?biāo)通過單服務(wù)臺(tái)排隊(duì)系統(tǒng)的方針,理解和掌握對(duì)離散事件的仿真建模方法,以便對(duì)其他系統(tǒng)進(jìn)行建模,并對(duì)其系統(tǒng)分析,應(yīng)用到實(shí)際系統(tǒng),對(duì)實(shí)際系統(tǒng)進(jìn)行理論指導(dǎo)。二、實(shí)驗(yàn)原理1排隊(duì)系統(tǒng)的一般理論一般的排隊(duì)系統(tǒng)都有三個(gè)基本組成部分:(1)到達(dá)模式:指動(dòng)態(tài)實(shí)體(顧客)按怎樣的規(guī)律到達(dá),描寫實(shí)體到達(dá)的統(tǒng)計(jì)特性。通常假定顧客總體是無限的。(2)服務(wù)機(jī)構(gòu):指同一時(shí)刻有多少服務(wù)設(shè)備可以接納動(dòng)態(tài)實(shí)體,它們的服務(wù)需要多少時(shí)間。它也具有一定的分布特性。通常,假定系統(tǒng)的容量(包括正在服務(wù)的人數(shù)加上在等待線等待的人數(shù))是無限的。(3)排隊(duì)規(guī)則:指對(duì)下一個(gè)實(shí)體服務(wù)的選擇原則。通用的排隊(duì)規(guī)則包括先進(jìn)先出(

2、FIFO),后進(jìn)先出(LIFO),隨機(jī)服務(wù)(SIRO)等。2對(duì)于離散系統(tǒng)有三種常用的仿真策略:事件調(diào)度法、活動(dòng)掃描法、進(jìn)程交互法。(1)事件調(diào)度法(Event Scheduling):基本思想:離散事件系統(tǒng)中最基本的概念是事件,事件發(fā)生引起系統(tǒng)狀態(tài)的變化,用事件的觀點(diǎn)來分析真實(shí)系統(tǒng)。通過定義事件或每個(gè)事件發(fā)生系統(tǒng)狀態(tài)的變化,按時(shí)間順序確定并執(zhí)行每個(gè)事件發(fā)生時(shí)有關(guān)邏輯關(guān)系。(2)活動(dòng)掃描法:基本思想:系統(tǒng)有成分組成,而成分又包含活動(dòng)?;顒?dòng)的發(fā)生必須滿足某些條件,且每一個(gè)主動(dòng)成分均有一個(gè)相應(yīng)的活動(dòng)例程。仿真過程中,活動(dòng)的發(fā)生時(shí)間也作為條件之一,而且較之其他條件具有更高的優(yōu)先權(quán)。(3)進(jìn)程交互法:基

3、本思想:將模型中的主動(dòng)成分歷經(jīng)系統(tǒng)所發(fā)生的事件及活動(dòng),按時(shí)間發(fā)生的順序進(jìn)行組合,從而形成進(jìn)程表。系統(tǒng)仿真鐘的推進(jìn)采用兩張進(jìn)程表,一是當(dāng)前事件表,二是將來事件表。3本實(shí)驗(yàn)采用的單服務(wù)臺(tái)模型(1)到達(dá)模式:顧客源是無限的,顧客單個(gè)到達(dá),相互獨(dú)立,一定時(shí)間的到達(dá)數(shù)服從指數(shù)分布。(2)排隊(duì)規(guī)則:?jiǎn)侮?duì),且對(duì)隊(duì)列長(zhǎng)度沒有限制,先到先服務(wù)的FIFO規(guī)則。(3)服務(wù)機(jī)構(gòu):?jiǎn)畏?wù)臺(tái),各顧客的服務(wù)時(shí)間相互獨(dú)立,服從相同的指數(shù)分布。(4)到達(dá)時(shí)間間隔和服務(wù)時(shí)間是相互獨(dú)立的。4事件調(diào)度法的仿真策略事件調(diào)度法的基本思想是:用事件的觀點(diǎn)來分析真實(shí)系統(tǒng),通過定義事件及每個(gè)事件發(fā)生對(duì)于系統(tǒng)狀態(tài)的變化,按時(shí)間順序確定并執(zhí)行每個(gè)

4、事件發(fā)生時(shí)有關(guān)的邏輯關(guān)系。按這種策略建立模型時(shí),所有事件均放在事件表中。模型中設(shè)有一個(gè)時(shí)間控制成分,該成分從事件表中選擇具有最早發(fā)生時(shí)間的事件,并將仿真鐘修改到該事件發(fā)生的時(shí)間,再調(diào)用與該事件相應(yīng)的事件處理模塊,該事件處理完后返回時(shí)間控制成分。這樣,事件的選擇與處理不斷地進(jìn)行,直到仿真終止的條件或程序事件產(chǎn)生為止。5離散事件結(jié)果分析仿真運(yùn)行方式可分為兩大類:(1)終止型仿真:仿真的運(yùn)行長(zhǎng)度是事先確定的由于仿真運(yùn)行時(shí)間長(zhǎng)度有限,系統(tǒng)的性能與運(yùn)行長(zhǎng)度有關(guān),系統(tǒng)的初始狀態(tài)對(duì)系統(tǒng)性能的影響是不能忽略的。為了消除由于初始狀態(tài)對(duì)系統(tǒng)性能估計(jì)造成的影響,需要多次獨(dú)立運(yùn)行仿真模型。 (2)穩(wěn)態(tài)型仿真:這類仿真

5、研究?jī)H運(yùn)行一次,但運(yùn)行長(zhǎng)度卻是足夠長(zhǎng),仿真的目的是估計(jì)系統(tǒng)的穩(wěn)態(tài)性能。三、理論分析根據(jù)排隊(duì)論的知識(shí)我們知道,排隊(duì)系統(tǒng)的分類是根據(jù)該系統(tǒng)中的顧客到達(dá)模式、服務(wù)模式、服務(wù)員數(shù)量以及服務(wù)規(guī)則等因素決定的。1、顧客到達(dá)模式實(shí)體(臨時(shí)實(shí)體)到達(dá)模式:顧客。實(shí)體到達(dá)模式是顧客到達(dá)模式,設(shè)到達(dá)時(shí)間間隔A1服從均值5min的指數(shù)分布 (A0) 2、服務(wù)模式設(shè)服務(wù)員為每個(gè)顧客服務(wù)的時(shí)間為Si,它也服從指數(shù)分布,均值為4min (S0)3、服務(wù)規(guī)則由于是單服務(wù)臺(tái)系統(tǒng),考慮系統(tǒng)顧客按單隊(duì)排列,并按FIFO方式服務(wù)4、理論分析結(jié)果在該系統(tǒng)中,設(shè),則穩(wěn)態(tài)時(shí)的平均等待隊(duì)長(zhǎng)為,顧客的平均等待時(shí)間為。 5、系統(tǒng)模型開始對(duì)顧客

6、數(shù)目做記錄將顧客記錄排入隊(duì)列隊(duì)列長(zhǎng)度加1安排服務(wù)完成事件結(jié)束置服務(wù)員為忙碌狀態(tài)確定服務(wù)時(shí)間服務(wù)員忙是否三、設(shè)計(jì)算法1、算法模型標(biāo)志位置0:i=i+1開始結(jié)束計(jì)算第i個(gè)顧客的等待時(shí)間、離開時(shí)間、標(biāo)示位: i+1系統(tǒng)是否接納第i個(gè)顧客?仿真時(shí)間是否越界?輸出結(jié)果計(jì)算第1個(gè)顧客的離開時(shí)間:i-2輸入仿真人數(shù)2、仿真設(shè)計(jì)算法(主要函數(shù))利用指數(shù)分布間的關(guān)系,產(chǎn)生符合過程的顧客流,產(chǎn)生符合指數(shù)分布的隨機(jī)變量作為每個(gè)顧客的服務(wù)時(shí)間:Interval_Arrive=-log(rand(1,SimTotal)/Lambda;%到達(dá)時(shí)間間隔,結(jié)果與調(diào)用exprnd(1/Lambda,m)函數(shù)產(chǎn)生的結(jié)果相同Int

7、erval_Serve=-log(rand(1,SimTotal)/Mu;%服務(wù)時(shí)間間隔t_Arrive(1)=Interval_Arrive(1);%顧客到達(dá)時(shí)間時(shí)間計(jì)算t_Wait=t_Leave-t_Arrive; %各顧客在系統(tǒng)中的等待時(shí)間t_Queue=t_Wait-Interval_Serve; %各顧客在系統(tǒng)中的排隊(duì)時(shí)間由事件來觸發(fā)仿真時(shí)鐘的不斷推進(jìn)。每發(fā)生一次事件,記錄下兩次事件間隔的時(shí)間以及在該時(shí)間段內(nèi)排隊(duì)的人數(shù):Timepoint=t_Arrive,t_Leave; %系統(tǒng)中顧客數(shù)變化CusNum=zeros(size(Timepoint);CusNum_avg=sum(C

8、usNum_fromStart.*Time_interval 0 )/Timepoint(end); %系統(tǒng)中平均顧客數(shù)計(jì)算QueLength_avg=sum(0 QueLength.*Time_interval 0 )/Timepoint(end); %系統(tǒng)平均等待隊(duì)長(zhǎng)3、仿真程序(MatLab語(yǔ)言)clear;clc;%M/M/1排隊(duì)系統(tǒng)仿真SimTotal=input('請(qǐng)輸入仿真顧客總數(shù)SimTotal='); %仿真顧客總數(shù);Lambda=0.2; Mu=0.25;t_Arrive=zeros(1,SimTotal); t_Leave=zeros(1,SimTotal

9、);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal)/Lambda;%到達(dá)時(shí)間間隔Interval_Serve=-log(rand(1,SimTotal)/Mu;%服務(wù)時(shí)間t_Arrive(1)=Interval_Arrive(1);%顧客到達(dá)時(shí)間ArriveNum(1)=1;for i=2:SimTotal t_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i); ArriveNum(i)=i;endt_Leave(1)=t

10、_Arrive(1)+Interval_Serve(1);%顧客離開時(shí)間LeaveNum(1)=1;for i=2:SimTotal if t_Leave(i-1)<t_Arrive(i) t_Leave(i)=t_Arrive(i)+Interval_Serve(i); else t_Leave(i)=t_Leave(i-1)+Interval_Serve(i); end LeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顧客在系統(tǒng)中的等待時(shí)間t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve

11、;%各顧客在系統(tǒng)中的排隊(duì)時(shí)間t_Queue_avg=mean(t_Queue);Timepoint=t_Arrive,t_Leave;%系統(tǒng)中顧客數(shù)隨時(shí)間的變化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint);%到達(dá)時(shí)間標(biāo)志CusNum=zeros(size(Timepoint);temp=2;CusNum(1)=1;for i=2:length(Timepoint) if (temp<=length(t_Arrive)&&(Timepoint(i)=t_Arrive(temp) CusNum(i)=Cu

12、sNum(i-1)+1; temp=temp+1; ArriveFlag(i)=1; else CusNum(i)=CusNum(i-1)-1; endend%系統(tǒng)中平均顧客數(shù)計(jì)算Time_interval=zeros(size(Timepoint);Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint) Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=0 CusNum;CusNum_avg=sum(CusNum_fromStart.*Time_interva

13、l 0 )/Timepoint(end);QueLength=zeros(size(CusNum);for i=1:length(CusNum) if CusNum(i)>=2 QueLength(i)=CusNum(i)-1; else QueLength(i)=0; endendQueLength_avg=sum(0 QueLength.*Time_interval 0 )/Timepoint(end);%系統(tǒng)平均等待隊(duì)長(zhǎng)%仿真圖figure(1);set(1,'position',0,0,1000,700);subplot(2,2,1);title('各顧客

14、到達(dá)時(shí)間和離去時(shí)間');stairs(0 ArriveNum,0 t_Arrive,'b');hold on;stairs(0 LeaveNum,0 t_Leave,'y');legend('到達(dá)時(shí)間','離去時(shí)間');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系統(tǒng)等待隊(duì)長(zhǎng)分布');xlabel('時(shí)間');ylabel('隊(duì)長(zhǎng)');subplot(2,2,3);title('

15、各顧客在系統(tǒng)中的排隊(duì)時(shí)間和等待時(shí)間');stairs(0 ArriveNum,0 t_Queue,'b');hold on;stairs(0 LeaveNum,0 t_Wait,'y');hold off;legend('排隊(duì)時(shí)間','等待時(shí)間');%仿真值與理論值比較disp('理論平均等待時(shí)間t_Wait_avg=',num2str(1/(Mu-Lambda);disp('理論平均排隊(duì)時(shí)間t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda);disp(&

16、#39;理論系統(tǒng)中平均顧客數(shù)=',num2str(Lambda/(Mu-Lambda);disp('理論系統(tǒng)中平均等待隊(duì)長(zhǎng)=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda);disp('仿真平均等待時(shí)間t_Wait_avg=',num2str(t_Wait_avg)disp('仿真平均排隊(duì)時(shí)間t_Queue_avg=',num2str(t_Queue_avg)disp('仿真系統(tǒng)中平均顧客數(shù)=',num2str(CusNum_avg);disp('仿真系統(tǒng)中平均等待隊(duì)長(zhǎng)=',num

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論