在发布了一个somewhat ambiguous question后,我相信我已经解决了我想知道的问题(我完全是FSM的新手)。
我想在clojure中使用有限状态机(可能是非确定自动机,即允许多个下一个状态转换)来模拟一个状态空间。
这本质上就是我的问题:
假设我们有这些状态Q={flying,cycling,running,driving}
,我们有平均一天D={120,30,30,60}
中每个状态的持续时间-为了便于讨论,这些都是以分钟为单位的。那么,如何使用clojure创建可能不确定的FSM (允许多个目的地状态)?例如,我看过https://github.com/cdorrat/reduce-fsm和https://github.com/ztellman/automat,但我不认为这是我想要的。
我的最终目标是得到一个看起来像S = {flying,flying,flying,flying,flying,cycling,cycling,running,driving,driving,driving}
的模拟。
在状态机中有效地诱导了严重的自转换偏差。结束和开始状态并不重要。
发布于 2016-06-14 17:41:15
这个问题没有完整的公式来明确地回答。无论如何:如果你只想识别一个特定的状态序列,你可以使用有限自动机,并且你必须按照这个顺序来编写它们,比如:
flying -> flying -> flying -> flying -> flying -> cycling -> cycling -> running -> driving -> driving -> driving
我认为转换是由你提到的持续时间引起的。
然而,我怀疑你可能需要更详细的东西。这一点,不能在这里详细阐述。在我看来,如果这是为了编程的目的,我建议您使用UML中的状态机图表。它们足够强大,可以解决您的问题。
发布于 2021-10-31 20:41:05
我会推荐:
transitions.
以下是用于ants模拟Ant FSM的这种方法的一个示例
https://stackoverflow.com/questions/35443709
复制相似问题