问题标签 [fsm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
code-generation - 图形有限状态机编辑器
我正在寻找一个复杂的图形 FSM 编辑器,它可以以有据可查的输出格式(如 SCXML 或类似格式)导出模型。
有人可以推荐我一个工具吗?
scala - 有限状态机和 FSM 间信令
对具有本机语言的建议(因此没有 FSM 生成工具)支持状态机开发和执行以及消息/信号的传递。这适用于电信,例如这种复杂程度的 FSM 的实施。
我考虑过 Erlang,但希望得到一些反馈、建议、教程指针、替代方案,尤其是基于 Java 的框架。也许是斯卡拉?
仅开源。我不是在寻找 UML 或正则表达式相关的解决方案。
由于这是为了实现电信协议,FSM 可能并不重要。许多状态,许多转换,基于信号,输入约束/保护。动态实例化将是一个加号。switch 语句是不可能的,它很快就会嵌套到不可用的状态。if/else 稍微好一点。
我宁愿不依赖图形设计;FSM 描述的格式应该是人类可读/可编辑/可管理的。
--
我决定专注于基于 Actor 的 C++ 解决方案
例如,Theron 框架提供了一个起点http://theron.ashtonmason.net/并且为了避免在基于 FSM 的事件处理程序中使用 switch 语句,这个 C++ FSM 模板框架看起来很有用http://satsky.spb.ru/articles/ fsm/fsmEng.php
fsm - 如何构建以二进制显示模数 4 的有限状态机
有人可以告诉我如何构建一个以二进制显示模数 4 的有限状态机吗?
python - Python 在 int() 调用上优雅失败?
我必须在课堂上制作一个基本的 FSM,并用 Python 编写它。作业要求我们从文本文件中读取机器的转换。例如,一个具有 3 个状态的 FSM,每个状态都有 2 个可能的转换,可能的输入“a”和“b”,会有一个如下所示的文本文件:
我试图想出一种更 Pythonic 的方式来一次读取一行并将状态转换为整数,同时将输入 vals 保留为字符串。基本上是这样的想法:
当然,当它尝试 int("a") 时,它会抛出一个 ValueError。我知道我可以使用传统的循环并捕获 ValueError 但我希望有一种更 Pythonic 的方式来执行此操作。
python - 如何在 tkinter 中用箭头连接两个状态圈?
我目前正在用 tkinter 编写一个 fsm 编辑器。但是,我坚持连接两个状态。我有两个问题:
1)如何使过渡箭头根据鼠标移动变得可增长?
2)如何将箭头的起点粘贴在一个状态上,将箭头的终点粘贴在另一个状态上?
PS。您认为 tkinter 的文档是否足够好?
c++ - 需要 C++ 模板方面的帮助
我相当确定这是一个模板问题,因为我似乎无法以任何其他方式解决它 - 但也欢迎非模板解决方案。
有限状态机有许多程序状态,每个状态都可以对许多事件做出反应。
所以,我想为 Event、State 和 FSM 定义类。FSM 有一个状态集合(可能是向量,如果 STL 在嵌入式系统中出现问题,可能是链表),而 State 有一个事件集合。
每个状态和事件都有一个唯一的 Id 和一个用于调试 porpoise 的名称字符串。
尴尬的是,我不希望 Id 是整数,而是枚举的元素。每个 FSM 的状态和事件都有不同的枚举。
如何最好地编码?你能举两个简单的 FSM 的例子,或者一个有两个状态的 FSm,每个状态有两个事件吗?
例如,如果我有
我希望能够声明一个接受构造函数参数的事件类
和 请注意,我不想只重载构造函数,因为这是限制性的——如果添加了新的事件枚举怎么办?与状态类似,然后让我的 FSM 每个都有一个状态列表。
或者我只是一个人,坚持使用 eventId 的枚举,而传递一个 int 会简单得多?
谢谢。
顺便说一句,我宁愿避免使用 Boost,因为它本身不确定它在嵌入式系统中的工作情况。我更喜欢内部开发,以便完全控制。
python - Python 状态机设计
与这个 Stack Overflow 问题(C 状态机设计)相关,Stack Overflow 的人能否与我(和社区)分享您的 Python 状态机设计技术?
目前,我正在寻找基于以下内容的引擎:
但我确信在利用 Python 的动态特性(例如动态调度)的同时,有很多方法可以解决这个问题。
我追求的是“引擎”的设计技术,它接收“事件”和“调度”,而不是基于机器“状态”的那些。
conditional-statements - 如何设计这个特定的有限状态机?
我试图弄清楚如何设计以下系统,我认为可以将其定义为有限状态机:
假设我们有一堆 16 个积木(塔楼、墙壁、大门)一起形成了一座城堡。玩家可以将积木拖到平面图上的 16 个位置,如果操作正确,他们将看到整个城堡。所有的塔(有四个)都是相等的,所以它们可以在四个角落中的任何一个上。一些墙壁也是如此。
总而言之,平面图上有 16 个点,您可以在其中放置一个积木,每个点可以有 17 个“状态”:空 + 16 个积木中的任何一个。做一些数学运算会导致 17^16=很多组合。
该程序从一个空的平面图和一堆积木开始。然后它应该显示一条消息,例如“建造你自己的城堡,从塔开始”。当用户正确放置一个塔时,它应该说“做得好,现在建造所有四个塔”。你明白了。
问题是:玩家可以做的事情太多了。在错误的地方放置一个块,移除一个块,正确地在平面图上放置墙壁或塔,忽略给他们的方向,等等。
如果我可以避免使用数千个 if-then 语句来决定我应该采取下一步、显示错误消息还是根据玩家正在做的事情返回上一步,那就太棒了。
您如何描述构建序列的每个步骤的 NEXT、PREVIOUS 和 ERROR 条件?有什么设计方法吗?非常感谢您的意见。
computer-science - 为什么是 {a^nb^n | n >= 0} 不规则?
在我正在学习的 CS 课程中,有一个不规则语言的示例:
我可以理解这是不规则的,因为由于缺少内存组件,因此无法编写有限状态自动机/机器来验证和接受此输入。(如果我错了请纠正我)
正则语言上的维基百科条目也列出了这个例子,但没有提供(数学)证明它为什么不是正则的。
任何人都可以启发我并为此提供证据,或者给我一个很好的资源吗?
c++ - 调试有限状态机拼写检查代码
我需要有人调试我在下面编写的 c++ 代码行,以便它可以运行。它旨在使用状态到状态转换来拼写检查单词“and”。