Qual é a diferença entre os algoritmos forward-backward e Viterbi?

Quero saber quais são as diferenças entre o algoritmo forward-backward e o algoritmo Viterbi para inferência em modelos ocultos de Markov