(数字是与每个链接关联的“id”)
我创建了一个健身房环境。
我的观察空间是:整数类型的 Box(0,2, shape=(,144))。
有 144 个可能的链接
0 = 无链接
1 = 我们连接的链接
2 = 被对手连接的链接
我的动作空间是: Discrete(144) 我们选择了要连接的链接的编号。
一开始所有144个链接都可以连接随着游戏的进行,链接已连接,我们无法在已连接的链接上玩。
我的奖励是:
- +100 如果我们连接一个链接
- -1000 如果对手关闭一个盒子
- +1000 如果我们关闭一个盒子
- -10000 如果对手赢得比赛
- +10000 如果我们赢了比赛
- -100000000 如果我们采取不公平的行动
这是我用来训练代理的代码:
env = DotsAndBoxesEnv()
state = env.reset()
model = A2C('MlpPolicy', env, verbose=1, tensorboard_log=logPath)
model.learn(total_timesteps=1000000)
问题是代理在我训练时只使用非法动作。更准确地说,他一遍又一遍地玩同一个号码。
我怎样才能提高他的训练?