Skip to main content
. 2019 Oct 12;19(20):4421. doi: 10.3390/s19204421
Algorithm 1 Viterbi Algorithm (λ=(A,B,π),O)
Inputs: λ=(A,B,π),O
Output: Q*={q1*,q2*,,qT*}
1: for i=1,,Ndo ▹ Initialization
2:  δ1(i)=πibi(O1)
3:  ψ1(i)=0
4: for j=1,,N, t=2,,T do ▹ Recursion
5:  δt(j)=max1iN[δt1(i)aij]·Bj(Ot)
6:  ψt(i)=argmax1iN[δt1(i)aij]
7: P*=max1iN[δT(i)]
8: qT*=argmax1iN[δT(i)]
9: for t=T1,T2,,1 do ▹ Reconstruction of state sequence
10:  qt*=ψt+1(qt+1*)
11: return Q*