良好的图形/复杂网络库

我期待为图分析库或框架提供很好的建议,更好地使用C ++或java。 我找到了一些图库,

https://stackoverflow.com/questions/3010805/scalable-parallel-large-graph-analysis-library

该网页提供了一些可能的解决方案:

•C ++ - 最可行的解决方案似乎是Boost Graph Library和Parallel Boost Graph Library。 我也在研究MTGL,尽管它倾向于像Cray XMT这样的大型多线程硬件架构。 最后,我已将LEMON添加到我的清单中供考虑。 •C-igraph和SNAP(小世界网络分析和分区); 后者在SMP系统上使用OpenMP进行并行处理。 Java - 我在这里还没有找到并行库,但JGraphT和JUNG可能是非平行空间的主要竞争者。 •Python - igraph和NetworkX看起来是最稳固的选项,但都不是平行的。 曾经有BGL的Python绑定,但现在不支持这些绑定; 2005年的最新版本现在看起来很陈旧。

但我不确定我应该根据自己的需要使用哪一个:

  • 良好的数据结构和算法。 它可以分析复杂网络的属性。
  • 可伸缩:我可以修改和实现我的算法
  • 可以分析具有百万个节点和边缘的图形/网络
  • 复杂的网络可以自己生产会更好,节省我的时间去寻找真正复杂的网络。
  • 分析功能和可扩展性是我最关心的问题。 有没有人有建议。 任何建议都会有帮助。


    我使用过networkx,它和Jung一样完美。 如果你的数据在内存中比这两项工作好,但是我遇到的问题是缺乏持久性(你可以将这两个文件保存为一个xml文件,并将其上传/下载到数据库,但是没有限制数据库内的分析图形大小以内存大小)。

    最近我一直在玩neo4j(和各种附加组件),它可以解决这个问题。 它不能无限扩展,但如果您的数据少于320亿个节点,那么它作为存储引擎的速度非常快,您可以使用其他内核(或工作机器)并行分析图形。 有很多关于它们如何快速运行的性能文档,但我通常不会同意这些类型的测试,因为它不是我的测试用例,所以我建议您下载它(在neo4j.org上免费下载)并自行判断。

    链接地址: http://www.djcxy.com/p/65283.html

    上一篇: good graph/complex networks libraries

    下一篇: Estimate a Fractal dimension of 2d image