在本教程中,您将通过示例和图表了解生成树和最小生成树。
在学习生成树之前,我们需要了解两个图:无向图和连通图。
无向图是边不指向任何方向(即边是双向的)的图。
无向图
连通图是总是有从顶点到任何其它顶点的路径的图。
连通图
生成树
生成树是一个无向连通图的子图,它包含了图的所有顶点和最小可能的边数。如果缺少一个顶点,则它不是生成树。
边可能有权重,也可能没有。
从一个完整的图中可以创建生成树,具有n个顶点的生成树的总数等于
n
(
n
−
2
)
n^{(n-2)}
n(n−2)。
如果n=4,最大可能生成树数等于
4
4
−
2
=
16
4^{4-2}=16
44−2=16。因此,有4个顶点的完整图可以形成16个生成树。
生成树示例
让我们用下面的例子来理解生成树:
原始图为:
从上图中可以创建的一些可能的生成树是:
最小生成树
最小生成树是边的权重之和尽可能小的生成树。
最小生成树示例
让我们通过下面的例子来理解上面的定义。
初始图为:
加权图
上图中可能的生成树是:
上述生成树的最小生成树为:
使用以下算法可找到图中的最小生成树:
生成树应用
- 计算机网络路由协议
- 聚类分析
- 民用网络规划
最小生成树应用
- 在地图中寻找路径
- 设计电信网、供水网、电网等网络。
参考文档
[1]Parewa Labs Pvt. Ltd.Spanning Tree and Minimum Spanning Tree[EB/OL].https://www.programiz.com/dsa/spanning-tree-and-minimum-spanning-tree,2020-01-01.