2016-02-16 116 views
0

发布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}的模拟。

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

+0

你的问题对我来说似乎仍然很模糊。当你说“每分钟的状态持续时间”,我不清楚为什么这是相关的,他们不加起来24 * 60,所以没有其他一些代表剩余时间?或者你有很大的差异?此外,我不清楚在什么基础上决定何时更改州(例如每30分钟)?或者你想如何选择替代国家? –

回答

0

这个问题没有完全明确地提出来明确回答。总之: 如果你只是想承认国家的特定序列,则可以使用有限自动机,你将不得不写他们的顺序,如:

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

在那里我考虑到过渡是由你引用的持续时间引起的。

但是,我怀疑你可能需要更详细的说明。那在这里不能详细阐述。在我看来,如果这是为了编程的目的,我建议你使用UML的状态机图。他们足够强大,可以解决您的问题。