コンピューター, プログラミング
クラスカル法 - 最適なフレームワークの構築
ベルリンから19世紀初頭の幾何ヤコブ・シュタイナーでは、それらの長さが最短となるように、3つの村を接続する方法のタスクを設定します。 その後、彼は問題を要約:平面内のポイントを見つけるために必要とされ、nは他のポイントへ、それからの距離が最も低かったです。 20世紀では、このトピックに取り組み続けています。 これは、いくつかのポイントを取得し、それらの間の距離が最短だったような方法でそれらを接続することを決めました。 これは、すべての研究されている問題の特殊なケースです。
「貪欲」アルゴリズム
クラスカル法は「欲張り」アルゴリズム(とも呼ばれる勾配)を指します。 これらの本質 - 各段階で最高の勝利。 常に、「貪欲」のアルゴリズムは、問題に最適なソリューションを提供していません。 特定のタスクへの応用で、彼らは最適なソリューションを与えることを示す理論は、あります。 これはマトロイドの理論です。 クラスカル法は、このような問題を指します。
最小枝肉重量を探します
閲覧アルゴリズムは、最適なフレーム数を構築します。 次のようにそれの問題があります。 ダンは、平行なエッジとループなしグラフを無向、およびエッジの組は、各エッジeに番号を割り当て、重み関数w、与えられた - 重量リブ - (E)Wを。 複数のリブの各サブセットの重みは、その辺の重みの合計です。 小型軽量の骨格を見つけるために必要です。
説明
クラスカルのアルゴリズムは動作します。 まず、最初のグラフのすべてのエッジは重みの昇順に配列されています。 最初に、フレームは、任意のリブを含んでいますが、すべての頂点を含んでいません。 スパニング森あるカーカスの既に構築一部のアルゴリズムの次のステップの後に、一方の端部が添加されます。 これは、任意に選択されていません。 グラフのすべてのエッジは、フレームに属さない、赤と緑と呼ぶことができます。 各赤縁の上部は、建設森林接続下同じ成分であり、そして緑トップ - 異なります。 あなたが赤のエッジに追加する場合したがって、存在サイクルである場合、および緑色 - この手順の後に受信した木材連結成分が1未満であろう。 したがって、得られた構造には赤色エッジを追加することはできませんが、任意のグリーンエッジが森を得るために添加することができます。 そして、最小重量と緑のエッジを追加します。 結果は、最小重量のフレームワークです。
実装
F.それは、接続の分野で頂点の集合を分割し、現在の森林を表す(組合フォームF、彼らは互いに素です)。 赤頂点の両端にそれらが一体にあります。 部分(X) - 各頂点のxの名前の部分を返す関数は、それがXに属します。 ユナイト(X、Y) - xとyの部分と他のすべての部分を組み合わせることからなる、新しいパーティションを構築する手順。 Nましょう - エッジの数。 すべてのこれらの概念は、クラスカル法に含まれています。 実装:
n番目の上昇重みに1日から、グラフのすべてのエッジを手配。 (AI、BI - I頂点エッジ数を有します)。
I = 1行うnまでのために。
X:=パート(AI)。
Y:=パート(BI)。
xが等しくない次いで、Yユナイト(x、y)をしなければ、エッジF Iの数に含めます。
正しいこと
Tを聞かせて - その任意のフレーム - 元のグラフのフレームは、クラスカルのアルゴリズムおよびSを使用して構築。 私たちは、(T)wをする(S)ワット以下であることを証明しなければなりません。
フィンS複数のP - - フィンT.複数のSがTに等しくない場合、フレームリブらTがあり、S. S.らに属さないサイクルに隣接し、C. Cが属する、任意のエッジESから削除と呼ばれ、Mはましょうエッジと頂点が同じであるため、S.私たちは、新しいフレームを得ます。 その重量は、(S)、W(ET)以来、もはや電力クラスカルのアルゴリズムにおける(ES)W Wより大きくありません。 この操作は、(リブ上の代替T Sリブ)であれば、後続の各受信フレームの重量は、(T)wは(S)Wより大きくないことを意味する前重量、より大きくないTを受けるように繰り返されます。
クラスカル法の頑健性はマトロイドにラドー・エドモンズの定理から続きます。
アプリケーション例クラスカルのアルゴリズム
ノードとダングラフ、B、C、D、E及びリブ(B)、(E)、(B、C)、(B、E)、(C、D)、(C、E) (D、E)。 エッジの重みは、表および図に示されています。 当初、建設森Fは、グラフのすべての頂点が含まれており、任意のリブが含まれていません。 次いで、リブを重量が最低であったので、アルゴリズムクラスカルが最初に、リブ(e)を追加し、頂点及びeは木材接続F(リブ(e)は緑色である)異なる成分である(C、D)、なぜならグラフのエッジの少なくともこのエッジ重み、同じ理由は、エッジ(B)を計上次いでため、Fに属し、それは緑色ではありません。 しかし、エッジ(B、E)は、彼と残りの辺の最小重量、それは赤ですのでにもかかわらず、渡される:頂点bとeは森の接続Fの同じコンポーネントに属している、それは我々がFにエッジ(B、E)を追加した場合、形成され、サイクル。 次いで、グリーンエッジ(B、C)、渡された赤のエッジ(C、E)、次いでD、Eを追加しました。 したがって、エッジが追加された順番(E)、(C、D)、(B)、(B、C)。 nihera最適フレームから、元のグラフから成ります。 したがって、このケースでは、アルゴリズムを動作させます クラスカル。 例が示されています。
図は、2つの接続されたコンポーネントで構成されたグラフを示しています。 太線は、最適なフレームリブ(緑)クラスカルのアルゴリズムを使用して構成を示しています。
アルゴリズムを使用して、彼のために構築された最小量の骨格、 - トップ画像は、元のグラフ、および底部を示しています。
添加リブ(1.6)の配列。 (0,3)、(2,6)又は(2,6)、(0,3) - 重要ではありません。 (3,4)。 (0,1)、(1,6)又は(1,6)、(0,1)、またケア(5,6)。
クラスカルのアルゴリズムは、それぞれの国の新しい住宅団地の地域と同様の他の例におけるガスケット通信、道路を最適化するために、例えば、実用的な用途を見出します。
Similar articles
Trending Now