negamax可以使用非对称评估函数吗?

时间:2017-05-05 21:24:45

标签: chess minimax negamax

TLDR:我对negamax的实现有一个非对称评估函数 - 这是可以接受的吗?或者我是否需要使其对称?

长: 我正在编写一款游戏AI(用于象棋棋盘游戏“Hive”),它使用minimax进行alpha-beta修剪和不对称评估功能。

但是我无法正确添加转置表,并且对我的minimax实现失去了信心,所以我决定在这里使用伪代码切换到negamax:https://en.wikipedia.org/wiki/Negamax#Negamax_with_alpha_beta_pruning_and_transposition_tables

我已经把所有东西都“正常”并且AFAIK准确地遵循了伪代码,但我的AI现在正在制作一些与以前完全不同的动作,通常在10-15轮后结束的游戏现在需要30+,而我我不相信AI实际上比以前更好玩。我担心具有非对称评估功能意味着我对节点的评分与以前不同(因为负片翻转)。

除非我真的需要,否则我不想改为对称函数 - 我一直试图通过实验产生最佳功能(AI与AI战斗)并且已经投入数百甚至数千计算小时来制作强大的评估功能。

1 个答案:

答案 0 :(得分:1)

Negamax支持非对称评估功能但不会导致最佳游戏(假设您对对手没有任何了解)。

我对Hive知之甚少,但在计算机象棋中,一般来说,它是一个具有非对称评估功能的错误。国际象棋和蜂巢的原因应该是相同的。

例如,采取起始位置(在国际象棋中)。接下来就是白色,让我们假设您的评估函数给位置得分+0.08。

现在改变位置,所以黑色首先移动。一切都是一样的,只有白色和黑色的角色已被改变。在假设下,+0.08是白色位置的最佳得分,为什么黑色的位置也不能被评估为+0.08?

任何立场都有同样的论点。如果你扭转了一切,没有充分的理由以不同的方式表达这个位置。

此规则只有一个例外。如果一个对手显然比另一个强,那么就存在不对称评估的争论。例如,采取这样一个完全绘制的位置:

enter image description here

FEN:4k3/8/8/p1p1p1p1/PpPpPpPp/1P1P1P1P/8/4K3 b - - 0 1

这个位置可以安全地评估为0.现在对起始位置进行成像,但白色在没有骑士的情况下开始。这应该是黑人的一个强大优势。

让我们假设你是马格努斯卡尔森,而你正在与那些甚至不了解国际象棋规则的对手进行比赛。你更喜欢哪个职位?在这里,我认为非对称评估可能是有意义的(例如,评估类似于损失的可能抽奖)。卡尔森应该避免被吸引的位置,而初学者应该更喜欢它。

即使在一个骑士的赔率下,初学者也有机会对抗世界冠军,几乎为零。另一方面,在绘制位置,技能优势无关紧要,因为任何动作顺序都不会导致输赢。

在计算机国际象棋中,反叛者在与人类对抗时有一种更喜欢战术位置的功能(见ANTI GRANDMASTER PLAY)。还有#34;蔑视"的常见概念,这是引擎为remis提供的分数。

但请注意,在我的两个例子中,这不是最佳游戏。当一个强壮(或未知)的对手出场时,马格努斯卡尔森不会选择没有骑士的位置。 Rebel也不会将反人类策略用于其他机器,这些机器在战术战中也表现出色。 (即使根据位置,反叛10 did use ANTI GRANDMASTER PLAY against computers。)