我目前在对抗玩 Schieber Jass 游戏的随机机器人时遇到了麻烦。这是一个不完美的纸牌信息游戏。(瑞士著名https://www.schieber.ch/)
我使用的环境在 Github https://github.com/murthy10/pyschieber
为了简要了解 Schieber Jass,我将描述游戏的主要特点。Schieber Jass 由四名球员组成,组建两支球队。开始时每个玩家随机获得九张牌(共有 36 张牌)。现在有九轮,每个玩家每轮必须选择一张牌。根据游戏规则,“最高牌”获胜,球队获得积分。因此,目标是获得比你的对手球队更多的积分。
还有更多规则,但我认为您可以想象游戏应该如何大致工作。
现在我正在尝试在游戏中应用 DQN 方法。
我的尝试:
- 我让两个独立的强化玩家对抗两个随机玩家
- 我将输入状态设计为一个向量(一个热编码),每个玩家都有 36 个“位”,并为您在游戏中可以玩的每张牌重复此九次。
- 输出是每个可能的卡的 36 个“位”向量。
- 如果网络的贪心输出表明一个无效动作,我会采取允许动作中概率最高的动作
- 获胜奖励为+1,失败为-1,无效操作为-0.1,不会导致终止状态的操作为0
我的问题:
- 使用 LSTM 并减少输入状态会有所帮助吗?
- 如何处理无效动作?
- 你有什么好的改进想法吗?(如神经虚拟自我游戏或类似的东西)
- 或者这整个方法绝对是胡说八道?