我想实现一个复杂的分支逻辑Android业务应用程序,根据用户的响应,将其用作具有许多问题和分支之间的营销问答工具。 我很困惑是否将对话逻辑实现为FSM或行为树。作者已经使用树来实现状态机。例如在Ian Millington等人的游戏的人工智能中,作者建议将决策树用于FSM。但是,我认为FSM可能会关闭,例如在“发出警报”和“防守”之间转换会使其成为图形而不是树。我的第一个问题是树和状态机有什么区别?第二个是对我的应用来说是一个很好的实现,管理高级分支复杂性?行为树与状态机
Q
行为树与状态机
1
A
回答
0
我想通过定义,FSM只有一个切入点,而树木的行为可以有多个输入。树是图,但图不是树。一棵树是一个非循环图,其中叶子永远不会有多个父母。所以在这方面,树更适合FSM。
不管怎样,我会想象这种类型的模拟超出了android api的范围。因此,我会更多地研究Java中可用的工具类型。我曾经用Java做过一个机器学习研究项目。为了促进多线程,我最终实现了自定义树数据结构。
我希望有帮助!
0
行为树和决策树是两个不同的东西。行为树是一种面向目标和反应性的组件(更多的套件用于模拟游戏中的代理或智能实体决策,如环境),决策树是基于动作的实用程序对决策进行规范(和存储)的重要工具给定状态。 主要是,在第一种方法中,执行更加满状态(执行与你在树中的状态相关),而后者更无状态(整棵树从根到叶评估以便到达结论)。
这就是说,从你的描述看来,你正在寻找的是专家系统,基于规则。
0
FSM是通过转换链接的状态图。对于复杂的fsm,由于复杂的转换而难以扩展。
对于行为树,每个节点都由其父级管理,实际上该过渡实际上隐含在父/子关系中,因此扩展现有行为树更容易。
you can refer to https://github.com/TencentOpen/behaviac for the source code and designer.
相关问题
- 1. 状态机执行
- 2. C++递归树与指针和状态机构建
- 3. QML状态机与信号
- 4. 板球作为状态机
- 5. 对象与状态和行为在oop
- 6. 奇怪的行为与git的状态
- 7. 行为与基于状态的测试
- 8. 为树状
- 9. SplitContainer的与树状
- 10. 状态就像行为树中的动作
- 11. 树状图与父/子问题加载状态
- 12. Windows Workflow 3状态机 - 持久对象与WF状态一起?
- 13. 建模识别状态与建模验证的状态机图
- 14. ObjectOutputStream状态机?
- 15. 在状态机
- 16. VHDL状态机
- 17. 状态机,
- 18. Android状态机
- 19. 设计REDX状态树
- 20. JSF和组件树状态
- 21. ExtJS检查树状态
- 22. 树状检查状态改变?
- 23. 更改树状图状态图像
- 24. 定期为树状
- 25. VHDL输出声明与状态机
- 26. 状态机与微控制器的RTOS
- 27. 可以在状态机中进行状态转换吗?
- 28. 在wf 4.0状态机中重新运行工作流状态
- 29. mod-pagespeed和树状菜单行为
- 30. Ruby中的动态状态机?状态机必须是类吗?