[英]Exponential Distribution Simulation in R
我有以下圖表:
我被告知以下信息:
(1)頂點A到頂點X由指數分布描述,λ= 4;
(2)頂點A到頂點Y由指數分布描述,λ= 2.5;
(3)頂點X到頂點Y與頂點Y相同,到頂點X,用λ= 10的指數分布描述;
(4)頂點X到頂點B用λ= 3的指數分布描述; 最后,
(5)頂點Y到頂點B由λ= 5的指數分布描述。
讓我們假設我在每個模擬中采用頂點之間的最快路徑。
我現在想知道從頂點A到頂點B的平均時間。
我的R代碼如下:
# Generate/simulate 1000 random numbers for each of the internode paths.
AtoX <- rexp(1000, 4)
AtoY <- rexp(1000, 2.5)
XtoY <- rexp(1000, 10)
XtoB <- rexp(1000, 3)
YtoB <- rexp(1000, 5)
# Length of path from A to X to Y and A to Y to X.
AYX = AtoY + XtoY
AXY = AtoX + XtoY
# Total time of paths from A to B.
AXB = AtoX + XtoB
AYB = AtoY + YtoB
AXYB = AtoX + XtoY + YtoB
AYXB = AtoY + XtoY + XtoB
# Taking the fastest path of all paths.
minAXB = min(AXB)
minAYB = min(AYB)
minAXYB = min(AXYB)
minAYXB = min(AYXB)
# Taking an average of the fastest paths.
averageTravelTime =
mean(minAXB + minAYB + minAXYB + minAYXB)
這看起來是否正確? 如果人們可以請花時間審查我的代碼來解決這個問題,我將不勝感激。
這取決於解釋,但我要說你需要分別模擬從X到Y和從Y到X的時間,盡管速率相同。 如果火車雙向行駛並且平均速度相同,則並不意味着從X和Y出發的兩列火車將在同一時間到達另一點。
你沒有使用
AYX <- AtoY + XtoY AXY <- AtoX + XtoY
所以他們是多余的。
編寫minAXB <- min(AXB)
並沒有多大意義。 您為每條邊模擬1000次行程時間, AXB
是路徑AXB
的1000倍向量,現在您選擇的是最短的一次。
同樣, averageTravelTime
沒有意義,因為minAXB + minAYB + minAXYB + minAYXB
只是一個數字,而不是一個載體。
因此,我認為代碼應該是
set.seed(1)
AtoX <- rexp(1000, 4)
AtoY <- rexp(1000, 2.5)
XtoY <- rexp(1000, 10)
YtoX <- rexp(1000, 10) # added
XtoB <- rexp(1000, 3)
YtoB <- rexp(1000, 5)
AXB <- AtoX + XtoB
AYB <- AtoY + YtoB
AXYB <- AtoX + XtoY + YtoB
AYXB <- AtoY + YtoX + XtoB # changed XtoY to YtoX
TravelTimes <- pmin(AXB, AYB, AXYB, AYXB)
averageTravelTime <- mean(TravelTimes)
見?pmin
。 每天它選擇最快的旅行時間並返回長度為1000的向量。
作為獎勵,以下顯示哪條路線最快的次數
table(apply(cbind(AXB, AYB, AXYB, AYXB), 1, which.min))
# 1 2 3 4
# 317 370 240 73
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.