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

**Authors:** Dimitrios Michail, Joris Kinable, Barak Naveh, John V Sichi

arXiv: 1904.08355 · 2020-02-04

## TL;DR

JGraphT is a versatile Java library offering efficient, generic graph data structures and algorithms, supporting modeling of complex networks and performing advanced analyses with competitive performance.

## Contribution

This paper details the design, features, and algorithms of JGraphT, highlighting its versatility and performance in modeling and analyzing complex networks.

## Key findings

- JGraphT performs competitively with NetworkX and BGL.
- Supports modeling of vertices and edges as arbitrary objects.
- Includes advanced algorithms like isomorphism, matching, and NP-hard problem approximations.

## Abstract

Mathematical software and graph-theoretical algorithmic packages to efficiently model, analyze and query graphs are crucial in an era where large-scale spatial, societal and economic network data are abundantly available. One such package is JGraphT, a programming library which contains very efficient and generic graph data-structures along with a large collection of state-of-the-art algorithms. The library is written in Java with stability, interoperability and performance in mind. A distinctive feature of this library is the ability to model vertices and edges as arbitrary objects, thereby permitting natural representations of many common networks including transportation, social and biological networks. Besides classic graph algorithms such as shortest-paths and spanning-tree algorithms, the library contains numerous advanced algorithms: graph and subgraph isomorphism; matching and flow problems; approximation algorithms for NP-hard problems such as independent set and TSP; and several more exotic algorithms such as Berge graph detection. Due to its versatility and generic design, JGraphT is currently used in large-scale commercial, non-commercial and academic research projects. In this work we describe in detail the design and underlying structure of the library, and discuss its most important features and algorithms. A computational study is conducted to evaluate the performance of JGraphT versus a number of similar libraries. Experiments on a large number of graphs over a variety of popular algorithms show that JGraphT is highly competitive with other established libraries such as NetworkX or the BGL.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1904.08355/full.md

## Figures

14 figures with captions in the complete paper: https://tomesphere.com/paper/1904.08355/full.md

## References

105 references — full list in the complete paper: https://tomesphere.com/paper/1904.08355/full.md

---
Source: https://tomesphere.com/paper/1904.08355