I have to write an essay about shortest path calculation with Viterbi algorithm. Since I am interested in finding the path with the least weight on the network graph, I am a little bit confused how to model the network since Viterbi works only on trellis graphs. Does Viterbi require directed acyclic graph or it could be used on graph with cycles? On this link I found some hints how Viterbi is used to compute shortest path. It seems like Bellman Ford algorithm to me, but there is some topological sorting in first step of the algorithm? Why I need it? 
Viterbi algorithm for shortest path calculation
algorithms;graphs;shortest path