Obtaining the Viterbi alignment itself is not so easy for our model.
we take the Viterbi alignment of the sequence-based model (HMM model) as the starting point, and iterate the hillclimbing algorithm (Brown et al., 1993) many times to get the best alignment greedily.