我制作了一个游戏(Connect-4),并使用了MinMax算法和Alpha-Beta剪枝来实现计算机AI。有什么好的方法可以测试我的Alpha-Beta是否正确?我不确定它的正确性,有时在与我的AI对战时,它不会进行使游戏时间更长的操作,即使它已经看到了更深层次的失败,而且当它开始搜索时,手动检查和单元测试很困难(只搜索7-9步)。如何解决这个问题?(如果Alpha-Beta剪枝掉了某些可以更难获胜但是不失败的东西,我知道这一点)
Alpha-beta剪枝只是基本MiniMax算法的优化(即排除敌方肯定不会走的路径),因此我会将alpha-beta算法的结果与简单的MiniMax算法进行比较。一旦它们产生分歧,你就会发现两种算法中的一个有错误。
这简化了问题,可以测试你的MiniMax算法是否正确,我想不出任何特殊的技巧 - 但由于它是一个递归函数,应该可以为所有情况编写单元测试。