1

给定每个棋盘状态,我的 AI 将返回 1 个确切的移动位置。

我还制作了一个函数,可以循环使用 AI 制作的所有可能的游戏

所以它是一个递归函数,让 AI 为给定的棋盘移动,然后让其他游戏做出所有可能的移动,并为每个可能的移动调用它自己的递归函数,并使用一个新的棋盘。

我这样做是为了当人工智能先行时,当另一个人先行时……然后将它们加在一起。我最终得到 418 次可能的胜利和 115 次可能的平局,以及 0 次可能的失败。

但现在我的问题是,我如何最大化获胜的数量?我需要将此统计数据与某些东西进行比较,但我无法弄清楚将其与什么进行比较。

4

1 回答 1

0

您可以将其视为具有未知最优解的优化问题。然后,您可以使用某种形式的元启发式算法(例如遗传算法PSO)对您的 AI 应用变体,直到找到最佳值。有趣的是,这些算法不一定会返回“最好的”,但获得比以前更好的东西仍然有用。

通常元启发式算法需要一个适应度函数,该函数基本上比较解决方案以找到最佳解决方案。在您的情况下,您可以使用胜率作为适应度函数。已经达到 418/115 的比率,您可以将其用作您的“基准”,以便比较未来的解决方案。

不幸的是,我知道我的提议可能过于牵强(您可能正在寻找更简单的东西),或者它可能过于笼统。

不幸的是,我不确定是否有任何统计数据可以用来查看它是否完美。我很快就有的一个想法是假设: - 一场完美的比赛只会导致胜利或平局。

您的递归算法已经返回了这个。现在的问题是,是否有可能增加获胜的数量?然后,您可以做出以下假设: - 如果两个玩家都打得很好,结果将永远是平局(猫的游戏)。

基于这个假设以及对前面假设的评估,这意味着如果你的 AI(我们称之为 Bob)是完美的,那么在 Bob vs Bob 的游戏中,结果一定是平局。

我意识到这仍然不能帮助您增加获胜次数(如果可能的话),但它提供了您可以使用的另一个指标 - 至少确保在 Bob vs Bob 游戏中,没有边缘情况是赢家(这意味着你的 AI 并不完美)。

于 2013-01-28T12:23:29.597 回答