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_class
、observation_space
和action_space
属性可能为 None,因此必须在此处推断。env – 一个可选的环境实例,用于推断不同策略的不同空间。如果未提供,将尝试从
spaces
推断。否则从self.observation_space
和self.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
),但根据推断的空间信息具有不同的动作或观察空间。