- 22
- 0
- 约8.96千字
- 约 19页
- 2021-04-03 发布于天津
- 举报
i
i 第1页共19页
i
i 第1页共19页
回溯算法的应用
课程名称: 院 系: 学生姓名: 学 号: 专业班级: 指导教师:
算法设计与分析
************************
******
************
*****************************
******
2013年12月27日
2
2 第 PAGE # 页 共 19 页
2
2 第 PAGE # 页 共 19 页
回溯法的应用
摘 要: 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到 目标。但当探索到某一步时, 发现原先选择并不优或达不到目标, 就退回一步重新选择, 这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为 “回溯 点”。
回溯法,其意义是在递归直到可解的最小问题后,逐步返回原问题的过程。而这里 所说的回溯算法实际是一个类似枚举的搜索尝试方法, 它的主题思想是在搜索尝试过程 中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。
回溯算法是尝试搜索算法中最为基本的一种算法,其采用了一种“走不通就掉头” 的思想,作为其控制结构。在包含问题的所有解的解空间树中,按照深度优先搜索的策 略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含 问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则 逐层向其祖先结点回溯。 若用回溯法求问题的所有解时,要回溯到根,且根结点的所 有可行的子树都要已被搜索遍才结束。 而若使用回溯法求任一个解时,只要搜索到问 题的一个解就可以结束。
全排列和求最优解问题是比较经典的问题,我们可以采用多种算法去求解此问题, 比如动态规划法、分支限界法、回溯法。在这里我们采用回溯法来解决这个问题。
关键词: 回溯法 全排列 最优值 枚举
目录
TOC \o 1-5 \h \z \o Current Document 第 1 章 绪论 . 4
\o Current Document 回溯法的背景知识 4
\o Current Document 回溯法的前景意义 4
\o Current Document 第 2 章 回溯法的理论知识 5
\o Current Document 问题的解空间树 5
\o Current Document 回溯法的一般性描述 6
\o Current Document 第 3 章 n 的全排列 7
\o Current Document 问题描述 . 7
\o Current Document 问题分析 . 7
\o Current Document 算法设计 . 7
\o Current Document 测试结果与分析 9
\o Current Document 第 4 章 最优化问题 . 11
\o Current Document 问题描述 . 11
\o Current Document 问题分析 . 11
\o Current Document 算法设计 . 11
\o Current Document 测试结果与分析 14
\o Current Document 第 5 章 结论 . 15
参考文献 . 16
附件. 16
第 1 章 绪论
回溯法的背景知识
回溯算法是尝试搜索算法中最为基本的一种算法,其采用了一种“走不通就掉头” 的思想,作为其控制结构。在递归算法中,其存在的意义是在递归知道可解的最小问题 后,逐步返回原问题的过程。实际上是一个类似于枚举的搜索尝试方法,他的主题思想 是在搜索尝试的过程中寻找问题的解, 当发现不满足条件时就回溯返回, 尝试别的路径。
简单的说就是:从问题的某一种初始状态出发,依次搜寻每一种可能到达的情况, 当走到这条路的“尽头”时, 回过头到上一个情况, 看这个情况是否还有没有走过的路, 依次进行下去,直到遍历完所有的情况。
回溯法实际上是一种深度优先搜索的方式。对于回溯法解决的问题,通常将其解空 间组织成图或者树的形式。对于用回溯法求解的问题,首先要将问题进行适当的转化, 得出状态空间树。这棵树的每条完整路径都代表了一种解的可能。通过深度优先搜索这 棵树,枚举每种可能的解的情况;从而得出结果。但是,回溯法中通过构造约束函数, 可以大大提升程序效率,因为在深度优先搜索的过程中,不断的将每个解与约束函数进 行对照从而删除一些不可能的解, 这样就不必继续把解的剩余部分列出从而节省部分时 间。
回溯法的前景意义
在做题时,有时会遇到这样一类题目,它的问题可以分解,但是又不能
原创力文档

文档评论(0)