对抗搜索

算法的思想:

  以下象棋为例,MAX和MIN两人对弈,在某时刻MAX开始走步,可以通过构建一个N层的宽度优先搜索书表示MAX预测了N步的所有棋盘状态。在第N层MAX通过评估函数可以对自己目前的形式进行估计,然后递推回当前的状态可以得到一个对自己最有利棋盘状态,如图,在每一层递推双方都会从子节点选择最有利于自己的那一步:

 

算法实现:

1、构建一个N层广度优先搜索树

2、自底向上求倒退值,直至求出初始节点的倒推函数值,再根据相应的值进行走步

 

由于极大极小搜索博弈树很大,这样会导致效率低下,需要进行剪枝,即生成搜索树与剪枝同时进行。

α-β剪枝,MAX节点的值α为其子节点中的最大值并且在剪枝的过程中永不减少,MIN节点β为子节点的最小值在剪枝的过程中永不增加,具体算法举个例子说明:

posted @ 2021-04-09 14:33  啦隆哆  阅读(68)  评论(0)    收藏  举报