TLDR:我有一个用于实现 negamax 的不对称评估函数 - 这可以接受吗?还是我需要使它对称?
Longer:我正在编写一个游戏 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+,我不相信AI实际上比以前玩得更好。我担心具有不对称的评估函数意味着我对节点的评分与以前不同(因为 negamax 触发器)。
我不想更改为对称函数,除非我真的必须这样做——我一直在尝试通过实验(AI 与 AI 之战)生成一个最佳函数,并且已经投入了数百甚至数千小时的计算时间来生成强大的评估功能。