描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111652045
内容简介
本书首先着重于行为树(BehaviorTrees,BTS)的语义和设计原则,效率、安全性和稳健性分析,以及学习和任务规划等的复杂的主题,并提供实践例子,从简单的插图到现实的复杂行为,使读者能够成功地将理论与实践结合起来。
目 录
译者序
前言
作者简介
第1章 什么是行为树1
1.1 BT的发展简史与动机2
1.2 有限状态机的问题是什么?反应性和模块化的必要性3
1.3 BT的经典阐述4
1.3.1 BT执行示例8
1.3.2 带有内存的控制流节点9
1.4 从零开始为《吃豆人》创建BT13
1.5 为移动机械手机器人创建BT15
1.6 BT在机器人和人工智能中的应用18
1.6.1 自动驾驶车辆中的BT18
1.6.2 工业机器人中的BT19
1.6.3 亚马逊拾物挑战赛中的BT21
1.6.4 社交机器人JIBO中的BT22
第2章 BT如何概括和关联早期思想23
2.1 有限状态机23
2.2 分层有限状态机24
2.2.1 优点和缺点24
2.2.2 创建一个类似BT的FSM26
2.2.3 创建一个类似FSM的BT32
2.3 包容体系结构33
2.3.1 优点和缺点33
2.3.2 BT如何概括包容体系结构34
2.4 远程反应程序34
2.4.1 优点和缺点35
2.4.2 BT如何概括远程反应程序36
2.5 决策树36
2.5.1 优点和缺点36
2.5.2 BT如何概括决策树37
2.6 BT的优点和缺点38
2.6.1 优点38
2.6.2 缺点41
第3章 设计原则45
3.1 使用显式成功条件提高可读性45
3.2 使用隐式序列提高反应性46
3.3 使用决策树结构处理不同的案例47
3.4 使用序列提高安全性47
3.5 使用反向链接创建审慎型BT48
3.6 使用内存节点创建无反应的BT51
3.7 选择适当的BT粒度51
第4章 BT的扩展55
4.1 效用BT55
4.2 随机BT56
4.3 临时修改BT57
4.4 BT的其他扩展58
第5章 效率、安全性和鲁棒性分析59
5.1 BT的状态空间表示59
5.2 效率与鲁棒性62
5.3 安全性67
5.4 实例70
5.4.1 鲁棒性和效率71
5.4.2 安全74
5.4.3 更复杂的BT78
第6章 BT如何概括早期的思想81
6.1 BT如何概括决策树81
6.2 BT如何归纳包容体系结构83
6.3 BT如何概括顺序行为组合86
6.4 BT如何概括远程反应程序87
第7章 BT和自动规划91
7.1 规划和动作(PA-BT)方法92
7.1.1 算法概述95
7.1.2 算法详细说明97
7.1.3 对算法的评论99
7.1.4 算法的图形执行100
7.1.5 对现有示例执行算法103
7.1.6 反应性109
7.1.7 安全性110
7.1.8 容错性111
7.1.9 实际的复杂执行112
7.2 使用行为语言进行规划123
7.2.1 ABL 智能体124
7.2.2 ABL规划方法126
7.2.3 《星际争霸》复杂执行过程的简要结果129
7.3 比较PA-BT与ABL131
第8章 BT和机器学习133
8.1 应用于BT的遗传规划133
8.2 GP-BT方法135
8.2.1 算法概述136
8.2.2 详细的算法步骤138
8.2.3 修剪无效子树140
8.2.4 实验结果140
8.2.5 在BT中使用GP的其他方法145
8.3 将强化学习应用于BT145
8.3.1 Q-Learning总结145
8.3.2 RL-BT方法146
8.3.3 实验结果147
8.4 比较GP-BT与RL- BT149
8.5 从演示中学习并应用于BT150
第9章 随机行为树151
9.1 随机BT152
9.1.1 马尔可夫链和马尔可夫过程152
9.1.2 阐述155
9.2 将SBT转换为DTMC160
9.3 SBT的可靠性165
9.3.1 平均逗留时间165
9.3.2 平均失败时间和平均成功时间167
9.3.3 随时间推移的概率168
9.3.4 随机执行时间169
9.3.5 确定执行时间169
9.4 实例171
第10章 结束语181
参考文献183
前言
作者简介
第1章 什么是行为树1
1.1 BT的发展简史与动机2
1.2 有限状态机的问题是什么?反应性和模块化的必要性3
1.3 BT的经典阐述4
1.3.1 BT执行示例8
1.3.2 带有内存的控制流节点9
1.4 从零开始为《吃豆人》创建BT13
1.5 为移动机械手机器人创建BT15
1.6 BT在机器人和人工智能中的应用18
1.6.1 自动驾驶车辆中的BT18
1.6.2 工业机器人中的BT19
1.6.3 亚马逊拾物挑战赛中的BT21
1.6.4 社交机器人JIBO中的BT22
第2章 BT如何概括和关联早期思想23
2.1 有限状态机23
2.2 分层有限状态机24
2.2.1 优点和缺点24
2.2.2 创建一个类似BT的FSM26
2.2.3 创建一个类似FSM的BT32
2.3 包容体系结构33
2.3.1 优点和缺点33
2.3.2 BT如何概括包容体系结构34
2.4 远程反应程序34
2.4.1 优点和缺点35
2.4.2 BT如何概括远程反应程序36
2.5 决策树36
2.5.1 优点和缺点36
2.5.2 BT如何概括决策树37
2.6 BT的优点和缺点38
2.6.1 优点38
2.6.2 缺点41
第3章 设计原则45
3.1 使用显式成功条件提高可读性45
3.2 使用隐式序列提高反应性46
3.3 使用决策树结构处理不同的案例47
3.4 使用序列提高安全性47
3.5 使用反向链接创建审慎型BT48
3.6 使用内存节点创建无反应的BT51
3.7 选择适当的BT粒度51
第4章 BT的扩展55
4.1 效用BT55
4.2 随机BT56
4.3 临时修改BT57
4.4 BT的其他扩展58
第5章 效率、安全性和鲁棒性分析59
5.1 BT的状态空间表示59
5.2 效率与鲁棒性62
5.3 安全性67
5.4 实例70
5.4.1 鲁棒性和效率71
5.4.2 安全74
5.4.3 更复杂的BT78
第6章 BT如何概括早期的思想81
6.1 BT如何概括决策树81
6.2 BT如何归纳包容体系结构83
6.3 BT如何概括顺序行为组合86
6.4 BT如何概括远程反应程序87
第7章 BT和自动规划91
7.1 规划和动作(PA-BT)方法92
7.1.1 算法概述95
7.1.2 算法详细说明97
7.1.3 对算法的评论99
7.1.4 算法的图形执行100
7.1.5 对现有示例执行算法103
7.1.6 反应性109
7.1.7 安全性110
7.1.8 容错性111
7.1.9 实际的复杂执行112
7.2 使用行为语言进行规划123
7.2.1 ABL 智能体124
7.2.2 ABL规划方法126
7.2.3 《星际争霸》复杂执行过程的简要结果129
7.3 比较PA-BT与ABL131
第8章 BT和机器学习133
8.1 应用于BT的遗传规划133
8.2 GP-BT方法135
8.2.1 算法概述136
8.2.2 详细的算法步骤138
8.2.3 修剪无效子树140
8.2.4 实验结果140
8.2.5 在BT中使用GP的其他方法145
8.3 将强化学习应用于BT145
8.3.1 Q-Learning总结145
8.3.2 RL-BT方法146
8.3.3 实验结果147
8.4 比较GP-BT与RL- BT149
8.5 从演示中学习并应用于BT150
第9章 随机行为树151
9.1 随机BT152
9.1.1 马尔可夫链和马尔可夫过程152
9.1.2 阐述155
9.2 将SBT转换为DTMC160
9.3 SBT的可靠性165
9.3.1 平均逗留时间165
9.3.2 平均失败时间和平均成功时间167
9.3.3 随时间推移的概率168
9.3.4 随机执行时间169
9.3.5 确定执行时间169
9.4 实例171
第10章 结束语181
参考文献183
前 言
这本书主要介绍行为树(Behavior Tree,BT),它是一种构造智能体例如机器人或者电脑游戏中非玩家角色的行为,或者更精确地说是任务切换的方法。
机器人和虚拟智能体设计中的任务切换问题非常类似。然而,与机器人领域相比,游戏开发者更为关注这些问题。原因之一是,设计单个任务(如抓取、定位和映射)仅是机器人领域中的研究主题,而在虚拟世界中却是微不足道的。游戏角色不需要担心现实世界的物理学和力学,可以自由地直接访问自身和某些世界坐标中其他对象的位置,或者将目标位置设置为与其手相同的位置。因此,BT是在游戏开发社区中创造出来的,而机器人研究人员正忙于使机器人能够执行单独的任务,这并非巧合。
与其他任务切换结构相比,模块化和反应性是BT的两个关键特性,在游戏开发中也非常重要。电脑游戏是一个大型软件开发项目例子,模块化在软件开发中的重要性是众所周知的。反应性或智能体对一般外部事件的反应能力,特别是人类玩家的行为,也是至关重要的。但是,尽管切换结构尚未成为机器人研究的重点领域,但随着机器人在单个任务方面能力的加强,对模块化和反应性切换结构的需求也将不断增加。
本书将指导你从简单主题(如语义和设计原则)到复杂主题(如学习和任务规划)学习BT的主旨。我们为每个主题都提供了一组示例,从简单的插图到实际的复杂行为,使读者能够成功地将理论和实践相结合。
目标读者
本书的目标读者非常广泛,包括对机器人、游戏角色或其他人工智能体建模复杂行为感兴趣的学生和专业人士。读者可以根据自己的需求和背景选择想要学习的深度和速度。
网络资源
本书附带的网址(http://btirai.github.io/)包含了示例的源代码,以及带有图形用户界面的BT库,读者可以使用它们来创建自己的BT,并在游戏或机器人设置中测试BT。
机器人和虚拟智能体设计中的任务切换问题非常类似。然而,与机器人领域相比,游戏开发者更为关注这些问题。原因之一是,设计单个任务(如抓取、定位和映射)仅是机器人领域中的研究主题,而在虚拟世界中却是微不足道的。游戏角色不需要担心现实世界的物理学和力学,可以自由地直接访问自身和某些世界坐标中其他对象的位置,或者将目标位置设置为与其手相同的位置。因此,BT是在游戏开发社区中创造出来的,而机器人研究人员正忙于使机器人能够执行单独的任务,这并非巧合。
与其他任务切换结构相比,模块化和反应性是BT的两个关键特性,在游戏开发中也非常重要。电脑游戏是一个大型软件开发项目例子,模块化在软件开发中的重要性是众所周知的。反应性或智能体对一般外部事件的反应能力,特别是人类玩家的行为,也是至关重要的。但是,尽管切换结构尚未成为机器人研究的重点领域,但随着机器人在单个任务方面能力的加强,对模块化和反应性切换结构的需求也将不断增加。
本书将指导你从简单主题(如语义和设计原则)到复杂主题(如学习和任务规划)学习BT的主旨。我们为每个主题都提供了一组示例,从简单的插图到实际的复杂行为,使读者能够成功地将理论和实践相结合。
目标读者
本书的目标读者非常广泛,包括对机器人、游戏角色或其他人工智能体建模复杂行为感兴趣的学生和专业人士。读者可以根据自己的需求和背景选择想要学习的深度和速度。
网络资源
本书附带的网址(http://btirai.github.io/)包含了示例的源代码,以及带有图形用户界面的BT库,读者可以使用它们来创建自己的BT,并在游戏或机器人设置中测试BT。
评论
还没有评论。