G=(V,E)G=(V, E)G=(V,E) 是一個Connected的Undirected Graph,令 S=(V,T)S=(V, T)S=(V,T)是G的一個Spanning Tree:
E=T+B⇒T=E−BE=T+B \Rightarrow T=E-BE=T+B⇒T=E−B
T: Tree edge;B: Back edge
自B中挑選一個邊加入S中,必在S中形成一個cycle。
在S中的任何頂點對之間,存在一條唯一的Simple Path。
e.g.
DFS Spanning Tree BFS Spanning Tree
任何Connected Undirected Graph至少有一棵Spanning Tree
若Connected Undirected Graph有v個頂點,則Spanning Tree的邊數必為v-1條邊
若將Binary Tree視為無向圖,則它的Spanning Tree只有一棵
若為unconnected graph,則必無Spanning Tree
Connected Undirected Graph G=(V,E)G=(V, E)G=(V,E) 的每個邊上cost值,則在G的所有spanning trees中具有邊成本總和最小者。
min spanning tree ≥ 1
若G中每個邊的成本皆不同,則最小成本展開數樹只有一棵
求法:
Kruskal's algorithm
Prim's algorithm
Sollin's algorithm
Last updated 7 years ago