5 博弈树的启发式搜索
下棋、打牌、战争等一类竞争性智能活动称为博弈
(1)二人零和、全信息、非偶然博弈
对垒的A,B双方轮流采取行动,博弈的结果只有三种情况:A方胜,B方胜,双方战成平局
在对垒过程中,任何一方都了解当前的格局及过去的历史
双方都是很理智地决定自己的行动,不存在“碰运气”偶然因素
(2)博弈过程
博弈的初始格局是初始节点
在博弈树中,“或”节点和“与”节点是逐层交替出现的,自己一方扩展的节点之间是“或”关系对方扩展的节点之间是“与”关系,双方轮流地扩展节点
所有能使自己一方获胜的终局都是本原问题,相应的节点是可解节点;所有使对方获胜的终局都是不可解节点
(3)极大极小分析法
设博奕双方中一方为A,另一方为B,极大极小分析法是为其中一方(A)寻找一个最优行动方案的方法
考虑每一方案实施后对方可能采取的所有行动,计算可能的得分
定义一个估价函数,用来估计当前博弈树端节点的得分,得分称为静态估值,由端节点估值计算父节点得分—倒推值
“或”节点:选其子节点中最大的得分作为父节点的得分,立足最好
“与”节点:选其子节点中最小的得分作为父节点的得分,立足最坏

点击看大图

 

例 一棋类游戏,九个空格,由A,B两人对弈,每次放一个棋子,谁先使自己的棋构成三个子成一线,谁赢。
设 A的棋子为a,B的棋子为b,每次扩展二层,棋局为p,估价函数为e(p)
关于e(P)有 若p是A胜e(P)=+无穷
若P是B胜e(P)=-无穷
若P胜负未定e(P)=e(+P)-e(-P)
e(+P):棋局P上有可能使a成为三子成一线的数目
e(-P):棋局P上有可能使b成为三子成一线的数目
具有对称性的两个棋局称一个棋局

点击看大图

 
6 剪枝技术
(1)剪枝原因
因为博弈树生成的工作量大,鉴于博弈树具有“与”节点,“或”节点逐层交替出现的特点,若能边生成节点边计算估值及倒推值,则可删除一些不必要的节点。减少搜索计算的工作量。

从s3和s4得s1倒推值为3
从s5知s2的倒推值最大为2
因为s0是或节点,则s0的倒推值为3
虽然s6没估值,但不影响对上层节点的倒推计算,则该分支可从博弈树中剪去。

 

点击图片看大图

对“与”节点来说,取当前子节点中的最小倒推作为它倒推值的上界,称此值为?值。
对于“或”节点来说,取当前子节点中的最大倒推作为它倒推值的下界,称此值为?值。
(2) a-b剪枝技术的一般规律
任何“或”节点x的a值,如果不能降低其父节点的b值,则对节点x以下的分支可停止搜索,并使x得到推值为a,这种剪枝为b剪枝
任何“与”节点x的b值,如果不能升高其父节点的a值,则对节点x以下的分支可停止搜索,并使x的倒推值为b,这种剪枝称为a剪枝
对于一个或节点,如果估值最高的节点最先生成,或者对于一个与节点,估值最低的子节点最先生成,则被剪的节点数最多,搜索的效率最高,称为最优a-b剪枝法。

点击图片看大图