《计算机算法设计与分析》课程教学资源(PPT课件)第8章回溯法

第8章回溯法
第8章 回溯法

回溯法概述 回溯法可以系统的搜索一个问题的所有解或任 个解 ◇它在包含问题的所有解的解空间树中,按照深度 优先的策略,从根结点岀发搜索解空间树。算法 搜索到某一结点时,如果断定该结点肯定不包含 问题的解,则跳过以该结点为根的子树的搜索, 逐层向其祖先结点回溯 这种以深度优先方式搜索问题的解的方法称为回 溯法
回溯法概述 回溯法可以系统的搜索一个问题的所有解或任一 个解 它在包含问题的所有解的解空间树中,按照深度 优先的策略,从根结点出发搜索解空间树。算法 搜索到某一结点时,如果断定该结点肯定不包含 问题的解,则跳过以该结点为根的子树的搜索, 逐层向其祖先结点回溯 这种以深度优先方式搜索问题的解的方法称为回 溯法

可用回溯法求解的问题 其中的x取自于某个有穷集5,并苴这些解 必须使得某一规范函数P(x1,x)(也称限 界函数)取极值或满足该规范函数条件。 例子:A(1:n)个元素的分类问题 问题的解为n元组; x取自有穷集 规范函数P:A(x)=A(x1+)
可用回溯法求解的问题 问题的解可以用一个n元组(x1 ,…,xn )来表示, 其中的xi取自于某个有穷集Si,并且这些解 必须使得某一规范函数P(x1 ,…,xn )(也称限 界函数)取极值或满足该规范函数条件。 例子:A(1:n)个元素的分类问题 ◼ 问题的解为n元组; ◼ xi取自有穷集; ◼ 规范函数P:A(xi )<=A(xi+1)

问题求解的方法 列出所有候选解,逐个检查是否为所需要的解 理论上,候选解数量有限,并且通过检查所有或部分候 选解能够得到所需解时,上述方法可行 实际中则很少使用,因为候选解的数量通常都非常大 (比如指数级,甚至是大数阶乘),即便采用最快的计 算机也只能解决规模较小的问题。 避免对很大的候选解集合进行完全检查 大大减少问题的求解时间 通常用来求解规模较大的问题
问题求解的方法 硬性处理法 ◼ 列出所有候选解,逐个检查是否为所需要的解 ◼ 理论上,候选解数量有限,并且通过检查所有或部分候 选解能够得到所需解时,上述方法可行 ◼ 实际中则很少使用,因为候选解的数量通常都非常大 (比如指数级,甚至是大数阶乘),即便采用最快的计 算机也只能解决规模较小的问题。 回溯或分枝限界法 ◼ 避免对很大的候选解集合进行完全检查 ◼ 大大减少问题的求解时间 ◼ 通常用来求解规模较大的问题

回溯法思想 o第一步:为问题定义一个状态空间 state space), 这个空间必须至少包含问题的一个解 ◇第步;组织状奩空间以便它能被容易地搜索。典 型的组织方法是图或树 ◇第三步:按深度优先的方法从开始结点进行搜索 开始结点是一个活结点(也是E结点: expansion node 如果能从当前的E结点移动到一个新结点,那么这个新 结点将变成一个活结点和新的E结点,旧的E结点仍是 个活结点。 如果不能移到一个新结点,当前的E结点就“死”了 即不再是一个活结点),那么便只能返回到最近被考 察的活结点(回溯),这个活结点变成了新的E结点。 当我们已绎找到了答案或者回溯尽了所有的活结点时, 搜索过程结束
回溯法思想 第一步:为问题定义一个状态空间(state space), 这个空间必须至少包含问题的一个解 第二步:组织状态空间以便它能被容易地搜索。典 型的组织方法是图或树 第三步:按深度优先的方法从开始结点进行搜索 ◼ 开始结点是一个活结点(也是 E-结点:expansion node) ◼ 如果能从当前的E-结点移动到一个新结点,那么这个新 结点将变成一个活结点和新的E-结点,旧的E-结点仍是 一个活结点。 ◼ 如果不能移到一个新结点,当前的E-结点就“死”了 (即不再是一个活结点),那么便只能返回到最近被考 察的活结点(回溯),这个活结点变成了新的E-结点。 ◼ 当我们已经找到了答案或者回溯尽了所有的活结点时, 搜索过程结束

