使用马尔可夫链创建特定长度的字符串

Creating a string of specific length using Markov chain

我正在尝试在 R 中模拟同质有限状态马尔可夫链。我想在给定初始概率和转移概率矩阵的情况下获得某个特定长度的输出。这是我目前所拥有的

 library(markovchain)
 words <- c("h", "e", "l", "o")

 ###Initial probability
 initial <- cbind(c(0.25,0.25,0.25,0.25))

# define the transition matrix (each row sums to 1)
transitions <-  rbind(c(0.1, 0.2, 0.3, 0.4),
                  c(0.1, 0.2, 0.3, 0.4),
                  c(0.1, 0.2, 0.3, 0.4),
                  c(0.1, 0.2, 0.3, 0.4))

rownames(transitions) <- colnames(transitions) <- words

library(markovchain)
markovChain <- new("markovchain", states=words, 
               transitionMatrix = transitions)

markovchainSequence(10, markovChain, t0="h")

但是,此代码未使用初始概率。我只声明在 t0 的状态应该是 b。我如何在这里使用初始概率?

您可以使用初始概率创建初始状态。

M0 = sample(words, 1,  prob=initial)
markovchainSequence(10, markovChain, t0=M0)