我正在处理一个状态机,该状态机当前通过Dijkstra的算法遍历。但是,现在我需要增强该状态机,使其更“智能”地计算出解决某些副作用的途径。基本上,即使您处于该路径的正确起始状态,如果不满足某些要求,某些路径也是不可遍历的。通过首先遍历其他路径可以满足这些要求。我要解决的一个简化示例是在城市之间旅行:
(我正在处理的另一个示例是网站状态以及登录和注销的概念)。
我正在考虑两种方法:
是否有一种干净的方法通过图论来表示这一点?是否有一般情况的算法可以处理能够穿越路径的这一初步要求?这个问题基本上是一个两阶段的Dijkstra搜索,您必须首先访问某个节点,但是如果您已经满足“拥有护照”的条件,则不需要访问该节点。