回溯法如何提高效率? ◇由开始结点到当前E结点构成解向量 (X1…,x) 如果判定(x1y…,x不能导致最优解,那么就 将可能要测试的m+mn个向量略去。 因此回溯法的测试次数比硬性处理作的测 试次数要少得多。 如何判定(x1,x)能否导致最优解?
回溯法如何提高效率? 由开始结点到当前E-结点构成解向量 (x1 ,…,xi ) 如果判定(x1 ,…,xi )不能导致最优解,那么就 将可能要测试的mi+1…mn个向量略去。 因此回溯法的测试次数比硬性处理作的测 试次数要少得多。 ◼ 如何判定(x1 ,…,xi )能否导致最优解?

约束条件 ◎回溯法的解需要满足一组综合的约束条件, 通常分为:显式约束和隐式约束 o显式约束条件限定每个x只从一个给定的集 合上取值,例如: x>=0 即s千所有非负实数} x=0或x=1即s={01} k<=x=u即s={a=a<=t 满足显式约束的所有元组确定一个可能的解 空间 ◎隐式约束描述了x必须彼此相关的情况,如 0/背包问题中的背包重量M
约束条件 回溯法的解需要满足一组综合的约束条件, 通常分为:显式约束和隐式约束 显式约束条件限定每个xi只从一个给定的集 合上取值,例如: ◼ xi>=0 即si={所有非负实数} ◼ xi=0或xi=1 即 si={0,1} ◼ l<=xi<=u 即si={a:l<=a<=u} 满足显式约束的所有元组确定一个可能的解 空间 隐式约束描述了xi必须彼此相关的情况,如 0/1背包问题中的背包重量M

回溯法求解的经典问题(1) 8-皇后问题 在一个8*8棋盘上放置8个皇后,且使得每两 个之间都不能互相“攻击”,也就是使得每 两个都不能在同一行、同一列及同一条斜角 线上。 8皇后问题的解可以表示为8元组(x1…,x), 其中其中x:是第行皇后所在的列号。 o显式约束条件是x{1,2345,7,8},1≤i≤8 o隐式约束条件是,没有两个x可以相同且没 有两个皇后可以在同一条斜角线上
回溯法求解的经典问题(1) 8-皇后问题 在一个8*8棋盘上放置8个皇后,且使得每两 个之间都不能互相“攻击”,也就是使得每 两个都不能在同一行、同一列及同一条斜角 线上。 8皇后问题的解可以表示为8-元组(x1 ,…,x8 ) , 其中其中xi是第i行皇后所在的列号。 显式约束条件是xi={1,2,3,4,5,6,7,8}, 1≤i≤8 隐式约束条件是,没有两个xi可以相同且没 有两个皇后可以在同一条斜角线上

12345678 2 3 5 6 7 8 Q 由于解向量之间不能相同,所以解空间的大小由88个 元组减少到8:个元组。上图中的解表示为一个8-元组 即(4,6,8,2,7,1,3,5)
Q Q Q Q Q Q Q Q 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 由于解向量之间不能相同,所以解空间的大小由8 8个 元组减少到8!个元组。上图中的解表示为一个8-元组 即(4,6,8,2,7,1,3,5)

回溯法求解的经典问题(2) 子集和数问题 o已知(Ww1w2,…,wn和M,均为正数。要求找出w的和数等 于M的所有子集 求的子集是(11,13,7)和(24013,24,7),M=31,则满足要 例如:若n=4,(w1,W,W3,W)=(1 子集和数问题解的一种表示方法 若用W;的下标表示解向量,这两个解向量为(1,2,4)和 3,4 子集和数问题的解可以表示为k-元组(X1x2,…,x),1kn 并且不同的解可以是大小不同白 的元组。 o显式约束条件是x∈为整数且1jn} o隐式约束条件是 1)没有两个x是相同的; 2)wx的和为M; 3)x<x+1,1i<n(避免产生同一个子集的重复情况)
回溯法求解的经典问题(2) 子集和数问题 已知(w1 , w2 , …, wn )和M,均为正数。要求找出wi的和数等 于M的所有子集。 例如:若n=4,(w1,w2,w3,w4)=(11,13,24,7),M=31,则满足要 求的子集是(11,13,7)和(24,7). 子集和数问题解的一种表示方法 若用Wi的下标表示解向量,这两个解向量为(1,2,4)和 (3,4)。 子集和数问题的解可以表示为k-元组(x1 , x2 , …, xk ), 1≤k≤n 并且不同的解可以是大小不同的元组。 显式约束条件是xi∈{j|j为整数且1≤j≤n}。 隐式约束条件是 ◼ 1)没有两个xi是相同的; ◼ 2)wxi的和为M; ◼ 3)xi<xi+1 ,1≤i<n(避免产生同一个子集的重复情况)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学出版社:《计算机应用基础实例教程》课程教学资源(PPT课件讲稿,第二版,共七章,主编:吴霞,制作:李晓新).ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)绪论、第1章 量化设计与分析基础(主讲:周学海).ppt
- 北京大学:烟花算法的变异算子(PPT讲稿)Mutation Operators of Fireworks Algorithm.pptx
- Introduction to Text Mining 文本挖掘.pptx
- 《Managing XML and Semistructured Data》教学资源(PPT课件讲稿)Part 04 Compressing XML Data.ppt
- 《JAVA面向对象入门技术》教程教学资源(PPT课件讲稿)第二章 Java语言基础.ppt
- 北京大学:《项目成本管理》课程教学资源(PPT课件讲稿)项目范围计划(主讲:周立新).ppt
- 山东大学:《网站设计与建设》课程教学资源(PPT课件讲稿)第三部分 网站设计技术 第20章 MySQL数据库.ppt
- 程序设计工具(PPT课件讲稿)Software Program Tool.ppt
- 《Java Web应用开发技术与案例教程》教学资源(PPT讲稿)第7章 Java Web常用开发模式与案例.ppt
- 《面向对象程序设计》课程教学大纲(适用专业:信息与计算科学).pdf
- 《编译技术》课程教学资源(PPT课件讲稿)第六章 运行时存储空间的组织和管理.ppt
- 沈阳理工大学:《计算机网络》课程教学资源(PPT课件讲稿)第2章 IP技术.ppt
- 香港科技大学:Record Linkage for Big Data.pptx
- 中国科技大学计算机系:《黑客反向工程》课程教学资源(PPT课件讲稿)黑客反向工程导论(陈凯明).ppt
- 《单片机应用技术》课程PPT教学课件(C语言版)第10章 单片机测控接口.ppt
- 《计算机操作系统》课程教学资源(PPT课件讲稿)第四章 存储器管理.ppt
- 《计算机网络与因特网 Computer Networks and Internets》课程教学资源(PPT课件讲稿)第二讲 互联网应用软件.ppt
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第七章 数组.ppt
- Analysis of Algorithms(PPT讲稿)Data Structures and Data Management.ppt
- 白城师范学院:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第二章 关系数据库(2.1-2.3).ppt
- 《操作系统》课程教学资源(PPT课件讲稿)实时调度 Real-Time Scheduling.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 6 Concurrency - Deadlock(死锁)and Starvation(饥饿).ppt
- 《网络搜索和挖掘关键技术 Web Search and Mining》课程教学资源(PPT讲稿)Lecture 12 Language Models.ppt
- Progress of Concurrent Objects with Partial Methods.pptx
- 《编译原理与技术》课程教学资源(PPT课件讲稿)代码优化.ppt
- 《单片机应用技术》课程PPT教学课件(C语言版)第3章 MCS-51指令系统及汇编程序设计.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第八章 图.ppt
- 同济大学:《大数据分析与数据挖掘 Big Data Analysis and Mining》课程教学资源(PPT课件讲稿)Platforms for Big Data Mining(主讲:饶卫雄).ppt
- 《计算机网络》课程教学资源(PPT讲稿)网络安全(访问控制、加密、防火墙).ppt
- 水平集方法与图像分割 Level set method and image segmentation.pptx
- 北京师范大学:《计算机文化基础》课程教学资源(PPT课件讲稿)08 网页制作基础知识(赵国庆).ppt
- 《C语言程序设计》课程教学资源(PPT讲稿)第1章 程序设计和C语言.pptx
- 《计算机组装与维护》课程教学资源(PPT课件讲稿)第十一章 计算机数据恢复技术.ppt
- 贵州大学:计算机应用基础(PPT课件讲稿)计算机基础知识.pdf
- 《计算导论与程序设计》课程教学资源(PPT课件讲稿)Chap 5 函数.ppt
- 《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 08 Network Security.ppt
- 《计算机网络与通信》课程教学资源(PPT课件)Chapter 8 传输层.ppt
- 《数据结构与算法分析》课程教学资源(PPT讲稿)Lists, Stacks and Queues.ppt
- 沈阳理工大学:《Visual Basic 6.0程序设计》课程教学资源(PPT课件讲稿)第三章 VB基本语言.ppt