• /  16
  • 下载费用: 11.9积分  

数据结构课程设计汇本案报告

'数据结构课程设计汇本案报告'
数据结构课程设计 设计说明书TSP问题起止日期: 2016 年 6 月 27 日 至 2016 年 7 月 1 日学生姓名班级学号成绩指导教师(签字)2016年 7 月 1 日 目 录第1章 需求分析 11.1 简介 11.2 系统的开发背景 11.3 研究现状 1第2章 概要设计 22.1系统开发环境和技术介绍 22.2系统需求分析 22.2.1总体功能分析 22.2.2核心功能分析 3第3章 详细设计 43.1系统开发流程 43.2系统模块设计 43.3 系统结构 63.2 系统流程图 6第4章 调试分析 74.1程序逻辑调试 74.2系统界面调试 8第5章 测试结果 95.1测试环境 95.2输入输出测试项目 95.3 测试结果 10结 论 11参考文献 11附录 12第1章 需求分析1.1 简介旅行商问题,即TSP问题(Travelling Salesman Problem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。1.2 系统的开发背景TSP的历史很久,最早的描述是1759年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点。TSP由美国RAND公司于1948年引入,该公司的声誉以及线形规划这一新方法的出现使得TSP成为一个知名且流行的问题。1.3 研究现状TSP问题是一个组合优化问题。该问题可以被证明具有NP计算复杂性。因此,任何能使该问题的求解得以简化的方法,都将受到高度的评价和关注。旅行推销员问题是图论中最著名的问题之一,即“已给一个n个点的完全图,每条边都有一个长度,求总长度最短的经过每个顶点正好一次的封闭回路”。Edmonds,Cook和Karp等人发现,这批难题有一个值得注意的性质,对其中一个问题存在有效算法时,每个问题都会有有效算法。迄今为止,这类问题中没有一个找到有效算法。倾向于接受NP完全问题(NP-Complete或NPC)和NP难题(NP-Hard或NPH)不存在有效算法这一猜想,认为这类问题的大型实例不能用精确算法求解,必须寻求这类问题的有效的近似算法。第2章 概要设计2.1 系统开发环境和技术介绍Microsoft Visual C++ 6.0不仅是一个C++ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。2.2 系统需求分析2.2.1 总体功能分析TSP问题最容易想到的也肯定能得到最佳解的算法是穷举法,即考虑所有可能的旅行路线,从中选择最佳的一条。但是用穷举法求解TSP问题的时间复杂度为Ο(n!),当n大到一定程度后是不可解的。于TSP问题,一个旅行家要穿过多个城市,已知城市个数,以及城市间距,每个城市经历且只经历一次,求出最短路径解和最短路径长度。本实验只要求近似解,可以采用贪心法求解:任意选择某个城市作为出发点,然后前往最近的未访问的城市,直到所有的城市都被访问并且仅被访问一次,最后返回到出发点。输入城市数目N为正整数,城市间距离按邻接矩阵方式排列输入,最小值为0,共有N*N个数值;输出最优解和最优值。2.2.2 核心功能分析以下是核心功能代码分析:贪心算法排序:为了解决问题,需要寻找一个构成解的候选对象集合,它可以优化目标函数,贪婪算法一步一步的进行。起初,算法选出的候选对象的集合为空。接下来的每一步中,根据选择函数,算法从剩余候选对象中选出最有希望构成解的对象。如果集合中加上该对象后不可行,那么该对象就被丢弃并不再考虑;否则就加到集合里。每一次都扩充集合,并检查该集合是否构成解。如果贪婪算法正确工作,那么找到的第一个解通常是最优的。代码如下图所示:第3章 详细设计3.1 系统开发流程1、上网查找与题目相关的资料,并重点阅读课本上的相关知识。2、对问题进行抽象,得到描述问题的算法,编写出程序。3、设计完整的程序进行演示。4、对设计进行总结分析。3.2 系统模块设计功能模块: 主函数:int main() 主要由以下函数构成: int DistanceMin(int *p):搜索得到与当前距离最近的城市,返回当前距离最短节点对应下标 void CreatArry():动态创建标记数组 void CreateMatrix():动态创建矩阵 void TSP():贪心算法排序3.3 系统流程图第4章 调试分析4.1 程序逻辑调试由于以下程序中定义CreateMatrix时忘记加括号导致程序错误。4.2 系统界面调试请输入城市数:输入城市间距离的邻接矩阵:输入一个邻接矩阵 0 20 30 30 80 50 20 0 40 55 70 30 30 40 0 60 65 45 30 55 60 0 75 35 80 70 65 75 0 90 50 30 45 35 90 0第5章 测试结果5.1 测试环境安全无误,测试运行其上的软件和硬件环境的描述。准备一些数据用于测试。设计测试用例时,相应的输出结果正确,而且测试用例应包括合理的输入数据和不合理的输入数据。5.2 输入输出测试项目(1)输入:a.城市数:6(如下图):b. 城市间距离的邻接矩阵(如下图)(2)输出:a.最短路径:1->2,2->6,6->4,4->3,3->5,5->1.b.最短距离:2905.3 测试结果结 论本次数据结构的课程设计,从第一天的选题到最后一
关 键 词:
数据结构 课程设计 本案 报告
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:数据结构课程设计汇本案报告
链接地址: https://www.wenku365.com/p-39782614.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开