- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计与分析实验报告
实验三 旅行商问题
院系: 班级: 计算机科学与技术 学号: 姓名: 任课教师: 成绩:
湘 潭 大 学
2016年5月
实验三 旅行商问题
实验内容
分别编程实现回溯法和分支限界法求TSP问题的最优解,分析比较两种算法的时间复杂度并验证分析结果。
二.实验目的
1、掌握回溯法和分支限界法解决问题的一般步骤,学会使用回溯法和分支限界法解决实际问题;
2、理解回溯法和分支限界法的异同及各自的适用范围。
三. 算法描述
旅行商问题的回溯法算法可描述如下:
Template class Type
Class Traveling{ friend Type TSP(int ** , int[],int ,Type);
Private;
Void Backtrack(int i);
Int n, //图G的顶点数
*x; //当前解
*bestx; //当前最优解
Type **a, //图G的邻接矩阵
cc, //当前费用
bestc, //当前最优解
NoEdge; //无边标记
};
Template class Type
Void TravelingType : : backtrack(int i)
{if(i ==n){ if(a[x[n-1]][x[n]]!=NoEdgea[x[n]][1]!=NoEdge (cc+a[x[n-1]][x[n]]+a[x[n]][1] +a[x[n]][1]bestc || bestc == NoEdge)){ for(int j = 1;j=n;j++) bestx[j] = x[j];
bestc == cc + a[x[n-1]][x[n]]+a[x[n]][1]};
}else{
For (int j = i;j= n;j++)
//是否可进入x[j]子树?
If(a[x[i-1]][x[j]] != NoEdge (cc+a[x[i-1]][x[j]] bestc || bestc == NoEdge)){
//搜素子树
Swap(x[i],x[j]);
cc += a[x[i-1]][x[i]];
Backtrack(i + 1);
cc -= a[x[i-1]][x[i]];
Swap(x[i],x[j]);
}
} }
Templateclass Type
Type TSP(Type**a, int v[], int n, Type NoEdge)
{TravelingType Y;
//初始化Y
Y.x = new int [n+1];
//置x为单位排列
For(int i = 1;i = n;i++)
Y.x[i] = i;
Y.a = a;
Y.n = n;
Y.bestc = NoEdge;
Y.bestx = v;
Y.cc = 0;
Y.NoEdge = NoEdge;
//搜索x[2:n]的全排列
Y.Backtrack(2);
Delete[]Y.x;
Return Y.bestc;
}
算法效率:
如果不考虑更新bestx所需的计算时间,则Backtrack需要O((n-1)!)计算时间。由于算法Backtrack在最坏情款下可能需要更新当前最优解O((n-1)!)次,每次更新需O(n)计算时间,从而整个算法的计算时间复杂性为O(n!)。
旅行商问题的分支界限法算法可描述如下:
使用优先队列来存储活节点,优先队列中的每个活节点都存储从根到该活节点的相应路径。具体算法可描述如下:
Templateclass Type
Class MinHeapNode{ firend TravelingType;
Public:
Operator Type() const {return lcost;}
Private:
Type lcost, //子树费用的下界
cc, //当前费用
rcost; //x[s:n-1]中定点最小出边费用和
Int s, //根节点到当前节点的路径为x[0:s]
*x; //需要进一步搜索的顶点是x[s+1:n-1]
};
四. 算法实现
源程序代码
/*回溯法*/
#includestdio.h
#includetime.h
#define N 5
double cc,//当前路径费用
bestc;//当前最优解费用
double a[N+1][N+1];//邻接矩阵,存放图的信息
您可能关注的文档
- 鲅鱼圈红星美凯龙玻璃幕墙工程安全专项施工方案范例.doc
- 初中英语语法大全范例.doc
- 白板学习笔记范例.doc
- 初中英语语法口诀范例.doc
- 白车身模态作业指导书(修改)范例.doc
- 初中英语语法梳理和提高——形容词和副词讲解范例.doc
- 数字电子技术范例.doc
- 初中英语语法形容词和副词的比较级和最高级简单记法范例.doc
- 硫铁回收可研范例.doc
- 初中英语重点知识范例.doc
- 深度解析(2026)《ISO 22002-12025食品安全前提方案—第1部分:食品制造》.pptx
- 深度解析(2026)《ISO 22002-52025食品安全前提方案—第5部分:运输和储存》.pptx
- 深度解析(2026)《ISO 22002-42025 食品安全前提方案 — 第4部分:食品包装制造》.pptx
- 徒步活动策划方案.doc
- 深度解析(2026)《ISO 22002-62025食品安全前提方案—第6部分:饲料及动物食品生产》.pptx
- 2026年新版郯城期末真题卷.doc
- 深度解析(2026)《ISO 22476-72012岩土工程勘察与测试 — 现场测试 — 第7部分:钻孔千斤顶试验》.pptx
- 深度解析(2026)《ISO 22090-22014 船舶与海洋技术 — 航向传送装置(THD) — 第2部分:地磁原理》.pptx
- 深度解析(2026)《ISO 23584-22012 光学和光子学 — 参考字典规范 — 第 2 部分:类与特性定义》:构建智能制造数据基石的专家视角与未来展望.pptx
- 深度解析(2026)《ISO 22932-92025 Mining — Vocabulary — Part 9 Drainage》:构建未来矿山“水脉”治理与可持续发展的新语言体系.pptx
最近下载
- (通 用)中考英语写作优秀范文必背篇(word版).docx VIP
- 2026届八省联考(T8联考)2026届高三年级12月检测训练数学试卷(含答案详解).docx
- 统编版高中语文选择性必修中册教学课件《为了忘却的记念》.pptx VIP
- 2025年适老化衣柜安全设计收纳方案.docx VIP
- 心血管-肾脏-代谢综合征(CKM)综合管理中国专家共识2025解读PPT课件.pptx VIP
- 新疆大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 2022年度广州经营性用地供地蓝皮书_解密.pdf VIP
- 颅内肿瘤 ppt课件.pptx VIP
- 2024-2025学年北京市西城区七年级上学期期末英语试卷(含详解).pdf VIP
- 2 2024年XXXXXXX医院胸痛中心现场核查迎检实施方案.pdf VIP
原创力文档


文档评论(0)