1

我正在寻找一些指导来构建多代理虚拟示例。我一直在尝试阅读Rllib 文档,但我想我还没有理解如何创建自己的多代理环境的方法。

我想让几个代理从不同的随机初始位置 x 开始。控制每个代理的动力学应该由一个微分方程控制,例如:

导数(x) = x + agent_action + 噪声

目标是让智能体学习最终将导致所有智能体的 x 值收敛到一个值的动作。

我可以使用multi_agent_env.py中提供的代码存根来实现我自己的 MA 环境吗?

例如,我创建了自己的文件 MADummyEnv.py

from ray.rllib.utils.annotations import PublicAPI
from ray.rllib.env.multi_agent_env import MultiAgentEnv
from ray.rllib.utils.typing import MultiAgentDict, AgentID

class MADummyEnv(MultiAgentEnv):
    ray.init()
    env = MyMultiAgentEnv()
    obs = env.reset()
    print(obs)

    new_obs, rewards, dones, infos = env.step(actions={"agent1": np.random.choice(action_list)}

然后在 MADummyEnv 类中实现init 、step、reset 方法。这个对吗?

如果我有正确的想法或理想地提供一些自定义多代理环境的实现以供参考,也许有人可以为我指明大方向。

4

1 回答 1

1

在这里你可以找到你问的实现。

一些可能值得考虑的事情:

  • 您不能调用ray.initenv 文件。
  • 您在下面复制的代码class ...是如何使用 env 的示例,而不是您应该放入 env 中的代码。
于 2020-08-20T07:54:11.060 回答