27

是否可以将openai健身房环境用于多智能体游戏?具体来说,我想模拟一个有四个玩家(代理人)的纸牌游戏。得分一回合的玩家开始下一回合。我将如何模拟玩家之间的必要协调(例如下一个轮到谁)?最终,我想在四个相互对抗的代理上使用强化学习。

4

4 回答 4

24

是的,可以将 OpenAI 健身房环境用于多智能体游戏。尽管在 OpenAI gym 社区中没有针对多智能体环境的标准化接口,但构建一个支持这一点的 OpenAI gym 很容易。例如,在 OpenAI最近关于多智能体粒子环境的工作中,他们创建了一个多智能体环境gym.Env,该环境采用以下形式继承:

class MultiAgentEnv(gym.Env):

    def step(self, action_n):
        obs_n    = list()
        reward_n = list()
        done_n   = list()
        info_n   = {'n': []}
        # ...
        return obs_n, reward_n, done_n, info_n

我们可以看到,该step函数采用一系列操作(每个代理一个)并返回观察列表、奖励列表、完成列表,同时将环境向前推进。这个界面是马尔可夫博弈的代表,所有的智能体同时采取行动,每个人都观察自己的后续观察,奖励。

但是,这种马尔可夫博弈界面可能并不适合所有的多智能体环境。特别是,基于回合的游戏(例如纸牌游戏)可能更好地转换为交替马尔可夫游戏,其中代理一次轮流(即行动)一个。对于这种环境,您可能需要在状态表示中包含轮到哪个代理,然后您的 step 函数将只采取一个动作,并返回一个单一的观察、奖励和完成。

于 2019-08-02T15:41:40.353 回答
1

OpenAI 团队已经实现了一种多智能体深度确定性策略梯度 MADDPG 方法。

这是开始的回购。 https://github.com/openai/multiagent-particle-envs

于 2017-11-04T10:55:38.587 回答
0

这里有一个用于强化学习的特定多智能体环境。它支持以任何编程语言编写的任意数量的代理。一个示例游戏已经实现,它恰好是纸牌游戏。

于 2017-11-18T13:16:56.200 回答
0

您正在寻找的是PettingZoo,它是一组具有多代理设置的环境,并且它们具有特定的类/合成器来处理多代理环境。

这是一个有趣的库,因为您还可以将它与 ray / rllib 一起使用,以使用已经实现的算法,如 PPO / Q-learning。就像在这个例子中一样。

Rllib也有一个多代理环境的实现。但是您必须深入研究文档才能理解它。

于 2021-10-09T07:46:03.250 回答