2011-07-14 72 views
1

我想实现一个复杂的分支逻辑Android业务应用程序,根据用户的响应,将其用作具有许多问题和分支之间的营销问答工具。 我很困惑是否将对话逻辑实现为FSM或行为树。作者已经使用树来实现状态机。例如在Ian Millington等人的游戏的人工智能中,作者建议将决策树用于FSM。但是,我认为FSM可能会关闭,例如在“发出警报”和“防守”之间转换会使其成为图形而不是树。我的第一个问题是树和状态机有什么区别?第二个是对我的应用来说是一个很好的实现,管理高级分支复杂性?行为树与状态机

Combining Decision Tree and State Machine

回答

0

我想通过定义,FSM只有一个切入点,而树木的行为可以有多个输入。树是图,但图不是树。一棵树是一个非循环图,其中叶子永远不会有多个父母。所以在这方面,树更适合FSM。

不管怎样,我会想象这种类型的模拟超出了android api的范围。因此,我会更多地研究Java中可用的工具类型。我曾经用Java做过一个机器学习研究项目。为了促进多线程,我最终实现了自定义树数据结构。

我希望有帮助!

0

行为树和决策树是两个不同的东西。行为树是一种面向目标和反应性的组件(更多的套件用于模拟游戏中的代理或智能实体决策,如环境),决策树是基于动作的实用程序对决策进行规范(和存储)的重要工具给定状态。 主要是,在第一种方法中,执行更加满状态(执行与你在树中的状态相关),而后者更无状态(整棵树从根到叶评估以便到达结论)。

这就是说,从你的描述看来,你正在寻找的是专家系统,基于规则。