我被告知,为了计算一组州的预期停留时间,我可以使用以下方法:
让我举个例子:
我有最初的马尔可夫链:
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。
这是解决问题的完全错误的方法吗?我在哪里? 不幸的是,我不是很数学,但我希望我已经提供了足够的信息让你看到问题。
答案 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