第二周 搜索求解(课时2:对抗搜索)

363 阅读3分钟

一、对抗搜索概念

  • 基础概念:对抗搜索(Adversarial Search)也称为博弈搜索(Game Search)。
  • 智能体:智能体(Intelligent Agent)是人工智能领域中的一个基本概念,它指的是一个能够感知其环境并采取行动以实现某种目标的系统。智能体可以是一个软件程序、机器人或者任何能够自主操作的设备。
  • 对抗:前提是对抗的环境下,智能体通过竞争实现相反的利益,一方利益最大化,另一方利益最小化,后面会详细说明(比如一方MAX和另一方MIN)

image.png

二、对抗搜索的主要方法

  • 最小最大搜索(Minimax Search)
  • Alpha-Beta剪枝搜索(Pruning Search)
  • 蒙特卡洛树搜索(Monte-Carlo Tree Search)

三、最小最大搜索(Minimax Search)

零和博弈:属于博弈论的一个基本概念,属于非合作博弈,一方的收益必然导致另一方的损失,博弈双方的收益损失相加永远为0,即是一个此消彼长的过程。
双赢博弈:利己且不损人的博弈方式,通过谈判合作达到双方共赢的局面。

image.png

优点:基于博弈的前提下,双方竭尽全力对抗,可以尽可能的收获最佳结果,同时实现简单。
缺点:以下围棋为例,就是一个典型的黑子白子博弈场景,棋面变化莫测,一共361!种落子,所以游戏搜索树极大,非常耗时。=>使用Alpha-Beta剪枝搜索(Pruning Search)可以进行改进

四、Alpha-Beta剪枝搜索(Pruning Search)

  • 概念:在最小最大搜索(Minimax Search)中减少所搜索的搜索树节点数。该算法和最小最大搜索算法所得结论相同,但剪去了不影响最终结果的搜索分枝。
  • Alpha值(𝛼):MAX节点目前得到的最高收益
  • Beta值(𝛽):MIN节点目前可给对手的最小收益 image.png

image.png
上图为原图,对下图的剪枝过程进行详细分析

①可以看到第一个分支里最小值为3,所以MAX会努力获得最大的值,那么MAX后续一定不会获得比3小的值,所以此时𝛼=3,同时MIN下的三个值里最小的也是3,其实这句是废话,因为目前的α和β肯定是一样的,MIN能给的最小的就是MAX此时能有的最大的
②此时到了MIN到了中间的分支,处理2时候,这里的β≤2,所以后面的4和6都需要直接剪枝,原因其实也很简单,因为在第一个分支时MAX已经可以从和MIN的博弈中得到3,所以第二个分支已经出现了比3还小的2,那么后续的已经不需要考虑了,如果小于2肯定不取,大于2也会被MIN忽略
③此时到了最右边的分支,可以看出当处理14时,暂时判断β≤14
④到达5时,更新β≤5
⑤最后一个2时确定了β=2,所以没有剪枝操作
image.png


五、剪枝原则

image.png

image.png

图中只给出了表格里的第一种情况,现在分析第二种情况,之前是MAX在前,然后MIN在后的,如果如下图所示,那么就会出现第二种情况,具体可以根据<四>中的例子改编一下进行分析。

graph TD
MIN --> MAX