首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有驻留时间的有限的可能不确定的状态机

具有驻留时间的有限的可能不确定的状态机
EN

Stack Overflow用户
提问于 2016-02-17 05:51:22
回答 2查看 245关注 0票数 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}的模拟。

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

EN

回答 2

Stack Overflow用户

发布于 2016-06-14 17:41:15

这个问题没有完整的公式来明确地回答。无论如何:如果你只想识别一个特定的状态序列,你可以使用有限自动机,并且你必须按照这个顺序来编写它们,比如:

代码语言:javascript
运行
复制
flying -> flying -> flying -> flying -> flying -> cycling -> cycling -> running -> driving -> driving -> driving

我认为转换是由你提到的持续时间引起的。

然而,我怀疑你可能需要更详细的东西。这一点,不能在这里详细阐述。在我看来,如果这是为了编程的目的,我建议您使用UML中的状态机图表。它们足够强大,可以解决您的问题。

票数 0
EN

Stack Overflow用户

发布于 2021-10-31 20:41:05

我会推荐:

transitions.

  • Check
  1. 使用状态、转换和条件来绘制图片,以确保一致性、死循环等。
  2. 使用映射和向量为自己实现有限状态机。不要使用其他FSM库,除非您需要来自FSM的重要内容。

以下是用于ants模拟Ant FSM的这种方法的一个示例

  1. 当蚂蚁出生时,它去寻找食物。
  2. 如果蚂蚁看到威胁,它就会逃离威胁。
  3. 如果威胁消失,蚂蚁就会继续寻找食物。
  4. 如果蚂蚁发现食物,它就会回家。
  5. 如果蚂蚁看到威胁,它就会带着食物逃离威胁。<代码>H219<代码>H120如果威胁消失,蚂蚁会继续返回家园。
  6. 如果蚂蚁在家,它会把食物放在蚂蚁体内,然后去寻找食物。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35443709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档