Viterbi and Dijkstra’s algorithm seems to be used in different contexts:
- Viterbi algorithm is usually employed to solve maximum likelihood sequence problems (I’ve used for this purpose in Communications, at least). We usually tackle this kind of problem by using trellis, a special type of graph, to represent these problems.
- Dijkstra algorithm is used to find the shortest path in informed/weighted path problems. Any type of graph can be employed to represent the problem.
After implementing both algorithms, I felt that they are intrinsically related, but I didn’t find references that could build a bridge between them in order to grasp a unified understanding.
How related are Viterbi and Dijkstra’s algorithm? Where is the distinct difference between them?
1