2014-01-30 29 views
0

有人告訴我的預期停留時間,爲了計算預期的停留時間爲一組狀態,我可以用下面的辦法:求解方程系統找到一個馬爾可夫鏈

  1. 構建具有索引i的馬爾可夫鏈,j是從狀態i過渡到狀態j的概率。
  2. 轉置矩陣,以便每列包含該狀態的入站概率。
  3. 反轉對角線,使得值p變爲(1-p)。
  4. 在底部添加一行,含有1的
  5. 構造具有0的一個係數向量和最後一個元素1
  6. 解決它。所產生的載體應包含的預期停留時間的各種狀態

讓我舉一個例子:

我最初的馬爾可夫鏈:

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

我找到了答案:

讓所有的概率p,但對角線是在步驟3 -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