- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学与计算机学院
课程设计说明书
课 程 名 称: 算法设计与分析-课程设计
课 程 代 码: 7106620
题 目: 树的最大连通分支问题
年级/专业/班: 2008/信息与计算科学 /2班
学 生 姓 名: 何德宏
学 号: 312008070102221
开 始 时 间: 2011 年 12 月 5 日
完 成 时 间: 2011 年 12 月 18 日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书撰写质量(45)
总 分(100)
指导教师签名: 年 月 日
目 录
TOC \o 1-2 \h \z 1 引 言 1
1.1 问题的提出 1
1.2任务与分析 1
2 程序的主要功能 3
2.1树的存储功能 3
2.2连通分支的计算功能 3
3 程序运行平台 3
4 总体设计 3
4.1算法设计 3
4.2流程设计 6
5 模块分析 7
5.1 树的存储模块 7
5.2 计算树的最大连通分支模块 9
6 系统测试 10
7 结论 14
8 致谢 15
9 参考文献 16
附录 17
摘 要
随着计算机的普及,人们解决问题的方法也变得多样化,同一个问题总想用简单实用的方法去解决,其中树的最大连通分支问题就是一个很典型的例子,我们可以用蛮力法和动态规划法去实现,但用动态规划的方法效率更高。因此该系统利用动态规划的方法编程实现了求解树的最大连通分支问题,该程序能够快速输入树的结构,并能计算出树的最大连通分支。此外,代码简洁易懂,界面友好,能一目了然的看出最终的结果,便于操作。
关键词:树的最大连通分支;动态规划; ……
1 引 言
1.1 问题的提出
连通分支定义: 设X是一个拓扑空间.对于X中的点的连通关系而言的每一个等价类称为拓扑空间X的一个连通分支.如果Y是拓扑空间X的一个子集.Y作为X的子空间的每一个连通分支称为X的子集Y的一个连通分支. 拓扑空间X≠ 的每一个连通分支都不是空集;X的不同的连通分支无交;以及X的所有连通分支之并便是X本身.此外,x,y∈X属于X的同一个连通分支当且仅当x和y连通.树作为一种特殊的图,它本身就是连通的,里面还有许多的连通子图,当每个顶点加入权值后,可以计算出权值最大的连通子图。使用的方法可以有很多,其中蛮力法和动态规划是两种比较典型的方法,相对于蛮力法而言,动态规划的方法效率更高,所以最后选择了动态规划方法来计算树的最大连通分支问题。
1.2任务与分析
给定一棵树T,树中每个顶点u都有一个权值w(u),而且权值可以是正数或者负数。现在要找到树T的一个连通子图使该子图的权之和最大,要求编程实现计算出树的最大连通分支
传统的方法为蛮力法,即依次以每一个顶点为根节点,然后找出以该节点为根节点的所有连通子图,分别计算出连通子图的权值之和,最后找出权值之和最大的连通子图,便可得出最后的结果,但该方法效率不高,如果给定是一棵有很多节点的树,那么这效率将会非常低下。为此,我们将使用动态规划的方法来求解此问题:对于以X为根的子树分两种情况考虑:
(1)、包含根(f[x,1]):f[x,1]等于所有大于0的f[son[x],1]的和加w[x]。
(2)、不包含根(f[x,0]):f[x,0]=max{max(f[son[x],1],f[son[x],0])}。记忆话搜索递归求解。
算法分析:
最大连通分支在子树或树中,因此对树进行遍历,依次求出以每个结点为树根的最大连通分支权值
树根
树根
root
T1
T2
W0
W0
Wr=Wr+Wt1
root
T1
T2
W0
W0
…
…
树根root
树根
root
T1
T2
该问题具有两个子性质:
最有子结构性质
子问题重叠性质
W
W0
W0
W0
算法实现:
1、对于叶子结点或儿子个数为0的结点,其最大连通分支权值为该 结点的权值
2、某一结点的最大连通权值>0,则将其值加到它的父亲结点的最大连通权值,反之舍弃该值
最后求出根结点的最大连通权值,结束遍历
所求最大连通分支权值即结点 的最大连通权值
最后采用动态规划求解,类似于图的后续遍历,这方法避免了很多蛮力法的缺点,因此效率也得到了很大的提高。
2 程序的主要功能
2.1树的存储功能
要想计算树的最大连通分支,首先需要给定一棵树,因此需要存储树的基本信息,其中最
您可能关注的文档
最近下载
- 新解读《GB_T 9126.2-2023管法兰用非金属平垫片 第2部分:Class系列》最新解读.pptx VIP
- 【医脉通】中国住院患者血糖管理专家共识.pdf VIP
- XCT-2000F 超声波流量计说明书.pdf VIP
- 2025年贵州省公安厅招聘警务辅助人员笔试真题(附答案).docx VIP
- 主题班会:小学生法制教育.ppt VIP
- 新青岛版数学一年级上册第4单元 漂亮的粘贴画 11~20各数的认识 单元教学课件.pptx
- [调色配方.doc VIP
- 2024-2025人教精通版小学英语六年级上册期末考试测试卷及参考答案(共5套).docx VIP
- 天津一汽丰田-锐志-产品使用说明书-2.5V 菁锐版-TV7254V5Q-锐志.pdf VIP
- 超星尔雅学习通《新中国史(吉林大学)》2024章节测试答案.docx VIP
原创力文档


文档评论(0)