アルゴリズムの設計と解析コースレビューノート10--最小スパニングツリー
最小スパニングツリーMST
道路問題
、小さな町、いくつかの住宅や道路の一部、およびすべての道路の接続および接続の2軒のだけの家、接続されているメンテナンスコストuとvロードハウスは、(u、v)は、wがあり
、今だけの十分な道路を修復する必要があります両院それぞれ、最小のメンテナンスコストの間の通信を維持するために:ような。
ピクチャーは、右側のための道路整備費の描画、頂点ハウスエッジへの接続ではありません。
T、TサブセットE、およびW(T)=を見つけます。
最小スパニングツリー特性
- 非ユニーク
- ノーループ
- MST側の数は、頂点の数マイナス1であります
MSTが生成
一般的な手順:
エッジAのセットを作成し、ブランクの場合、出発
徐々にA側に添加し、そしてAは、保持MSTの一部である
A IFF∪{(u、v)は } MSTのサブセットであり、我々エッジ(U、V)Aにとって安全であることを特徴とします
一般的なアルゴリズムMST
A←空のセット
Aは、スパニングツリー(MSTが形成されていない)ではない間、
あることをA SafeのANエッジ(U、V)を検索します(側が安全(U、V)を見つけるために)
A←A {∪(U、V)}
Aを返します
安全性の側面を見つける方法?
いくつかの定義:
- 切断:グラフの頂点2つの切断された2つのセットにSとV - Sを
- カッティングエッジの2つの端点場合、それぞれ、二組のS及びVに - S、我々は、エッジを横切ってそのカットを言います
- 非介入を切断のコレクション セットAと刃先が交差しません
- エッジを横切る光カット すべての最小重量縁に切れ刃を横切ります
定理:
AサブセットMST、(S、V - S)でAを切断する非介入であり、(U、V)光のエッジを横切って切断され、次いで、(U、V)Aのために安全です。
クラスカル法
- 、各頂点のコンポーネントで始まり、からの各頂点
- 側光LEを選択することにより、2つの成分が一緒に接続され続けます
- エッジ検査の順で設定された優先順位の値をインクリメント
- かどうかは、エッジ決意の異なる構成要素データ構造無関係なセットを使用して接続します
関連する操作のないコレクション
- MAKE-SET(U)のみの要素を含む、コレクションを作成するには、u
- FIND-SET(U)は、Uを含む、代表的な要素を返します
- 集合の任意の要素は、特定の属性を持っています
- セット
特徴は、アルファベット順の最初の文字である
例: = {R、S、T、U}、FIND-SET(U)= R、FIND-SET(S)= R - 所与のセットのために、同じ値を返します
- UNION(U、V)マージ操作
例: = {R、S、T、U}、 = {V、X、Y}
UNION(U、V)= {R、S、T、U、V、X、Y}
クラスカル(W V、E)
A←空集
各頂点v∈Vのためには、
MAKE-SET(V)を行う
(权值递增排序)wは重量非減少順にソートEを
それぞれ(u、v)はから取られたためソートされたリストが
ない場合FIND-SET(U)≠FIND-SET(V)(属于不同的组件)
次に、A←A∪{(u、v)は}
UNION(u、v)は
戻りA
ランニングコスト:
プリムアルゴリズム
- エッジのセットはツリーを形成します
- 任意の選択されたルートの先頭から
- 毎回
- (切断を特定します 、V - )ル
- A LEの添加
- ツリー内のすべての頂点を備えるまで繰り返し
- 貪欲戦略:木重みの側縁と増加最小の各添加
どのように迅速LEを決定?
プライオリティキューを使用します
- それはないすべての頂点(Vツリーを含んでいます - )
- 各頂点は、キー値、任意の側に接続された、すなわちツリーを(U、V)は、Vの最小重みが割り当てられる
V場合 任意の頂点に接続されていない場合、キー値
ノードが増加すると、すべてのノードのキー値は調整を行い、それに接続されました
プリム(V、E、R、W)
Q←空集
各U∈Vのための
実行キー[U]←
π[U]←NILの
キー[R]←0
Q←V
ながらQ≠空集
行うU←EXTRACT-MIN(Q)
各Vため∈調整] [U]
なければ、V∈QおよびW(U、V) <キー[V]
次にπ[V]←U
キー[V]←W(U、V)
アルゴリズム分析
参考:担任教師教授クーテック赤コースウェア