Why can the Viterbi algorithm find the optimal solution?
It is because of the Generalized Distributive Law.
How can Viterbi become Beam Search?
Source: NLP Programming Tutorial 13 - Beam and A* Search by professor Graham Neubig
Then the reverse is the process to convert beam search into Viterbi.