求解方程组以找到马尔可夫链的预期停留时间

时间:2014-01-30 13:41:19

标签: matrix markov-chains

我被告知,为了计算一组州的预期停留时间,我可以使用以下方法:

  1. 构造具有索引i的马尔可夫链,j是从状态i转换到状态j的概率。
  2. 转置矩阵,以便每列包含该状态的入站概率。
  3. 反转对角线,使值p变为(1-p)。
  4. 在底部添加一行,其中包含1个
  5. 构造一个系数向量,其中0和最后一个元素1
  6. 解决它。结果向量应包含各州的预期停留时间
  7. 让我举个例子:

    我有最初的马尔可夫链:

      0.25  ;  0.25  ;  0.25  ; 0.25
      0.00  ;  0.50  ;  0.50  ; 0.00
      0.33  ;  0.33  ;  0.33  ; 0.00
      0.00  ;  0.00  ;  0.50  ; 0.50 
    

    在步骤1-3之后,它看起来像这样:

      0.75  ;  0.00  ;  0.33  ;  0.00
      0.25  ;  0.50  ;  0.33  ;  0.00
      0.25  ;  0.50  ;  0.67  ;  0.50
      0.25  ;  0.00  ;  0.00  ;  0.50
    

    我添加最后一行:

      0.75  ;  0.00  ;  0.33  ;  0.00
      0.25  ;  0.50  ;  0.33  ;  0.00
      0.25  ;  0.50  ;  0.67  ;  0.50
      0.25  ;  0.00  ;  0.00  ;  0.50
      1.00  ;  1.00  ;  1.00  ;  1.00
    

    系数将是以下向量:

       0    ;    0   ;   0    ;   0   ;   1
    

    增加的1行应该强制执行,解决方案总和为1.但是,我的解决方案是集合:

      {0.42; 0.84; -0.79; 0.32}
    

    总和为0.79,显然有些不对劲。 我还注意到,状态3的预期停留时间是负面的,这在我看来是不可能的。

    我用Java实现它,并使用Commons.Math来处理矩阵计算。我已经尝试了documentation中描述的各种算法,但我得到了相同的结果。

    我还尝试用1的行代替其中一行,以使矩阵成为正方形。当我这样做时,我得到以下一套解决方案:

      {0.79; 0.79; -1.79; 1.2}
    

    即使概率总和为1,它们仍然是错误的,因为它们应该在0..1范围内并且总和为1。

    这是解决问题的完全错误的方法吗?我在哪里? 不幸的是,我不是很数学,但我希望我已经提供了足够的信息让你看到问题。

1 个答案:

答案 0 :(得分:0)

我找到了答案:

在步骤3中,让所有概率为p但对角线为-p:

0.75  ;  -0.00  ;  -0.33  ;  -0.00
-0.25  ;  0.50  ;  -0.33  ;  -0.00
-0.25  ;  -0.50  ;  0.67  ;  -0.50
-0.25  ;  -0.00  ;  -0.00  ;  0.50