草庐IT

java - 使用 MinMax 和 Alpha-Beta 修剪找到最佳着法

我正在为游戏开发AI,我想将MinMax算法与Alpha-Beta修剪结合使用。我对它的工作原理有一个粗略的了解,但我仍然无法从头开始编写代码,所以过去两天我一直在网上寻找某种伪代码。我的问题是,我在网上找到的每个伪代码似乎都是基于寻找最佳着法的值,而我需要返回最佳着法本身而不是数字。我当前的代码基于此伪代码(source)minimax(level,player,alpha,beta){//playermaybe"computer"or"opponent"if(gameover||level==0)returnscorechildren=allvalidmovesforthis"pl

c++ - 换位表会不会导致搜索不稳定

我正在编写一个国际象棋引擎,最近添加了一个换位表。在运行一些测试时,我发现虽然搜索仍然返回相同的最佳着法,但着法的值(value)(对最大化玩家的好处)波动了。这是换位表的正常行为吗?我记得读过一个转置表会导致搜索不稳定。这是什么意思?那么这是我的代码中的正常现象还是严重错误? 最佳答案 是的,换位表引入了搜索不稳定性。幸运的是,这种情况很少发生,换位表的优势远远超过了它的复杂性。1。转置表的作用是什么?在您的程序中添加换位表(TT)后,您应该注意到两个主要区别:改善着法顺序:从TT开始的着法通常是可能的最佳着法Earlycutof

python - Minimax 解释 "for dummies"

我对算法很陌生,我试图理解minimax,我阅读了很多文章,但我仍然不知道如何将它实现到python中的井字游戏中。你能试着用一些伪代码或一些python代码尽可能简单地向我解释它吗?我只需要了解它是如何工作的。我读了很多关于它的资料,我了解基本知识,但我仍然不明白它是如何还手的。如果可以,请不要给我链接教程和示例,例如(http://en.literateprograms.org/Tic_Tac_Toe_(Python)),我知道它们很好,但我只需要一个白痴解释。感谢您的宝贵时间:) 最佳答案 “minimax”的想法是,在两人游