可以将openai的gym environments用于多智能体游戏吗?具体来说,我想用四个玩家(代理)来制作纸牌游戏。玩家在下一回合得分。如何在玩家之间建立必要的协调模型(例如,轮到谁了?)?最终,我想对四个互相对抗的特工使用强化学习。
最佳答案
是的,可以将OpenAI体育馆环境用于多主体游戏。尽管在OpenAI体育馆社区there is no standardized interface中用于多代理环境,但是很容易构建支持此功能的OpenAI体育馆。例如,在OpenAI的多主体粒子环境中的recent work中,they make a multi-agent environment继承自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
函数采用一系列操作(每个代理一个),并返回观察列表,奖励列表,完成列表,同时逐步推进环境。此接口(interface)代表Markov Game,在该接口(interface)中,所有代理都同时采取行动,每个代理都观察到自己随后的观察和奖励。但是,这种Markov Game界面可能并不适合所有多代理环境。特别是,基于回合的游戏(例如纸牌游戏)可能更适合作为交替的马尔可夫游戏,在该游戏中,坐席一次轮流(即 Action )一次。对于这种环境,您可能需要在状态表示中包括轮到该代理,然后您的Step函数将仅执行单个操作,并返回单个观察,奖励和完成。
关于reinforcement-learning - Openai体育馆的多人游戏环境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44369938/