web-dev-qa-db-ja.com

最小ボトルネックスパニングツリーと最小スパニングツリーの違いは何ですか?

加重グラフの最小ボトルネック全域木[〜#〜] g [〜#〜][〜#〜] g [〜#〜]の全域木ですこれにより、スパニングツリー内のエッジの最大の重みが最小化されます。 MBSTは必ずしもMST(最小スパニングツリー)ではありません。

これらのステートメントが意味をなす例を挙げてください。

33
Nikunj Banka

WikipediaのMSTの例 を参照してください。

Minimum spanning tree example from Wikipedia

スパニングツリーのボトルネックは、そのツリーの最大重みのEdgeです。スパニングツリーには、いくつかのボトルネック(もちろん同じ重みのもの)がある場合があります。ウィキペディアMSTには、重み8の2つのボトルネックがあります。

ここで、特定のグラフの最小スパニングツリー(すべてのエッジの重みが同じである複数のMSTが存在する可能性があります)を取り、最大のエッジの重みBを呼び出します。この例では、B = 8です。

B = 8のボトルネックもあるスパニングツリーはMBSTです。しかし、それはMSTではない可能性があります(エッジの重みの合計が可能な最高よりも大きいため)。

だから、ウィキペディアのMSTを取り、それを変更(いくつかのエッジを追加/削除)して、

  1. それはスパニングツリーのままであり、
  2. それでもまだ8を超えるウェイトは使用していません
  3. エッジの総重量を増やします

たとえば、ウィキペディアMSTの「左側」にあるサブツリー(重み{2、2、3}から成る)のみを{2、3、6}に変更します。これにより、ボトルネックを変更せずに、エッジの合計重みを4ずつ増やします。 8.ビンゴ、MSTではないMBSTを作成しました。

40
dan3

あなたの質問に答える前に、ここで使用されている用語のいくつかを定義しましょう...

1)スパニングツリー:特定のグラフのスパニングツリーは、そのグラフのすべての頂点をカバーするツリーです。

2)最小スパニングツリー(MST):特定のグラフのMSTは、そのグラフのすべての可能なスパニングツリーの中で長さが最小のスパニングツリーです。より明確には、特定のグラフについて、可能なすべてのスパニングツリー(非常に大きくなる可能性があります)をリストし、エッジの重みの合計が最小であるものを選択します。

3)最小ボトルネックスパニングツリー(MBST):指定されたグラフのMBSTは、すべての可能なスパニングツリーの中で最大エッジウェイトが最小であるスパニングツリーです。より明確には、特定のグラフについて、すべての可能なスパニングツリーと、各スパニングツリーの最大エッジウェイトをリストします。これらの中から、最大のエッジの重みが最小であるスパニングツリーを選択します。

では、次の4つのノードのグラフを見てみましょう...

enter image description here

グラフAは与えられた元のグラフです。このグラフで可能なすべてのスパニングツリーをリストし、エッジの重みの合計が最小のものを選択すると、グラフBが得られます。したがって、グラフBは最小スパニングツリー(MST)です。その総重量は1 + 2 + 3 = 6であることに注意してください。

ここで、最大エッジウェイトが最小のスパニングツリー(MBSTなど)を選択すると、グラフB(またはグラフC)のいずれかを選択してしまう可能性があります。これらのスパニングツリーの両方に最大エッジウェイト3があることに注意してください。これは、考えられるすべてのスパニングツリーの中で最小です。

Graph-BとGraph-Cから、Graph-CがMBSTであっても、MSTではないことは明らかです。その総重量は1 + 3 + 3 = 7であり、これはGraph-B(つまり6)で描画されたMSTの総重量よりも大きいためです。

したがって、MBSTは特定のグラフのMSTである必要はありません。ただし、MSTはMBSTでなければなりません。

35