code: public List<SequenceState<S, O, D>> computeMostLikelySequence() {
          if (message == null) {
              // Return empty most likely sequence if there are no time steps or if initial
              // observations caused an HMM break.
              return new ArrayList<>();
          } else {
              return retrieveMostLikelySequence();
          }
      }
docs: Returns the most likely sequence of states for all time steps. This includes the initial
  states / initial observation time step. If an HMM break occurred in the last time step t,
  then the most likely sequence up to t-1 is returned. See also {@link #isBroken()}.
  
  <p>Formally, the most likely sequence is argmax p([s_0,] s_1, ..., s_T | o_1, ..., o_T)
  with respect to s_1, ..., s_T, where s_t is a state candidate at time step t,
  o_t is the observation at time step t and T is the number of time steps.