




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章TreeSearchingStrategies,问题的定义输入:n个布尔变量x1,x2,.,xn关于x1,x2,.,xn的k个析取布尔式输出:是否存在一个x1,x2,.,xn的一种赋值使得所有k个布尔析取式皆为真,布尔表达式可满足性问题,把问题表示为树通过不断地为赋值集合分类来建立树(以三个变量(x1,x2,x3)为例),x1=T,x1=F,x2=T,x2=F,x2=T,x2=F,x3=T,x3=T,x3=T,x3=T,x3=F,x3=F,x3=F,x3=F,求解问题设有布尔式:-x1,x1,x2x5,x3,-x2,x1=T,x1=F,问题的定义输入:具有8个编号小方块的魔方,8-Puzzle问题,输出:移动系列,经过这些移动,魔方达如下状态,转换为树搜索问题,Hamiltonian环问题,问题定义输入:具有n个节点的连通图G=(V,E)输出:G中是否具有Hamiltonian环,沿着G的n条边经过每个节点一次,并回到起始节点的环称为G的一个Hamiltonian环.,1,2,7,4,5,3,6,无Hamiltonian环图:,有Hamiltonian环图:,转换为树搜索问题,1,3,4,5,7,5,6,7,3,2,6,5,2,4,7,4,5,7,4,7,3,7,6,5,3,2,6,2,6,1,1,1,2,3,4,5,4,4,5,3,3,5,7.2BasicTreeSearchingStrategies,Breadth-FirstSearchDepth-FirstSearch,算法1.构造由根组成的队列Q;2.IfQ的第一个元素x是目标节点Then停止;3.从Q中删除x,把x的所有子节点加入Q的末尾;4.IfQ空Then失败Elsegoto2.,Breadth-FirstSearch,例:求解8-Puzzle问题,Depth-FirstSearch,算法1.构造一个由根构成的单元素栈S;2.IfTop(S)是目标节点Then停止;3.Pop(S),把Top(S)的所有子节点压入栈顶;4.IfS空Then失败Elsegoto2.,例1.求解子集合和问题输入:S=7,5,1,2,10输出:是否存在SS,使得Sum(S)=9,0,7,8,12,9,10,18,7,5,1,2,2,10,例2.求解Hamiltonian环问题,1,4,5,2,2,3,5,6,5,3,3,2,2,4,4,4,5,3,6,3,5,6,6,1,7.3OptimalTreeSearchingStrategies,HillClimbingBest-FirstSearchStrategyBranch-and-BoundStrategy,基本思想在深度优先搜索过程中,我们经常遇到多个节点可以扩展的情况,首先扩展哪个?爬山策略使用贪心方法确定搜索的方向,是优化的深度优先搜索策略爬山策略使用启发式测度来排序节点扩展的顺序,HillClimbing,用8-Puzzle问题来说明爬山策略的思想启发式测度函数:f(n)=W(n),W(n)是节点n中处于错误位置的方块数.例如,如果节点n如下,则f(n)=3,因为方块1、2、8处于错误位置.,3,3,4,4,2,4,1,0,2,f(n)值,HillClimbing算法1.构造由根组成的单元素栈S;2.IfTop(S)是目标节点Then停止;3.Pop(S);4.S的子节点按照其启发测度由大到小的顺序压入S;5.IfS空Then失败Elsegoto2.,基本思想结合深度优先和广度优先的优点根据一个评价函数,在目前产生的所有节点中选择具有最小评价函数值的节点进行扩展.具有全局优化观念,而爬山策略仅具有局部优化观念.,Best-FirstSearchSttrategy,BesT-FirstSearch算法1.使用评价函数构造一个堆H,首先构造由根组成的单元素堆;2.IfH的根r是目标节点Then停止;3.从H中删除r,把r的子节点插入H;4.IfH空Then失败Elsegoto2.8-Puzzle问题实例,3,4,4,3,2,4,1,0,2,3,4,基本思想上述方法很难用于求解优化问题分支界限策略可以有效地求解组合优化问题发现优化解的一个界限缩小解空间,提高求解的效率举例说明分支界限策略的原理,Branch-and-BoundStrategy,多阶段图搜索问题输入:多阶段图,输出:从v0到v3的最短路径,1,3,2,5,3,4,3,2,7,4,4,1,1,1,1,v0,v12,v11,v13,v22,v21,v23,v21,v23,v22,v3,v3,v3,v3,v3,v3,问题的树表示,1,3,2,5,3,4,3,2,7,1,1,v0,v12,v11,v22,v21,v23,v21,v23,v22,v3,v3,可能解上界=5,=65,=75,=65,=95,v13,解,使用爬山策略进行分支界限搜索,分支界限策略的原理产生分支的机制(使用前面的任意一种策略)产生一个界限(可以通过发现可能解)进行分支界限搜索,即剪除不可能产生优化解的分支.,7.4PersonnelAssignmentProblem,问题的定义转换为树搜索问题求解问题的分支界限搜索算法,输入人的集合P=P1,P2,Pn,P1P2126停止扩展,优化解代价的上界,i1,im,j1,jn,X,注意如果i1-i2-im和j1-j2-jm已被包含在一个正在构造的路径中,(im,j1)被加入,则必须避免jn到i1的路径被加入.否则出现环.,7.6TheA*Algorithm,A*算法的基本思想A*算法的规则应用A*算法求解最短路径问题,A*算法的基本思想,A*算法与分支界限策略的比较分支界限策略是为了剪掉不能达到优化解的分支分支界限策略的关键是“界限”A*算法的核心是告诉我们在某些情况下,我们得到的解一定是优化解,于是算法可以停止A*算法试图尽早地发现优化解A*算法经常使用Best-first策略求解优化问题,A*算法关键代价函数对于任意节点ng(n)从树根到n的代价h*(n)从n到目标节点的优化路径的代价f*(n)g(n)+h*(n)是节点n的代价Whatisthevalueofh*(n)?不知道!于是,f*(n)也不知道估计h*(n)使用任何方法去估计h*(n),用h(n)表示h*(n)的估计h(n)h*(n)总为真f(n)=g(n)+h(n)g(n)+h*(n)=f*(n)定义为n的代价,输出:发现一个从S到T的最短路径,例1.最短路径问题:输入:,g(V1)=2,g(V2)=3,g(V3)=4h*(V1)=5,f*(V1)=g(V1)+h*(V1)=7,估计h*(n)从V1出发有两种可能:代价为2,代价为3,最小者为2h*(V1)2,选择h(n)=2为h*(V1)的估计值f(V1)=g(v1)+h(V1)=4为V1的代价,求解树的第一阶段,A*算法本质已经发现的解是优化解定理1.使用Best-first策略搜索树,如果A*选择的节点是目标节点,则该节点表示的解是优化解.证明.令n是任意扩展到的节点,t是选中目标节点.往证f(t)=g(t)是优化解代价.(1).A*算法使用Best-first策略,f(t)f(n).(2).A*算法使用h(n)h*(n)估计规则,f(t)f(n)f*(n).(3).f*(n)中必有一个为优化解的代价,令其为f*(s).我们有f(t)f*(s).(4).t是目标节点h(t)=0,所以f(t)=g(t)+h(t)=g(t)f*(s).(5).f(t)=g(t)是一个可能解,g(t)f*(s),f(t)=g(t)=f*(s).,A*算法的规则,(1).使用Best-first策略搜索树;(2).节点n的代价函数为f(n)=g(n)+h(n),g(n)是从根到n的路径代价,h(n)是从n到某个目标节点的优化路径代价;(3).对于所有n,h(n)h*(n);(4).当选择到的节点是目标节点时,算法停止,返回一个优化解.,应用A*算法求解最短路径问题,问题的输入:,A*算法的执行全过程,Step1,g(V1)=2g(V3)=4g(V2)=3,h(V1)=min2,3=2h(V3)=min2=2h(V2)=min2,2=2,f(V1)=2+2=4f(V3)=4+2=6f(V2)=2+2=5,4,6,5,1,Step2.扩展V1,g(V4)=2+2=4g(V2)=2+3=5,h(V4)=min3,1=1h(V2)=min2,2=2,f(V4)=4+1=5f(V2)=5+2=7,S,V3,V2,2,4,3,4,6,5,V4,V2,V1,2,3,1,5,7,Step3.扩展V2,g(V4)=3+2=5g(V5)=3+2=5,h(V4)=min3,1=1h(V5)=min5=5,f(V4)=5+1=6f(V2)=5+5=10,S,V3,2,4,3,4,6,5,V4,V2,V1,2,3,1,5,7,V4,V5,2,2,V2,6,10,Step4.扩展V4,g(V5)=2+2+1=5g(T)=2+2+3=7,h(V5)=min5=5h(T)=0,f(V5)=5+5=10f(V2)=7+0=7,S,V3,2,4,3,4,6,5,V2,V1,2,3,1,5,7,V4,V5,2,2,V2,6,10,V5,T,1,3,V4,7,10,Step5.扩展V3,g(V5)=4+2=6,h(V5)=min5=5,f(V5)=6+5=11,S,V3,2,4,3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论