【问题标题】:Can negamax use an asymmetric evaluation function?negamax 可以使用非对称评估函数吗?
【发布时间】:2017-05-05 21:24:44
【问题描述】:

TLDR:我有一个用于实现 negamax 的不对称评估函数 - 这可以接受吗?还是我需要让它对称?

更长: 我正在编写一个游戏 AI(用于类似国际象棋的棋盘游戏“Hive”),它使用带有 alpha-beta 修剪和非对称评估函数的 minimax。

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

我的一切都“正常工作”了,AFAIK 准确地遵循了伪代码,但我的 AI 现在做出了一些与以前截然不同的动作,通常在 10-15 回合后结束的游戏现在需要 30+,而且我'我不相信人工智能实际上比以前玩得更好。我担心拥有不对称的评估函数意味着我对节点的评分与以前不同(因为 negamax 触发器)。

我不想更改为对称函数,除非我真的必须这样做 - 我一直在尝试通过实验(AI 与 AI 之战)生成一个最佳函数,并且已经投入了数百甚至数千小时的计算时间来生产强大的评估功能。

【问题讨论】:

    标签: chess minimax negamax


    【解决方案1】:

    Negamax 支持非对称评估函数,但它不会导致最佳游戏(假设您对对手一无所知)。

    我对 Hive 了解不够,但在计算机国际象棋中,一般来说,具有不对称评估函数是一个错误。象棋和Hive背后的原因应该是一样的。

    例如,采取起始位置(在国际象棋中)。白方下一步走,让我们假设你的评估函数给出的位置得分为+0.08。

    现在改变位置,让黑色先移动。一切都一样,只是白人和黑人的角色发生了变化。在假设 +0.08 是白色位置的最佳分数的情况下,为什么黑色的位置不能也被评估为 +0.08?

    同样的论点适用于任何职位。如果你把所有东西都颠倒过来,就没有充分的理由改变这个位置。

    这条规则只有一个例外。如果一个对手明显强于另一个,则存在不对称评估的论据。例如,采取这样一个完全绘制的位置:

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

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

    让我们假设您是 Magnus Carlsen,并且您的对手甚至不知道国际象棋规则。你更喜欢哪个职位?在这里,我认为不对称评估可能是有意义的(例如,评估类似于损失的可能平局)。卡尔森应该避免平局,而初学者应该更喜欢它。

    初学者即使在一个骑士的赔率下也能与世界冠军抗衡的机会几乎为零。另一方面,在平局中,技术优势并不重要,因为任何移动的顺序都不会导致输赢。

    在计算机国际象棋中,Rebel 在与人类对战时具有偏好战术位置的功能(请参阅ANTI GRANDMASTER PLAY)。还有一个常见的概念是“蔑视”,这是引擎对 remis 的评分。

    但请注意,在我的两个示例中,这都不是最佳玩法。 Magnus Carlsen 在与强(或未知)对手比赛时不会选择没有骑士的位置。此外,Rebel 不会对其他机器使用反人类策略,这些机器在战术战斗中也很出色。 (尽管根据职位不同,Rebel 10 did use ANTI GRANDMASTER PLAY against computers。)

    【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    相关资源
    最近更新 更多