I was working through [HMM][1] R package and used posterior as well as Viterbi algorithm: R> hmm = initHMM(c("A","B"), c("L","R"), transProbs=matrix(c(.8,.2,.2,.8),2), + emissionProbs=matrix(c(.6,.4,.4,.6),2)) R> observations = c("L","L","R","R") # Calculate posterior probablities of the states R> posterior = posterior(hmm,observations) R> print(posterior) index states 1 2 3 4 A 0.6037344 0.56639 0.43361 0.3962656 B 0.3962656 0.43361 0.56639 0.6037344 R> viterbi = viterbi(hmm,observations) R> print(viterbi) [1] "A" "A" "A" "A" So in the above example if I would consider posterior results and take sequence of hidden states according to highest probability at each position, then I would get "A" "A" "B" "B" but the Viterbi algorithm tells me that the sequence is "A" "A" "A" "A" My question is which sequence should I trust and why? [1]: http://cran.r-project.org/web/packages/HMM/index.html