news 2026/9/23 13:48:10

概率选择节点-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
概率选择节点-–-behaviac

原文

类似选择(Selector)节点,概率选择(SelectorProbability)节点也是从子节点中选择执行一个,但不像选择节点每次都是按照排列的先后顺序选择,概率选择节点每次选择的时候根据子节点的“概率权值”进行选择,权值越大,被选到的机会越大,权值为0,则其分支不会被执行,如下图所示:

注意:选择节点是按照从上到下的顺序依次执行子节点,一直到第一个返回成功的那个子节点则返回成功,或者如果所有子节点都返回失败则返回失败。

而概率选择节点则是根据概率“直接”选择并执行某个子节点,无论其返回成功还是失败,概率选择节点也将返回同样的结果。如果该子节点返回失败,概率选择也返回失败,它不会像选择节点那样会继续执行接下来的子节点。

概率选择节点有随机数生成器可以配置,该随机数生成器是一个返回值为0.0到1.0之间的float类型的函数,如下图所示:

该随机数生成器一般设为空即可,表示采用系统的缺省实现,也可以使用自己提供的函数。

概率选择节点的子节点只能是“权值”的子节点,在添加子节点时,该权值节点会被系统自动添加。所有权值子节点的相加之和不需要是100,执行时会进行归一化操作,子节点的概率是该子节点的权值/总和。

概率选择节点的选择算法是基于概率区间的,比如上图中的3个子节点的权值分别是20、30、50,归一化后的概率分别是0.2、0.3、0.5,那么对应的概率区间分别是[0.0, 0.2)、[0.2, 0.5)、[0.5, 1.0)。概率选择节点的随机数生成器随机产生一个[0.0, 1.0)之间的随机数,看这个随机数落在哪个区间,则执行第几个子节点。例如,随机数为0.45,落在第二个区间[0.2, 0.5),则选择执行第二个子节点。

具体的执行逻辑可以查看behaviortree/nodes/composites/selectorprobability.cpp

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/23 7:59:58

高效搭建Rustdesk远程桌面服务器:从零到精通的完整指南

高效搭建Rustdesk远程桌面服务器:从零到精通的完整指南 【免费下载链接】rustdeskinstall Easy install Script for Rustdesk 项目地址: https://gitcode.com/gh_mirrors/ru/rustdeskinstall 还在为复杂的远程桌面配置而烦恼?想要一个简单易用且完…

作者头像 李华
网站建设 2026/9/23 5:59:07

3D点云数据重塑:突破性预处理策略与Point-E创新实践全解析

还在为3D模型训练数据准备而头疼?想要掌握点云预处理的终极技巧?这份完整指南将带你深度探索Point-E项目的革新性预处理技术,从数据标准化到智能增强,全方位提升你的3D建模效率。通过本文,你将获得: 【免费…

作者头像 李华
网站建设 2026/9/20 9:37:53

oracle的model子句让sql像excel一样灵活

接触了一个降本增效的项目,数据基本来自总账的各个科目,降的本、增的效的计算过程:会计根据当期账目,将数据填入Excel,设置好Excel公式后自动计算。sql能不能直接把Excel的计算过程给替换了?唉,…

作者头像 李华
网站建设 2026/9/22 14:38:28

LiteLoaderQQNT防撤回插件:让被撤回的消息无处可藏

你是否曾经历过这样的场景?工作群里刚发出的重要通知、朋友分享的趣事瞬间消失、还没来得及保存的文件链接就这样不见踪影...别担心,LiteLoaderQQNT防撤回插件正是为你解决这些困扰而生!这款专为QQNT设计的实用工具,能完整保留所有…

作者头像 李华