TSP问题解决方案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精品文档 精品文档 PAGE PAGE20 精品文档 PAGE ,. 《算法设计与剖析》实验报告一 学 号: 姓 名: 日 期:得 分: 一、内容: TSP 二、所用算法的基本思想及复度剖析: 1、蛮力法 1)基本思想 借助矩把矩中点的求解。首先结构距离矩,随意点 到自己点的距离无大。在第一行找到最小 a[1][j],进而跳到 第j行,再找到最小a[j][k],再到第k行行找。。。然后结构各行允 数row[n]={1,1?1},各列允数 colable[n]={0,1,1?.1},其中1 表示允,即点未被; 0表示不允,即点已 被。如果转行或列不允,跳点下一点。程序再 最后一个点前,所的行中起码有 1个允的点,依次 些点找到最小的即可;在最后一个点后,再次,会 返回k=0,即源点,得出一条回路。 2)复度剖析 基本句是下一个队列中最小的点,主要操作是求平方,假有 n ;.. ,. 个点,则计算的次数为 n^2-n。T(n)=n*(n-1)=O(n^2)。 2、动向规划法 1)基本思想 假定从极点 s出发,令d(i,V ’)表示从极点 i出发经过 V’(是一个点的会合 )中各个极点一次且 仅一次,最后回到出发点 s的最短路径长度。 推导:(分情况来议论 ) ① 当V’为空集,那么 d(i,V ’),表示从 i不经过任何点就回到 s了,如上图的 城市3-城 市0(0为起点城市)。此时d(i,V ’)=Cis(就是 城市i到城市s的距离)、 ②如果V’不为空,那么就是对子问题的最优求解。你必须在 V’这个城市会合中,尝试每一 个,并求出最优解。 d(i,V ’)=min{Cik+d(k,V-’{k})} 注:Cik表示你选择的城市和城市 i的距离,d(k,V-’{k})是一个子问题。 综上所述,TSP问题的动向规划方程就出来了: 2)复杂度剖析 和蛮力法相比,动向规划求解 tsp问题,把原来时间复杂性 O(n!)的 排列转变为组合问题,进而降低了时间复杂度,但仍需要指数时间。 3、回溯法 1)基本思想 确定认识空间的组织结构后,回溯法从开始结点(根结点)出发,以 深度优先方式搜索整个解空间。 这个开始结点成为活结点,同时也成 为目前的扩展结点处,搜索向纵深方向移至一个新结点。 这个新结点 即成为新的活结点,并为目前扩展结点。如果在目前的扩展结点处不 能再向纵深方向移动,则目前扩展结点就成为死结点。 此时,应往回 移动(回溯)至最近的一个活结点处,并使这个活结点成为目前的扩 ;.. ,. 展点。回溯法以种工作方式地在解空中搜索, 直至找到所 要求的解或解空中已无活点止。 回溯法求解TSP,首先把所有的点的志初始化 0,然 后在解空中从根点出开始搜索, 如果从根点到目前点 一个部分解,即足上述束条件,在目前点第一棵子 搜索,否,目前子的兄弟点行搜索, 如果目前点 的所有子都已并且生矛盾,回溯到目前点的父点。 采用接矩mp[n][n]存点之的情况,防止在函数 参数,将数mp置全局量,数 x[n]表示哈密回路 的点。 2)复度剖析 在哈密回路的可能解中,考到束条件 xi!=xj(1=I,j=n,i!=j), 可能解是(1,2,?,n)的一个排列,的解空种起码有 n! 个叶子点,每个叶子点代表一种可能解。当找到可行的最解, 算法停止。根据条件不同复度也会不同,里 O(n!)。 4、分支限界法 1)基本思想 分支界线法以广度先或以最小耗 (最大效益)的方式搜索 的解空。的解空是表示解空的一棵有序, 常 的有子集和排列。在搜索的解空,分支界线法与回 溯法的主要区在于他目前展点所采用的展方式不同。 在 分支界线法中,每一个活点只有一次时机成展点。 活点一 ;.. ,. 旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中, 致使不可行解或致使非最优解得儿子结点被舍弃, 其余儿子结点被加 入活结点表中。算法开始时创建一个最小堆,用于表示活结点优先队 列。堆中每个结点的子树费用的下界 lcost值是优先队列的优先级。 接着算法计算出图中每个极点的最小费用出边并用 minout记录。如 果所给的有向图中某个极点没有出边, 则该图不可能有回路,算法即 告结束。如果每个极点都有出边,则根据计算出的 minout作算法初 始化。 2)复杂度剖析 目标函数(限界函数),lb分为三部分,第一部分是经过路径的长度 相加的2倍,加上第二部分别着路径首尾节点最近的距离相加 (不在 已知路径上的),加上第三部分除了路径上节点,矩阵中两个最短的 距离相加,最后这三部分和相加,得到的结果除以 2便是每个节点的 限界值。由于限界函数的不同,下界为 O(n),上界为O(2^n),智 力特定指出。 三、源程序及说明: 1、蛮力法 intmain() {

文档评论(0)

zdq1013 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档