Add allow_self_transitions
to TPSNetwork
#481
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Right now, if we create a
TPSNetwork
withfrom_states_all_to_all
, we get literally all the possible transitions, including A->A. Typically, we don’t want the self-transitions to be allowed.This PR adds an
allow_self_transitions
flag to the creation ofTPSNetwork
andFixedLengthTPSNetwork
. This flag will default toFalse
, in which case there are no A->A transitions.This makes a rather significant change in the way MSTPS is handled internally: instead of saying that there is only one sequential ensemble to check (leave any state; go to any state), now it is the union of a sequential ensemble for every state (leave that state; go to any other state). This will have some negative effects on speed, especially when building the trajectory backwards. We'll see scaling something like$O(t * N_S)$ , where $t$ is the length of the trajectory and $N_S$ is the number of states.
However, this is important in order to have multiple state TPS work correctly.
allow_self_transitions
allow_self_transitions=True
allow_self_transitions=False