[原]行为树模式(BT)和有限状态机模式(FSM)

news/2024/9/29 9:31:20

概述

有限状态机(Finite State Machine, FSM)行为树(Behavior Tree, BT)都是用于游戏开发、机器人学以及其他需要实现复杂行为逻辑的领域中常用的设计模式。它们各自有独特的优点和缺点,适用于不同的场景。

有限状态机模式 (FSM)

定义:

有限状态机是一种数学模型,用来表示一个系统可以处于的状态集合以及这些状态之间的转换规则。每个状态都有相关的动作或活动,并且只有特定事件发生时才能从一个状态转移到另一个状态。

优点:

  • 简单直观:FSM很容易理解和实现,特别是对于简单的任务。
  • 易于调试:因为状态间的转换是明确的,所以问题更容易追踪和修复。
  • 性能高:在处理相对直接的行为逻辑时,FSM通常能够提供很好的性能。
  • 状态明确:每个状态的行为都是独立定义的,状态转移逻辑清晰。

缺点:

  • 难以扩展:随着状态数量的增长,管理所有可能的状态转换会变得非常困难。
  • 灵活性低:如果需求变更频繁,则修改现有的FSM可能会比较麻烦。
  • 不适合复杂逻辑:当涉及到多个条件判断或者循环结构时,使用FSM就显得不太合适了。

示例应用:

1.在视频游戏中控制角色的基本行动如行走、跳跃等,每个动作对应于一种状态。

2.假设有一个简单的交通灯系统,包含红灯、黄灯和绿灯三种状态。每种状态下,交通灯的行为(即灯光颜色)是固定的。当满足特定条件(如时间间隔)时,交通灯会从一种状态转变到另一种状态。这就是一个典型的FSM应用场景。

行为树模式 (BT)

定义:

行为树是一种基于节点的数据结构,通过组合不同的节点来形成复杂的行为决策流程。主要包含几种类型的节点:选择节点、序列节点、条件节点及执行节点等。

优点:

  • 良好的模块化设计:允许开发者将大的问题分解成更小的部分来解决。
  • 高度可复用性:同一棵行为树可以在不同情境下被重用。
  • 支持并发操作:能够在同一时间运行多条路径。
  • 强大的表达能力:能很好地描述出具有层次性和优先级的任务。

缺点:

  • 学习曲线较陡峭:相比于FSM来说,理解并正确地构建一棵有效的BT需要更多的知识和技术背景。
  • 计算成本较高:尤其是在处理大量并发路径的情况下,可能导致性能开销较大。
  • 维护难度大:随着项目规模扩大,保持行为树的清晰度与合理性成为挑战。

示例应用:

1.AI敌人智能体根据玩家的位置决定是否攻击、逃跑还是寻找掩护,这种情况下使用行为树可以更好地组织和管理各种决策逻辑。

2.在游戏开发中,行为树常用于控制NPC(非玩家角色)的行为。例如,一个NPC的行为树可能包含多个节点,如“巡逻”、“攻击玩家”、“寻找物品”等。这些节点会根据当前的环境和NPC的状态来决定执行哪个行为。通过这种方式,NPC可以表现出更加智能和灵活的行为。

 

两者对比

 

有限状态机模式行为树模式
定义 表示有限个状态以及状态间转移的数学模型 描述复杂行为和决策过程的树状结构
优点 设计简单、状态明确、易于调试 灵活性高、可读性强、可扩展性好、适应性强
缺点 状态爆炸、可扩展性差、难以处理复杂行为 实现复杂、性能开销、调试难度
应用场景 适用于状态较少、逻辑简单的系统 适用于需要高度灵活性和复杂决策逻辑的系统

有限状态机FSM   更适合那些状态固定且变化不多的情况。

行为树BT  则更加适合需要灵活应对多种情况并且具有一定复杂度的行为控制系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/66054.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

​VMware NSX 4.2.0.2 发布,新增功能概览

​VMware NSX 4.2.0.2 发布,新增功能概览​VMware NSX 4.2.0.2 发布,新增功能概览 VMware NSX 4.2.0.2 - 网络安全虚拟化平台 构建具有网络连接和安全性的云智能网络,跨多种云环境支持一致的策略、运维和自动化。 请访问原文链接:https://sysin.org/blog/vmware-nsx-4/,查…

从零开始学机器学习——线性和多项式回归

首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns 在之前的学习中,我们已经对数据的准备工作以及数据可视化有了一定的了解。今天,我们将深入探讨基本线性回归和多项式回归的概念与应用。 如果在过程中涉及到一些数学知识,大家也不必感到畏惧,我会逐步…

【干货】Ftrans数据摆渡设备 建立安全高效数传通道!

数据摆渡设备是指在没有物理连接的情况下,通过隔离部件将数据从源端传输到目的端的技术和设备。这种设备通常用于实现不同网络环境间的数据安全传输,比如在内网和外网之间进行数据交换时,确保安全性和合规性。 一、数据摆渡设备的使用背景 随着网络技术的发展,信息安全成为…

鸿蒙应用开发——ability.ets中Json数据解析报错Property xxx does not exist on type Object

鸿蒙应用开发——ability.ets中Json数据解析报错Property xxx does not exist on type Object鸿蒙应用开发——ability.ets中Json数据解析报错Property xxx does not exist on type Object 话不多说,报错写法 JSON.parse(result).data 直接改成 (JSON.parse(result) as object…

博弈论——颤抖手纳什均衡(二十一)

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 在博弈论中,纳什均衡(Nash Equilibrium)是博弈各方的一种策略组合,在这个组合下,每个参与者的策略都是对其他参与者策略的最优反应。换句话说,在纳什均…

622

imagemysql 汇总 基础操作 史上最全MySQL基本操作(这一篇就够用了!!!) 表管理 查看表结构 show full columns from sys_user ;查看表注释 selectTABLE_NAME as 表名,TABLE_COMMENT as 表注释 fromINFORMATION_SCHEMA.TABLES whereTABLE_SCHEMA = shiro_study;查看表索引 s…

【VMware VCF】使用 VCF Import Tool 将现有 vSphere 环境导入为 VI 域。

VCF Import Tool 工具使用两种方式来帮助客户将现有的 vSphere 或 vSphere + vSAN 环境转变为 VMware Cloud Foundation 环境,分别是转换(Convert)和导入(Import)。之前在这篇(使用 VCF Import Tool 将现有 vSphere 环境转换为管理域。)文章中演示了将现有 vSphere 环境…

广州C++信奥老师解一本通题 1915:【01NOIP普及组】最大公约数与最小公倍数

​【题目描述】二个正整数x0,y0(2≤x0≤100000,2≤y0≤1000000),求满足下列条件的P,Q的个数。 条件: 1.P,Q是正整数; 2.要求P,Q以x0为最大公约数,以y0为最小公倍数。 试求:满足条件的所有可能的两个正整数的个数。【输入】输入x0和y0【输出】满足条件的所有可能的两个正整数…