算法设计与分析--回溯法哈密尔顿回路问题.doc

算法设计与分析--回溯法哈密尔顿回路问题.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析--回溯法哈密尔顿回路问题

回溯算法的应用 课程名称: 算法设计与分析 院 系: 学生姓名: 学 号: 专业班级: 指导教师: 年 月 日 回溯算法的应用 摘 要:回溯法是在包含问题的所有解的解空间树(或森林)中,按照深度优先的策略,从根结点出发有哪些信誉好的足球投注网站解空间树。算法有哪些信誉好的足球投注网站至解空间树的任一结点时,总是先判断该结点是否满足问题的约束条件。如果满足进入该子树,继续按深度优先的策略进行有哪些信誉好的足球投注网站。否则,不去有哪些信誉好的足球投注网站以该结点为根的子树,而是逐层向其祖先结点回溯。其实回溯法就是对隐式图的深度优先有哪些信誉好的足球投注网站算法。 回溯法是一个既带有系统性又带有跳跃性的的有哪些信誉好的足球投注网站算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发有哪些信誉好的足球投注网站解空间树。算法有哪些信誉好的足球投注网站至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统有哪些信誉好的足球投注网站,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的策略进行有哪些信誉好的足球投注网站。 回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被有哪些信誉好的足球投注网站遍才结束。而回溯法在用来求问题的任一解时,只要有哪些信誉好的足球投注网站到问题的一个解就可以结束。这种以深度优先的方式系统地有哪些信誉好的足球投注网站问题的解的算法称为回溯法,它适用于解一些组合数较大的问题。第1章 绪论 1 1.1 回溯算法的背景知识 1 1.2 回溯法的前景意义 1 第2章 回溯算法的理论知识 2 2.1 回溯算法的基本思想 2 2.2 回溯算法设计过程 2 2.3回溯算法框架 2 2.4 回溯算法的一般性描述 4 第3章 哈密尔顿问题 5 3.1 问题描述 5 3.2 问题分析 5 3.3 算法设计 5 3.4 测试结果与分析 7 第4章 结论 11 参考文献 12 第1章 绪论 1.1 回溯算法的背景知识 回溯算法是尝试有哪些信誉好的足球投注网站算法中最为基本的算法,在递归算法中,其存在的意义是在递归知道可解的最小问题后,逐步返回原问题的过程。实际上是一个类似于枚举的有哪些信誉好的足球投注网站尝试方法,他的主题思想是在有哪些信誉好的足球投注网站尝试的过程中寻找问题的解,当发现不满足条件时就回溯返回,尝试别的路径。 简单的说就是:从问题的某一种初始状态出发,依次搜寻每一种可能到达的情况,当走到这条路的“尽头”时,回过头到上一个情况,看这个情况是否还有没有走过的路,依次进行下去,直到遍历完所有的情况。 回溯法实际上是一种深度优先有哪些信誉好的足球投注网站的方式。对于回溯法解决的问题,通常将其解空间组织成图或者树的形式。对于用回溯法求解的问题,首先要将问题进行适当的转化,得出状态空间树。这棵树的每条完整路径都代表了一种解的可能。通过深度优先有哪些信誉好的足球投注网站这棵树,枚举每种可能的解的情况;从而得出结果。但是,回溯法中通过构造约束函数,可以大大提升程序效率,因为在深度优先有哪些信誉好的足球投注网站的过程中,不断的将每个解与约束函数进行对照从而删除一些不可能的解,这样就不必继续把解的剩余部分列出从而节省部分时间。有时会遇到这样一类题目,它的问题可以分解,但是又不能得出明确的动态规划或是递归解法,此时可以考虑用回溯法解决此类问题。回溯法的优点在于其程序结构明确,可读性强,易于理解,而且通过对问题的分析可以大大提高运行效率。回溯法适用于解决难以归纳一般规律解法的问题,其适用范围广,灵活性大,在解一些列举方法的问题时尤其可用。但是,其缺点也是明显的,即时间复杂度较大;因此在采用时。回溯法的一般描述 可用回溯法求解的问题P,通常要能表达为:对于已知的由n元组(x1,x2,…,xn)组成的一个状态空间E={(x1,x2,…,xn)∣xi∈Si ,i=1,2,…,n},给定关于n元组中的一个分量的一个约束集D,要求E中满足D的全部约束条件的所有n元组。其中Si是分量xi的定义域,且 |Si| 有限,i=1,2,…,n。我们称E中满足D的全部约束条件的任一n元组为问题P的一个解解问题P的最朴素的方法就是枚举法,即对E中的所有n元组逐一地检测其是否满足D的全部约束,若满足,则为问题P的一个解。但显然,其计算量是相当大的。我们发现,对于许多问题,所给定的约束集D具有完备性,即i元组(x1,x2,…,xi)满足D中仅涉及到x1,x2,…,xi的所有约束意味着j(j=i)元组(x1,x2,…,xj)一定也满足D中仅涉及到x1,x2,…,xj的所有约束,i=1,2,…,n。换句话说,只要存在0≤j≤n-1,使得(x1,x2,…,xj)违反D中仅涉及到x1,x2,…,xj的约束之一,则以(x1,x2,…,xj)为前缀的任何n元组(x1,x2,

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档