针对随机玩家的最佳 win/tie 百分比

optimal win/tie percentage against random player

我根据特定的硬编码自定义规则在 R 中制作了我自己的 Tic-Tac-Toe 版本。经过一些优化后,我现在无法改进游戏。我通过以下方式将机器人与随机玩家进行了基准测试:

  1. 机器人不能输掉一场比赛
  2. 机器人启动了所有模拟游戏的 50%
  3. 对手在轮到自己时随机选择任意空方格进行游戏

在 100,000 场比赛中进行基准测试时,我的机器人获胜率为 94.95%(这意味着有 5053 场平局)。在开始的游戏中将其分解为 99.49%,而在第二场比赛中则为 90.42%。

我相信开始游戏时我已经达到了最佳状态(赢得 192 场比赛中的 191 场)。但是,我不确定第二个的情况。问题是:鉴于上述三个条件,任何机器人可以达到的最佳效果是什么? A 发现了几篇论文表明,通过大量训练算法可以达到 80 多岁的胜率,很明显这很有效——只是不清楚是否可以改进。

Tic tac toe 是一款非常简单的游戏,它产生的可能游戏状态数量有限。因此,无需硬编码任何内容,您可以使用极小极大(或最好是负最大)算法来遍历所有可能的移动,直到游戏以 win/draw/loss 结束。这将确保您的机器人始终执行最佳动作并在出现这种情况时找到胜利。

您的问题很难在编码网站上回答。由于你的对手随机移动,我假设你需要向数学家询问赢得比赛的概率(尝试 here)。

但是,如果您的代码真正基于您指定的规则(并且您的机器人运行完美),那么您玩更多游戏所获得的结果将收敛到您问题的答案。

至此结束,我相信我在另一个论坛上得到了答案:

根据我在 OP 中给出的限制,机器人先手的最佳胜率为 192 场比赛中的 191 场或 99.479%,而对于随机玩家先手的最佳胜率为 945 场比赛中的 866 场或 91.640%。总的来说,这意味着最佳胜率应该是 115589/120960 或 95.5597%。