算法设计-第5章.ppt

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

第5章 回溯法 学习要点 理解回溯法的深度优先搜索策略。 掌握用回溯法解题的算法框架 (1)递归回溯 (2)迭代回溯 (3)子集树算法框架 (4)排列树算法框架 通过应用范例学习回溯法的设计策略。 (1)装载问题; (2)批处理作业调度; (3)符号三角形问题 (4)n后问题; (5)0-1背包问题; (6)最大团问题; (7)图的m着色问题 (8)旅行售货员问题 (9)圆排列问题 (10)电路板排列问题 (11)连续邮资问题 5.13 回溯法效率分析 回溯法的最坏时间和空间复杂度(理论分析) 时间性能: ——最坏情况要搜索到整个解空间,因此复杂度是指数型。若剪枝操作有力,则平均性能往往很好。 空间性能 ——回溯法的附加空间为O(h),其中h为搜索树的高度。 选择合适的搜索顺序,可以使得上界函数更有效的发挥作用。例如在搜索之前可以将顶点按度从小到大排序。这在某种意义上相当于给回溯法加入了启发性。 四、进一步改进 5.8 图的m着色问题 一、基本概念 二、问题描述 二、问题分析 三、算法描述 四、复杂性分析 一、基本概念 给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的2个顶点着不同颜色。这个问题是图的m可着色判定问题。 若一个图最少需要m种颜色才能使图中每条边连接的2个顶点着不同颜色,则称这个数m为该图的色数。 求一个图的色数m的问题称为图的m可着色优化问题。 四色猜想: 图 地图及其相应的平面图 二、问题描述 给定图G=(V,E)和m种颜色,如果这个图不是m可着色,给出否定回答;如果这个图是可着色的,找出所有不同的着色法。 用图的邻接矩阵a来表示无向连通图G=(V,E)。若(i,j)属于图的边集E,则a[i,j]=1,否则a[i,j]=0。 整数1,2, …,m用来表示m中不同的颜色。顶点i所着的颜色用X[i]表示。 三、问题分析 定义解向量:(x1, x2, … , xn)表示顶点i所着颜色x[i] 构造解空间树。 问题的解空间可表示为一棵高度为n+1的完全m叉树。解空间树的第i层中每个结点都有m个儿子,每个儿子相应于x[i]的m个可能的着色之一。第n+1层结点均为叶子结点。 可行性约束函数:顶点i与已着色的相邻顶点颜色不重复。 (a[k][j]==1)(x[j]!=x[k]) 三、算法描述 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 ( 约束函数 ) Backtrack(t+1); x[t]=0; } } 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; } Ok(t) 图m可着色问题的解空间树中内结点个数是 ∑mi(0≤i≤n-1)。 对于每一个内结点,在最坏情况下,用ok检查当前扩展结点的每一个儿子所相应的颜色可用性需耗时O(mn)。因此,回溯法总的时间耗费是 ∑mi(mn)=nm(mn-1)/(m-1)=O(nmn) (0≤i≤n-1) i=0 n-1 四、复杂性分析 5.9 旅行售货员问题 一、问题描述 二、问题分析 三、算法描述 四、复杂性分析 某售货员要到若干城市去推销商品,已知各城市之间的路程,他要选定一条从驻地出发,经过每个城市一遍,最后回到住地的路线,使总的路程最短。 该问题是一个NP完全问题, 有(n-1)!条可选路线 一、问题描述 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), (1,4,2,3,1) 最优值25 (1)定义解空间:X={12341,12431,13241,13421,14231,14321} (2)构造解空间树: (3)约束条件? 1 20 2 3 4 30 6 10 4 5 A B C F L G M 4 3 3 4 D H N I O 4 2 2 4 E J P K Q 3 2 2 3 2 3 4 1 59 66 25 66 25 59 一、问题分析 a[x[i-1]

文档评论(0)

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

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

1亿VIP精品文档

相关文档