最小-最大搜索树的表示

我想请教一下大家关于这个问题。我查看了最小-最大理论,但仍然不知道如何将这个概念应用到下面的问题中。

下面的树表示了一种竞技游戏中的可能移动,显示玩家X目前可以选择A移动或B移动。玩家X移动后,玩家Y可以选择一个移动,然后玩家X可以选择游戏的最后一个移动。树的叶节点标记为W、L或T,分别表示该结局对玩家X来说是赢、输或平局。

使用最小-最大搜索来确定玩家X应该选择A还是B,以获得X可以预期的最佳结果。

enter image description here

要复习最小-最大搜索,请参阅http://www.nada.kth.se/kurser/kth/2D1350/progp02/lecture2.pdf

玩家X应该选择A。

玩家X应该选择B。


回答:

我为节点添加了编号,并高亮了“最大”行。未高亮的行是“最小”行(即,玩家希望最小化结果)。显然,L是最低值,W是最高值。我们通常将赢分配为1,输分配为-1,平局分配为0。玩家Y希望将数字尽可能降低(如果玩家X得到L,他们就赢了)。玩家X希望将数字尽可能提高(他想要一个W)。

enter image description here

如果游戏进行到节点4,无论如何玩家X都会赢。因此,4被标记为W(或1)。如果游戏进行到节点5,他会输,所以标记为L。6也是如此(标记为W)。

要分配给节点2,我们注意到2在“最小”行上(轮到玩家Y)。4、5、6分别有W、L、W。玩家Y可以通过选择节点5来最小化这个结果,因此赢了。因此,玩家X知道如果玩家Y足够聪明,选择A他就会输。

我们可以对另一侧做同样的事情,以显示如果玩家X选择B,他将平局。因此,玩家X应该选择B。

当编写最小-最大算法的代码时,代码执行后序树遍历,并通过查看后代为节点分配值。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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