ダイクストラ法
次に落下が停止する頂点を u {\displaystyle u} とし、 u {\displaystyle u} の直前の頂点を w u ∈ H {\displaystyle w_{u}\in H} とすると、 以下が成立することが分かる。
u {\displaystyle u} は A {\displaystyle A} に属し、しかも A {\displaystyle A} 内で d ( u ) {\displaystyle d(u)} が最小になる頂点である。
s {\displaystyle s} から u {\displaystyle u} への最短経路は w u ∈ H {\displaystyle w_{u}\in H} を通る。
そこでダイクストラ法では、「次に落下が停止する頂点」(とその直前の頂点)を効率的に求めるために、 以下の3種類のデータを管理する。
集合 H {\displaystyle H} と集合 A {\displaystyle A}
各頂点 v ∈ V {\displaystyle v\in V} に対して H ∪ v {\displaystyle H\cup {v}} 内での s {\displaystyle s} から v {\displaystyle v} への最短距離 d ( v ) {\displaystyle d(v)} 。
各 v ∈ A {\displaystyle v\in A} に対し、 v {\displaystyle v} の直前の頂点 w v {\displaystyle w_{v}}