版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章产生式系统的搜索策略状态空间:由给定问题的所有可能的状态组成的空间(相当于全集G)搜索空间:按某种策略在状态空间中选取的部分空间(G的子集)解路径(解空间):求解问题的一条有效路径。搜索策略的基本思路:搜索空间必须包含解路径,如果问题有解,且尽量缩小搜索空间。搜索策略的评价准则:总体费用最低7/25/20221费用的划分: a 规则应用的费用:执行规则时所花的费用 b 控制费用:选择规则所花的费用。7/25/20222第三章目录3.1回溯策略3.2 图搜索策略3.3 启发式图搜索策略 1)A算法 2)爬山算法 3)分支界限算法 4)动态规划算法 5)A*算法7/25/20223 6)h函
2、数与A*的关系 7)关于单调性限制 8)A*算法示例7/25/202243.1回溯算法 7/25/202257/25/20226例 四皇后问题7/25/20227定义综合数据库:设:DATA=ij1=i,j=4,其中:ij表示棋子所在行列 如:24表示第二行第四列有一枚棋子因为棋盘上 可放入的棋子数为04个所以集合中元素数位0 4个,即length(DATA)=0 47/25/202287/25/202297/25/2022107/25/2022117/25/2022127/25/2022137/25/2022143.2图搜索策略7/25/202215图搜索策略图搜索的实质是从问题空间中找出一
3、张包含目标节点的子图。图搜索的结果:1,一个完整的搜索图G。2一个解路径,用指针表示的解路径。Procedure GraphSearch1 G=G0(G0=s),open=(s) /s:初始状态2 closed=() 3Loop:if open=() then exit(fall)4 nfirst(open) remove(n,open), add(n,closed)5 if goal(n) then exit(success)6mj expand(n), /mj不含n的先辈节点7 openadd(open,mj) / mj不在open,closed中7/25/202216标记mj每个到n节点
4、指针确定是否需要修改已在open,closed中的每个节点到n的指针确定是否需要修改已在closed中的每个节点的后继节点原来的指针。8按照某种方式排列open表中的节点,go loop7/25/2022177/25/2022187/25/202219深度优先算法Procedrue depth-First-Search1 G=G0(G0=s),open=(s),closed=() /s:初始状态2 Loop:if open=() then exit(fall)3 nfirst(open)4 if goal(n) then exit(success)5remove(n,open), add(n,
5、closed)6mj expand(n), /mj不含n的先辈节点7 openadd(open,mj) / mj不在open,closed中标记mj每个到n节点指针,按照节点深度递减顺序排列open中的节点 8 go loop7/25/202220讨论1:如果问题有解,有深度优先搜索算法,是否能够找到解?不一定.解空间是否有限?讨论2:本算法的改进之处是open中节点按照深度优先排列,但是没有对深度加以控制,可能造成搜索代价太大7/25/202221宽度优先算法Procedrue breadth-First-Search1 G=G0(G0=s),open=(s),closed=() /s:初始
6、状态2 Loop:if open=() then exit(fall)3 nfirst(open)4 if goal(n) then exit(success)5remove(n,open), add(n,closed)6mj expand(n), /mj不含n的先辈节点7 openadd(open,mj) / mj不在open,closed中7/25/202222 标记每个到n节点指针,按照节点深度递增顺序排列open中的节点 8 go loop 理论上可以利用宽度优先搜索能够找到解,如果问题有解的话。讨论:宽度优先算法和深度优先算法可能出现组合爆炸。都没有利用任何启发式信息,所以称为无信息
7、搜索策略。7/25/202223:宽度优先例题: 由一张桌子T、三个积木A、B、C组成一个积木世界,初始状态是A在B上,B在桌子上,C在桌子上;目标状态是:A、B、C依次从上到下排列在桌子上。如图7/25/202224解:1)状态描述(P1,P2,P3)表示按A、B、C顺序依次分别在P1,P2,P3上其中Pi是积木或者桌子。初始状态时(B、T、T),目标状态 可以表示(B、C、T)2)定义操作:move(x,y)表示将积木x移到Y上 ;约束条件:a X顶部必须是空的 b 如果Y是积木,Y的顶部必须是空的 c 同一种状态出现不得多于一次。7/25/2022251)解题过程 2)open表和clo
8、sed表3)节点样子画出整个图G 和解路径4)程序何时结束 5)改用深度优先如何?7/25/2022263.3启发式图搜索策略基本概念启发式图搜索的实质是利用启发信息有目的地进行搜索,减少搜索的盲目性。 降低搜索空间 找到最佳解启发式信息用于解决open表中节点的排列次序问题,方法是利用一个评价函数计算open表中节点的评价函数值,按照函数值从小到大排列所有节点。7/25/202227 评价函数的目的:把最有希望得到最佳解或者解的排列在前面。路径 :给定节点序列(n0,n1,nk)。如果该序列中的任一节点ni-1都有后继节点ni,则该节点序列为从n0到nk的一条路径,路径长度为K路径耗散值:路
9、径耗散值等于该路径上所有相邻节点间耗散值的总和。7/25/202228设:路径山任两点间的耗散值为才C(ni,nj),则从ni到nk的路径耗散值为C(ni,nj)=C(ni,nj)+C(nj,nk)最佳路径耗散值:最佳路径上的实际耗散值,记为:K(ni,nj).K(ni,nj)=g*(n) 2)当h=0且g(n) =d(n) 时,f(n)=d(n)既宽度优先策略,d(n):节点深度。 3)h(n)称为启发函数。7/25/2022313.1.1A算法1 G=G0(G0=s),open=(s),closed=() ,f(s)=g(s)+ h(s) /s:初始状态2 Loop:if open=()
10、then exit(fall)3 nfirst(open)h()4 if goal(n) then exit(success)5remove(n,open), add(n,closed)6mj expand(n), /mj不含n的先辈节点 计算f(n,mi)=g(n,mi)+h(mi),(自s经过n,mi 到目标节点的耗散值)7/25/202232openadd(open,mj) 标记mj到n的指针 (mj不在open,closed中) if f(n, mk)f(mk) then f(mk) f(n, mk)标记mk到n的指针(mk在open中)if f(n, mL)f(mL) then f(
11、mL) f(n, mL)标记mL到n的指针(mL在closed中) add(mL,open),把mL放回到open中7 Open中的节点按f值升序排列 8 go loop7/25/2022337/25/202234例 八数码问题令:g(n)=d(n) 节点深度 h(n)=w(n) 不在位的数码个数(启发函数)则 f(n)=d(n)+w(n)如初始节点s的f值f(0)=d(0)+w(0)=0+4=4有4个数码不在位。7/25/2022357/25/202236对于f(n)=g(n)+h(n),如果单独考虑g(n)或者h(n),即, 1) f(n)=g(n) 只考虑搜索过的路径已经耗费的费用;/分
12、支界限算法 2)f(n)=h(n) 只考虑未来的发展趋势/爬山算法那么可以得到两种特殊的算法:爬山算法和分支界限算法。7/25/2022373.3.2爬山算法Procedure Hill _Climbing1 n=s2 Loop: if goal(n) then exit(success)3mi expangd(n),计算每个h(mi) nextn h(mi)最小值的节点4 if h(n)h(nextn) then exit(fail)5 n nextn6go loop 优点,缺点7/25/2022383.3.3分支界限算法f(n)=g(n)Procedure Branch_Bound1 qu
13、eue(s-s),g(s)=0 /queue中保存的是从s出发的路径。2 Loop:ifqueue=0 then exit(fail)3 pathFIRST(queue),n LAST(pATH) /取第一条路径,及该路径的最后节点n4 if goal(n) then exit(success)5 mj expand(n), 计算g(mj)= g(n,mj) remove(s-n,queue),add(s-mj,queue) /删除原来的路径,添加长度加一的路径。7/25/2022396 queue队列中分支按g值升序排列7 GO LOOP例 下图右八城市,城市间的耗散值已经给出,利用分支界限
14、算法给出从S到t的最佳路径。7/25/2022407/25/2022413.3.4动态规划算法Procedure dynamic_Programming1 queue(s-s),g(s)=0 /queue中保存的是从s出发的路径。2 Loop:ifqueue=0 then exit(fail)3 pathFIRST(queue),n LAST(pATH) /取第一条路径,及该路径的最后节点n4 if goal(n) then exit(success)5 mj expand(n), 计算g(mj)= g(n,mj) remove(s-n,queue),add(s-mj,queue)7/25/2
15、02242 /删除原来的路径,添加长度加一的路径。6 仅保留queue中到达某一公共节点路径中耗散值最小的路径,余者删除;queue队列中分支按g值升序排列7 GO LOOP7/25/2022437/25/202244讨论 a 动态规划与分支界限差别在于去掉公共路径的冗余部分,提高效率。 b 如果问题空间是树结构,动态规划与分支界限相同。因为对于树结构不存在到达同一节点有多重路径的情况。C动态规划 改进的代价。比如上例中,增加一个城市。7/25/202245A算法总结1 初始状态,open=(s)2 正常情况下(非成功非失败),取open中的第一个节点n,将n由open 转移到closed。3
16、 扩充节点n ,将新节点加入到open中4修改某些节点的路径5 open中节点按照升序排列值得重视的一点:A算法失败的唯一原因是open表为空7/25/202246思考题:图中:s是起始点 t是目标节点;如果存在从s到t的一条最佳路径。而n是最佳路径上的一点。1)f*(s) f*(n) f*(t) 的关系2)如果f*(s)=10 ,g*(n)=4 问h*(n)=?7/25/2022473.3.5 A*算法(最佳图搜索算法)A*算法定义: 对于算法A,如果有h(n) h*(n),即h(n)以h*(n)为上界,则称 该算法称为A*算法。如果令h(n)=0,则满足h(n) h*(n) 这就是分支界限
17、算法 和动态规划算法。再令g(n)=d(n) (d(n)是节点深度)则f(n)=d(n);A*算法就是宽度优先算法。宽度优先算法能找到最佳解。 例:第二章中八数码问题 令h(n)=w(n)=不在位数字个数。7/25/202248算法可采纳性:给定任意图,设存在从开始节点s到目标节点t的路径。如果算法能够结束在s到t的最佳路径上,则称该算法是可采纳的。A*是具有可采纳性。定理1 对于有限图,如果从s到t存在路径,则A算法一定成功结束。7/25/202249推论1.1 因为A*算法是A算法的一个特例。所以在有限图上如果如果从s到t存在路径,则A*算法一定成功结束。定理2 对于无限图,如果存在s到t
18、路径,则A*算法一定成功结束。7/25/202250推论2.1 open表中任一满足f(n) f*(s)的节点n最终都将被A*选作扩展节点。定理3 如果存在节点s到目标节点t路径,则A*算法一定能找到最佳解结束。推论3.1 A*选来扩展的节点都有f(n) f*(s)7/25/202251小结 1如果存在节点s到目标节点t路径,则A*算法一定能找到最佳解结束。 2 open表中所有满足f(n) f*(s)的节点n最终都将被A*选作扩展节点。 3 A*选来扩展的节点都有f(n) f*(s) 4 f*(s)作为A*的一个衡量上限。7/25/2022523.3.6h函数和A*算法的关系本节重点来讨论h
19、函数(即启发信息量)对A*算法搜索效率的影响总结。 定义:给定两个A*算法A1 和A2,都有 f(n1)=g(n1)+h(n1) f(n2)=g(n2)+h(n2) 如果对于所有非目标节点n,有h(n1) h(n2) 则算法A2 比算法A1有较多启发信息。 讨论:启发信息与h函数值成正比。极端情况下,完全没有启发信息时h=0,则此时A*算法就是宽度优先算法。7/25/202253定理: 给定两个A*算法A1 和A2 如果A2的启发式信息比A1多,则在任何存在节点s到目标节点t的路径上,搜索结束时,由A2扩展的每一个节点必定被A1扩展。(A1扩展的节点多) 注意搜索空间小,不代表能够找到最佳解。
20、7/25/202254当h=0时,除最下面一层节点外,所有节点都进入closed表。求解路径如图红线所示。当考虑到h时,被扩充的节点只有s、c、 j,解路径相同7/25/2022553.37 h函数单调性限制单调性限制的作用是:避免重复计算某些节点的f值(主要对连通图而言)以便减少搜索代价。单调性定义:给定一个启发函数h,如果对于所有节点ni和nj (nj是ni的子节点),如果满足 h(ni)-h(nj) c(ni,nj) h(t)=0,则称h满足单调性限制。 上式可以写成h(ni)- h(nj)+ c(ni,nj)可以理解为三角不等式。 7/25/202256定理5 如果好h(n)满足单调性限制条件,则A*算法扩展了节点n之后,就找到了到达节点n的最佳路径, 即:如果A*选中节点n,在单调性限制条件下,有g(n)=g*(n)7/25/2022573.38A*算法示例迷宫问题给定迷宫图如下,找出从入口到出口的最短路径。7/25/202258解 1)综合数据库 定义 状态集:(x,y)1x,y4 其中(x,y)表示任意节点的坐标 所以问题表示为求解从(1,1)到(4,4)的最短路径。2规则集(定义4条移动规则) 右移R1: if(x,y)then (x+1,y) 左移R2: if(x,y)then (x-1,y)7/25/202259上移
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光伏投资合同范例
- 海鲜货采购合同范例
- 饲料采购意向合同范例
- 生产改造合同范例
- 咨询入厂服务合同范例
- 职业俱乐部选手合同范例
- 购房临时合同范例
- 商场包租商铺合同范例
- 货架装车送货合同范例
- 对虾虾苗采购合同范例
- 红色颁奖典礼公司年会员工表彰大会模板
- 统编版语文三年级上册2024-2025学年第三单元测试题 (含答案)
- 2024甘肃省安全员C证考试题库
- 2024-2025学年上学期广州初中地理七年级期末模拟卷1
- 八年级地理期末模拟卷(考试版A4)【测试范围:晋教版八上全册】
- 期末综合试卷(含答案)2024-2025学年苏教版数学四年级上册
- 统编版语文2024-2025学年六年级上册语文期末专题训练:字音字形(有答案)
- 趣味知识问答100道
- 2024广西公需课高质量共建“一带一路”谱写人类命运共同体新篇章答案
- 2024年连云港专业技术人员继续教育《饮食、运动和健康的关系》92分(试卷)
- 人教版数学小学二年级上册无纸笔测试题
评论
0/150
提交评论