私はMartin ErwigのFGL(Functional Graph Library)を使って、以下の単純な有向グラフを表現しています。今FGLで最短経路を見つける
genLNodes :: [LNode String]
genLNodes = zip [1..5] ["A","B","C","D","E"]
genLEdges :: [LEdge Int]
genLEdges = [(1,2,4),(1,3,1),(2,4,2),(3,4,2),(2,5,1),(4,5,1),
(2,1,4),(3,1,1),(4,2,2),(4,3,2),(5,2,1),(5,4,1)]
mygraph :: Gr String Int
mygraph = mkGraph genLNodes genLEdges
私は別の、例えば1つのノードからの最短経路を見つけたいですdijkstraのアルゴリズムを使用してA
〜E
dijkstra :: (Graph gr, Real b) => Heap b (LPath b) -> gr a b -> LRTree b
しかし、私は提供されたインタフェースからそれを使用する方法を見つけ出すことができませんよ。そこData.Graph.Inductive.Query.SP
でそれを行うための機能であるように思われます。どんな助けでも大歓迎です。私はまた、他の提案を聞いてみたい、もし私が正しい方法で指示された加重グラフを作成しているのですか、そうするための他の(より良い)パッケージがあれば?
...おそらく[論文](http://web.engr.oregonstate.edu/~erwig/papers/InductiveGraphs_JFP01.pdf)を読むか、少なくともそれを読み飛ばす価値があります。 – AndrewC
@vis 'sp'はとにかくゴミの名前です - あなたがそれを見つけられなかったのも不思議ではありません! – AndrewC
私は完全にその機能を逃した!確かにそれは私が必要としていたすべてです。 @AndrewCは私に紙を指してくれてありがとう。 – vis