我正在嘗試從香農的論文“通信的數學理論”中重建馬爾可夫程序。我的問題涉及第 8 頁上的圖 3 以及第 5 頁部分 (B) 中該馬爾可夫鏈的相應序列(訊息)。我只是想檢查一下我是否將正確的馬爾可夫鏈編碼為香農論文中的這個數字:

這是我的嘗試:
install.packages("markovchain")
library(markovchain)
MessageABCDE = c("A", "B", "C", "D", "E")
MessageTransitionMatrix = matrix(c(.4,.1,.2,.2,.1,
.4,.1,.2,.2,.1,
.4,.1,.2,.2,.1,
.4,.1,.2,.2,.1,
.4,.1,.2,.2,.1),
nrow = 5,
byrow = TRUE,
dimname = list(MessageABCDE, MessageABCDE))
MCmessage = new("markovchain", states = MessageABCDE,
byrow = TRUE,
transitionMatrix = MessageTransitionMatrix,
name = "WritingMessage")
steadyStates(MCmessage)
markovchainSequence(n = 20, markovchain = MCmessage, t0 = "A")
我的目標是還從該鏈創建一個序列(訊息)。我主要不確定轉換矩陣,其中推斷的概率必須在每一行中都相同。我對 的輸出很滿意markovchainSequence,但如果我做得對,我不能 100% 確定。
這是我對 markovchainSequence 的控制臺輸出:
> markovchainSequence(n = 20, markovchain = MCmessage, t0 = "A")
[1] "D" "E" "A" "D" "A" "A" "B" "D" "E" "C" "A" "A" "E" "C" "C" "D" "D" "D"
[19] "A" "C"
uj5u.com熱心網友回復:
看起來不錯。這可能很奇怪,因為像這樣完全獨立的狀態不需要馬爾可夫鏈。可以同樣很好地使用
tokens <- c("A", "B", "C", "D", "E")
probs <- c(0.4, 0.1, 0.2, 0.2, 0.1)
sample(tokens, size=20, replace=TRUE, prob=probs)
## [1] "A" "B" "A" "B" "D" "B" "C" "D" "A" "D" "C" "E" "A" "A" "C" "E" "C" "D" "C" "C"
一旦存在各種條件概率,可能會更有意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/424807.html
