这个例子展示了如何在Simulink®环境中设置多智能体培训课程。万博1manbetx在本例中,训练两个代理协作执行移动对象的任务。
本例中的环境是一个无摩擦的二维表面,包含用圆表示的元素。目标物体C用半径为2米的蓝色圆圈表示,机器人A(红色)和B(绿色)用半径为1米的小圆圈表示。机器人试图通过碰撞施加力,将物体C移动到半径为8米的圆环外。环境中的所有元素都有质量,并遵循牛顿运动定律。此外,单元与环境边界之间的接触力被建模为弹簧和质量阻尼系统。这些元素可以通过在X和Y方向施加外力在表面上移动。在第三维中没有运动系统的总能量是守恒的。
创建此示例所需的参数集。
打开Simulin万博1manbetxk模型。
对于这个环境:
在x和y方向上,二维空间在-12μm到12μm中界定。
接触弹簧的刚度值为100n /m,阻尼值为0.1 N/m/s。
agent共享相同的位置、A、B、C的速度和上一次时间步长的动作值。
当物体C在圆环外移动时,模拟终止。
在每步,代理商都会收到以下奖励:
这里:
和
分别为代理A和代理B所获得的奖励。
是两个代理接收的团队奖励,因为对象C移动更接近环的边界。
和
是agent A和agent B所收到的局部惩罚,基于它们与物体C的距离和距离最后一个时间步骤的动作大小。
物体c从环的中心的距离。
和
是代理A和对象C和代理B和对象C之间的距离。
和
是来自最后一次步骤的代理A和B的动作值。
此示例使用具有离散动作空间的近端策略优化(PPO)代理。要了解有关PPO代理商的更多信息,请参阅近端政策优化代理。代理商在导致运动的机器人上应用外力。每次步骤,代理都选择动作
,在那里
是以下是外部应用力的以下成对之一。
创建环境
要创建多代理环境,请使用字符串数组指定代理的块路径。此外,使用单元阵列指定观察和操作规范对象。单元格数组中规范对象的顺序必须与块路径阵列中指定的顺序匹配。当在环境创建时的Matlab工作空间中可用代理时,观察和操作规范阵列是可选的。有关创建多代理环境的更多信息,请参阅Rl万博1manbetxsimulinkenv.
。
为环境创建I/O规格。在本例中,代理是同构的,具有相同的I/O规范。
创建Simulink环万博1manbetx境接口。
为环境指定重置函数。重置功能重新汲取
确保机器人从每个集发作开始的随机初始位置开始。
创造代理人
PPO代理人依靠演员和批评者表示来学习最佳政策。在该示例中,代理能够为演员和评论家维持基于神经网络的函数近似器。
创建批评神经网络和表示。批评网络的输出是状态值函数
对于国家
。
actor网络的输出是概率
在某个状态下采取每个可能的行动对
。创建演员神经网络和表示。
创建代理商。两个代理商都使用相同的选项。
在培训期间,代理商收集经验,直到达到256个步骤或摘要的体验视界,然后从迷你批次的64个经验中培训。此示例使用0.125的客观函数剪辑因子,以提高培训稳定性和0.9995的折扣因子,以鼓励长期奖励。
培训代理商
指定以下培训代理人的培训选项。
要训练多个代理,请指定一个代理数组火车
功能。数组中的代理顺序必须匹配环境创建期间指定的代理块路径的顺序。这样做可确保代理对象链接到环境中的适当I / O接口。培训这些代理人可能需要几个小时才能完成,具体取决于可用的计算能力。
垫文件rlCollaborativeTaskAgents
包含一组预制代理。您可以加载文件并查看代理的性能。训练代理人,套装用圆形
到真的
。
下图显示了培训进度的快照。由于培训过程中的随机性,您可以期待不同的结果。
模拟代理
模拟环境中的训练有素的代理。
有关代理模拟的更多信息,请参阅RlsimulationOptions.
和SIM
。