要触发的过渡集满足下列条件:
- 所有过渡都必须处于活动状态。
- 任何没有冲突的过渡都将触发。
- 如果定义了过渡之间的优先级,那么优先级较低的过渡不会触发。
- 在任何一组有冲突的过渡中,选择触发一个过渡。如果未能通过优先级来解决冲突,那么将选择任意的过渡。
以此方式定义选择集并不是必要条件,但实现选择算法是通过直接遍历活动状态配置完成的。
以自底向上方式遍历活动状态,并对相互相关的过渡进行求值。此遍历确保不违反优先级原则。唯一的问题是,解决跨正交状态的过渡冲突。此问题是通过以下方法解决的:在每个“与”状态的其中一个组件内触发过渡后,锁定该状态。自底向上遍历和“与”状态锁定共同确保选择集正确。