数据结构课程设计--最小生成树

数据结构课程设计--最小生成树

ID:25797616

大小:598.00 KB

页数:19页

时间:2018-11-22

数据结构课程设计--最小生成树_第1页
数据结构课程设计--最小生成树_第2页
数据结构课程设计--最小生成树_第3页
数据结构课程设计--最小生成树_第4页
数据结构课程设计--最小生成树_第5页
资源描述:

《数据结构课程设计--最小生成树》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、成绩评定表学生姓名班级学号专业信息与计算科学课程设计题目1.分支限界解决布线问题2.船只停泊港口管理动态规划解决最长公共子序列问题评语组长签字:成绩日期20年月日15课程设计任务书学院理学院专业信息与计算科学学生姓名班级学号课程设计题目1.分支限界解决布线问题2.动态规划解决最长公共子序列问题实践教学要求与任务:1、巩固和加深对计算机算法分析与设计基本知识的理解。2、初步掌握简单软件的分析方法和设计方法。3、了解与课程有关的工程技术规范,能正确解释和分析设计结果。4、具体任务(1)分支限界解决布线问题(2)动态规划解决最长公共子序列问题。工作计划与进度安排:第一天查阅资相关料;第二、三天

2、程序设计;第四天程序调试;第五天答辩指导教师:201年月日专业负责人:201年月日学院教学副院长:201年月日15摘要“计算机算法设计与分析”着重介绍了计算机算法设计领域的基本原则和根本原理。深入分析了一些计算机模型上的算法,介绍了一些和设计有效算法有关的数据结构和编程技术,为读者提供了有关递归方法、分治方法和动态规划方面的详细实例和实际应用,并致力于更有效算法的设计和开发。同时,对NP完全等问题能否有效求解进行了分析,并探索了应用启发式算法解决问题的途径。本文第一问,随着信息技术的发展和嵌入式设备的广泛使用.电路布线问题越来越受到人们的重视.要使电子电路获得最佳性能.不仅元器件的布置占

3、有着重要的地位.而且导线的布设也是非常重要的.特别是在涉及到线路成本的布线方案中.一个好的布线算法就显得尤为重要本文首先对一类电路板低成本布线问题进行了分析.进而给出了解决这一问题的分支限界解法.并对所提出算法的时间复杂度进行了分析和讨论。本文第二问,掌握动态规划法的原理,并能够按其原理编程实现求两个序列数据的最长公共子系列,以加深对其的理解。关键字:分支限界;布线问题;动态规划15目录1分支限界解决布线问题11.1问题重述11.2问题分析11.3算法分析与设计11.4算法的实现与结果22动态规划解决最长公共子序列问题92.1问题重述92.2问题分析92.3算法分析与设计92.4算法实现

4、与结果10参考文献14151分支限界解决布线问题1.1问题重述`布线问题:如图1所示,印刷电路板将布线区域划分成n*m个方格。精确的电路布线问题要求确定连接方格a的中点到b的中点的最短布线方案。在布线时,电路只能沿直线或直角布线,如图1所示。为了避免线路相交,已经布线的方格做了封锁标记(如图1中阴影部分),其他线路不允许穿过被封锁的方格。1.2问题分析题目的要求是找到最短的布线方案,从图1的情况看,可以用贪婪算法解决问题,也就是从a开始朝着b的方向垂直布线即可。实际上,再看一下图2,就知道贪婪算法策略是行不通的。因为已布线的放个没有规律的所以直观上说只能用搜索方法去找问题的解。根据布线方

5、法的要求,除边界或已布线处,每个E-结点分支扩充的方向有4个:上、下、左、右,也就是说,一个E-结点扩充后最多产生4个活结点。以图2的情况为例,图的搜索过程如图3所示。搜索以a为第一个E-结点,以后不断扩充新的活结点,直到b结束(当然反之也可以)。反过来从b到a,按序号8-7-6-5-4-3-2-115就可以找到最短的布线方案。从图3中也可以发现最短的布线方案是不唯一的。且由此可以看出,此问题适合用分支限界搜索。1.3算法分析与设计算法分析:分支限界搜索法是一种在问题解空间上进行搜索尝试的算法。所谓“分支”是采用广度优先的策略,依次搜索E-结点的所有分支,也就是所有的相邻结点。和回溯法一

6、样,在生成的结点中,抛弃那些不满足约束条件(或者说不可能到处最优可行解)的结点,其余结点加入活结点表。然后从表中选择一个节点作为下一个E-结点,继续搜索。选择下一个E-结点的方式不同,会出现几种不同的分值搜索方式。FIFO搜索先进先出(FIFO)搜索算法要依赖“队”做基本的数据结构。一开始,根节点是唯一的活结点,根节点入队。从活结点队中取出根节点后,作为当前扩展结点。对当前扩展结点,先从左到右地产生它的所有儿子,用约束条件检查,把所有满足约束函数的儿子加入或节点队列中。再从活结点表中取出队首结点(对中最先进来的结点)为当前结点,……,直到找到一个解或活结点队列为空为止。LIFO搜索后进先

7、出(LIFO)搜索算法要依赖“栈”做基本的数据结构。一开始,根结点入栈,从栈中弹出一个结点为当前扩展结点。对当前扩展结点,从左到右地产生它的所有儿子,用约束条件检查,把所有满足约束函数的儿子入栈,再从栈中弹出一个结点(栈中最后进来的结点)为当前扩展结点,……,直到找到一个解或栈为空为止。优先队列式搜索为了加速搜索的进程,应采用有效的方式选择E-结点进行扩展。优先队列搜索,对每一个活结点计算一个优先级(某些信息的函数值),并根据这些优

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。