用于存储和处理大型(高达600k顶点)图形的Java库 [英] Java library for storing and processing large (up to 600k vertices) graphs

查看:151
本文介绍了用于存储和处理大型(高达600k顶点)图形的Java库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究一个涉及在大图上运行算法的项目。最大的两个有大约300k和600k的顶点(我认为相当稀疏)。我希望能够找到一个能够处理大型图形的java库,以及更小尺寸的树,因为我将使用的算法之一涉及到将图形分解为树形结构。理想情况下,图书馆还将包括广度优先搜索和Dijkstra's或其他最短路径算法。

基于另一个问题,我一直在看几个库( JGraphT JUNG jdsl yworks ),但我很难找出他们可以实际处理多少个顶点。看着他们的文档,我能找到的只是在 JUNG常见问题解答中说的一点它可以轻松处理150k以上顶点的图形,这仍然比我的图形小很多...我希望这里有人使用了一个或多个这些库,并可以告诉我它是否可以处理图形大小我需要,或者如果有一些其他库会更好。



为了记录,我不需要任何可视化工具;这完全是关于表示数据结构中的图形和树以及它们的运行算法。



背景如果有人真的在乎:对于一个类我应该实现一个算法描述在一篇研究论文中,并尽可能运行在论文中运行的实验。我将使用的论文和数据集可以在这里。我的教授说,只要我能够知道算法/数据结构的时间/空间复杂程度是多少,我就可以使用任何可以找到的库。 解决方案

您应该查看 Neo4J ,它是一个图形数据库,可能是您的一个很好的解决方案问题。

I'm working on a project which will involve running algorithms on large graphs. The largest two have around 300k and 600k vertices (fairly sparse I think). I'm hoping to find a java library that can handle graphs that large, and also trees of a somewhat smaller size, as one of the algorithms I'll be using involves decomposing a graph into a tree. Ideally the library would also include breadth first search and Dijkstra's or other shortest-path algorithms.

Based on another question, I've been looking at a few libraries (JGraphT, JUNG, jdsl, yworks) but I'm having a hard time finding out how many vertices they can realistically handle. Looking at their documentation, all I could find was a bit in the JUNG FAQ that said it could easily handle graphs of upwards of 150k vertices, which is still quite a bit smaller than my graphs... I'm hoping someone here has used one or more of these libraries and can tell me if it'll handle the graph sizes I need, or if there's some other library that would be better.

For the record I don't need any visualization tools; this is strictly about representing the graphs and trees in data structures and running algorithms on them.

Background if anyone really cares: for a class I'm supposed to implement an algorithm described in a research paper, and run the experiments run in the paper as best I can. The paper and datasets I'll be using can be found here. My professor says I can use any library I can find as long as I can tell what the time/space complexity of the algorithms/data structures are.

解决方案

You should take a look at Neo4J which is a graphical database which might be a good solution for your problems.

这篇关于用于存储和处理大型(高达600k顶点)图形的Java库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