タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Dijkstraに関するto-ke-iのブックマーク (1)

  • 【Haskell】ダイクストラ法を実装する

    Project Eulerの81は左上から右か下だけに動いて右下までの、一番値が小さいルートを見つける問題。総当りでやろうとしたが、迷路が80x80で組み合わせが 通りなので全然無理だった。 最短経路を見つけるうまいアルゴリズムにダイクストラ法がある。ということでダイクストラ法を使って最短経路を求めよう。 Haskellでライブラリがあるのかわからないが、パッとググったところ見つからなかったので自作してみた。Data.Graphはこういう用途で使えるんだろうか…わからん。 グラフを表す情報にノードとエッジがあるけど、最短経路を求めるための入力としてはノード自体は特に情報は必要なくて、エッジ(有向グラフで、元ノードとターゲットノードとコスト)だけで十分。 dijkstra :: pos -> pos -> [(pos, cost, pos)] -> (cost, [pos]) dijkstr

  • 1