Hidden Markov Model Viterbi Algorithm