第3章 通过搜索进行问题求解
一 问题求解:基于目标的Agent中的一种
1 解决这些问题有一些通用的搜索算法,无信息的(除了问题本身,没有任何其他信息),有信息的
(利用给定的知识引导,能够更有效的找到解)
2 为达到目标,寻找这样的行动序列的过程称为搜索,
搜索算法输入的是问题,输出的是解,解被找到,建议的行动会付出实施
3 良定义的问题和解
一个问题可以用5个组成部分形式描述
1.Agent的初始状态
2.描述Agent的可能的行动
3.对每个行动的描述
4.目标测试
5.路径耗散
4 问题形式化:我们考虑最直接的合理的模型,不去考虑更加琐碎的问题,对问题进行抽象
二 问题实例
1 吸尘器问题
状态 :由Agent位置和灰尘位置确定,世界状态有n*2的n次方,有n个位置,而且是有或没有灰尘
初始行动:任何状态都能被设计成初始状态
行动 :行动有3个:左、右、吸
转移模型:最左边不能再左,最右边不能再右
目标测试:检测所有位置是否干净
路径消耗:路径耗散值为1
2 Web站点和车载系统导航
状态 :地点(如机场)和当前时间
初始状态 :用户在咨询时确定
行动 :乘坐一航班任意舱位从现有地点起飞
转移模型 :飞行目的地当做当前地点和飞行抵达时间作为当前时间
目标测试 :是否到达了用户描述的目的地
路径耗散 :金钱、时间、舱位等级等等
三 通过搜索求解
1 一个解是一个行动,搜索算法考虑各种可能的行动序列n.STATE : 对应状态空间中的状态
n.PARENT : 搜索树种产生该结点的结点
n.ACTION : 父结点生成该结点时所采取的行动
n.PATH-COST: 从初始状态到结点的路径消耗
2 问题求解算法的性能
完备性:是否保证能找到解
最优性:是否能找到最优解
时间复杂度:找到解需要多少时间
空间复杂度:搜索中需要多少内存
四 无信息搜索策略
1 宽度优先搜索 :是一个简单的搜索方法,先搜根节点,然后搜所有后继,一直搜到最后
2 一致代价搜索 :每一步搜索都是最优的,先搜最浅的结点
3 深度优先搜索 :先搜最深的结点
4 深度受限搜索 :可以设置深度为I时就停止搜索,防止无限的深度搜索
5 迭代加深深度优先搜索:深度依次增加,当深度最浅时搜到的结点,就是目标结点
6 双向搜索 :从初始状态向前搜索,同时从另一个目标向后搜索,中间某结点相遇,停止搜索
其中有限的状态空间的深度优先搜索是完备的
五 有信息(启发式)搜索
1 贪婪最佳优先搜索:距离目标最近,最快找到解,f(n)=h(n)
2 A*搜索(缩小总评估代价):结合了到达此结点花费的代价 ,f(n)=g(n)+h(n)
3 存储受限的启发式搜索:RBFS和MA*
4 学习搜索:依靠学习算法
六 启发式函数
主要是从八数码问题,讨论启发函数