scala的图形库

Ela*_*ich 31 scala graph

scala中的图形和/或图形算法是否有一个好的库(或Java库的包装器)?

这个似乎已经死了.是scala中Dijkstra算法的一个例子,但我正在寻找一个库a-la JGraphT.

opy*_*ate 24

当前有一个call-for-comments来创建scala库中内置的scala.collection.Graph.

另外,如何为JGraphT开发Scala包装器呢?

UPDATE

Scala的图表现已超出讨论阶段,并且正在进行中.


Joa*_*ert 8

我们为设备项目开发了一个小图库.你可以在它看一看这里.它不是纯粹的功能而不是拉链图,但对我们来说做得很好.你也得到了可变和不可变的图形.

以下是图形创建的简单示例:

implicit val factory = DefaultEdge[String](_, _)
val G = Graph(
  "Entry" -> "A",
  "A" -> "B",
  "B" -> "C",
  "B" -> "D",
  "D" -> "F",
  "F" -> "E",
  "E" -> "F",
  "E" -> "C",
  "C" -> "A",
  "C" -> "Exit")
G.dotExport to Console.out
Run Code Online (Sandbox Code Playgroud)

查找SCC和子组件

G.sccs foreach println
G.sccs map { _.entry } foreach println
G.sccs filter { _.canSearch } map { _.subcomponents } foreach { _ foreach println }
Run Code Online (Sandbox Code Playgroud)

穿越

for(x <- G.topsort) println(x)
for(x <- G.dft(y)) println(x)
Run Code Online (Sandbox Code Playgroud)

目前的缺点是该库仅支持不变类型,并且不支持整个图库的完整功能.