数学において、無向グラフにおける最小ボトルネック全域木(MBST)とは、最もコストのかかる辺が可能な限りコストが低くなる全域木である。ボトルネック辺とは、全域木の中で最も重み付けの高い辺のことである。全域木は、グラフ内にそれより重みの小さいボトルネック辺を持つ全域木が存在しない場合に、最小ボトルネック全域木となる。[1]有向グラフの場合、同様の問題は最小ボトルネック全域木樹状突起(MBSA)として知られている。
定義
無向グラフ

無向グラフG ( V , E )と関数w : E → Rにおいて、S をすべての全域木T iの集合とする。B ( T i )を任意の全域木T iの最大重み辺とする。最小ボトルネック全域木S ′の部分集合を定義し、任意のT j ∈ S ′とT k ∈ Sに対して、すべてのiと kに対してB ( T j ) ≤ B ( T k )が成り立つものとする。[2]
右のグラフは MBST の例であり、グラフの赤いエッジはG ( V、 E )の MBST を形成します。
有向グラフ

グラフGの樹状部は、指定されたノードLからV \{ L }の部分集合V ′の各ノードへの有向パスを含むGの有向木です。ノードLは樹状部のルートと呼ばれます。樹状部は、V ′ = V \{ L }のとき全域樹状部です。この場合の MBST は、最小ボトルネックエッジを持つ全域樹状部です。この場合の MBST は、最小ボトルネック全域樹状部 (MBSA) と呼ばれます。
右のグラフは MBSA の例であり、グラフの赤いエッジはG ( V、 E )の MBSA を形成します。
プロパティ
MST(または最小全域木)は必然的にMBSTであるが、MBSTは必ずしもMSTであるわけではない。[3]
[4]
無向グラフに対するカメリーニのアルゴリズム
カメリーニは1978年に、与えられた無向・連結・辺重み付きグラフにおいて最小ボトルネック全域木(MBST)を求めるアルゴリズムを提案した[5]。このアルゴリズムは、辺を2つの集合に分割する。一方の集合の辺の重みは、もう一方の集合の重みと同じである。より小さな辺集合の辺のみで構成される部分グラフに全域木が存在する場合、その部分グラフのMBSTを計算する。部分グラフのMBSTは、元のグラフのMBSTと全く同じである。全域木が存在しない場合は、各切断された構成要素を新しいスーパー頂点に結合し、これらのスーパー頂点とより大きな辺集合の辺で構成されるグラフのMBSTを計算する。各切断された構成要素のフォレストは、元のグラフのMBSTの一部である。この処理を、グラフに2つの(スーパー)頂点が残り、それらの頂点間の重みが最小となる単一の辺が追加されるまで繰り返す。MBSTは、前のステップで見つかったすべての辺から構成される。[4]
擬似コード
この手順には2つの入力パラメータがある。Gはグラフであり、wはグラフG内のすべての辺の重み配列である。[6]
関数MBST(グラフG、重みw )
E ← G
の辺の集合| E | = 1の場合、 Eを返すそうでない場合A ← Eの辺の半分で重みが中央値の重み以上であるもの
B ← E - A F ← G BのフォレストFが全域木の場合、 MBST( G B、w )
を返すそうでない場合、MBST (( G A ) η、w ) Fを返す
上記( G A ) ηはスーパー頂点(切断されたコンポーネント内の頂点を1つとみなす)とA内の辺から構成されるサブグラフです。
実行時間
このアルゴリズムはO ( E )時間で実行されます(Eは辺の数)。この限界は次のように達成されます。
- 中央値探索アルゴリズムを用いて2つの集合に分割する(O(E))
- O ( E )で森林を見つける
- 各反復においてEの半辺を考慮すると、T(E)=T(E/2)+O(E)となる。マスター定理により、全体の時間計算量はO ( E )となる。
注意: 実行時間は O(E+V) ではなく O(E) と推定されます (グラフのトラバースには O(E+V) の時間がかかります)。ただし、この場合、グラフは接続されているため、V-1<=E となり、O(E+V)=O(E) となります。
例
次の例では、緑のエッジを使用して MBST を形成し、破線の赤の領域はアルゴリズムのステップ中に形成されたスーパー頂点を示しています。
有向グラフのMBSAアルゴリズム
有向グラフには2つのアルゴリズムがあります。MBSAを見つけるためのCameriniのアルゴリズムと、GabowとTarjanによるアルゴリズムです。[4]
MBSAのためのカメリーニのアルゴリズム
有向グラフの場合、カメリーニのアルゴリズムは、MBSAのボトルネックコストとして最大コストとなる辺の集合を見つけることに焦点を当てています。これは、辺の集合Eを2つの集合AとBに分割し、 G T が全域樹状線を持たないことが分かっている集合Tを維持することで行われます。G ( B ∪ T )の最大樹状線がGの全域樹状線でない場合はTをBだけ増加し、そうでない場合はE をAだけ 減少させます。全体の計算時間はO ( E log E ) です。[5] [4]
擬似コード
関数MBSA( G , w , T )は
E ← G
の辺の集合であり、 | E − T | > 1であれば
A ← UH(ET)、
B ← ( E − T) − A、
F ← BUSH( G BUT )
であり、 FがGの全域樹状であれば
S ← F
MBSA(( G BUT ), w , T )
else
MBSA(G, w , TUB );
- TはEの部分集合を表し、G Tにはノード「a」を根とする全域木が含まれないことが分かっている。初期状態ではTは空である。
- UHはGの(E−T)個の辺の集合を取り、次のようなA⊂(E−T)を返す。
- W a ≥ W b(a ∈ A かつ b ∈ B)
- BUSH(G)は、ノード「a」を根とするGの最大樹状枝を返す。
- 最終結果はS
例
| このアルゴリズムの最初の反復を実行すると、Fが得られ、F はGの全域樹状線ではないので、コードを実行します。 | |
| 2回目の反復では、 が得られ、これもGの全域樹状線ではないので、コードを実行する。 | |
| 3回目の反復では、 が得られ、これはGの全域樹状線であるので、コードを実行する。 | |
| を実行すると、 は1 に等しくなり、1 より大きくないので、アルゴリズムは を返し、最終結果は になります。 |
MBSA の Gabow および Tarjan アルゴリズム
GabowとTarjanは、MBSAを生成する単一ソース最短経路のためのDijkstraアルゴリズムの修正版を提供した。彼らのアルゴリズムは、フィボナッチヒープを用いた場合、 O ( E + V log V )時間で実行される。[7]
擬似コード
グラフG(V,E) の場合、 FはV内の頂点の集合です。
最初は、F = { s }であり、sはグラフGの開始点であり、c ( s ) = -∞である。
1 関数MBSA-GT( G , w, T )|V|を
2 回繰り返す
3 Fからc ( v )が最小のvを選択します。
4 Fから削除します。
5 ∀ edge( v, w )に対して、6
w ∉ Fまたは∉ Treeの場合、
7 w をFに追加します。
8 c ( w ) = c ( v,w ) ;
9 p ( w ) = v ;
10 そうでなければ11
w ∈ Fかつc (w) > c(v, w) ならば
12 c ( w ) = c ( v, w );
13 p ( w ) = v ;
例
次の例は、アルゴリズムがどのように機能するかを示しています。
Tarjan と Gabow によって提案された、疎グラフに対するO ( E log * V )の境界を持つ別のアプローチは、MBSA に対する Camerini のアルゴリズムと非常によく似ていますが、各反復ごとにエッジのセットを 2 つのセットに分割するのではなく、 K ( i )が導入されました。ここで、 iは分割された回数、つまり反復回数であり、K ( i )は反復ごとに持つべき分割されたセットの数を示す増加関数です。K ( i ) = 2 k ( i − 1) 、 k (1) = 2です。アルゴリズムは、任意の MBSA のボトルネック エッジの値であるλ *を見つけます。 λ *が見つかった後、 G ( λ * )内のすべてのスパニング樹状線は、すべてのエッジのコストが≤ λ *であるグラフであるG ( λ * )である MBSA です。[4] [7]
参考文献
- ^ ボトルネックスパニングツリーに関するすべて
- ^ Murali, TM (2009)、最小全域木の応用(PDF)
- ^ 質問3ではこの主張の証明があります(PDF)
- ^ abcde Traboulsi, Ahmad (2014), Bottleneck Spanning Trees (PDF) 、 2016年3月4日のオリジナル(PDF)からアーカイブ、2014年12月28日取得
- ^ ab Camerini, PM (1978)、「最小最大全域木問題といくつかの拡張」、Information Processing Letters、7 (1): 10– 14、doi :10.1016/0020-0190(78)90030-3
- ^ Cui, Yuxiang (2013), Minimum Bottleneck Spanning Tree (PDF) 、 2016年3月4日時点のオリジナル(PDF)からアーカイブ、2014年12月28日取得
- ^ ab Gabow, Harold N ; Tarjan, Robert E (1988). 「2つのボトルネック最適化問題に対するアルゴリズム」. Journal of Algorithms . 9 (3): 411– 417. doi :10.1016/0196-6774(88)90031-4. ISSN 0196-6774.






