グラフ考えます。各エッジは2つの重みとます。製品最小化スパニングツリー検索。アルゴリズムは、に関して多項式時間で実行する必要があります。V | 、| E | 。
スパニングツリー(Kruskal、Prim、Edge-Deletion)に従来のアルゴリズムを適用することは困難です。解決方法 ヒントはありますか?
グラフ考えます。各エッジは2つの重みとます。製品最小化スパニングツリー検索。アルゴリズムは、に関して多項式時間で実行する必要があります。V | 、| E | 。
スパニングツリー(Kruskal、Prim、Edge-Deletion)に従来のアルゴリズムを適用することは困難です。解決方法 ヒントはありますか?
回答:
これは、負の重みがある場合は機能しない可能性があるため、負の重みのエッジが与えられていないことを前提としています。
あなたのエッジの各々について、それらをラベルするn個
してみましょう私はエッジ数の重量A I
ましょうエッジ数の重量B I
この表を作成する
|a_1 a_2 a_3 a_4 .. a_n
---+-------------------------
b_1|.........................
b_2|.........................
. |.........................
. |.........................
b_n|...................a_n * b_n
各テーブル要素は行と列の積です。
各エッジについて、関連するテーブルの行と列を合計します(2回合計されているため、交差点の要素を忘れずに削除してください)。
最大の合計を持つエッジを見つけ、グラフを切断しない場合はこのエッジを削除します。そうでない場合は、エッジを必須としてマークします。エッジが削除されている場合、その行と列を0で埋めます。
結果は明らかにツリーです。
頂点が切断されていないため、結果は明らかに広がっています。
結果は最小限ですか?アルゴリズムの最後に、削除により小さなスパニングツリーが作成される別のエッジがある場合、そのエッジは削除され、最初にヌルになります。(誰かが私をこれをもう少し厳密/かつ/または反例にするのを手伝うことができれば、それは素晴らしいことです)
明らかに多項式。
でない反例。
それから
| 2 11 4
---+--------------------
11 | 22 121 44
2 | 4 22 8
6 | 12 66 24
削除されます。
終わる
他のスパニングツリーは
これはhttp://www.cnblogs.com/autsky-jadek/p/3959446.htmlからのソリューションですです。
すべてのスパニングツリーを平面内の点として表示できます。ここで、xは重みの合計です、Yは重量の合計である Σ E ∈ T BのE。目標は、 x yを最小化することです。
重みに従って最小スパニングツリーを見つける および重み B。したがって、xy平面 A 、Bに 2つのポイントがあります。平面内のすべてのスパニングツリーポイントで、 Aには最小 xがあり、 Bには最小 yがあります。
今、私たちはポイントを見つけることを目指しています 三角形における O A B線までの最大距離有する A Bを我々が持つことができるように、 XのY軸の値 C三角形内のすべての点に対して最小 A B Cを。
なぜなら