繁体   English   中英

加权有向图的Prim算法

[英]Prim's algorithm for weighted directed graph

我正在学习最小生成树。 我研究了加权有向图的Prim算法。

算法很简单

  • 您有两组顶点,已访问和未访问
  • 将所有边缘的距离设置为无穷大
  • 从非访问集中的任何顶点开始,并探索其边缘
  • 在所有边缘中,如果未访问目标顶点并且边缘的权重小于目标顶点的距离,则用边缘的权重更新目标顶点的距离
  • 选择距离最小的未访问顶点,然后再次执行直到访问所有顶点

我相信通过上述算法,我将能够在所有生成树中找到开销最小的生成树,即最小生成树。

但是我将其应用于以下示例,但我认为它是失败的。

考虑以下示例

顶点为{v1,v2,v3,v4,v5},且边缘具有权重
[x,y):w =>
(v1,v2):8
(v1,v3):15
(v1,v4):7
(v2,v5):4
(v4,v5):7

首先,我探索v1,它具有v2,v3,v4的边缘,因此图变为
访问顶点v1和(顶点,距离)=>
(v2,8)
(v3,15)
(v4,7)

现在v4的距离最小,即7,所以我探索了v4,它具有到v5的边缘,因此发生以下修改
访问了顶点v4和(顶点,距离)=>(v5,7)

现在,所有v5之间的距离最小,即7,所以我探索v5且它没有任何边缘,所以我将其标记为已访问

访问了Vertex v5

现在,混乱从这里开始

距离最小的顶点现在是v2,它具有权重为4的v5的边,当前v5的距离是7,先前由边(v4,v5)指定的距离是7,所以,我相信可以生成最小的生成树,则应将v5的距离从7更新为4 <7,将其更新为4,但这不是因为v5已经被访问过,并且Prim's Algorithm不会更新已访问的顶点的距离,而v5的距离将保持7而不是4这棵树将没有最低成本

我说对了吗? 还是我有任何错误?

谢谢

首先,我应该提到Prim的算法仅适用于无向图,因此,如果我们认为该图是无向的,这是该算法在您的案例中的逐步开发:

在此处输入图片说明

而且,您应该考虑到在有向图中甚至不可能多次找到最小生成树,但是,有向图最接近MST的概念是最小成本树状结构

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM