我正在使用HASKELL进行图形游戏。除了使用bfs或树等之外,我愿意从图中的节点到特定节点获得适当的到达能力方法。
当我要求haskell中的代码从一个节点到特定节点的覆盖能力时,有必要告诉你我对haskell是全新的。我一直在阅读教程和简单的例子,但是当它实现时,我就迷失了。我的图是一个有向图,并说我想检查是否可以从图中的节点v到达节点w。
答案 0 :(得分:8)
答案 1 :(得分:2)
手中有几种All pair shortest path算法。对于小图,维基百科说:
Floyd-Warshall algorithm是一个 优雅,快速实现O(n3) 算法(假设没有 负称重周期。)
编辑:您在寻找现成的Haskell代码吗?
答案 2 :(得分:2)
尝试将图表表示为矩阵,其中1表示边缘。
E.g:
Node/Node A B C D
A 0 0 1 1
B 0 0 1 1
C 0 0 1 0
D 1 0 1 0
对于有向图,矩阵指数的顺序很重要,对于无向图,它们不重要。以上是有向图,其中存在来自D-> C但不来自C-> D的边缘。
答案 3 :(得分:2)
在Haskell的背景下,不完全确定你的问题是什么。
无论哪种方式,请检查http://hackage.haskell.org与图表相关的包: