http://blog.csdn.net/lanphaday/article/details/6026315算法
简单的minimax算法遍历了全部的状态空间,耗时确定很长,谁都知道排列组合阶乘 之类的 数值巨大无比的。.net
如何减小遍历的 节点数目? 如何 保持必定的正确性呢?blog
首先能够分析minimax树自己的特色。get
X 下子9中可能搜索
1 2 3 4 5 6 7 。。。 9遍历
要获得 X最大胜率的分支, max(child), 须要一个一个计算每一个子分支, 例如 第一个分支 值是1方法
那么对于第二个分支来说 其返回的值须要 >= 1才有意义, 也就是说 那能够利用这个信息 将1传递給2分支,im
当O在进行下子分析的时候,其子分支 返回的值 若是 有小于 1的那么就不用再分析2分支了, 由于2分支的返回值 确定就小于1,而2分支失去和1分支的抗衡的能力。tar
一样对于O分支能够作相似的分析, 这样咱们就能够剪掉大量的分支。分支
固然还有控制树的深度的方法来限制搜索空间, 不过会牺牲一些准确性。