人工智能 一般搜索原理---启发式搜索

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f*(n)=g*(n)+h*(n)
从起始节点到节点n 的最佳路径代价 从节点n到目标节点 的最佳路径代价
f是f*的一个估价,既: f(n)=g(n)+h(n) g是g*的估价, h是h*的估价,称为启发函数.
第七讲一般搜索原理—启发式搜索
3.A*算法 在A算法中是依据f(x)=g(x)+h(x)进行重排 OPEN OPEN表的. . 如果对所有的x存在h(X)<=h*(x),则称h(x) 为h*(x)的下界,采用h*(x)的下界h(x)为启发函 数的A算法称为A*算法.h=0时,A*算法就变为有 序搜索.
人工智能及其应用
第七讲一般搜索原理—启发式搜索
启发式搜索
通过检测来决定合理的搜索顺序的有信息搜索.称这种信 息为启发信息.启发信息有三种用途: 1.用于决定扩展下一个节点; 2.在扩展一个节点的过程中,用于决定要生成哪几个后继节 点; 3.用于决定某些应该从搜索树中抛弃或修剪的节点. 采用第一种启发信息的搜索称为有序搜索,即:选择最有 “希望”的节点作为下一个被扩展的节点.
第七讲一般搜索原理—启发式搜索
4.总结 有序算法是利用启发信息,估价函数决定扩展下一 个最有希望的节点; A算法是有序算法的一种特殊形式,估价函数f由 g和h两项组成; A*算法是A算法的一种特殊形式,其中h(x)<= h*(x).
第七讲一般搜索原理—启发式搜索
5.A*算法例子----八数码难题 估价函数:f(n)=d(n)+w(n) g(n) h(n) 结果与有序搜索一样 估价函数: f(n)=d(n)+p(n) 其中: d(n)为节点n的深度,节点s的深度d(s)=0; p(n)为节点n与目标G比较,每一个棋子走到正 确位置步数之和.
第七讲一般搜索原理—启发式搜索
4 6 5 6
83 214 7 65 283 164 7 5 283 1 4 7 65 283 164 7 5
4
283 1 4 7 65 2 3 184 765 23 184 765 123 84 765
6
283 164 75 283 14 765
5 5 5
6
23 184 765
第七讲一般搜索原理—启发式搜索
令:K(i,j): 为节点I和节点j之间最小代价路径的实 际代价. K(n ,ti):为从节点n到某目标ti,某一条最小代价 路径上的代价. h*(n): 为K(n,ti)中最小的一个,既从n到目标节 点最小代价路径的代价. g*(n)=K(s,n)
第七讲一般搜索原理—启发式搜索
开始 把s放入OPEN中,计算f(s) OPEN=NIL? N Y
失败
选取OPEN表中f最小的节点i 放入CLOSED表中
i=G? N
Y
成功
扩展i得后继节点j,计算f(j),提供返回I 的指针,利用f(I)对OPEN表进行重排 调整亲子关系和指针
第七讲一般搜索原理—启发式搜索
3.例子八数码难题 估价函数: f(n)=d(n)+w(n) 其中: d(n)为节点n的深度,节点s的深度d(s)=0; w(n)为节点n与目标G比较,错放的棋子数目.
7
7
G
7
第七讲一般搜索原理—启发式搜索
一.有序搜索 1.估价函数(evaluation function) 用来估算节点希望程度的量度. 设:f表示估价函数,f(n)表示估价函数值. Nilsson:估价函数f是这样决定的,一个节点的希 望程度越大,其估价函数值就越小.
第七讲一般搜索原理—启发式搜索
2.算法流程图
来自百度文库
7
283 714 65
7
5
123 8 4 765
有序搜索树
123 784 65
7
第七讲一般搜索原理—启发式搜索
2.A算法 定义估价函数f使得在任意节点上其函数值 f(n)能估算出节点s到节点n的最小代价路径的代 价与从节点n到某一目标节点的最小代价路径的 代价之和. 称具有此估价函数的有序算法为A算法.
第七讲一般搜索原理—启发式搜索
搜索结果:
7
283 164 7 5
5 5
283 164 7 5 283 1 4 7 65 2 3 184 765 23 184 765 123 84 765 123 784 65 23 184 765
7
283 164 75 283 14 765
5 5 5 5
123 8 4 765
相关文档
最新文档