版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 回溯法 学习要点学习要点 理解回溯法的深度优先搜索策略 掌握用回溯法解题的算法框架 (1)递归回溯最优子结构性质 (2)迭代回溯贪心选择性质 (3)子集树算法框架 (4)排列树算法框架通过应用范例学习回溯法的设计策略。(1)装载问题;(2)批处理作业调度;(3)符号三角形问题(4)n后问题;(5)0-1背包问题; (6)最大团问题;(7)图的m着色问题(8)旅行售货员问题(9)圆排列问题(10)电路板排列问题(11)连续邮资问题用计算机求解问题用计算机求解问题问题空间问题空间现实求解过程现实求解过程实际解实际解状态空间状态空间对象的定义对象的定义机器求解过程算法与程序的设计算法与程序的
2、设计机内解机内解计算机求解的过程计算机求解的过程 在状态空间寻找机内解在状态空间寻找机内解, , 可以看成是从初始状态出发可以看成是从初始状态出发, ,搜索目标状态搜索目标状态( (解所在的状态解所在的状态) )的过程的过程。状态空间状态空间初始状态初始状态目标状态目标状态搜索搜索n搜索的过程可描述为:搜索的过程可描述为:S0S1Sn,其中,其中S0为初态,为初态,Sn为终态。或者说为终态。或者说(S0)且且(Sn),这,这里里称为初始条件,称为初始条件,称为终止条件。称为终止条件。6求解是状态空间的搜索求解是状态空间的搜索 求解的过程可以描述为对状态空间的搜索求解的过程可以描述为对状态空间的
3、搜索S0S11S12S1k Sn1SniSnm其中其中S0为初始状为初始状态,不妨设态,不妨设Sni为为终止状态终止状态S0Snin问题求解就是通过搜索,寻找出一条从初始状问题求解就是通过搜索,寻找出一条从初始状态态S0到终止状态到终止状态Sni的路径。的路径。7几种搜索方法几种搜索方法状态空间的搜索实际上是一种树状态空间的搜索实际上是一种树/DAG(Directed Acyclic Graph )的搜索,常用的方法有:)的搜索,常用的方法有:n广度优先搜索广度优先搜索n深度优先搜索深度优先搜索n启发式搜索启发式搜索从初始状态开始,逐层地进行搜索。从初始状态开始,逐层地进行搜索。从初始状态开始
4、,逐个分枝地进行搜索。从初始状态开始,逐个分枝地进行搜索。从初始状态开始,每次选择最有可能达到终从初始状态开始,每次选择最有可能达到终止状态的结点进行搜索。止状态的结点进行搜索。8三种搜索的优劣之处三种搜索的优劣之处 一般来说,三种搜索方法各有优劣之处:一般来说,三种搜索方法各有优劣之处: 广度优先搜索和深度优先搜索广度优先搜索和深度优先搜索优点优点:一定能一定能找到解找到解;缺点:缺点:时间复杂性大时间复杂性大。 启发式搜索启发式搜索优点优点:一般来说能较快地找到解,一般来说能较快地找到解,即其时间复杂性小即其时间复杂性小;缺点:缺点:需要设计一个评需要设计一个评价函数,并且评价函数的优劣决
5、定了启发式价函数,并且评价函数的优劣决定了启发式搜索的优劣搜索的优劣。 当需要找出问题的解集,或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。 回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种方法适用于解一些组合数相当大的问题。 在问题的解空间树中,回溯法按深度优先策略,从根结点出发搜索解空间树。 算法搜索至解空间树的任意一点时,先判断该结点是算法搜索至解空间树的任意一点时,先判断该结点是否包含问题的解否包含问题的解。 如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。回溯法5
6、.1 回溯法的算法框架5.1.1 问题的解空间 应用回溯法解问题时,首先应明确定义问题的解空间。问题的解空间应至少包含问题的一个(最优)解。通常将解空间组织成树或图的形式。 问题的解向量:回溯法希望一个问题的解,能够表示成一个n元式(x1,x2,xn)的形式。 显约束:对分量xi的取值限定 隐约束:为满足问题的解,而对不同分量之间施加的约束。 解空间:对于问题的一个实例,解向量满足显式约束条件的所有多元组,构成了该实例的一个解空间。 例如,对于有n种可选物品的0-1背包问题,其解空间由长度为n的0-1向量组成。n=3时的0-1背包问题用完全二叉树表示的解空间5.1.2 回溯法的基本思想 扩展结
7、点:一个正在产生儿子的结点 活结点:一个自身已生成但其儿子还没有全部生成的节点 死结点:一个所有儿子已经产生的结点 深度优先的问题状态生成法:如果对一个扩展结点R,一旦产生了它的一个儿子C,就把C当做新的扩展结点。在完成对子树C(以C为根的子树)的穷尽搜索之后,将R重新变成扩展结点,继续生成R的下一个儿子(如果存在) 宽度优先的问题状态生成法:在一个扩展结点变成死结点在一个扩展结点变成死结点之前,它一直是扩展结点之前,它一直是扩展结点。 回溯法:为了避免生成那些不可能产生最佳解的问题状态,要不断地利用限界函数(bounding function)来处死那些实际上不可能产生所需解的活结点,以减少
8、问题的计算量。具有限界函数的深度优先生成法称为回溯法。 基本思想: 确定了解空间的组织结构后,回溯法就从开始结点(根结点)出发,以深度优先的方式搜索整个解空间。 开始结点就成为一个活结点,同时也成为当前的扩展结点。 在当前扩展结点,搜索向纵深方向移至一个新结点。这个新结点就成为一个新的活结点,并成为当前扩展结点。 如果在当前的扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。 此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点。 回溯法即以这种工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已没有活结点时为止。 示例1 0-1背包问题 n=3,
9、C=30, w=16, 15, 15, v=45, 25, 25开始时,Cr=C=30,V=0,A为唯一活结点,也是当前扩展结点扩展A,先到达B结点Cr=Cr-w1=14,V=V+v1=45此时A、B为活结点,B成为当前扩展结点扩展B,先到达DCrw2,D导致一个不可行解,回溯到B再扩展B到达EE可行,此时A、B、E是活结点,E成为新的扩展结点扩展E,先到达JCr45,皆得到一个可行解x=(0,1,1),V=50L不可扩展,成为死结点,返回到F再扩展F到达MM是叶结点,且2550,不是最优解M不可扩展,成为死结点,返回到FF没有可扩展结点,成为死结点,返回到C再扩展C到达GCr=30,V=0,
10、活结点为A、C、G,G为当前扩展结点扩展G,先到达N,N是叶结点,且2550,不是最优解,又N不可扩展,返回到G再扩展G到达O,O是叶结点,且050,不是最优解,又O不可扩展,返回到GG没有可扩展结点,成为死结点,返回到CC没有可扩展结点,成为死结点,返回到AA没有可扩展结点,成为死结点,算法结束,最优解X=(0,1,1),最优值V=50ACr=C=30,V=0Bw1=16,v1=45Cr=14,V=45C Cr=30,V=0DCrw2不可行解JCr45x=(0,1,1)Fw2=15,v2=25Cr=15,V=25M25n) output(x);/ tn时已搜索到一个叶结点, output(x
11、)对得到 的可行解x进行记录或输出处理. else for (int i=f(n,t);i0) if (f(n,t)=g(n,t) for (int i=f(n,t);in) output(x); else for (int i=0;in) output(x); else for (int i=t;i n) / 到达叶结点 更新最优解bestx, bestw; return;/bestw记录当前已找到的最大装载量 r -= wi; if (cw + wi bestw) xi = 0; / 搜索右子树 backtrack(i + 1); r += wi; 5.3 批处理作业调度n给定n个作业集合
12、J1,J2,Jn。每个作业先由机器1处理,再由机器2处理。Ji需机器j的处理时间为tji。n对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间(时间点)。所有作业在机器2上完成处理的时间和f=F21+F22+F2n称为该作业调度的完成时间和。n问题:对于给定的n个作业,制定最佳作业调度方案,使其完成时间和达到最小。tji机器1机器2作业121作业231作业323这3个作业的6种可能的调度方案是1,2,3;1,3,2;2,1,3;2, 3, 1;3, 1, 2;3, 2, 1;它们所相应的完成时间和分别是19(=3+6 +10),18,20,21,19,19。易见,最佳调度方案是1
13、, 3, 2,其完成时间和为18。对于批处理作业调度问题,可以证明, 存在一个最佳作业调度使得在机器1和2上以相同次序完成。解空间:排列树设x=1,2, n为所给n个作业,则相应的排列树由x1:n的所有排列构成.void Flowshop:Backtrack(int i) /Backtrack是类是类Flowshop的私有成员函数的私有成员函数 if (i n) for (int j = 1; j = n; j+) bestxj = xj; bestf = f; else for (int j = i; j f1)?f2i-1:f1)+Mxj2; f+=f2i; if (f half)|(t*
14、(t-1)/2-counthalf) return; if (tn) sum+;/ 搜索至叶结点,得到+-号相同的符号三角形, 三角形数增1. else for (int i=0;i2;i+) p1t=i; count+=i; for (int j=2;j=t;j+) pjt-j+1=pj-1t-j+1pj-1t-j+2; count+=pjt-j+1; Backtrack(t+1); for (int j=2;j=t;j+) count-=pjt-j+1; count-=i; + + - + - + + - - - - +- + + + - - + + - - + - - - +复杂度分析复
15、杂度分析计算可行性约束需要O(n)时间,在最坏情况下有 O(2n)个结点需要计算可行性约束,故解符号三角形问题的回溯算法所需的计算时间为 O(n2n)。5.5 n后问题p在nn格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。pn后问题等价于在nn格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。1 2 3 4 5 6 7 812345678QQQQQQQQ解向量:(x1, x2, , xn), xi表示皇后i放在棋盘的第i行的第xi列上. 解空间: 排列树显约束:xi=1,2, ,n (列的取值范围)隐约束:
16、1)不同列:xi xj 2)不处于同一正、反对角线上:|i-j| |xi-xj| 事实上,如果用(i, j)表示棋盘上第i行与第j列交叉的位置, 则在同一条平行于主对角线的对角线上的两点(i, j)和(k, l)满足关系式i-j=k-l;而处于同一条平行于副对角线的对角线上的两点(i, j)和(k, l), 则满足关系式i+j=k+l. 将这两个关系式略作变形即得两种情况的统一表示: | i-k | = | j-l | (*)反之,如果棋盘上的两点(i, j)和(k, l)满足关系式(*), 则它们一定位于同一条对角线上. 设计函数Place来测试: 若将皇后k放在xk列, 是否与前面已放置的
17、k-1个皇后都不在同一列, 且不在同一斜线上. 回溯法解n后问题, 用一棵完全n叉树来表示其解空间. 用可行性约束函数place可剪去不满足行、列和斜线约束的子树.bool Queen:Place(int k) for (int j=1;jn) sum+;/sum为已找到的可行方案数为已找到的可行方案数 else for (int i=1;i=n;i+) xt=i; if (Place(t) Backtrack(t+1); 5.6 0-1背包问题解空间:子集树 (与装载问题的回溯法相似)可行性约束函数:见教材p138-14111cxwniiitemplateTypep Knap:Bound(i
18、nt i)/ 计算上界 Typew cleft = c - cw; / 剩余容量 Typep b = cp; / 以物品单位重量价值递减序装入物品 while (i = n & wi = cleft) cleft -= wi; b += pi; i+; / 装满背包 if (i n) / 到达叶结点 for (int j = 1; j = n; j+) bestxj = xj; bestn = cn; return; / 检查顶点 i 与当前团的连接 int OK = 1; for (int j = 1; j bestn) / 进入右子树,确定还有足够多的顶点使得可能找到更大的团。 x
19、i = 0; Backtrack(i+1);复杂度分析复杂度分析最大团问题的回溯算法backtrack所需的计算时间显然为O(n2n)。12453325.8 图的m着色问题1.问题描述 u给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的2个顶点着不同颜色。这个问题是图的m可着色判定问题。u若一个图最少需要m种颜色才能使图中每条边连接的2个顶点着不同颜色,则称这个数m为该图的色数。求一个图的色数m的问题称为图的m可着色优化问题。33 对于图着色的研究是从m可着色性问题的著名特例 四色问题开始的。 四色猜想是英国学者于1852年提出
20、的,这个问题要求证明平面或球面上的任何地图的所有区域都可以至多用四种颜色来着色,使任何两个有一段公共边界的相邻区域没有相同的颜色。 这个问题可转换成对一平面图的4着色判定问题.34 多年来,已证明用5种颜色足以对任何一幅地图着色. 但是, 一直找不到一定要求多于4种颜色的地图。 直到1976年 ,这个问题才由三位美国学者在计算机上花费了1200个小时才给出证明:任何平面图是可以4着色的。 四色猜想从此变成了四色定理。35可平面图可平面图:若一个图的所有顶点和边:若一个图的所有顶点和边, 都能用某都能用某种方式画在平面上种方式画在平面上, 且没有任何两边相交且没有任何两边相交.假设每个国家单连通
21、,假设每个国家单连通,国家国家相邻相邻指这两个国家有一指这两个国家有一段长度不为段长度不为0的公共边界,而不仅有一个公共点的公共边界,而不仅有一个公共点。36实例:如下图实例:如下图n=7, m=3n=7, m=3372. 2. 算法设计算法设计一般连通图的可着色问题,不仅限于可平面图。一般连通图的可着色问题,不仅限于可平面图。给定图给定图G=(V,E)和)和m种颜色,如果该图不是种颜色,如果该图不是m可可着色,给出否定回答;若着色,给出否定回答;若m可着色,找出所有不同着可着色,找出所有不同着色方法。色方法。算法算法:回溯法:回溯法解空间解空间: 完全完全m叉树叉树38 n3,m3的状态空间
22、树39解向量:(x1, x2, , xn)顶点i所着颜色xi .可行性约束函数:顶点i与已着色的相邻顶点颜色不重复。void Color:Backtrack(int t) if (tn) sum+; for (int i=1; i=n; i+) cout xi ; cout endl; else for (int i=1;i=m;i+) xt=i; if (Ok(t) Backtrack(t+1); bool Color:Ok(int k)/ 检查颜色可用性 for (int j=1;j=n;j+) if (akj=1)/结点相连&(xj=xk)/结点同色 return false;
23、return true;403 复杂度分析复杂度分析n图m可着色问题的解空间树中,内结点个数是: n对于每一个内结点,在最坏情况下,用ok检查当前扩展结点每一个儿子的颜色可用性需耗时O(mn)。n因此,回溯法总的时间耗费是10niim)() 1/() 1()(10nnniinmOmmnmmnm41 问题描述问题描述: 某售货员到若干城市去推销商品,已知各某售货员到若干城市去推销商品,已知各城市之间的路程城市之间的路程(或旅费或旅费)。他要选定一条。他要选定一条路线,经过每个城市路线,经过每个城市一遍一遍最后回到驻地的最后回到驻地的路线,路线,使得总的路程使得总的路程(或总旅费或总旅费)最小最小
24、。5.9 旅行售货员问题42 哈密顿回路问题哈密顿回路问题设G =(V,E)是一个有n个结点的连通图。一个哈密顿回路是一条沿着图G中的n条边经过每个结点一次, 最后回到起始点的一条周游回路。一个哈密顿回路是从G中的某个结点v1开始,依次经过G的结点v2,v3,vn+1,且边(vi,vi+1),i=1,n,均在G中,除了vn+1与v1是同一个结点之外,其余结点均不相同。43pG1的哈密顿回路存在,为128765431,而G2不存在任何哈密顿回路。p目前还没有什么比较容易的方法,来确定一个已知图是否含有哈密顿回路。p方法:回溯算法 G1:有哈密顿回路 G2:没有哈密顿回路44解空间:排列树temp
25、latevoid Traveling:Backtrack(int i) if (i = n) if (axn-1xn != NoEdge & axn1 != NoEdge &/ NoEdge是无边标记 (cc + axn-1xn + axn1 bestc | bestc = NoEdge) for (int j = 1; j = n; j+) bestxj = xj; bestc = cc + axn-1xn + axn1; else for (int j = i; j = n; j+) / 是否可进入xj子树? if (axi-1xj != NoEdge & (cc
26、+ axi-1xi n) Compute(); /完成所有圆,计算排列长度 else for (int j = t; j = n; j+) /考虑各种排列 Swap(rt, rj); float centerx=Center(t);/求得第t个圆的圆心相对第1个圆的圆心的横坐标 if (centerx+rt+r1min) /判断此时排列长度是否已超过当前解,未超过继续递归 xt=centerx;/修改圆t的圆心坐标 Backtrack(t+1); Swap(rt, rj);/还原排列 51 void Circle:Compute(void)/ 计算当前圆排列的长度 float low=0, /
27、low表示圆排列的最左端坐标 high=0; /high表示圆排列的最右端坐标 /此时的坐标是相对第一个圆的圆心建立的 for (int i=1;i=n;i+) if (xi-rihigh) high=xi+ri;/计算最右端 if (high-lowmin) min=high-low;float Circle:Center(int t)/ 计算当前所选择圆的圆心横坐标 float temp=0; for (int j=1;jtemp) temp=valuex;/取较大值 return temp; /返回圆t的圆心横坐标52 3复杂度分析复杂度分析 在最坏情况下, 算法backtrack可能需
28、要计算O(n!)次当前圆排列长度; 每次计算需O(n)计算时间,整个算法的计算时间复杂性为O(n+1)!) 53 上述算法尚有许多改进的余地。例如:u象1,2,n-1,n和n,n-1, ,2,1这种互为镜像的排列具有相同的圆排列长度,只计算一个就够了,可减少约一半的计算量。u如果所给的n个圆中有k个圆有相同的半径,则这k个圆产生的k!个完全相同的圆排列,只计算一个就够了。算法的改进算法的改进:对称性应用对称性应用54是大规模电子系统设计中提出的一个实际问题是大规模电子系统设计中提出的一个实际问题. 问题描述问题描述:将将n n块电路板以最佳排列方案块电路板以最佳排列方案, , 插入带有插入带有
29、n n个插槽的机箱中个插槽的机箱中. n块电路板的不同的排列方式块电路板的不同的排列方式, 对应于不同的电路对应于不同的电路板插入方案板插入方案.电路板集合电路板集合: B=1, 2, , n 连接块集合连接块集合: L=N1, N2, , Nm 其中其中: Nj B,NNj j中所有电路板用一根导线连接中所有电路板用一根导线连接5.11 电路板排列问题电路板排列问题55 排列排列: X=, 即在机箱的第即在机箱的第i个插个插槽中插入电路板槽中插入电路板xi. 排列密度排列密度density(X): 跨越相邻电路板插槽的最大连线数跨越相邻电路板插槽的最大连线数 求解求解: 具有最小排列密度具有
30、最小排列密度density(X)的排列的排列56实例实例:B=1,2,B=1,2,8, L=N,8, L=N1 1,N,N2 2, ,N,N5 5,N N1 1=4,5,6,N=4,5,6,N2 2=2,3,N=2,3,N3 3=1,3,N=1,3,N4 4=3,6,N=3,6,N5 5=7,8 =7,8 排列排列 X X1 1= 排列密度排列密度=?=?density(Xdensity(X1 1) = 2) = 2 电路板插槽电路板插槽编号编号57N N1 1=4,5,6,N=4,5,6,N2 2=2,3,N=2,3,N3 3=1,3,N=1,3,N4 4=3,6,=3,6,N N5 5=7
31、,8=7,8排列排列 X X2 2= density(Xdensity(X2 2)=)= 4 4 插槽2和3之间的连线数为4 58p算法算法设计设计:电路板排列问题是一个电路板排列问题是一个NP难问题难问题.p解空间解空间: 排列树排列树p算法算法: 通过系统搜索问题解空间的排列树通过系统搜索问题解空间的排列树,找出电找出电路板最佳排列路板最佳排列.p 符号说明符号说明: totalj:连接块连接块Nj的电路板数的电路板数 nowj:x1, x2, , xi中包含的中包含的Nj中的电路板数中的电路板数 cd:从电路板从电路板1到到i的最大排列密度的最大排列密度p横跨电路板横跨电路板i到到i+1
32、的连接块集合的连接块集合,其条件如下:,其条件如下: 块块Nj的连线跨越的连线跨越i和和i+1 nowj0且且nowjtotalj 59计算插槽计算插槽i i和和i i1 1的连线密度的连线密度例如例如i=2, i=2, 此刻此刻 now1=now2=now3=now4=1, now1=now2=now3=now4=1, total1=3, total1=3, total2=total3=total4=2, total2=total3=total4=2,N N1 1,N,N2 2,N,N3 3,N,N4 4的连线都跨越电路板的连线都跨越电路板2 2和和3 360 算法效率 在每个结点处, 函数
33、Backtrack花费O(m)时间计算每个儿子结点的密度. 排列树的搜索时间为O(n!). 算法耗费为O(mn!).615.12 连续邮资问题p假设国家发行了n种不同面值的邮票种不同面值的邮票,并且规定每张信封上最多只允许贴贴mm张邮票张邮票。p连续邮资问题要求连续邮资问题要求:对于给定的n和m的值,给出邮票面值的最佳设计,使得在1张信封上可贴出从邮资从邮资1开始开始,增量为增量为1的最大连续邮资区间。62 p例如: 当n=5和m=4时, 设解为X=,其中x1=1,并且满足: x1x2x5p面值为X=(1, 3, 11, 15, 32)的5种邮票, 可以贴出邮资的最大连续邮资区间是1到70。p
34、若若X=, 则邮资连续区间为则邮资连续区间为1-4.63算法设计:解向量:用n元组x1: n表示n种不同的邮票面值,并约定它们从小到大排列。x1=1是唯一的选择。此时最大连续邮资区间是1: m. x2的取值范围是2: m+1可行性约束函数:已选定x1: i-1,其最大连续邮资区间是1: r,接下来xi的取值范围是xi-1+1: r+1。方法:回溯法,用一棵树来表示解空间。 树结点的度随x的值变化l代码程序见p171-17364 5.13 回溯法效率分析通过前面具体实例的讨论容易看出,回溯算法的效率在很大程度上依赖于以下因素:产生xk的时间;满足显约束的xk值的个数;计算约束函数constrai
35、nt的时间;计算上界函数bound的时间;满足约束函数和上界函数约束的所有xk的个数。p好的约束函数能显著地减少所生成的结点数。但这样的约束函数往往计算量较大。p选择约束函数时, 通常存在生成结点数与约束函数计算量之间的折衷。65重排原理p在搜索试探时,选取xi的值顺序是任意的。在其它条件相当在其它条件相当的前提下,让可取值最少的的前提下,让可取值最少的xi优先优先。p下图中关于同一问题的2棵不同解空间树,可以体会到这种策略的潜力。图(a)中,从第1层剪去1棵子树,则从所有应当考虑的3元组中一次消去12个3元组(叶结点)。对于图(b),虽然同样从第1层剪去1棵子树,却只从应当考虑的3元组中消去
36、8个3元组。前者的效果明显比后者好。(a)(b)66估计回溯算法的结点数目和平均效率估计回溯算法的结点数目和平均效率 蒙特卡罗方法蒙特卡罗方法主要思想主要思想: :在解空间树上产生一条随机的路径在解空间树上产生一条随机的路径, ,并沿此路径估算并沿此路径估算解空间树中满足约束条件的结点总数解空间树中满足约束条件的结点总数. . Monte Carlo方法的算法步骤方法的算法步骤: 1从根开始,随机选择一条路经,直到不能分支为止从根开始,随机选择一条路经,直到不能分支为止, 从从x1, x2, , 依次对依次对xi赋值,每个赋值,每个xi的值是从当时的路径中随机选取,的值是从当时的路径中随机选取
37、,直到向量不能扩张为止直到向量不能扩张为止. 2假定搜索树的其他分支与以上随机选出的路径一样,计算假定搜索树的其他分支与以上随机选出的路径一样,计算搜索树的结点数。搜索树的结点数。 3重复步骤重复步骤1和和2,将结点数进行概率平均。,将结点数进行概率平均。67算法算法Monte Carlo 1sum0; /sum为为t次结点平均数次结点平均数2for i1 to t do /取样次数取样次数t3. mEstimate(n); /m为本次结点总数为本次结点总数4. sumsum+m; 5. sumsum/t;68 m为本次取样结点总数,为本次取样结点总数,k为层数,为层数,r为本层分支数为本层分支数, n为树的为树的层数层数, mi为第为第i层满足约束条件的结点数层满足约束条件的结点数. 算法算法Estimate(n) /估算回溯法生成的结点数估算回溯法生成的结点数 1. m1; r1; k1; 2. While k n do 3. SetType T = x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年苏科新版九年级历史下册阶段测试试卷含答案
- 2025年粤人版选修3历史下册月考试卷含答案
- 二零二五版苗木种植基地水资源利用合同样本4篇
- 2025年华东师大版九年级生物上册阶段测试试卷
- 二零二五版矿山设备购置合同模板3篇
- 二零二五年度模具行业新材料研发与应用合同3篇
- 二零二五年度民间担保业务风险管理合同3篇
- 2025年度拟上公司与会计事务所审计质量保证保密合同4篇
- 二零二五年度城市地下管线探测与修复承包合同3篇
- 二零二五年度厨具行业供应链金融服务合同7篇
- GB/T 3953-2024电工圆铜线
- 发电机停电故障应急预案
- 接电的施工方案
- 常用药物作用及副作用课件
- 幼儿阿拉伯数字描红(0-100)打印版
- 社会组织等级评估报告模板
- GB/T 12173-2008矿用一般型电气设备
- 2023年1月浙江高考英语听力试题及答案(含MP3+录音原文)
- 新媒体研究方法教学ppt课件(完整版)
- 2020新版个人征信报告模板
- 工艺管道仪表流程图(共68页).ppt
评论
0/150
提交评论