ray.rllib.algorithms.algorithm_config.AlgorithmConfig.get_多智能体设置#

AlgorithmConfig.get_multi_agent_setup(*, policies: Dict[str, PolicySpec] | None = None, env: Any | gymnasium.Env | None = None, spaces: Dict[str, Tuple[gymnasium.Space, gymnasium.Space]] | None = None, default_policy_class: Type[Policy] | None = None) Tuple[Dict[str, PolicySpec], Callable[[str, SampleBatch | MultiAgentBatch | Dict[str, Any]], bool]][源代码]#

self 中的信息编译完整的多代理配置(字典)。

推断观察和动作空间、策略类以及策略的配置。返回的 MultiAgentPolicyConfigDict 是完全统一的,并且严格地将策略ID映射到完整的 PolicySpec 对象(其所有字段均不为空)。

示例: .. testcode:

import gymnasium as gym
from ray.rllib.algorithms.ppo import PPOConfig
config = (
  PPOConfig()
  .environment("CartPole-v1")
  .framework("torch")
  .multi_agent(policies={"pol1", "pol2"}, policies_to_train=["pol1"])
)
policy_dict, is_policy_to_train = config.get_multi_agent_setup(
    env=gym.make("CartPole-v1"))
is_policy_to_train("pol1")
is_policy_to_train("pol2")
参数:
  • policies – 一个可选的多智能体 policies 字典,将策略ID映射到 PolicySpec 对象。如果未提供,将使用 self.policies 代替。请注意,这些 PolicySpec 中的 policy_classobservation_spaceaction_space 属性可能为 None,因此必须在此处推断。

  • env – 一个可选的环境实例,用于推断不同策略的不同空间。如果未提供,将尝试从 spaces 推断。否则从 self.observation_spaceself.action_space 推断。如果无法推断空间信息,将引发错误。

  • spaces – 可选的字典,将策略ID映射到元组,元组包含1) 观察空间和2) 动作空间,这些空间应分别用于各自的策略。这些空间通常由已经实例化的远程EnvRunner提供。请注意,如果提供了`env`参数,将首先尝试从`env`推断空间。

  • default_policy_class – 如果 PolicySpec 的 policy_class 属性设置为 None,则应使用的 Policy 类。

返回:

一个由1) 一个 MultiAgentPolicyConfigDict 和 2) 一个 is_policy_to_train(PolicyID, SampleBatchType) -> bool 可调用对象组成的元组。

抛出:
  • ValueError – 如果无法为策略推断出空格。

  • ValueError – 如果环境中两个代理映射到相同的 PolicyID(根据 self.policy_mapping_fn),但根据推断的空间信息具有不同的动作或观察空间。