首页 > 其他分享 >行为树的优缺点

行为树的优缺点

时间:2022-10-13 16:25:04浏览次数:61  
标签:子树 可读性 模块化 优缺点 FSM BT 适用 行为

优点

模块化

BT的每个子树都可以是一个模块。模块化系统可以设计、应用、测试和重用一个模块。分而治之的模块化系统会随着系统的复杂度增加而变得更加有益。

分层组织

BT包含多个级别的决策。在不同层次上的设计和分析结构能实现迭代细化和计划拓展。

可重用代码

BT的所有子树只需要返回“运行“、”成功“和”失败“,这使得一个子树在任意子树都是可重用的。

反应性

BT的反应性表现为每Tick对树进行闭环遍历 。

可读性

可读性可以降低开发和调试的成本。由于BT的树结构和模块化,使得BT具有可读性

表达能力

BT至少有四种表达方式:有限状态机、包容体系结构、远程反应程序、决策树。

适用于分析

BT可以从这几个特性进行定性和定量分析:安全性,避免不可逆的不良行为;鲁棒性,适用于很大的操作范围;效率性,完成时间的意义上;可行性,成功概率的意义上;可组合性,分析子任务的组合是否保留了属性。

适用于自动综合

BT适用于任务规划或机器学习技术自动合成任务或策略的动作排序。

缺点

BT引擎应用复杂

单线程顺序编程会使BT引擎的应用变得复杂。

检查所有的条件需要很大的代价

BT需要检查几个条件来执行闭环任务。在某些应用中需要付出很大的代价。

有时前馈执行效果足够好

机器人在结构化的环境中工作时,可以在空间和时间上预测机器人的状态,此时BT与更简单的架构相比没有任何优势。

BT与FSM不同

BT与FSM相比更容易理解,但在设计解决方案时需要新的思维方式,BT的执行并不关注状态,而是关注条件,并且切换不是事件驱动而是时钟驱动的。

BT工具不成熟

开发BT的软件在软件数量和成熟度上不如FSM。

标签:子树,可读性,模块化,优缺点,FSM,BT,适用,行为
From: https://www.cnblogs.com/youzimo/p/16788506.html

相关文章

  • 雪花算法详解(原理优缺点及代码实现)
    目录雪花算法简介雪花算法的优缺点雪花算法原理雪花算法代码实现雪花算法简介雪花算法,英文名为snowflake,翻译过来就是是雪花,所以叫雪花算法。在大自然雪花形......
  • 探码科技关于兼职网络电信APP任务刷单行为的严正声明
    近日,成都探码科技有限公司(以下简称“探码科技”或“我司”)发现有不法份子冒充“探码科技”名义,盗用公司Logo与官方图片,通过招聘平台、购物平台、社交等网络平台发布招聘信息......
  • 【每周CV论文推荐】初学视频分类与行为识别有哪些值得阅读的论文?
    欢迎来到《每周CV论文推荐》。在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的。随着图像识别相关领域的研究与......
  • 设计模式-行为型模式之观察者
    观察者模式也可以理解为:发布订阅模式发布者状态更新,通过管道接口实现订阅者动态更新1classMiddleware:2"""3发布者和订阅者交互类40、订阅......
  • HBase架构的优缺点​
        HBase是目前非常热门的一款分布式KV键值数据库系统,无论是互联网行业还是其他传统IT行业都在大量使用。HBase具有高可用、易扩展的特性,目前社区成熟度高,HBase可......
  • HBase架构的优缺点
    HBase是目前非常热门的一款分布式KV键值数据库系统,无论是互联网行业还是其他传统IT行业都在大量使用。HBase具有高可用、易扩展的特性,目前社区成熟度高,HBase可以作为底层......
  • 黑板行为树
    在黑板中用黑板拾取器拾取数据要匹配数据ID(关联黑板数据)用重写initfromset()   ......
  • Mysql:为什么使用索引以及索引的优缺点
    索引概述索引优缺点优点(1)是索引的关键,优点(3)和优点(4)其实是创建索引后顺带的福利。缺点(1)和(2)是小缺点,真正的大缺点是(3)。好比你在原本已经订好目录的书上再插入新的1页,意......
  • 设计模式-行为型模式之模板方法
    定义抽象基类,规范接口内部方法执行顺序在进阶篇中,没专门提过抽象基类,在这里顺便就提一下抽象基类的核心特征:不能被直接实例化相反,抽象基类和元类一样,一般都被当......
  • Greenplum数据库数据分片策略Hash分布——执行器行为
    Greenplum数据库Hash分布执行器部分主要涉及Motion、Result和SplictUpdate节点。以使用CdbHash*makeCdbHash(intnumsegs,intnatts,Oid*hashfuncs)创建一个CdbHash结......