implement viterbi pruning