11-1方法概述.ppt

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

* 复杂度分析: 计算可行性约束需要O(n)时间,在最坏情况下有 O(2n)个结点需要计算可行性约束,故解符号三角形问题的回溯算法所需的计算时间为 O(n2n)。 11-6 符号三角形问题 * 问题描述:略 解表示和解空间:{ (x1,x2,…,xn)|xi∈{0,1}, i=1~n } 解空间树: 11-7 0-1背包问题 * 无限界函数的算法 KnapBacktrack( int i ) { //cw当前背包重量,cv当前背包价值,bestv当前最优价值 if( i n) { //搜索到可行解 bestv = ( bestv cv )? cv : bestv; output( x ); } else{ if ( cw + w[i] =c ) { //走左子树 x[i]= 1; cw+=w[i]; cv += v[i]; KnapBacktrack( i+1); cw -= w[i]; cv -= v[i]; } //以下走右子树 x[i] = 0; KnapBacktrack( i+1); } } 11-7 0-1背包问题 main(float c, int n, float w[], float v[], int x[]) { //主程序 float cw=0.0, cv = 0.0, bestv = 0.0; KnapBacktrack(1); } * 有限界函数的算法 —基本思想: 设r是当前扩展结点z的右子树(或左子树)的价值上界,如果cv+r = bestv时,则可以裁剪掉右子树(或左子树)。 一种简单的确定z的左、右子树最优值上界的方法(设z为第k层结点): 左子树上界 = i=k∑i=nvi,右子树上界=i=k+1 ∑i=nvi — 求经扩展结点z的可行解价值上界的方法: 计算至扩展结点的当前背包价值 已知xi,i=1~k-1,当前背包价值cv=i=1 ∑ i=k-1vixi 最后, 经z左子树的可行解价值上界=cv + 左子树上界 经z右子树的可行解价值上界= cv + 右子树上界 — 算法(略) 11-7 0-1背包问题 * 问题描述: 给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的2个顶点着不同颜色。这个问题是图的m可着色判定问题。 若一个图最少需要m种颜色才能使图中每条边连接的2个顶点着不同颜色,则称这个数m为该图的色数。求一个图的色数m的问题称为图的m可着色优化问题。 四色猜想: 在一个平面或球面上的任何地图能够只用4种颜色来着色,使相邻的国家在地图上着不同的颜色。假设每个国家在地图上是单连通区域,两个国家相邻则其边界长度不为0. 11-8 图的m着色问题 右图是一个有5个区域的地图及其相应的平面图。 * 解向量:(x1, x2, …, xn)表示顶点i所着颜色x[i]; 可行性约束函数:顶点i与已经着色的相邻顶点颜色不重复。 11-8 图的m着色问题 void Color::Backtrack(int t) { if (tn) { 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) { // 检查颜色可用性 for (int j=1;j=n;j++) if ((a[k][j]==1)(x[j]==x[k])) return false; return true; } * 算法复杂度分析: 图m可着色问题的解空间树中内结点个数是 。对于每一个内结点,在最坏情况下,用ok检查当前扩展结点的每一个儿子所相应的颜色可用性需耗时O(mn)。因此,回溯法总的

文档评论(0)

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

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

1亿VIP精品文档

相关文档