如何将 Azul 游戏状态编码为 NN 输入

人工智能 神经网络 深度学习 游戏-ai 组合游戏
2021-10-23 01:50:55

向 NN 从业者提问。我想将 Azul 棋盘游戏状态编码为 NN 的输入,让我们暂时专注于 2 玩家变体。

图为 3 人 Azul

桌子上有 5 个圆形“工厂”(图片上有 7 个,忽略它)。每个可以保留 4 个 5 种颜色的瓷砖。棋盘的中心也可以容纳多达 15 个棋子。不同编码的优缺点是什么?以下是我的想法:

  1. 每个工厂都有五个整数计数器,一个用于每种瓷砖颜色。单个工厂的样本编码:[3,1,0,0,0]

  2. 每个工厂都有 20 个二进制标志,每种颜色四个。单个标志编码给定颜色的瓷砖的存在。单厂样本编码:[1,1,1,0, 1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]

  3. 每个工厂有 20 个二进制标志,每种颜色四个,但只能为给定颜色设置一个标志,并且升起标志的位置编码给定颜色的瓷砖数量。单厂样本编码:[0,0,1,0, 1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]

  4. 每个工厂都有 4 个枚举字段,每个字段有 6 个可能的值(5 种颜色 + 空)。单个工厂的样本编码:[red, red, red, blue][Empty,Empty,Empty,Empty]

(注意:编码模式也将覆盖棋盘的中心,最多 15 个图块,如前所述。当然玩家的棋盘也会被编码,但我不想问太宽泛的问题)

我想训练 NN 玩 Azul,这意味着它需要正确处理给定回合中使用的瓷砖数量(理论上最多 15 个,实践中 2-4 个),因为它还需要指示将所有这些放在哪里瓷砖到玩家板的位置。

根据您的经验,哪种编码最有前途?或者也许有一些我没有想到的更好的方法?还是说不出来或者没关系?

0个回答
没有发现任何回复~