第5章__回溯法.ppt

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

图的m着色问题 可平面图:如果一个图的所有顶点和边都能用某种方式画在一个平面上且没有任何两边相交,则称这个图是可平面图。 四色定理:任何平面图都是可以4着色的。 * 图的m着色问题 图的m着色问题: 给定一个一般连通图G=(V,E)和m种颜色,如果这个图不是m可着色的就给出否定回答,如果这个图是m可着色的,则要找出所有不同的着色方案。 解向量:(x1, x2, … , xn)表示顶点i所着颜色x[i] 解空间:完全m叉树 可行性约束函数:顶点i与已着色的相邻顶点颜色不重复。 * 图的m着色问题 上图是n=3和m=3是问题得解空间树。 N表示连通图得顶点数。M表示可着颜色数 * 图的m着色问题 void Color::Backtrack(int t) { if (tn) //当前已找到的可m着色方案数加1; { sum++; for (int i=1; i=n; i++) cout x[i] ; cout endl; } else for (int i=1;i=m;i++) { x[t]=i; if (Ok(t)) Backtrack(t+1); } } bool Color::Ok(int k) // 检查第k个顶点所选颜色x[k] 可用性 { for (int j=1;j=n;j++) if ((a[k][j]==1)(x[j]==x[k])) return false; return true; } * 图的m着色问题 图m可着色问题的解空间树中内结点个数是∑mi(0≤i≤n-1)。 对于每一个内结点,在最坏情况下,用ok检查当前扩展结点的每一个儿子所相应的颜色可用性需耗时O(mn)。因此,回溯法总的时间耗费是 ∑mi(mn)=nm(mn-1)/(m-1)=O(nmn) (0≤i≤n-1) * 提纲 回溯法的算法框架 装载问题 批处理作业调度 n后问题 0-1背包问题 最大团问题 图的m着色问题 旅行售货员问题 * 旅行售货员问题 旅行商问题是一个经典的组合优化问题。 一个推销员要去若干个城市推销,从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。 该问题实质是在一个带权完全无向图中,找一个权值最小的Hamilton 回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个NP 完全问题。 在交通运输、电路板线路设计以及物流配送等领域内有着广泛的应用。 * 旅行售货员问题 天文学家哈密顿提出,在一个有多个城市的地图网络中,寻找一条从给定的起点到给定的终点沿途恰好经过所有其他城市一次的路径。 对于一个给定的网络,确定起点和终点后,如果存在一条路径,穿过这个网络,我们就说这个网络存在哈密顿路径。 哈密顿路径问题被证明是“NP完备”的。难于找到一个有效的算法。    * 旅行售货员问题 从任意一点出发,路途中经过图中每一个结点当且仅当一次,则成为哈密顿回路。 要满足两个条件: 封闭的环 是一个连通图,且图中任意两点可达 经过图(有向图或无向图)中所有顶点一次且仅一次的通路称为哈密顿通路。 经过图中所有顶点一次且仅一次的回路称为哈密顿回路。       * 旅行售货员问题 问题定义 输入 无向连通图G=(V, E), 每个顶点都没有到自身的边。 输出 一条由任意一个节点开始,经过每个节点仅一次,最后返回开始节点的路径, 该路径的代价(即权值之和)最小。    * 旅行售货员问题 问题分析 解空间 排列树 可行性约束函数 顶点x[i]与顶点x[i-1]之间有边相连。 上界函数 当前费用+顶点x[i-1]与顶点x[i]的边的权值当前最优值。   * 旅行售货员问题 * 1 2 3 4 20 6 30 5 4 10 A B C D E F G H I J K L M N O P Q 1 2 3 4 3 4 4 3 4 2 3 2 2 4 2 3 最优解(1,3,2,4,1),最优值25 旅行售货员问题 n:图的顶点数 x:当前解 bestx:当前最优解 a:图的邻接矩阵 cc:当前费用 bestc:当前最优值 NoEdge:无边标记 * 旅行售货员问题 旅行售货员问题的解空间树是一棵排列树。设开始

文档评论(0)

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

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

1亿VIP精品文档

相关文档