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