Mathematical
Programming
Prim's Algorithm

Simplex

Twophase

Dijkstra

Prim

Kruskal

Ford-Fulkerson


Prim
JavaScript demos:

FAQ
Japanese/English

最小木問題

連結グラフ G=(V,E) と重み d:E->R+が与えられたとき 最小木を求めよ。

プリムのアルゴリズム

プリム法はたいへん効率の良いアルゴリズムとして知られている。
  1. Set i=0, S0= {u0=s}, L(u0)=0, and L(v)=infinity for v <> u0. If |V| = 1 then stop, otherwise go to step 2.
  2. For each v in V\Si, replace L(v) by min{L(v), dvui}. If L(v) is replaced, put a label (L(v), ui) on v.
  3. Find a vertex v which minimizes {L(v): v in V\Si}, say ui+1.
  4. Let Si+1 = Si cup {ui+1}.
  5. Replace i by i+1. If i=|V|-1 then stop, otherwise go to step 2.
下の JavaScript によるプリム法の実現は O(|E|log|V|) アルゴリズムである。

JavaScript ソースファイル:


JavaScript デモ:

関連ページ:

Kenji Ikeda's
Home Page
Last Modified: Tuesday, 01-Sep-2015 14:05:32 JST