代碼部分
arrive<-rexp(2000,0.5) #生成服從指數(shù)分布的隨機(jī)變量谁帕,表示客人到達(dá)的間隔時(shí)間
arritime<-cumsum(arrive) #通過累加,獲得客人到達(dá)的時(shí)間點(diǎn)
stat1<-rexp(2000,0.25) #生成服務(wù)臺(tái)1的服務(wù)時(shí)間間隔
stat2<-rexp(2000,0.25) #生成服務(wù)臺(tái)2的服務(wù)時(shí)間間隔
get_ser<-c() #記錄每個(gè)客戶開始服務(wù)時(shí)間
end_ser<-c() #記錄每個(gè)客戶結(jié)束服務(wù)時(shí)間
i=1;j=1
A_opentime <-0 # A_opeantime表示服務(wù)臺(tái)1允許開始服務(wù)時(shí)間吼虎,也就是上一位客人結(jié)束服務(wù)的時(shí)間
B_opentime<-0.001 # B_opeantime表示服務(wù)臺(tái)2允許開始服務(wù)時(shí)間,也就是上一位客人結(jié)束服務(wù)的時(shí)間
for(k in 1:2000){
temp <-arritime[k]
if(A_opentime < B_opentime){ #如果服務(wù)臺(tái)1比服務(wù)臺(tái)2提前結(jié)束上一輪服務(wù),則第k個(gè)客戶的服務(wù)由服務(wù)臺(tái)1進(jìn)行(為服務(wù)臺(tái)1服務(wù)的第i個(gè)人)
if(temp > A_opentime) #比較客戶到達(dá)時(shí)間與服務(wù)臺(tái)1開始服務(wù)時(shí)間思灰,若第k個(gè)客戶尚未到達(dá)玷犹,服務(wù)臺(tái)1空閑,更新
A_opentime<-temp # 服務(wù)臺(tái)1的開始服務(wù)時(shí)間為第k個(gè)客戶到達(dá)時(shí)間
get_ser[k]=A_opentime #講第k個(gè)客戶的開始服務(wù)時(shí)間 =服務(wù)臺(tái)1的opentime
end_ser[k]=get_ser[k]+stat1[i] #講第k個(gè)客戶的結(jié)束服務(wù)時(shí)間點(diǎn) =開始服務(wù)時(shí)間 +服務(wù)臺(tái)1本次花費(fèi)時(shí)間(從stat1中的第i個(gè))
A_opentime=end_ser[k] #更新服務(wù)臺(tái)1的下一次開放時(shí)間為第k個(gè)客戶結(jié)束服務(wù)時(shí)間
i=i+1 #更新i到i+1洒疚,方便提取服務(wù)臺(tái)1為服務(wù)下一個(gè)客戶花費(fèi)時(shí)間的數(shù)據(jù)
}
else {
if(temp >B_opentime)
B_opentime<-temp
get_ser[k]=B_opentime
end_ser[k]=get_ser[k]+stat2[j]
B_opentime=end_ser[k]
j=j+1
}
}
#將所有客戶的到達(dá)時(shí)間歹颓,接受服務(wù)時(shí)間 坯屿,結(jié)束服務(wù)時(shí)間合并起來
A=data.frame(arritime=arritime,get_ser=get_ser,end_ser =end_ser)
waiting=A[,2]-A[,1] #計(jì)算每個(gè)人的等待時(shí)間
summary(waiting)
#計(jì)算平均隊(duì)伍長度
line=c(0)
for(i in 2:2000){
temp2=arritime[i]
line<-c(line,i-table(get_ser< temp2)[2])
}
summary(line)
模擬結(jié)果
當(dāng)服務(wù)間隔時(shí)間的期望是3,到達(dá)時(shí)間間隔的期望是1
#等待時(shí)間
> summary(waiting)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0 264.2 498.3 486.4 725.0 957.1
> #計(jì)算平均隊(duì)伍長度
> summary(line)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.00 53.75 110.00 131.50 214.20 299.00
當(dāng)服務(wù)間隔時(shí)間的期望是3巍扛,到達(dá)時(shí)間間隔的期望是2
#等待時(shí)間
> summary(waiting)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000 0.000 1.493 4.468 6.412 32.010
> #計(jì)算平均隊(duì)伍長度
> summary(line)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000 1.000 2.000 4.094 6.000 19.000
當(dāng)服務(wù)間隔時(shí)間的期望是3领跛,到達(dá)時(shí)間間隔的期望是3
#等待時(shí)間
> summary(waiting)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0000 0.0000 0.0000 1.1400 0.9547 15.2100
> #計(jì)算平均隊(duì)伍長度
> summary(line)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000 1.000 1.000 1.325 1.000 10.000
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者