Библиотека Java для хранения и обработки больших (до 600 тыс. вершин) графов

Я работаю над проектом, который будет включать выполнение алгоритмов на больших графах. Самые большие два имеют около 300 тыс. и 600 тыс. вершин (я думаю, довольно редко). Я надеюсь найти java-библиотеку, которая может обрабатывать такие большие графы, а также деревья несколько меньшего размера, поскольку один из алгоритмов, которые я буду использовать, включает в себя разложение графа на дерево. В идеале библиотека также должна включать поиск в ширину и алгоритм Дейкстры или другие алгоритмы поиска кратчайшего пути.

Основываясь на другом вопросе, я просмотрел несколько библиотек (JGraphT, JUNG, jdsl, yworks), но мне трудно выяснить, сколько вершин они реально могут обработать. Глядя на их документацию, все, что я смог найти, было в JUNG FAQ, в котором говорилось, что он может легко обрабатывать графы со 150 000 вершинами, что все же немного меньше, чем мои графы...Я надеюсь, что кто-то здесь использовал одну или несколько из этих библиотек и может сказать мне, будет ли она обрабатывать нужные мне размеры графов или есть какая-то другая библиотека, которая была бы лучше.

Для справки, мне не нужны никакие инструменты визуализации; речь идет строго о представлении графов и деревьев в структурах данных и выполнении на них алгоритмов.

Предыстория, если кого-то это действительно волнует: для класса я должен реализовать алгоритм, описанный в исследовательской статье, и проводить эксперименты, проведенные в статье, насколько это возможно. Бумагу и наборы данных, которые я буду использовать, можно найти здесь. Мой профессор говорит, что я могу использовать любую библиотеку, которую смогу найти, если я могу сказать, какова временная/пространственная сложность алгоритмов/структур данных.

8
задан Community 22 September 2017 в 17:44
поделиться