Graph4J – A computationally efficient Java library for graph algorithms

08/19/2023
by   Cristian Frasinaru, et al.
0

Graph algorithms play an important role in many computer science areas. In order to solve problems that can be modeled using graphs, it is necessary to use a data structure that can represent those graphs in an efficient manner. On top of this, an infrastructure should be build that will assist in implementing common algorithms or developing specialized ones. Here, a new Java library is introduced, called Graph4J, that uses a different approach when compared to existing, well-known Java libraries such as JGraphT, JUNG and Guava Graph. Instead of using object-oriented data structures for graph representation, a lower-level model based on arrays of primitive values is utilized, that drastically reduces the required memory and the running times of the algorithm implementations. The design of the library, the space complexity of the graph structures and the time complexity of the most common graph operations are presented in detail, along with an experimental study that evaluates its performance, when compared to the other libraries. Emphasis is given to infrastructure related aspects, that is graph creation, inspection, alteration and traversal. The improvements obtained for other implemented algorithms are also analyzed and it is shown that the proposed library significantly outperforms the existing ones.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/17/2019

JGraphT -- A Java library for graph data structures and algorithms

Mathematical software and graph-theoretical algorithmic packages to effi...
research
01/02/2020

Using Nesting to Push the Limits of Transactional Data Structure Libraries

Transactional data structure libraries (TDSL) combine the ease-of-progra...
research
08/01/2019

Popt4jlib: A Parallel/Distributed Optimization Library for Java

This paper describes the architectural design as well as key implementat...
research
01/01/2022

Asymptotic Experiments with Data Structures: Bipartite Graph Matchings and Covers

We consider instances of bipartite graphs and a number of asymptotic per...
research
09/23/2015

IllinoisSL: A JAVA Library for Structured Prediction

IllinoisSL is a Java library for learning structured prediction models. ...
research
12/05/2022

Collabs: Composable Collaborative Data Structures

Replicated data types (RDTs), such as Conflict-free Replicated Data Type...
research
05/15/2023

CompSuite: A Dataset of Java Library Upgrade Incompatibility Issues

Modern software systems heavily rely on external libraries developed by ...

Please sign up or login with your details

Forgot password? Click here to reset