生成树
生成树是a的特殊子图吗图它有几个重要的性质。首先,如果T是一个生成树的图G, T必须跨G, T意义必须包含每个顶点在G .其次,T必须的子图G .换句话说,每条边的T也必须出现在G .第三,如果每条边在T也存在于G, G是相同的T。
生成树在寻径算法中非常重要,如Dijkstra最短路径算法和A *搜索算法.在这些算法中,生成树是作为子部分计算的。它也用于网络路由协议。的生成树协议就是一个例子。
属性
生成树有一些一般的性质。
- 一个连通图可以有不止一棵生成树。他们可以有很多 在哪里 为图中顶点的数目。
- 图G的所有可能的生成树都有相同数量的边和顶点。
- 生成树没有任何循环。
- 生成树都是最小连接的。也就是说,如果任何一条边被移除,生成树将不再连接。
- 向生成树添加任何边都会创建一个循环。生成树是最大无环的。
- 生成树 边, 为顶点的数目。
生成树和图类型
不同类型的图有不同数量的生成树。这里有几个例子。
1)完整的图
完全图是指每个顶点与其他顶点相连的图。图G的生成树数 顶点的定义公式如下: .
2)连接图
对于连通图,生成树可以定义为连通边的最小集所有顶点或不包含循环的最大边集。
连通图就是这样一个图,它的边数必须小于或等于具有相同顶点数的完整图中的边数。因此,连通图的生成树数为 .
3)树
如果一个图G本身是树,那么G的唯一生成树就是它自己。所以一棵树 顶点定义为 .
4)完全二部图
二部图是这样一种图,其中每个节点可以与两个集合中的一个相关联, 或 .这些集合中的顶点只连接到另一个集合中的顶点。没有集合内的边。完全二部图是集合中每个顶点的二部图 连接到集合中的每个顶点 ,反之亦然。
定义了二部图的生成树数 .
5)一般图
为了计算一般图的生成树的数目,一个流行的定理是基尔霍夫定理.
为了实现这个定理,必须构造一个二维矩阵,它可以通过图的顶点通过行和列建立索引。的细胞 行和 列的值由三个因素决定。如果 ,则单元格中的值将等于的度数 .如果 和 是相邻的,那么值是 .否则,值为 .
从这里,选择一个任意顶点,并从矩阵中删除其相应的行和列。这个新矩阵的行列式就是一个生成树 .
发现生成树
最小生成树
最小生成树是生成树的一种变体。
无加权图G的最小生成树是使边数或边权数最小化的生成树。
加权图G的最小生成树是使树中边的权值最小的生成树。
这两幅图展示了生成树和最小生成树的区别。被灰色化的边缘在它们各自的树中被保留了下来,但是它们被保留在图像中以显示它们的权重。
最小生成树在许多应用和算法中都非常有用。它们通常用于水网、电网和计算机网络。它们也被用在图的问题中,比如旅行推销员问题,它们被用于重要的算法,如min-cut最大流算法。
有很多方法可以找到最小生成树,但是克鲁斯卡算法可能是最快最简单的手工操作。
1.找出下面图的最小生成树。它的总重量是多少?
最小生成树如下图所示。总重量是31。
参考文献
- o艾普斯坦,D。生成树.2016年4月10日,从https://en.wikipedia.org/wiki/Spanning_tree
- Benbennick D。维基百科的完全图.2016年5月21日,从https://en.wikipedia.org/wiki/Complete_graph
- L。维基百科的连通图.2016年5月21日,从https://en.wikipedia.org/wiki/Connectivity_ (graph_theory)
- L。维基百科的树.2016年5月21日,从https://en.wikipedia.org/wiki/Tree_ (graph_theory)
- K。完全二部图.2016年5月21日,从https://en.wikipedia.org/wiki/Complete_bipartite_graph