为什么井字游戏的极小化极大算法结果总是平局?

我从这里找到了下面的文字,说明像井字游戏和国际象棋这样的游戏使用极小化极大算法的结果总是平局。我也看到了用于无敌井字游戏的极小化极大算法。但我不太理解为什么极小化极大算法会导致平局。是因为没有保证赢或输的走法,因此对双方来说最好的选择是平局吗?

运行没有任何增强的极小化极大算法的计算机会发现,如果它和对手都以最佳方式进行游戏,无论从哪里开始,游戏都会以平局结束,因此它无法判断哪个开局是最“好的”。即使是在更有趣的输赢游戏如国际象棋中,即使计算机能够模拟所有可能的游戏情况(这是一个完全不可能完成的任务),仅凭这些信息仍然会得出结论,最好的结果只能是平局(如果双方对每一步的所有可能结果都有绝对完美的了解,这确实是真的)。


回答:

你链接的网站上的信息略有错误。

我们通过对游戏的暴力探索知道,如果双方都以完美的方式进行游戏,井字游戏总是会以平局结束。也就是说,如果双方都按照最佳策略进行游戏,那么游戏将以平局结束。有一个精彩的xkcd图表详细说明了如何完美地进行游戏。

如果你对整个游戏进行极小化极大搜索直到结束,并不一定是极小化极大算法不知道选择哪个选项。相反,极小化极大算法会选择任何导致强制平局的走法,因为它总是选择对玩家来说最佳结果的走法。它是“无敌”的,意思是完美的极小化极大玩家永远不会输,如果你用次优策略与之对抗,它可能会找到强制赢的走法并击败你。

至于国际象棋 – 截至目前(2021年12月),没有人知道在完美游戏中国际象棋是否会以平局结束,或者其中一方是否有强制赢的走法。我们根本无法深入探索游戏树。例如,完全有可能白方有强制赢的走法,在这种情况下,给予足够的时间和资源作为白方进行极小化极大搜索将总是能战胜你。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注