蒙特卡洛树搜索 - “最有前途”的移动功能

时间:2018-02-16 11:00:30

标签: tic-tac-toe montecarlo game-theory monte-carlo-tree-search

我试图实现tic-tac-toe hello-world MCTS游戏玩家,但我遇到了一个问题。

在模拟游戏并选择“最有前途”(漏洞利用/探索)节点时,我只考虑总胜利数(“漏洞利用”部分) - 这会导致某些问题,所得算法根本不具防御性。因此在选择时

  • 移动导致(100次抽签; 10次失败)
  • 移动导致(1胜; 109输)

选择更糟糕的一个(1; 109)因为我的uct函数贪婪计算avg wins而不是“value”。

我是否正确地认识到了这个问题?我应该从“avg wins”切换到考虑所有结果类型的其他价值指标吗?

欢迎任何建议,谢谢

1 个答案:

答案 0 :(得分:3)

由于井字游戏是一种零和游戏(一个玩家的状态值总是等于对手的否定值),你的得分函数也应该反映这一点。

这意味着,在计算平均分数时,您应该使用以下值:

    每次胜利
  • +1
  • 每次抽奖
  • 0
  • 每次损失
  • -1

在您的示例中,这将导致以下平均分数:

  • 移动导致(100次抽签; 10次失败):平均得分= -10/110 = -0.0909...
  • 移动导致(1胜; 109输):平均。得分= -108/110 = -0.98181...

因此,第一个选项将被视为更好的选择