- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(算法分析的设计)第5章回溯法.ppt
* 说明 1 2 4 3 5 5 1 2 3 4 地图 相应的平面图 * 搜索子集树的一般算法 void backtrack( int t) { if(tn) output(x); else for(int i=0;i=1;i++) { x[t]=i; if(constrain(t)bound(t)) backtrack(t+1); } } * 旅行商问题(TSP) 1 3 2 4 20 30 10 6 5 4 4顶点的无向带权图 A B C D E F G L M H I N O J K P Q 1 3 4 2 3 4 3 2 4 2 3 2 2 3 4 4 n=4的TSP问题的解空间树(排列树) * 排列树 排列树 当所给问题是确定n个元素满足某种性质的排列时,相应的解空间树被称为排列树. 比如旅行商问题TSP * 搜索排列树的一般算法 void backtrack( int t) { if(tn) output(x); else for(int i=t;i=n;i++) { swap(x[t],x[i]); if (constrain(t)bound(t)) backtrack(t+1); swap(x[t],x[i]); } } * 提纲 两个有趣的问题 回溯法的算法框架 实例分析 回溯法的效率分析 本章小结 * 实例分析 旅行商问题 符号三角形问题 N皇后问题 最大团问题 图的m着色问题 圆排列问题 电路板排列问题 连续邮资问题 骑士巡游问题 * 旅行商问题 * 旅行商问题(TSP问题)P139 旅行商问题 问题描述:某销售商要到若干个城市去推销商品,已知各城市之间的路程(或费用)。要求为给旅行商选择一条从驻地出发的路径,经过每个城市一次,最后返回驻地,使得该路径(或总的旅费)最短(或最小)。 NP难问题 应用背景 物流 驻地 * 利用回溯法求解TSP问题 * 通过实例分析问题 1 3 2 4 20 30 10 6 5 4 4顶点的无向带权图 A B C D E F G L M H I N O J K P Q 1 3 4 2 3 4 3 2 4 2 3 2 2 3 4 4 n=4的TSP问题的解空间树(排列树) * 可能的周游路线 A B C D E F G L M H I N O J K P Q 1 3 4 2 3 4 3 2 4 2 3 2 2 3 4 4 n=4的TSP问题的解空间树(排列树) 对于n=4的TSP问题,其可能的周游路线有6条。 ——对于n=N的TSP问题,其可能的周游路线为(n-1)!条。 每个叶结点对应一条周游路线 * 回溯法的求解过程 A B C D E F G L M H I N O J K P Q 1 3 4 2 3 4 3 2 4 2 3 2 2 3 4 4 在结点L处记录所找到的周游路线(1-2-3-4-1),其费用为59 4 A B C D E F G L M H I N O J K P Q 1 3 4 2 3 3 2 4 2 3 2 2 3 4 4 由于F处已没有可扩展结点,所以算法继续向上回溯,F为死结点 * 回溯法的求解过程 4 A B C D E F G L M H I N O J K P Q 1 3 4 2 3 3 2 4 2 3 2 2 3 4 4 在结点M处记录所找到的周游路线(1-2-4-3-1),其费用为6659,所以舍弃该结点。 按上述搜索原则,对整个排列树进行遍历,共找到6条可能的周游路径,其中费用最少的周游路径为 1-3-2-4-1(其费用为25) * 剪枝函数的引入 剪枝函数的引入 目的:提高回溯法的搜索效率; 剪枝函数的设定: 采用当前已知的最短路径(为X)为标准,对于有n个结点的TSP问题来说,假设当前搜索第i层(1in)的某个结点E 如果当前路径长度<X,则以E为扩展结点继续向下一层搜索; 如果当前路径长度>=X,则表明以E为根结点的子树中不包含最优解,将以E为根结点的子树中所有结点都置为死结点,算法向E最近的祖先活结点回溯; * 回溯法的求解过程 4 A B C D E F G L M H I N O J K P Q 1 3 4 2 3 3 2 4 2 3 2 2 3 4 4 在结点I处记录所找到的周游路线(1-3-4),其费用为2625,所以舍弃该结点。I为根的子树不可能包含更优的解,剪去。 按上述搜索原则,对整个排列树进行遍历,共找到6条可能的周游路径,其中费用最少的周游路径为 1-3-2-4-1(其费用为25) * #include iostream.h #inclu
您可能关注的文档
- (病历质控培训知识班课件)住院病案首页填写与质控.ppt
- (病历质控培训知识班课件)病案质控与法律.ppt
- (病原免疫实验课件)实验三免疫标记技术知识.ppt
- (病原生物和 与免疫学基础)第6章免疫学应用.ppt
- (病原生物和 与免疫学实验)免疫学探索性实验.ppt
- (病原生物和 与免疫学实验)免疫实验二:沉淀反应和 与溶血试验-陈玮琳、翁莉霞.ppt
- (病原生物和 与免疫学实验)实验二基础培养基、细菌接种及 其常用生化反应.ppt
- (病原生物和 与免疫学实验)实验六白喉杆菌、厌氧菌、分枝杆菌病毒及其它微生物.ppt
- (病案质控培训班讲义)8.病历质控相关管理流程及反馈.ppt
- (病案质控培训班讲义)9.《医疗机构病案相关管理规定(2013年版)》.ppt
文档评论(0)