产生式系统的搜索策略讲义课件18101.pptx
《产生式系统的搜索策略讲义课件18101.pptx》由会员分享,可在线阅读,更多相关《产生式系统的搜索策略讲义课件18101.pptx(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章产生式系统的搜索策略第三章产生式系统的搜索策略状态空间:由给定问题的所有可能的状态组状态空间:由给定问题的所有可能的状态组成的空间(相当于全集成的空间(相当于全集G)搜索空间:按某种策略在状态空间中选取的搜索空间:按某种策略在状态空间中选取的部分空间(部分空间(G的子集)的子集)解路径(解空间):求解问题的一条有效路解路径(解空间):求解问题的一条有效路径。径。搜索策略的基本思路:搜索空间必须包含解搜索策略的基本思路:搜索空间必须包含解路径,如果问题有解,且尽量缩小搜索空间。路径,如果问题有解,且尽量缩小搜索空间。搜索策略的评价准则:总体费用最低搜索策略的评价准则:总体费用最低3/30/
2、20231费用的划分:费用的划分:a 规则应用的费用:执行规则时所花的费规则应用的费用:执行规则时所花的费用用 b 控制费用:选择规则所花的费用。控制费用:选择规则所花的费用。3/30/20232第三章目录第三章目录3.1回溯策略回溯策略3.2 图搜索策略图搜索策略3.3 启发式图搜索策略启发式图搜索策略 1)A算法算法 2)爬山算法)爬山算法 3)分支界限算法)分支界限算法 4)动态规划算法)动态规划算法 5)A*算法算法3/30/20233 6)h函数与函数与A*的关系的关系 7)关于单调性限制)关于单调性限制 8)A*算法示例算法示例3/30/202343.1回溯算法回溯算法 3/30/
3、202353/30/20236例例 四皇后问题四皇后问题3/30/20237定义综合数据库:定义综合数据库:设:设:DATA=ij1=i,j=4,其中:其中:ij表示棋表示棋子所在行列子所在行列 如:如:24表示第二行第四列有一表示第二行第四列有一枚棋子枚棋子因为棋盘上因为棋盘上 可放入的棋子数为可放入的棋子数为04个个所以集合中元素数位所以集合中元素数位0 4个,即个,即length(DATA)=0 43/30/202383/30/202393/30/2023103/30/2023113/30/2023123/30/2023133/30/2023143.2图搜索策略图搜索策略3/30/202
4、315图搜索策略图搜索策略图搜索的实质是从问题空间中找出一张包含目标节点的子图搜索的实质是从问题空间中找出一张包含目标节点的子图。图。图搜索的结果:图搜索的结果: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(succes
5、s)6mj expand(n),/mj不含不含n的先辈节点的先辈节点7 openadd(open,mj)/mj不在不在open,closed中中3/30/202316标记标记mj每个到每个到n节点指针节点指针确定是否需要修改已在确定是否需要修改已在open,closed中的每中的每个节点到个节点到n的指针的指针确定是否需要修改已在确定是否需要修改已在closed中的每个节点中的每个节点的后继节点原来的指针。的后继节点原来的指针。8按照某种方式排列按照某种方式排列open表中的节点,表中的节点,go loop3/30/2023173/30/2023183/30/202319深度优先算法深度优先算
6、法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,closed)6mj expand(n),/mj不含不含n的先辈节点的先辈节点7 openadd(open,mj)/mj不在不在open,closed中中标记标记mj每个到每个到n节点指针,按照节点深度递减顺节点指针,按照节点深度递减顺序排列序排列open中的节
7、点中的节点 8 go loop3/30/202320讨论讨论1:如果问题有解,有深度优先搜索算:如果问题有解,有深度优先搜索算法,是否能够找到解?法,是否能够找到解?不一定不一定.解空间是否有限?解空间是否有限?讨论讨论2:本算法的改进之处是:本算法的改进之处是open中节点按中节点按照深度优先排列,但是没有对深度加以控照深度优先排列,但是没有对深度加以控制,可能造成搜索代价太大制,可能造成搜索代价太大3/30/202321宽度优先算法宽度优先算法Procedrue breadth-First-Search1 G=G0(G0=s),open=(s),closed=()/s:初始状态初始状态2
8、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中中3/30/202322 标记每个到标记每个到n节点指针,按照节点深度节点指针,按照节点深度递增顺序排列递增顺序排列open中的节点中的节点 8 go loop 理论上可以利用宽度优先搜索能够找到解,理论上可以利用宽度优先搜索能够找到解,如果问题有解的话。
9、如果问题有解的话。讨论:宽度优先算法和深度优先算法可能讨论:宽度优先算法和深度优先算法可能出现组合爆炸。都没有利用任何启发式信出现组合爆炸。都没有利用任何启发式信息,所以称为无信息搜索策略。息,所以称为无信息搜索策略。3/30/202323:宽度优先例题:宽度优先例题:由一张桌子由一张桌子T、三个积木、三个积木A、B、C组成一组成一个积木世界,初始状态是个积木世界,初始状态是A在在B上,上,B在桌在桌子上,子上,C在桌子上;目标状态是:在桌子上;目标状态是:A、B、C依次从上到下排列在桌子上。如图依次从上到下排列在桌子上。如图3/30/202324解:解:1)状态描述)状态描述(P1,P2,P
10、3)表示按)表示按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 同一种状态出现不得多于一次。同一种状态出现不得多于一次。3/30/2023251)解题过程)解题过程 2)open表和表和closed表表3)节点样子画出整个图)节点样子画出整个图G 和
11、解路径和解路径4)程序何时结束)程序何时结束 5)改用深度优先如何?)改用深度优先如何?3/30/2023263.3启发式图搜索策略启发式图搜索策略基本概念基本概念启发式图搜索的实质是利用启发信息有目启发式图搜索的实质是利用启发信息有目的地进行搜索,减少搜索的盲目性。的地进行搜索,减少搜索的盲目性。降低搜索空间降低搜索空间 找到最佳解找到最佳解启发式信息用于解决启发式信息用于解决open表中节点的排列表中节点的排列次序问题,方法是利用一个评价函数计算次序问题,方法是利用一个评价函数计算open表中节点的评价函数值,按照函数值表中节点的评价函数值,按照函数值从小到大排列所有节点。从小到大排列所有
12、节点。3/30/202327 评价函数的目的:把最有希望得到最佳解评价函数的目的:把最有希望得到最佳解或者解的排列在前面。或者解的排列在前面。路径路径:给定节点序列(:给定节点序列(n0,n1,nk)。)。如果该序列中的任一节点如果该序列中的任一节点ni-1都有后继节点都有后继节点ni,则该节点序列为从,则该节点序列为从n0到到nk的一条路径,的一条路径,路径长度为路径长度为K路径耗散值:路径耗散值等于该路径上所路径耗散值:路径耗散值等于该路径上所有相邻节点间耗散值的总和。有相邻节点间耗散值的总和。3/30/202328设:路径山任两点间的耗散值为才设:路径山任两点间的耗散值为才C(ni,nj
13、),则从则从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)称为启发函数。称为启发函数。3/30/2023313.1.1A算法算法1 G=G0(G0=s),open=(s),closed=(),f(s)=g(s)+h(s)/s:初始状态初始状态2 Loop:if open=()th
14、en 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 到目标到目标节点的耗散值节点的耗散值)3/30/202332openadd(open,mj)标记标记mj到到n的指针的指针(mj不在不在open,closed中中)if f(n,mk)f(mk)then f(mk)f(n,mk)标记标记mk到到n的指针的指针(mk在在open中
15、中)if f(n,mL)f(mL)then f(mL)f(n,mL)标记标记mL到到n的指针的指针(mL在在closed中中)add(mL,open),把把mL放回到放回到open中中7 Open中的节点按中的节点按f值升序排列值升序排列 8 go loop3/30/2023333/30/202334例例 八数码问题八数码问题令:令: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个数码不在位。个数码不在位。3/30/2023
16、353/30/202336对于对于f(n)=g(n)+h(n),如果单独考虑如果单独考虑g(n)或者或者h(n),即,即,1)f(n)=g(n)只考虑搜索过的路径已经耗费只考虑搜索过的路径已经耗费的费用;的费用;/分支界限算法分支界限算法 2)f(n)=h(n)只考虑未来的发展趋势只考虑未来的发展趋势/爬山爬山算法算法那么可以得到两种特殊的算法:爬山算法和那么可以得到两种特殊的算法:爬山算法和分支界限算法。分支界限算法。3/30/2023373.3.2爬山算法爬山算法Procedure Hill _Climbing1 n=s2 Loop:if goal(n)then exit(success)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 产生 系统 搜索 策略 讲义 课件 18101
限制150内