Data-structures-algorithms-spanning-tree
データ構造とアルゴリズム-スパニングツリー
スパニングツリーはグラフGのサブセットであり、すべての頂点が最小数のエッジで覆われています。 したがって、スパニングツリーにはサイクルがなく、切断できません。
この定義により、すべての接続された無向グラフGには少なくとも1つのスパニングツリーがあるという結論を導き出すことができます。 切断されたグラフには、すべての頂点にまたがることができないため、スパニングツリーがありません。
1つの完全なグラフから3つのスパニングツリーが見つかりました。 完全な無向グラフは、最大 n ^ n-2 ^ のスパニングツリーを持つことができます。ここで、 n はノードの数です。 上記の例では、 nは3 です。したがって、 3 ^ 3-2 ^ = 3 スパニングツリーが可能です。
スパニングツリーの一般的なプロパティ
1つのグラフが複数のスパニングツリーを持つことができることがわかりました。 以下は、グラフGに接続されたスパニングツリーのいくつかのプロパティです-
- 連結グラフGは、複数のスパニングツリーを持つことができます。
- グラフGのすべてのスパニングツリーは、同じ数のエッジと頂点を持ちます。
- スパニングツリーにはサイクル(ループ)がありません。
- スパニングツリーから1つのエッジを削除すると、グラフが切断されます。 スパニングツリーは*最小接続*です。
- スパニングツリーに1つのエッジを追加すると、回線またはループが作成されます。 スパニングツリーは*最大非循環*です。
スパニングツリーの数学的特性
- スパニングツリーには n-1 のエッジがあります。 n はノード(頂点)の数です。
- 完全なグラフから、最大 e-n+を削除して1 エッジ、スパニングツリーを構築できます。
- 完全なグラフには、最大 n ^ n-2 ^ 個のスパニングツリーを含めることができます。
したがって、スパニングツリーは接続されたグラフGのサブセットであり、切断されたグラフにはスパニングツリーがないと結論付けることができます。
スパニングツリーの応用
スパニングツリーは基本的に、グラフ内のすべてのノードを接続するための最小パスを見つけるために使用されます。 スパニングツリーの一般的なアプリケーションは-
- 市民ネットワーク計画
- コンピューターネットワークルーティングプロトコル
- クラスター分析
小さな例を使ってこれを理解しましょう。 都市ネットワークは巨大なグラフであると考えてください。現在、電話回線を最小限の回線ですべての都市ノードに接続できるように配置することを計画しています。 これが、スパニングツリーの出番です。
最小スパニングツリー(MST)
重み付きグラフでは、最小スパニングツリーは、同じグラフの他のすべてのスパニングツリーよりも最小の重みを持つスパニングツリーです。 実際の状況では、この重みは、距離、輻輳、トラフィック負荷、またはエッジに示される任意の値として測定できます。
最小スパニングツリーアルゴリズム
ここでは、2つの最も重要なスパニングツリーアルゴリズムについて学習します-
- リンク:/data_structures_algorithms/kruskals_spanning_tree_algorithm [Kruskal’s Algorithm]
- リンク:/data_structures_algorithms/prims_spanning_tree_algorithm [Prim’s Algorithm]
どちらも貪欲なアルゴリズムです。