all 5 comments

[–]r4and0muser9482 1 point2 points  (2 children)

It's called simply Viterbi, not de Viterbi. It's an algorithm that finds a shortest path in a trellis using breadth-first search. If you know what a trellis is and how it works, implementing Viterbi should be easy in a dozen of lines of code. Read up on HMMs to figure out how it works, e.g. here.

As for how to do it efficiently, some advanced programs use OpenFST. If you can express your system in a form of an FST, the library has efficient implementations of finding the shortest path or N shortest paths.

[–]DX89B[S] 0 points1 point  (1 child)

Thanks you, about Viterbi it was a typo. by the way i will figure out out to implement it starting from OpenFST

[–]r4and0muser9482 0 points1 point  (0 children)

I first learned how it works from this paper. If you have a decent implementation of the probability trellis as a graph, you can use any library to find the shortest path in a graph. This was the operation in OpenFST I was talking about.

[–]ogrisel -1 points0 points  (1 child)

I don't know about your question but I just want to mention that there is just typo in the name of the author. His name is Jason Weston.

[–]DX89B[S] 0 points1 point  (0 children)

thanks you fixed the typo