How to understand this "only one transition descriptor is stored per back pointer"?

Hi, I’m reading the map matching part of the coding. And got confused about the file with name “ViterbiAlgorithm.java”. More specifically, I do not quite understand the following paragraph.

<p>This algorithm supports storing transition objects in
 * {@link #nextStep(Object, Collection, Map, Map, Map)}. For instance if a HMM is
 * used for map matching, this could be routes between road position candidates.
 * The transition descriptors of the most likely sequence can be retrieved later in
 * {@link SequenceState#transitionDescriptor} and hence do not need to be stored by the
 * caller. Since the caller does not know in advance which transitions will occur in the most
 * likely sequence, this reduces the number of transitions that need to be kept in memory
 * from t*n² to t*n since only one transition descriptor is stored per back pointer,
 * where t is the number of time steps and n the number of candidates per time step.

Could anyone please share some thoughts about this? Moreover, I like this graphhopper very much, yet I found it really not easy to find any related documentations of any kind. Could anyone please provide me with any comments? Many thanks.

Powered by Discourse