浅谈行为树(Behavior Trees)
什么是行为树(Behavior Trees)?
行为树是一种描述计划或任务执行的数学模型,在计算机科学、机器人学、控制科学和电子游戏中均有应用。行为树用模块化的方式描述有限的任务集合之间的转换。其优势在于可以创建由简单任务组成的复杂任务,而不需要考虑简单任务是如何执行的。
行为树表现出与层级状态机(Hierarchical state machines)的许多相似性,但又有着关键的区别:行为树的主要构建模块是任务而不是状态。
因为行为树更容易被理解,在设计中相对不容易出错,使得其在游戏开发领域颇为流行。
在机器人领域的应用
行为树源于在计算机游戏开发中一个非常强大的对非玩家角色(NPC)的行为建模。它被诸如Halo、Bioshock和Spore等游戏高度使用。行为树在游戏人工智能教材中已经被认为是发展成熟的,在主流的游戏开发软件Unity和Unreal Engine中也是被广泛使用。
在机器人领域,行为树最先被作为一个多任务控制框架,使用在无人机、复杂机器人、机器人操作和多机器人系统中。
行为树(Behavior Trees)还是有限状态机(Finite State Machine)
什么情形下使用行为树而不是有限状态机呢?
总的来说,行为树更适合用来设计人工智能(AI),而有限状态机更适用在可视化编程(Visual