用于存储和处理大型(最多600k个顶点)图形的Java库

用于存储和处理大型(最多600k个顶点)图形的Java库,java,graph,shortest-path,large-data,Java,Graph,Shortest Path,Large Data,我正在做一个项目,它将涉及在大型图上运行算法。最大的两个有大约300k和600k的顶点(我认为相当稀疏)。我希望找到一个java库,可以处理这么大的图,也可以处理更小的树,因为我将使用的算法之一是将图分解为树。理想情况下,该库还包括广度优先搜索和Dijkstra或其他最短路径算法 基于,我一直在研究一些库(,),但我很难找出它们可以实际处理多少顶点。查看他们的文档,我所能找到的只是一点关于它可以轻松处理150k以上顶点的图形的说明,这仍然比我的图形小很多。。。我希望这里有人使用过一个或多个这样的

我正在做一个项目,它将涉及在大型图上运行算法。最大的两个有大约300k和600k的顶点(我认为相当稀疏)。我希望找到一个java库,可以处理这么大的图,也可以处理更小的树,因为我将使用的算法之一是将图分解为树。理想情况下,该库还包括广度优先搜索和Dijkstra或其他最短路径算法

基于,我一直在研究一些库(,),但我很难找出它们可以实际处理多少顶点。查看他们的文档,我所能找到的只是一点关于它可以轻松处理150k以上顶点的图形的说明,这仍然比我的图形小很多。。。我希望这里有人使用过一个或多个这样的库,并能告诉我它是否能处理我需要的图形大小,或者是否有其他更好的库

作为记录,我不需要任何可视化工具;这是关于在数据结构中表示图形和树并在其上运行算法的严格要求

背景如果有人真的关心的话:对于一个类,我应该实现一个研究论文中描述的算法,并尽我所能运行论文中运行的实验。我将使用的纸张和数据集可以找到。我的教授说,只要我能说出算法/数据结构的时间/空间复杂性,我就可以使用我能找到的任何库。

你应该看看哪一个是图形数据库,这可能是解决你问题的好办法。

结帐。然而,它是面向可视化的

此外,可能是一个用于大规模科学计算的分布式计算框架,例如矩阵、图形和网络算法

您可能也会感兴趣—为图论领域的开发人员和研究人员构建的开源Java框架—AI、路径查找、分布式系统等。

来自Twitter的项目可以使用内存中的Scala(因此是JVM)处理非常大的图

或者,GraphChi的Java版本可以通过使用磁盘处理更大的图形:


然而,GraphChi对于精确的最短路径类型算法来说并不有效,因为它们需要快速随机访问

谢谢,我正在调查此事。它肯定可以处理这些数据集。我首先要尝试一个内存库,因为这是论文中所做的,所以我想我的教授会更喜欢它,但如果这不起作用,我会选择Neo4J。它看起来很容易使用,而且有我需要的所有算法。谢谢你的建议!嗯。我看到的信息让我觉得这不太合适。。。例如,在用户手册中,他们首先介绍了swing。我根本不想把可视化的东西弄乱。这可能吗,你知道吗?@Maltriel,你有可能独立处理图形模型。然而,如果你不需要可视化图形,那就太过分了。谢谢你的额外建议。哈马也许对我现在所做的有点过分,但安娜看起来很有趣。在此之前,我在搜索中没有遇到任何一个。只是在上找到了一些信息。显然它应该处理这些图形没有问题。。。