- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter回溯法
7 回溯法Backtracking 引例 图的3着色问题 给定一个无向图G=(V,E),及3种颜色{1,2,3},现要为图的每个顶点着色。每顶点只能着一种颜色,并且要求相邻的顶点具有不同的颜色。 一个具有n个顶点的图,可用一个n维的向量(c1,c2,…,cn)表示一种着色方案,ci∈{1,2,3}, i=1,2,...,n,共有3n种可能的着色,可用一棵完全的3叉树表示。 下图为有3个顶点的所有可能的着色搜索树,从根到叶结点的每条路径表示一种着色方案。 问题的解向量:问题的解能够表示成一个n维向量(x1,x2,,…,xn)的形式。 显式约束:对分量xi的取值限定。 隐式约束:为满足问题的解而对不同分量之间施加的限定。 问题的解空间:对于问题的一个实例,解向量满足显式约束条件的所有n维向量,构成了该问题实例的一个解空间。 回溯法的工作原理 回溯法的基本做法是搜索,是一种组织得井井有条,能避免不必要搜索的穷举式搜索法。 回溯法按深度优先策略搜索问题的解空间树。算法搜索至解空间树的任意一结点时,先判断该结点是否可能包含问题的解:1) 如果肯定不包含,则跳过这个结点;2) 如果可能包含,进入该子树,继续按深度优先策略搜索;3) 若某结点 i 的所有子结点都不可能包含问题的解,则回溯到 i 的父结点,生成下一个结点,继续搜索。 递归回溯 迭代回溯 复杂度分析 高斯8皇后问题 著名的数学家高斯在1850年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问如何摆放? 考察n皇后问题n=4的情形: 合法布局:一个不互相攻击的4 皇后布局 部分布局:一个不互相攻击的少于4个皇后的布局 下图表示一个部分布局,用向量(3,1,0,0)表示; 递归回溯 迭代回溯 算法分析 算法效率:蛮力方法候选解的个数是n!;而使用回溯法,候选解的个数是nn,回溯的效率是否太低了? 然而,仔细分析可以发现,回溯法可以极大减少测试次数: 例如,假设前两个皇后冲突,蛮力方法仍旧要测试(n ?2)!个候选解;而回溯法只要进行一次测试,就可以避免剩余无意义的测试。 所以,尽管在最坏情况下要用O(nn)时间来求解,然后大量实际经验发现,它在有效性上远远超过蛮力方法O(n!)。例如在4 皇后问题中,只搜索了256个节点中的19个就找到了解。 哈密顿回路问题 1859年,爱尔兰数学家哈密顿提出了著名的周游世界问题。他用正12面体的20个顶点代表20个城市,要求从一个城市出发,经过每个城市恰好一次,然后回到出发城市。 分析 假定图G=(V,E)的顶点集V={1,2,...,n},则哈密顿回路问题的可能解表示为n维的向量x=(x1,...,xn),其中xi∈{1,2,...,n}。根据题意,有如下约束条件: (xi, xi+1) ∈E (1≤i≤n-1) (xn, x1) ∈E xi≠xj (1≤i, j≤n, i≠j) 在所有的可能解中,考虑到约束条件xi≠xj (1≤i, j≤n, i≠j),则可能的解应该是(1,2,...,n)的一个排列,对应的解空间中有n!个叶子结点。 通用回溯方法框架 本小节描述通用回溯方法的一般框架,可以作为系统搜索的基本框架,在解决实际问题时,修改该基本框架中的相应部分使之适合实际问题即可。 对于以下这样一类问题,可以使用该方法:这类问题的解满足事先定义好的某种约束向量(x1,...,xn),这里n是取决于问题实例的常量。 在回溯法中,每个xi 均是属于某个有限集合的,不妨称之为Xi,那么回溯法实质上是按照词典顺序考虑笛卡儿积: X1×X2×…×Xn 中的元素。 算法最初从空向量开始,先选择X1中的最小元素作为x1; 如果(x1)是部分解,那么选择X2中的最小元素作为x2; 如果(x1, x2)是部分解,则继续考虑X3中的最小元素作为x3, 否则,考虑X2中的第二个元素作为x2。依此类推。 一般说来, 当算法已经检测到部分解(x1, x2,…, xj), 需要继续考虑 v = (x1, x2,…, xj, xj+1)时,有以下几种情形: 1. 若v 表示问题的最终解,算法记录下它作为一个解。如果只需要一个解,算法结束;否则,继续找其它解。 2. 如果v = (x1, x2,…, xj, xj+1) 是一个部分解,那么选择集合Xj+2中未使用过的最小元素作为xj+2。(向前搜索) 3. 如果v 既非最终解,也非部分解,那么会有以下两种情况: a. 如果集合Xj+1中还有其它未曾使用过的元素,则选择下一个未曾使用过的元素作为xj+1。 b. 如果集合Xj+1中没有其它未曾使用过的元素,则回溯,将Xj中未曾使
您可能关注的文档
- 05 气体吸收.ppt
- ANST振荡器设计指导.docx
- AMChapter般网格控制.ppt
- ANSYS入门教程几何建模技术与技巧.pdf
- ANSYSFLUENT中文培训教材PPT.ppt
- Ansys例复杂形状实体的创建实例.docx
- Ansys例非线性屈曲分析实例.docx
- ANSYS次开发在汽车覆盖件焊装偏差分析中的应用.docx
- ANSYS热辐射节.ppt
- ansys高级非线性分析粘弹性.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
最近下载
- 2024年度公司领导班子民主生活会对照检查材料3篇.docx VIP
- JTGD60—2015公路桥涵设计通用规范.pdf VIP
- 技术部薪酬及岗位制度.doc
- 马工程教材《组织行为学》课件 第四章 团队.pptx
- 标准规范文件:DL/T 5424-2009 水电水利工程锚杆无损检测规程.pdf
- 广东省广州市八年级上学期物理期末试卷四套(附参考答案).doc VIP
- 2019-2020年高一英语人教版必修1专项训练:语法填空Word版含答案.docx VIP
- 第19课《大雁归来》教学设计 统编版语文七年级上册(2024年).docx VIP
- 2022水电工程移动式集运鱼系统设计规范.docx
- 2024年6月英语四级真题(全3套).pdf
文档评论(0)