【发布时间】:2015-09-13 16:20:06
【问题描述】:
我有一个在类似 Arduino 的微控制器上运行的项目,它目前是混合的 IF ELSE 语句,由于应用了所有不同的“规则”并在各个状态中移动,因此很难遵循这些语句。我基本上有 (6) 个模式/状态,这些模式/状态已被包装到通过主循环中的 Case 主干进行管理的函数中,并且转换所需的更改隐藏在这些函数的顶部,以允许几乎任何状态转换到另一个状态。一些研究使我找到了有限状态机 (FSM),但我也看到很多人指向 ID3 和类似的决策树。确定状态的输入是明确定义/已知的。鉴于我的系统没有尝试解决“已知未知数”,决策树与 FSM 的努力是否值得?
【问题讨论】:
-
FSM 被严重低估了,一定要去做。早在 90 年代,SDL 非常受欢迎(我曾与几个在 SDL 中使用软件实现调制解调器的人一起工作),但后来 UML 出现了一个大规模过度设计的东西并扼杀了 SDL,所以tools are hard to find。当然,在进行完整实现时,复杂性与直接编写代码大致相同,但仅绘制(整体)状态图(在纸上或可能使用 graphviz)非常有价值。
标签: c++ machine-learning arduino decision-tree fsm