前言:继上上周和上周对TorchRL和BenchMARL的学习之后,基本了解相关库的实际操作;
本周开启MARL环境PettingZoo的学习,该环境库类似SARL下的Gym;
对于MARL,该库给了两种形式:AEC和Parallel;

AEC API
AEC是默认的形式,并且该库提供了两种转换的包装器Wrappers;

用法:

实例化;
reset;
Loop:
这里的区别就是需要last来获得输出,而parallel直接在step就实现了输出;
这是因为AEC本身就是串行的
动作掩码
动作掩码 (Action Mask) 的作用正是为了在回合制或复杂规则游戏中处理非法动作:
-
表示合法性: 动作掩码是一个布尔数组或向量,它标识了在当前状态下,哪些动作是有效的(合法的),哪些是无效的(非法的)。
-
限制采样空间: 通过将这个掩码作为参数传递给动作空间的
sample()方法,环境或策略可以确保随机采样(或策略选择)只会从 合法的动作集合 中进行。 -
最终结果: 这种机制保证了智能体不会选择非法动作,这是在国际象棋这类复杂规则环境中进行有效策略学习的必要条件。



这部分体现了pettingZoo的设计理念


就是引入了虚拟自然

Parallel API 并行 API

