【基础算法】关于图论中最小生成树(Minimum Spanning Tree)那些不可告人的秘密(二)

简介: 【基础算法】关于图论中最小生成树(Minimum Spanning Tree)那些不可告人的秘密

什么是最小生成树


为了直观,还是用图片给大家解释一下:

微信图片_20220420150646.png

- 对于一个图而言,它可以生成很多树,如右侧图2,图3就是由图1生成的。


- 从上面可以看出生成树是将原图的全部顶点以最少的边连通的子图,对于有n个顶点的连通图,生成树有n-1条边,若边数小于此数就不可能将各顶点连通,如果边的数量多于n-1条边,必定会产生回路


- 对于一个带权连通图,生成树不同,树中各边上权值总和也不同,权值总和最小的生成树则称为图的最小生成树


3

关于最小生成树的算法

关于最小生成树有两种算法:Prim算法Kruskal算法

Prim算法

基本思想:

假设有一个无向带权图G=(V,E),他的最小生成树为MinTree=(V,T),其中V为顶点集合,T为边的集合。

求边的集合T的步骤如下:


①令 U={u0},T={}。其中U为最小生成树的顶点集合,开始时U中只含有顶点u0(u0可以为集合V中任意一项),在开始构造最小生成树时我们从u0出发。


②对所有u∈U,v∈(V – U)(其中u,v表示顶点)的边(u,v)中,找一条权值最小的边(u’,v’),将这条边加入到集合T中,将顶点v’加入集合U中。


③直到将V中所有顶点加入U中,则算法结束,否则一直重复以上两步。


符号说明:我们用大写字母表示集合,用小写字母表示顶点元素,用<>表示两点之间的边



为了更好的说明问题,我们下面一步一步来为大家展示这个过程。


⑴初始状态:U={a}   V={b,c,d,e }   T={}

微信图片_20220420150656.png



集合U和V相关联的权值最小的边是<a,b>,于是我们将b加入U。U={a,b},V={d,c,e },T={<a,b>}

微信图片_20220420150701.png



此时集合U和V相关联的权值最小的边是<b,c>,于是我们将c加入U。U={a,b,c} ,V={d,e },T={<a,b>, <b,c>}

微信图片_20220420150704.png

⑷显然此时集合U和V中相关联的权值最小的边是<c,d>,于是我们将d加入U。U={a,b,c,d} ,V={e },T={<a,b>, <b,c>,<c,d>}

微信图片_20220420150708.png


⑸最后集合U和V中相关联的权值最小的边是<d,e>,于是将e加入U。U={a,b,c,d,e} ,V={},T={<a,b>, <b,c>,<c,d>,<d,e>}

到此所有点访问完毕。

微信图片_20220420150712.png



又到了激动银心的看代码时间了

点击文末的“阅读原文”字样可以直接复制黏贴获取代码哦

代码小说明

将城市X标记为visit=true时,就表示该城市加入到集合U,用sum累加记录边的总费用

微信图片_20220420150716.jpg

相关文章
|
6月前
|
机器学习/深度学习 安全 算法
【图论】【割点】【C++算法】928. 尽量减少恶意软件的传播 II
【图论】【割点】【C++算法】928. 尽量减少恶意软件的传播 II
|
6月前
|
算法 测试技术 C++
【动态规划】【图论】【C++算法】1928规定时间内到达终点的最小花费
【动态规划】【图论】【C++算法】1928规定时间内到达终点的最小花费
|
1月前
|
算法 决策智能
基于prim算法求出网络最小生成树实现网络社团划分和规划
该程序使用MATLAB 2022a版实现路线规划,通过排序节点权值并运用Prim算法生成最小生成树完成网络规划。程序基于TSP问题,采用遗传算法与粒子群优化算法进行路径优化。遗传算法通过编码、选择、交叉及变异操作迭代寻优;粒子群优化算法则通过模拟鸟群觅食行为,更新粒子速度和位置以寻找最优解。
|
4月前
|
存储 传感器 算法
|
5月前
|
算法 Java
Java数据结构与算法:贪心算法之最小生成树
Java数据结构与算法:贪心算法之最小生成树
|
5月前
|
算法 数据挖掘 定位技术
算法必备数学基础:图论方法由浅入深实践与应用
算法必备数学基础:图论方法由浅入深实践与应用
|
5月前
|
算法 C语言
数据结构与算法——最小生成树问题(什么是最小生成树、Prim算法、Kruskal算法)
数据结构与算法——最小生成树问题(什么是最小生成树、Prim算法、Kruskal算法)
35 0
|
6月前
|
存储 机器学习/深度学习 算法
上机实验三 图的最小生成树算法设计 西安石油大学数据结构
上机实验三 图的最小生成树算法设计 西安石油大学数据结构
88 1
|
6月前
|
人工智能 算法
一些算法的复习(最短路径、最小生成树、dp)
一些算法的复习(最短路径、最小生成树、dp)
|
6月前
|
算法
最小生成树算法
最小生成树算法
下一篇
无影云桌面