タグ

ブックマーク / www.deqnotes.net (2)

  • ダイクストラ法(最短経路問題)

    ダイクストラ法 (Dijkstra's Algorithm) は最短経路問題を効率的に解くグラフ理論におけるアルゴリズムです。 スタートノードからゴールノードまでの最短距離とその経路を求めることができます。 アルゴリズム 以下のグラフを例にダイクストラのアルゴリズムを解説します。 円がノード,線がエッジで,sがスタートノード,gがゴールノードを表しています。 エッジの近くに書かれている数字はそのエッジを通るのに必要なコスト(たいてい距離または時間)です。 ここではエッジに向きが存在しない(=どちらからでも通れる)無向グラフだとして扱っていますが, ダイクストラ法の場合はそれほど無向グラフと有向グラフを区別して考える必要はありません。 ダイクストラ法はDP(動的計画法)的なアルゴリズムです。 つまり,「手近で明らかなことから順次確定していき,その確定した情報をもとにさらに遠くまで確定していく

  • プリム法(最小全域木問題)

    プリム法 (Prim's MST Algorithm) は最小全域木問題を効率的に解くグラフ理論におけるアルゴリズムです。 最小全域木 (MST: Minimum Spanning Tree) とは,グラフを構成する「辺の重みの総和」が最小となる全域木です。 「全域」とは,元のグラフがあって,その部分グラフのうち(辺の構成は変わっていても)頂点集合が同じグラフを指します。 木とは連結 (connected) でかつ閉路 (loop) が無いグラフなので,つまり,元となる(木ではない)グラフがあって, そこから,切り離された頂点を作らずに(連結であり),閉路を作るような辺が「辺の重みの総和が最小となるように」全て取り除かれた(木である)グラフを求める問題です。 MST(最小全域木)を求めるアルゴリズムとしては,ここで説明するプリム法の他にクラスカル法が有名です。 アルゴリズム 以下のグラフを

  • 1