【问题标题】:Exponential distribution simulation in RR中的指数分布模拟
【发布时间】:2018-08-29 04:02:37
【问题描述】:

我有以下图表:

我被告知以下信息:

(1) 顶点 A 到顶点 X 用 lambda = 4 的指数分布来描述;

(2) 顶点 A 到顶点 Y 用 lambda = 2.5 的指数分布来描述;

(3)顶点X到顶点Y等同于顶点Y到顶点X,用λ=10的指数分布来描述;

(4) 顶点 X 到顶点 B 由 lambda = 3 的指数分布描述;最后,

(5) 顶点 Y 到顶点 B 由 lambda = 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)

这看起来正确吗?

【问题讨论】:

    标签: r statistics simulation probability exponential-distribution


    【解决方案1】:
    1. 这取决于解释,但我想说您需要分别模拟从 X 到 Y 和从 Y 到 X 的时间,尽管速度相同。如果一列火车双向行驶且平均速度相同,这并不意味着从 X 和 Y 出发的两列火车会同时到达另一点。

    2. 你没有使用

      AYX <- AtoY + XtoY
      AXY <- AtoX + XtoY
      

      所以它们是多余的。

    3. minAXB &lt;- min(AXB) 真的没有意义。您为每条边模拟 1000 个行程时间,AXB 是路线 AXB 的 1000 次的向量,现在您正在选择整个时间最短的一个..

    4. 同样,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 
    

    【讨论】:

    • 啊,我认为你是对的。所以我们应该每天走最快的路线,而不是跨时间最快的路线?
    • @ThePointer,对,因为Assuming you are taking on every day the fastest route。而且平均 1000 次旅行时间比 4 次更有意义。
    • 好的,非常感谢您的帮助。这很有启发性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多