有人对图形算法的Java库有很好的经验吗?我试过JGraph,发现它还行,谷歌中有很多不同的。有哪些是人们在实际生产代码中成功使用或推荐的?
澄清一下,我不是在寻找一个生成图形/图表的库,我在寻找一个有助于图算法的库,例如最小生成树,Kruskal的算法节点,边等。理想情况下,它在一个漂亮的Java OO API中具有一些良好的算法/数据结构。
有人对图形算法的Java库有很好的经验吗?我试过JGraph,发现它还行,谷歌中有很多不同的。有哪些是人们在实际生产代码中成功使用或推荐的?
澄清一下,我不是在寻找一个生成图形/图表的库,我在寻找一个有助于图算法的库,例如最小生成树,Kruskal的算法节点,边等。理想情况下,它在一个漂亮的Java OO API中具有一些良好的算法/数据结构。
当前回答
If you were using JGraph, you should give a try to JGraphT which is designed for algorithms. One of its features is visualization using the JGraph library. It's still developed, but pretty stable. I analyzed the complexity of JGraphT algorithms some time ago. Some of them aren't the quickest, but if you're going to implement them on your own and need to display your graph, then it might be the best choice. I really liked using its API, when I quickly had to write an app that was working on graph and displaying it later.
其他回答
图片来源:http://mmengineer.blogspot.com/2009/10/java-graph-floyd-class.html
提供了一个强大的软件来处理图形(直接或非直接)。还生成了Graphivz代码,可以看到图形表示。您可以将自己的代码算法放入包中,例如:回溯代码。该软件包提供了一些算法:Dijkstra,回溯最小路径代价等。
http://neo4j.org/是一个包含许多图算法的图数据库,并且比大多数内存库具有更好的伸缩性。
JUNG是一个很好的可视化选择,并且也有一组相当不错的可用图算法,包括几种不同的随机图创建、重布线等机制。我还发现,在必要的地方扩展和调整它通常相当容易。
如果需要性能,可以看看Grph。该图书馆由法国大学和CNRS/Inria开发。
http://www.i3s.unice.fr/~hogie/grph/
该项目是主动和被动的支持提供!
在可视化方面,我们小组取得了一些成功。我们扩展了它来处理建筑地板和气泡图,它没有太多抱怨。他们也推出了一个新的Flex工具包,叫做Flare,它使用了非常相似的API。
更新: 我不得不同意这个评论,我们最终写了很多自定义功能/围绕prefuse限制工作。我不能说从头开始会更好,因为我们能够从第一天开始使用prefuse来演示进度。另一方面,如果我们正在做相同东西的第二个实现,我可能会跳过prefuse,因为我们会更好地理解需求。