PRIM算法图的最小生成树求解(共9页).doc
《PRIM算法图的最小生成树求解(共9页).doc》由会员分享,可在线阅读,更多相关《PRIM算法图的最小生成树求解(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上评分签名日期湖南商学院课程设计设计名称 PRIM算法最小生成树求解 课程名称 算法导论 学 期 2010-2011学年第1学期 学时学分 51学时 3学分 专业班级 信科0821 组员名单 熊春辉 周伟佳 刘志超 学 号 指导老师 王 勇 提交日期 2010年 11月27日 PRIM算法最小生成树求解一 问题描述:在科技发展的年代,许多问题都需要找到最简洁,最经济的方法去加以实现。假设在n个城市之间建立通信联络网,则联通n个城市只需要n-1条线路,这时,自然会考虑这样一个问题,如何在最节省经费的前提下建立这个通信网。对于n 个顶点的连通网可以建立许多不同的生成树,每一
2、颗生成树都可以是一个连通网。现在,我们要选择这样一颗生成树,也就是使总的耗费最少。这个问题就是构造连通网的最小代价生成树的问题。可以推广到任意一个图的最小生成树问题。我们通过学习与阅读发现了PRIM算法有其解决这样问题的优越性。二算法设计与分析:1.算法设计:构造最小生成树可以有多种算法。其中多数算法利用了最小生成树的下列一种简称为MST的性质:假设N=(V,E)是一个连通图,U是顶点集V的一个非空子集。若(u,v)是一条具有最小权值的边,其中u包含于U,v包含于V-U,则必存在一颗包含边(u,v)的最小生成树。更具体地说,我们维持一个集合S包含于V,在它上面已构造了到这步为止的生成树,初始,
3、S=s。每次迭代我们在S中增加一个结点,把结点v加入S能使“附加费用”min(e)=(u,v):u属于S,C(e)达到最小,并且包含了在生成树中达到这个最小值的边e=(u,v).这样解决此问题。2.算法描述:从U=u0u0属于V,S= 开始,重复执行下述步骤:在所有u属于U,v属于V-U的边(u,v)属于E中找一条代价最小的边(u0,v0)并入集合S,同时v0并入U,直到U=V为止,此时S中必有n-1条边,则T=(V,S)为G的最小生成树(3)结束3.算法分析:普利姆算法算法是前人的劳动成果,是正确的,对于同一个图而言,普利姆算法的时间复杂度,n为顶点数。三程序设计1程序设计的基本思路:。构造
4、图函数,初始状态各个顶点都是独立的,根据PRIM算法,将权排序,选择权最小的边,知道所有的顶点以n-1条边连接即结束,生成最小生成树。2程序内部实现的说明。本程序采用嵌套及其循环调用的方法实现最小生成树。采用调用PRIM算法函数void prim()。流程图:如下图所示步骤:权值分别为1,2,3,4,5的5条边由于满足上述条件依次输出,最后生成树如图b所示。(a)(b)四测试结果及分析1测试报告:特殊实例1:输入顶点数,边数,各条路径权值输出边路径特殊实例2:输入顶点数,边数,各条路径权值输出边路径实例3:输入顶点数,边数,各条路径权值输出边路径2分析总结:因此用PRIM算法求出了最小生成树,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PRIM 算法 最小 生成 求解
限制150内