最小生成树.docx
《最小生成树.docx》由会员分享,可在线阅读,更多相关《最小生成树.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、最小生成树2、普里姆Prim算法1算法的基本思想:普里姆算法的基本思想:普里姆算法是另一种构造最小生成树的算法,它是按逐个将顶点连通的方式来构造最小生成树的。从连通网络N=V,E中的某一顶点u0出发,选择与它关联的具有最小权值的边(u0,v),将其顶点参加到生成树的顶点集合U中。以后每一步从一个顶点在U中,而另一个顶点不在U中的各条边中选择权值最小的边(u,v),把该边参加到生成树的边集TE中,把它的顶点参加到集合U中。如此重复执行,直到网络中的所有顶点都参加到生成树顶点集合U中为止。假设G=(V,E)是一个具有n个顶点的带权无向连通图,T(U,TE)是G的最小生成树,其中U是T的顶点集,TE
2、是T的边集,则构造G的最小生成树T的步骤如下:1初始状态,TE为空,U=v0,v0V;2在所有uU,vV-U的边(u,v)E中找一条代价最小的边(u,v)并入TE,同时将v并入U;重复执行步骤2n-1次,直到U=V为止。在普里姆算法中,为了便于在集合U和(V-U)之间选取权值最小的边,需要设置两个辅助数组closest和lowcost,分别用于存放顶点的序号和边的权值。对于每一个顶点vV-U,closestv为U中距离v近期的一个邻接点,即边(v,closestv)是在所有与顶点v相邻、且其另一顶点jU的边中具有最小权值的边,其最小权值为lowcostv,即lowcostv=costvclos
3、estv,采用邻接表作为存储构造:设置一个辅助数组closedge:lowcost域存放生成树顶点集合内顶点到生成树外各顶点的各边上的当前最小权值;adjvex域记录生成树顶点集合外各顶点距离集合内哪个顶点近期(即权值最小)。应用Prim算法构造最小生成树的经过:如下所示为构造生成树的经过中,辅助数组中各分量值的变化情况,初始归Uv1,参加到U集合中的节点,我们将lowcost改成0以示:Prim算法1.概览普里姆算法Prim算法,图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点英语:Vertex(graphtheory),
4、且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫亚尔尼克英语:VojtchJarnk发现;并在1957年由美国计算机科学家罗伯特普里姆英语:RobertC.Prim独立发现;1959年,艾兹格迪科斯彻再次发现了该算法。因而,在某些场合,普里姆算法又被称为DJP算法、亚尔尼克算法或普里姆亚尔尼克算法。2.算法简单描绘1).输入:一个加权连通图,其中顶点集合为V,边集合为E;2).初始化:Vnew=x,其中x为集合V中的任一节点起始点,Enew=,为空;3).重复下列操作,直到Vnew=V:a.在集合E中选取权值最小的边,其中u为集合Vnew中的元素,而v不在Vnew集合当中,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最小 生成
限制150内