具有停留持续时间的有限可能非确定性状态机

时间:2016-02-16 21:51:22

标签: java clojure finite-automata

发布somewhat ambiguous question之后,我相信我已经确定了我想知道的事情(我是FSM中的新手)。

我想在clojure中使用有限状态机(可能是非确定性自动机,即允许多个下一状态转换)来模拟状态空间。

这基本上是我的问题:

假设我们有这些状态Q={flying,cycling,running,driving},并且我们在平均日D={120,30,30,60}期间拥有状态持续时间 - 其中为了参数,这些状态只需几分钟。然后如何使用clojure创建可能不确定的FSM(允许多个目标状态)?我看过例如https://github.com/cdorrat/reduce-fsmhttps://github.com/ztellman/automat但我认为这不是我想要的。

我的最终目标是让模拟看起来像S = {flying,flying,flying,flying,flying,cycling,cycling,running,driving,driving,driving}

有效地在状态机中引起严重的自转移偏差。结束和开始状态并不重要。

1 个答案:

答案 0 :(得分:0)

问题尚未完全阐明,无法明确回答。无论如何: 如果您只想识别特定的状态序列,可以使用有限自动机,并且必须按顺序编写它们,例如:

flying -> flying -> flying -> flying -> flying -> cycling -> cycling -> running -> driving -> driving -> driving

我认为转换是由您引用的持续时间引起的。

然而,我怀疑你可能需要更详细的东西。那,这里不能详述。在我看来,如果这是出于编程目的,我建议你使用UML的状态机图。它们足以解决您的问题。