Openai健身房环境适合多智能体游戏

Mar*_*der 8 reinforcement-learning openai-gym

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

Jon*_*ton 21

是的,可以将 OpenAI 健身房环境用于多代理游戏。尽管在 OpenAI 健身房社区中没有用于多代理环境的标准化接口,但构建支持此功能的 OpenAI 健身房很容易。例如,在 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
Run Code Online (Sandbox Code Playgroud)

我们可以看到该step函数接受一个动作列表(每个代理一个)并返回一个观察列表、奖励列表、完成列表,同时向前推进环境。该接口代表马尔可夫博弈,其中所有智能体同时采取行动并各自观察自己的后续观察,奖励。

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