版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、系統(tǒng)模擬實(shí)驗(yàn)的三個(gè)案例實(shí)驗(yàn)案例 趕上火車的概率 1實(shí)驗(yàn)案例 1.1 趕上火車的概率 1.1.1 問題描述 如圖,一列火車從A站開往B站,某人每天趕往B站上這趟火車。他已了解到: (1) 火車從A站到B站的運(yùn)行時(shí)間是均值為30分鐘,標(biāo)準(zhǔn)差為2分鐘的隨機(jī)變量; (2) 火車在下午大約1點(diǎn)離開A站,離開時(shí)刻的頻率分布如下: 出發(fā)時(shí)刻 午后1:00 午后1:05 午后1:10 頻率 0.7 0.2 0.1 &
2、#160; 此人到達(dá)B站的時(shí)刻頻率分布為: 時(shí)刻 午后1:28 午后1:30 午后1:32 午后1:34 頻率 0.3 0.4 0.2 0.1 問他能趕上火車的概率是多少? 1.1.2 變量說明 :火車從A站出發(fā)的時(shí)刻; :火車從A站到B站的運(yùn)行時(shí)間;單位:分鐘 :他到達(dá)B站的時(shí)刻 1.1.3 問題分析與假設(shè) 此問題包含多個(gè)隨機(jī)因素。 這里假設(shè),都是隨機(jī)變量,其中服從正態(tài)分布。 1.1.4 模型建立 很顯然,他能及時(shí)趕上火車的條件是:。為了簡化計(jì)算,將下午1點(diǎn)記為初始時(shí)刻。
3、和的分布律如下: /min 0 5 10 0.7 0.2 0.1 /min 28 30 32 34 0.3 0.4 0.2 0.1 為了模擬隨機(jī)變量。如果為在均勻分布的隨機(jī)數(shù),為了模擬隨機(jī)變量,可以通過如下方法。 ,。 其中,和分別用來模擬隨機(jī)變量和。 1.1.5 模擬算法 變量說明: k 臨時(shí)變量,存儲當(dāng)前累計(jì)模擬次數(shù) count 存儲趕上火車的次數(shù) 第 1 步 輸入模擬次數(shù)n 第 2 步
4、0; k=1,count=0 第 3 步 當(dāng)k<=n,執(zhí)行第4步,否則執(zhí)行第12步 第 4 步 生成均勻分布隨機(jī)數(shù)賦給r 第 5 步 由r及公式確定T1模擬火車出發(fā)時(shí)刻 第 6 步 生成均勻分布隨機(jī)數(shù)賦給r; 第 7 步 &
5、#160; 由r及公式確定T3模擬人達(dá)到時(shí)刻 第 8 步 生成正態(tài)分布隨機(jī)數(shù)T2模擬火車運(yùn)行時(shí)間 第 9 步 IF T1+T2 > T3, count=count+1,END 第 10 步 k = k + 1 第 11 步 執(zhí)行第3步 第 12 步 輸出趕上火車頻率p=count/n 1.1.6 模擬程序 %sim_train
6、.m total=input('輸入模擬次數(shù):'); count=0; for i=1:total, %模擬隨機(jī)變量t1(火車從A站出發(fā)的時(shí)刻) rt1=rand; if rt1<0.7 T1=0; elseif rt1>=0.7 & rt1<0.9
7、60; T1=5; else T1=10; end %模擬隨機(jī)變量t2(火車的運(yùn)行時(shí)間) T2=30+randn*2; %模擬隨機(jī)變量t3(他到達(dá)B站的時(shí)刻) rt3=rand; if rt3<0.3&
8、#160; T3=28; elseif rt3>=0.3 & rt3<0.7 T3=30; elseif rt3>=0.7 & rt3<0.9 T3=32; else
9、0; T3=34; end if T3 < T1 + T2,%趕上了 count=count+1; end end%for prob=count/total 1.1.7 模擬結(jié)果 命令行中輸入以下語句: sim_trai
10、n 運(yùn)行結(jié)果輸出: 輸入模擬次數(shù):100 prob = 0.6302 此次運(yùn)行結(jié)果顯示趕上火車的近似概率為0.6左右。下面列表給出多次運(yùn)行模擬程序的結(jié)果。 序號 模擬次數(shù) 近似概率p 1 500 0.6280 2 500 0.6920 3 1000 0.6530 4 1000 0.6490 5 5000 0.6260 6 5000 0.6288 1.1.8 評價(jià)與改進(jìn)方向 為了計(jì)算趕上火車的概率,本文采用了隨機(jī)系統(tǒng)模擬的方法。如果能夠從模型出發(fā),對趕上火車的概率進(jìn)行近似計(jì)算,
11、然后與模擬結(jié)果進(jìn)行對比,這樣模擬會更有說明力。 1.1.9 思考題 (1) 請思考用其它方法計(jì)算趕上火車的概率或近似概率。 (2) 如果要使得他趕上火車的概率大于95%,你有什么辦法?結(jié)合上面的數(shù)學(xué)模型及模擬程序來思考。 (3) 通過該問題的建模求解,你能歸納出一般系統(tǒng)模擬的方法步驟么? 實(shí)驗(yàn)案例 理發(fā)店模擬 1
12、160; 實(shí)驗(yàn)案例 1.1 案例:理發(fā)店模擬 例子:一個(gè)理發(fā)店有兩位服務(wù)員A和B,顧客們隨機(jī)到達(dá)店內(nèi),其中60的顧客僅需剪發(fā),每位花5分鐘時(shí)間,另外40顧客既要剪發(fā)又要洗發(fā),每位用時(shí)8分鐘。 理發(fā)店是個(gè)含有多種隨機(jī)因素的系統(tǒng),請對該系統(tǒng)進(jìn)行模擬,并對其進(jìn)行評判。(準(zhǔn)備怎么做)可供參考內(nèi)容“排隊(duì)論”,“系統(tǒng)模擬”,“離散系統(tǒng)模擬”,“事件調(diào)度法” 1.1.1 問題分析 理發(fā)店系統(tǒng)包含諸多隨機(jī)因素,為了對其進(jìn)行評判就是要研究其運(yùn)行效率,從理發(fā)店自身利益來說,要看服務(wù)員工作負(fù)荷是否合理,是否需要增加員工等考慮。從顧客角度講,還要
13、看顧客的等待時(shí)間,顧客的等待隊(duì)長,如等待時(shí)間過長或者等待的人過多,則顧客會離開。理發(fā)店系統(tǒng)是一個(gè)典型的排隊(duì)系統(tǒng),可以用排隊(duì)論有關(guān)知識來研究。 1.1.2 模型假設(shè) 1 60的顧客只需剪發(fā),40的顧客既要剪發(fā),又要洗發(fā); 2 每個(gè)服務(wù)員剪發(fā)需要的時(shí)間均為5分鐘,既剪發(fā)又洗發(fā)則花8分鐘; 3
14、 顧客的到達(dá)間隔時(shí)間服從指數(shù)分布;4 服務(wù)中服務(wù)員不休息。1.1.3 變量說明 u:剪發(fā)時(shí)間(單位:分鐘),u=5m; v: 既剪發(fā)又理發(fā)花的時(shí)間(單位:分鐘),v=8m; T: 顧客到達(dá)的間隔時(shí)間,是隨機(jī)變量,服從參數(shù)為 的指數(shù)分布,(單位:分鐘)T0:顧客到達(dá)的平均間隔時(shí)間(單位:秒
15、),T0 ; 1.1.4 模型建立 由于該系統(tǒng)包含諸多隨機(jī)因素,很難給出解析的結(jié)果,因此可以借助計(jì)算機(jī)模擬對該系統(tǒng)進(jìn)行模擬??紤]一般理發(fā)店的工作模式,一般是上午9:00開始營業(yè),晚上10:00左右結(jié)束,且一般是連續(xù)工作的,因此一般營業(yè)時(shí)間為13小時(shí)左右。 這里以每天運(yùn)行12小時(shí)為例,進(jìn)行模擬。 這里假定顧客到達(dá)的平均間隔時(shí)間T0服從均值3分鐘的指數(shù)分布, 則有3小時(shí)到達(dá)人數(shù)約為 人,6小時(shí)到達(dá)人數(shù)約為 人,10小時(shí)到達(dá)人數(shù)約為 人,這里模擬顧客到達(dá)數(shù)為60人的情況。 (如何選擇模擬的總?cè)藬?shù)或模擬總時(shí)間)1.1.5
16、; 系統(tǒng)模擬 根據(jù)系統(tǒng)模擬的一般方法,需要考慮系統(tǒng)的如下數(shù)據(jù)、參數(shù)。1. 狀態(tài)(變量) (1) 等待服務(wù)的顧客數(shù);(2) A 是否正在服務(wù); (3) B 是否正在服務(wù); 2. 實(shí)體:兩名服務(wù)員、顧客們3.
17、60; 事件: (1) 一名新顧客的到達(dá);(2) A 開始服務(wù); (3) A 結(jié)束服務(wù); (4) B 開始服務(wù); (5) B 結(jié)束服務(wù); 4. 活動(dòng):(1) 顧客排隊(duì)時(shí)間(2) 顧客們到達(dá)的間隔時(shí)間(3) A 的
18、服務(wù)時(shí)間 (4) B 的服務(wù)時(shí)間; 在系統(tǒng)模擬時(shí),為了研究系統(tǒng)的整體情況,這里考慮顧客到達(dá)后不離開,且等待隊(duì)長不限。要考慮如果服務(wù)員均空閑時(shí),顧客先選擇誰服務(wù)?要考慮模擬的時(shí)間設(shè)置還有顧客數(shù)目。模擬終止條件是根據(jù)顧客數(shù)目還是根據(jù)營業(yè)時(shí)間終止? 1.1.6 計(jì)算機(jī)模擬算法設(shè)計(jì) 自行設(shè)計(jì)finished=0; 初始化運(yùn)行時(shí)鐘 while finished=0 if
19、160; 產(chǎn)生的顧客數(shù)不到規(guī)定數(shù)目時(shí) then, 產(chǎn)生該顧客的有關(guān)數(shù)據(jù); 將顧客加入等待隊(duì)列; else 運(yùn)行時(shí)鐘繼續(xù); endif 處理服務(wù)員的狀態(tài)(包括工作狀態(tài),空閑時(shí)間); 獲得服務(wù)員的服務(wù)優(yōu)先順序; 根據(jù)服務(wù)員優(yōu)先順序從等待隊(duì)列中安排服務(wù); endwhile 有無參考算法? 離散系統(tǒng)仿真算法:事件調(diào)度法 1.1.7 計(jì)算機(jī)模擬程序 顧客到達(dá)的間隔時(shí)間T的計(jì)算機(jī)產(chǎn)生方法,利用T=, %理發(fā)店系統(tǒng)的模擬(案例分析之一) %關(guān)鍵詞:面向事件的計(jì)算機(jī)模擬技術(shù) clear all curclock=0;%當(dāng)前時(shí)刻,動(dòng)態(tài)變
20、化 totalcustomer=0;%總共服務(wù)的顧客數(shù) numsrv=2; srvstatus=zeros(numsrv,5);%服務(wù)員有關(guān)數(shù)據(jù) %srvstatus 第1列:服務(wù)狀態(tài)(0空閑,1正在服務(wù));第2列:當(dāng)前服務(wù)顧客編號; % 第3列:當(dāng)前服務(wù)結(jié)束時(shí)刻;第4列:服務(wù)員空閑時(shí)間;第5列:服務(wù)的顧客總數(shù) endtime =0;%結(jié)束時(shí)間 waiting=;%等待隊(duì)列數(shù)據(jù) %waiting 第1列:顧客編號;第2列:顧客到達(dá)時(shí)刻;第3列:顧客開始接受服務(wù)時(shí)刻; % 第4列:接受服務(wù)時(shí)間;
21、第5列:顧客結(jié)束服務(wù)時(shí)刻;第6列:間隔時(shí)間 cur=zeros(1,6);%當(dāng)前產(chǎn)生顧客的數(shù)據(jù),對應(yīng)關(guān)系同waiting avgwaitlen=;%平均等待隊(duì)長 avgwaittime =;% 平均等待時(shí)間 ujiange=5;%平均間隔時(shí)間 finished=0; numsimucustumer=yesinput('輸入等待模擬的顧客數(shù):',10,10 1000); while finished=0, if totalcustomer < numsimucustumer
22、 %產(chǎn)生一個(gè)顧客的到達(dá)及其有關(guān)性質(zhì)的數(shù)據(jù) totalcustomer = totalcustomer+1; jiange= -log(rand)*ujiange;%與上一個(gè)顧客的到達(dá)的間隔時(shí)間 curclock = curclock + jiange;
23、160; cur(1)= totalcustomer ;% 第1列:顧客編號 cur(2) = curclock;%第2列:顧客到達(dá)時(shí)刻 cur(6) = jiange; 第6列:間隔時(shí)間 %下面產(chǎn)生接受服務(wù)時(shí)間(可改進(jìn)模型) if rand<0.6, %產(chǎn)生顧客有關(guān)性質(zhì):這里是產(chǎn)生接受服務(wù)時(shí)間 cur(4) = 5; &
24、#160; else cur(4) = 8; end %放入等待隊(duì)列 if isempty(waiting), waiting= cur;
25、60; else m,n=size(waiting); waiting(m+1,:)= cur; end else curclock = curclock + (-log(rand)*ujiange);
26、end%if totalcustomer< %分配等待隊(duì)列(看是否有服務(wù)員空閑,如果有則分配;否則繼續(xù)執(zhí)行) %處理服務(wù)員的服務(wù)狀態(tài) for i=1:numsrv, if srvstatus(i,1)=1 & srvstatus(i,3) <= curclock, srvstatus(i
27、,1)=0;%設(shè)置為空閑狀態(tài) srvstatus(i,4)= curclock-srvstatus(i,3);%目前已經(jīng)空閑的時(shí)間 elseif srvstatus(i,1)=1 & srvstatus(i,3) > curclock, srvstatus(i,4)= 0;%沒有休息(正在忙)
28、0; else srvstatus(i,4)= curclock-srvstatus(i,3);%目前已經(jīng)空閑的時(shí)間 end end %處理服務(wù)員服務(wù)的先后順序(依據(jù)空閑時(shí)間)(精細(xì)處理) tmp=srvstatus(:,4); for i=1:num
29、srv, value,id=max(tmp); b(i)=id; tmp(id)=0;%已經(jīng)排序了 end %此時(shí)等待隊(duì)列必然不為空 for j=1:numsrv,
30、; i=b(j);%確定服務(wù)員的序號 if(srvstatus(i,1)=0) %找一個(gè)顧客開始服務(wù),同時(shí)計(jì)算該顧客什么時(shí)候接受服務(wù),結(jié)束服務(wù); m,n=size(waiting); if m=0,
31、0; break; end if waiting(1,5)=0,%還沒有開始接受服務(wù)
32、160; waiting(1,3)= curclock; waiting(1,5)= waiting(1,3)+waiting(1,4);%結(jié)束時(shí)刻 srvstatus(i,1)=1;%設(shè)置為忙狀態(tài)
33、 srvstatus(i,2)=waiting(1,1);%顧客編號 srvstatus(i,3)= waiting(1,5);%結(jié)束時(shí)刻 srvstatus(i,5)=srvstatus(i,5)+1;%又服務(wù)了一個(gè)顧客
34、; %計(jì)算等待時(shí)間 avgwaittime(end+1) = waiting(1,3)-waiting(1,2); &
35、#160; disp(sprintf('間隔時(shí)間(%8.2f) 顧客編號:%5d 接受服務(wù)員(%4d)服務(wù)(到達(dá)時(shí)刻%10.2f)',waiting(1,6),waiting(1,1),i,waiting(1,2) endtime=max(endtime,waiting(1,5) waiti
36、ng(1,:)=;%從等待隊(duì)列中離開 end end%if end%for m,n=size(waiting); %計(jì)算隊(duì)長(這里
37、的計(jì)算式子可以參考排隊(duì)論有關(guān)術(shù)語進(jìn)行確定) if totalcustomer < numsimucustumer avgwaitlen(end+1)=m; end if sum(srvstatus(:,5)>=numsimucustumer,%隊(duì)列為空,結(jié)束 finished=1; end end%while
38、0; disp('服務(wù)顧客數(shù):') disp(srvstatus(:,5)') disp('平均隊(duì)長'); disp(mean(avgwaitlen); disp('運(yùn)行時(shí)間(分鐘,小時(shí))'); disp(sprintf('%8.f%8.f',curclock,curclock/60); disp('平均等待時(shí)間(分鐘)'); disp(mean(avgwaittime ); disp('結(jié)束時(shí)間(分鐘)'); disp(endtime ); figure his
39、t(avgwaitlen) title('平均隊(duì)長') figure hist(avgwaittime) title('平均等待時(shí)間'); 1.1.8 思考題 請運(yùn)行模擬程序,并分析運(yùn)行結(jié)果。 實(shí)驗(yàn)案例 一個(gè)修理廠的模擬 1 實(shí)驗(yàn)案例 1.1 案例:一個(gè)修理廠的模擬 1.1.1
40、60; 問題描述 某修理廠設(shè)有3個(gè)停車位置,其中一個(gè)位置供正在修理的汽車停放?,F(xiàn)以一天為一個(gè)時(shí)段,每天最多修好一輛車,每天到達(dá)修理站的汽車數(shù)有如下概率分布: 到達(dá)數(shù) 0 1 2 概率 06 02 02 假定在一個(gè)時(shí)段內(nèi)一輛汽車能夠修好的概率為0.7,本時(shí)段內(nèi)未能完成修理的汽車于正在等待修理的汽車一起進(jìn)入下一時(shí)段。試問:該停車廠有無必要增加停車位置,并說明理由。 1.1.2 模擬模型 這種排隊(duì)論方面的問題采用固定時(shí)間增量法模擬。模擬以一天為一個(gè)時(shí)段,模擬縱時(shí)間
41、最好在1000天以上。 模擬汽車到達(dá)數(shù)量,根據(jù)概率分布:產(chǎn)生在0,1上均勻分布的隨機(jī)數(shù)t,如果,則認(rèn)為當(dāng)天到達(dá)的車輛數(shù)為0輛;如果,則認(rèn)為當(dāng)天到達(dá)的車輛數(shù)為1輛,如果,則認(rèn)為當(dāng)天到達(dá)的車輛數(shù)為2輛。 模擬修理情況:由于一天最多修好一輛,而一個(gè)時(shí)段內(nèi)一輛汽車修好的概率為0.7,則模擬每兩車的修理情況,如果這些車所能修好數(shù)目大于等于1輛,則以當(dāng)天修好1輛計(jì)。 1.1.3 模擬程序
42、 本模擬程序編寫了一個(gè)主函數(shù)queue,另外在函數(shù)queue中編寫了2個(gè)子函數(shù): getcome:模擬車輛到來情況,返回當(dāng)天到來的車輛數(shù)目 getrepaired:模擬修理情況,返回修好的車輛數(shù)目 整個(gè)模擬程序如下:(2005/6/6新版本) function queue %2005-6-6 %排隊(duì)模擬主程序 %排隊(duì)問題模擬 % numdays=input('請輸入模擬天數(shù):') numstay=0;%假定最初修理站還沒有待修理的汽車 LEN=6;%定義常量 matfrequence=zeros(1,LEN);%第i個(gè)元素表示當(dāng)
43、天末還有i-1輛車在沒有修好的時(shí)段頻數(shù) leave_norepair=0;%存儲來到,但沒有停車位置而離開的車輛數(shù) for days=1:numdays%主循環(huán),模擬numdays個(gè)時(shí)段 temp= getcome; if numstay + temp>3 , leave_norepair = leave_norepair + (numstay + temp - 3); end
44、60; %numcome=numstay+getcome;%2004-10-10:這里有問題,受限制與停車位置數(shù)量 numcome=min(3,numstay + temp);% %頭一天還沒有修好的車輛數(shù)當(dāng)天新到來的車輛數(shù) %numstay表示當(dāng)天末還沒有修理好的車輛數(shù)目 numstay=max(0,numcome - getrepaired(numcome);% matfrequence(numstay+1)=matfrequence(numstay+1) + 1 ; end matfrequence prob=matfrequence/numdays disp(sprintf('平均每天夜里停放在修理站的車輛數(shù)=%4.2f',. sum(matfrequence/numdays.*0:LEN-1) %sprintf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人與公司2024年度廣告制作與發(fā)布合同3篇
- 2024音樂素材授權(quán)許可合同:視頻制作領(lǐng)域
- 2024汽配行業(yè)原材料采購及倉儲物流服務(wù)合同3篇
- 【骨科】讓患者站起來、走起來
- 10《竹節(jié)人》第二課時(shí)說課稿-2024-2025學(xué)年六年級上冊語文統(tǒng)編版
- 福建省南平市吳屯中學(xué)2022年高三數(shù)學(xué)理測試題含解析
- 11 我是一張紙 說課稿-2023-2024學(xué)年道德與法治二年級下冊統(tǒng)編版
- 2024年軟件許可使用合同的軟件范圍和許可期限
- 2024年物業(yè)清潔合同:保持環(huán)境共創(chuàng)綠色家園
- 品質(zhì)生活從時(shí)尚選擇開始
- 7.激素及其作用機(jī)制
- 土壤肥料全套課件
- 畢業(yè)生延期畢業(yè)申請表
- 學(xué)校6S管理制度
- 肽的健康作用及應(yīng)用課件
- T.C--M-ONE效果器使用手冊
- 8小時(shí)等效A聲級計(jì)算工具
- 煤礦礦井供電設(shè)計(jì)(DOC26頁)
- 人教版七年級下冊數(shù)學(xué)計(jì)算題300道
- 社會實(shí)踐登記表
- 走遍西班牙1~19筆記
評論
0/150
提交評論