三种算法得到最小重量生成树

对于一个图可以有很多个生成树,在通信网络中利用生成树来实现广播是比较经济的,但同时又要考虑生成树的边的整体的成本,这时就需要考虑如何得到最为经济,时延最小的生成树,即最小质量生成树。下面介绍利用三种算法得到最小质量生成树。

三种算法得到最小重量生成树_第1张图片

Prim-Dijkstra算法

方法:找到源,找到最小的边进行延展,一次延展一条边,但不要构成回路。

三种算法得到最小重量生成树_第2张图片

 Kruskal算法

方法:找点去边,不必从源开始,选取边中重量最小的进行连接,但不构成回路。

注:若两条边的重量一样,这可以同时连接。三种算法得到最小重量生成树_第3张图片

 分布式构造MST算法

方法:找点去边,针对所有节点找最短的边,所有节点都参与了延展。最后再将两个孤立的部分连接起来。(为什么会有两个孤立的部分,我理解的是有两个点不以它们的公共边为最小边,造成了两部分的孤立)三种算法得到最小重量生成树_第4张图片

讲到这里,大家大概懂了,让我们再来看一个例子。

三种算法得到最小重量生成树_第5张图片

说的不对的地方,还望批评指正!

你可能感兴趣的:(算法)