¿Cuál es la diferencia entre los algoritmos de avance-retroceso y Viterbi?

Quiero saber cuáles son las diferencias entre el algoritmo de avance y retroceso y el algoritmo de Viterbi para inferencia en modelos ocultos de Markov