极小极大分析法的原理:
Max局面:假设这个局面轮到己方走,有多种决策可以选择,其中每种决策都会形成一种子局面(Sub-State)。由于决策权在我们手中,当然是选择估价函数值f最大的子局面,因此该局面的估价函数值等于其子局面f的最大值,把这样的局面称为Max局面。
Min局面:假设这个局面轮到对方走,它也有多种决策可以选择,其中每种决策都形成一种子局面(Sub-State)。但由于决策权在对方手中,在最坏的情况下,对方当然是选择估价函数值f最小的子局面,因此该局面的估价函数值等于其子局面f值的最小值,把这样的局面称为Min局面。
终结局面:胜负已分(假设没有和局)
假如有如上图的博弈树,设先手为A,后手为B ;则A 为Max局面,B 为Min局面。上图中A 一开始有2种走法(〖 W〗_(2 )和〖 W〗_(3 ),W 表示节点记号),它走〖 W〗_(2 )还是〖 W〗_(3 )取决于〖 W〗_(2 )和〖 W〗_(3 )的估价函数值f(W_x ),因为A 是Max局面,所以它会取f(W_2 )和f(W_3 )中大的那个。而f(x)怎么求呢?一般是以递归的方式对博弈树进行搜索,我们通常可以设定叶子结点局面的估价值。
如上图的搜索过程为〖 W〗_(1 )〖 W〗_(2 )〖 W〗_(4 ),然后回溯到〖 W〗_(1 )〖 W〗_(2 )得到f(W_2 )=3,接着〖 W〗_(1 )〖 W〗_(2 )〖 W〗_(5 )得到f^′ (W_2 )=1,因为〖 W〗_(2 )在第二层为Min局面,所以它会选择得到的结果中小的那个,即f^′ (W_2 )替代f(W_2 ),即f(W_2 )=1。随后搜索〖 W〗_(1 )〖 W〗_(2 )〖 W〗_(6 )得到f^′ (W_2 )=6>f(W_2 )可直接忽略。因此如果A往〖 W〗_(2 )走的话将会得到一个估价值为f(W_2 )=1的局面;如果往〖 W〗_(3 )走的话将会得到一个估价值为f(W_3 )=-3的局面。而因为A是Max局面会选择估价值大的走法,而f(W_2 )=1>f(W_3 )=-3,因此它下一步走〖 W〗_(2 )。
但是,实际问题中的所有局面所产生的博弈树一般都是非常庞大,非常庞大的多叉树,并不能依靠暴力搜索来寻找最佳解法。因此需要用到一些剪枝手段,常用的比较初级的有a-b剪枝技术。