2017-04-11 63 views
1

对不起,图片直接从我的笔记。通过alpha beta修剪了解minimax

alpha

我一直在读了极小的树木和alpha数据修剪的最后一天,在我的项目准备了一下。这是c中的奥赛罗的实现。

我看过吨左右,它的资源,我知道它被问了很多。 在我开始评估功能之前,我想充分理解这一点。

在附图中,我无法弄清楚功能Min_Node(pos)Max_Node(pos)会做什么,任何输入将不胜感激。

如果任何人有我应该去寻找实现这个和奥赛罗对我的评价功能,当任何提示或东西,我愿意接受任何帮助,我能找到。

回答

0

我设法找出最大和最小的节点是,在这种情况下,Max_Node(pos)检查,看是否是这种球员,因为这应该是最大化和Min_Node(pos)检查它是否返回true它的对手,如果属实,那么它应该被最小化。

0

极小极大算法,这也被描述here,需要找到给定在游戏树中的当前位置的最佳值的移动。该位置由板配置和当前播放器组成(对于某些游戏,可以单独在板配置中确定)。通常递归地定义移动的值;在eding位置板(这是游戏树的叶子),该值是1如果球员一个都赢了,如果-1玩家两个HA赢了,0平局比赛。移动的价值取决于执行该移动并递归评估值。然后,选择最大(对于玩家一)或最小(对于玩家二)的移动;在递归评估中,该值是当前位置处子树根集的所有叶子的最大值(或最小值)。这显然是原始问题中提到的功能应该达到的。

α-β-修剪,如所描述here,是这种方法的一种改进。由于已知最佳值(它们是1-1),只要找到具有所需值的移动,就可以停止评估。

这种方法是独立于实际的游戏。不过,我建议第一步可以更简单地将游戏(如Tic-Tac-Toe)用作可能更易于调试的玩具示例。

+0

我知道minimax和alphadata是如何工作的。 我只是无法解释给我实现的伪代码。 – Monkleys