本文使用三子棋问题简单描述Alpha-Beta剪枝的原理。顺序是:先描述三子棋问题,接着描述三子棋问题的极小极大算法,最后描述三子棋问题的Alpha-Beta剪枝算法。
对三子棋问题描述如下:
下棋的一方是计算机(记为“MAX",执棋子“X”),另一方是人(记为”MIN“,执棋子“O”);
机器先手,双方轮流在九宫格中落子;
先取得三子一线的一方胜,可以是横向、竖向、主对角线方向或次对角线方向;
要求设计一个算法,为计算机找到最佳的走法。
评分函数(静态估计函数):
为了选出最佳的走法,须要量化棋局对于我方的优势,以便对可能的走法产生的后续棋局进行分析比较。为此,定义一个对棋局p的评分函数 f(p):
若p对于任何一方都不是获胜的棋局,则
f(p) = (将p中所有空格都放上MAX的棋子后,MAX三子成线的总数)