在学习生成树之前,我们需要了解两个图:无向图和连接图。
无向图是其中边不指向任何方向的图(即,边是双向的)。
连通图是其中始终存在从顶点到任何其他顶点的路径的图。
生成树
生成树是无向连接图的子图,它包括图的所有顶点以及可能的最小边数。如果缺少顶点,则它不是生成树。
边缘可以分配权重,也可以不分配权重。
可以从完整图创建的具有n
个顶点的生成树的总数等于n (n-2)
。
如果n = 4
,则最大可能的生成树数等于4 4-2
= 16
。因此,可以从具有4个顶点的完整图形中形成16个生成树。
生成树的示例
让我们用以下示例了解生成树:
让原始图为:
可以从上图创建的一些可能的生成树是:
最小生成树
最小生成树是其中边缘的权重之和尽可能最小的生成树。
生成树的示例
让我们借助下面的示例了解上面的定义。
初始图形为:
上图可能的生成树是:
上述生成树中的最小生成树为:
使用以下算法可找到图中的最小生成树:
- 普里姆算法
- 克鲁斯卡尔算法
生成树应用
- 计算机网络路由协议
- 聚类分析
- 民用网络规划
最小生成树应用
- 在地图中查找路径
- 设计诸如电信网络,供水网络和电网的网络。