2

G =(V、E)を重み付きの接続された無向グラフとし、eをEの任意のエッジとします。エッジeを含む最小全域木が存在するかどうかを決定する線形時間アルゴリズムを示します。

私は質問1の奇妙な「解決策」を見つけることができました。それはうまくいくようですが、線形ではないと思います。

彼らは、W(u、v)<W(e)となるように、各エッジ(u、v)に対してunion find and do Union(u、v)を使用することを提案しました。ここで、e =(x、y)と仮定します。ここで、find(x)!= find(y)の場合、xとyは接続されておらず、W(e)はクラスカルのアルゴリズムによって調べられる次の重みになるため、エッジを含むMSTが確実に存在します。 e。

一方、find(x)= find(y)の場合、この時点までクラスカルアルゴリズムを実行すると、xとyが確実に接続されるため、エッジeをMSTに追加することはできません(重みが等しいエッジの並べ替え順序-クラスカルのアルゴリズムを使用して、任意のMSTを作成できます)。

なぜこれが線形なのかわかりませんか?組合のせいでO(| E | alpha(| V |))の費用がかかるのではないですか?

おそらく、線形時間でこれを行う別の方法がありますか?

前もって感謝します

4

1 に答える 1

3

クラスカルのアルゴリズムを「この」ポイントに取り、これまでに構築された連結成分にマークを付け、すべての連結成分を追加し直すと、各連結成分には以前と同じ頂点がすべて含まれます(連結成分はサイクルを追加するだけで、異なるコンポーネントを接続しません) 。したがって、 eがeよりも厳密に軽いエッジで構成された2つの異なる連結成分を接続しているかどうかを確認するだけで済みます。接続されたコンポーネントを見つけることは線形時間の仕事です。

于 2013-03-02T15:43:54.407 に答える