目录
3.1博弈的类型
博弈的不同类型
零和游戏:双方得分之和为零或为其它固定常数。
经典的非零和游戏:囚徒困境
PPT有误,一人坦白,一人沉默获刑要最多
零和游戏:只需记录一个玩家的得分
3.2对抗搜索
以吃豆人为例
单智能体搜索树
节点包括终结节点和中间节点,终结节点的效用可以直接计算,中间节点的效用值由状态效用值反映(取最大值)。
状态的效用值
对抗搜索树:一人一层
小黄人的得分可以作为公用的效用
极小极大值:定义中间节点得分的方法
井字棋
对抗博弈:确定性的零和游戏。
伪代码
中控函数:判定节点状态,选择对应函数
极小极大值算法的示例
3.3估值函数
极小极大值算法效率
类似于深度优先算法(穷举)
基于评估函数的截断搜索算法
叶子节点的值可以直接计算,但有可能搜不到叶子节点,因此对于中间节点可以设计估值函数,设定最大搜索深度,采用截断搜索。
如何确定迭代深度?先搜一层,两层,三层……根据实际情况选择迭代深度。
评估函数设计有多种方法
- 手工设计特征,并线性组合。
- 对开局和收盘的情形进行列表,加速搜索速度
- 基于机器学习的效用值评估,深度学习时代可以将棋谱特征的选择交给机器。
设计估值函数需要注意的地方->评估函数的性质
同样是效率和准确度的平衡
3.4剪枝算法
针对MIN节点的剪枝
针对MAX节点的剪枝
Alpha-Beta剪枝
注意MAX、MIN节点的作用
伪代码
- α代表在这条路径中,最大值节点的最佳选择;
- β代表在这条路径中,最小值节点的最佳选择。
对抗搜索伪代码
算法执行过程示例(13:05)
Alpha-Beta剪枝性质:
- 不影响根节点的值,影响中间节点的值
- 遍历孩子节点的顺序也会影响执行效率:对节点的排序会带来额外计算量,同样是平衡问题
3.5期望对抗搜索
针对完美玩家极大极小值是最佳选择,但是对手可能并不完美。
考虑最差情况:极大极小值
对于平均情况,可以通过概率对不确定性进行控制。
一些概率基础知识的回顾
期望最大搜索
随机性产生原因大体可以分为三种类型
- MAX节点:认为自己是理性的;
- 随机节点:对手具有不确定性。
伪代码:
中控函数辨别节点类型:MAX节点类似于极大极小值算法
- 期望最大搜索算法不能剪枝:计算期望时,需要获得所有孩子节点的效用值
- 期望最大搜素算法同样可以采用截断搜索。
如何建模-->采用何种概率分布?
3.6其他搜索类型
混合角色类型<----根据游戏不同
多人游戏效用值
3.7期望效用
最大期望效用原则
效用值->反映智能体的倾向性
对于简单情况,反射性机器人可以适用;复杂情况,反射性机器人不适用
倾向性建模---->可以用抽奖的形式描述
倾向性需要是理性的,要满足一定的约束
理性公理
如果存在一个倾向性的排序满足上述5个原则,则会存在一个效用值评估函数满足条件
致谢
原视频地址:人工智能导论(全集)_哔哩哔哩_bilibili