Chair of
Computer Science I
Algorithms, Complexity and Knowledge-Based Systems

Faster Force-Directed Graph Drawing with the Well-Separated Pair Decomposition

This page contains the source code and test data for our experiments in the following paper:

Source code

Our Java source code is available for download in java.tar.gz. Necessary libraries can be installed automatically using Apache Ant and Apache Ivy. You need Java 8 to compile the code. To use our build script Apache Ant must be installed, additionally.

Run the following commands to compile the code (in the graphdrawing directory):

  1. ant install-ivy
    to download Apache Ivy, if not installed on your system
  2. ant resolve
    to download necessary libraries
  3. ant build-jung-libs
    to compile the patched JUNG library
  4. ant
    to compile the actual source code and pack the binaries together with needed libraries into a JAR file
This generates a JAR file in the dist directory, which can be run by java -jar dist/graphdrawing-20160128.jar.

We integrated some improvements into the source code after publishing the conference paper. So the current program could perform differently compared to the results stated in the paper. You can find a short description on how to use the program in howto.pdf.

Data sets

The following list contains the data sets that we used for our experiments. Our Java program expects them inside the data/graphs subdirectory.

Each data set contains a specification file in JSON format, which describes some metadata used to process this it. These specification files are expected in data/graphs/specifications. The data sets and specification files are put into the right directories when you simply extract the downloaded archives in the same directory as the Java source code. The graph data itself can be in different formats, which is automatically detected when accessing the data set from the Java program.

In the following table, the labels DSx specify the name used to denote the data set in the journal version of the paper.

Label Filename Description #Graphs Filesize
DS1 rome Contains the Rome graphs, a widely used benchmark set for graph drawing algorithms. Each of the graphs has between 10 and 100 vertices. Data was downloaded from http://graphdrawing.org/data.html. 11528 3.6 MiB
DS2 north Contains the North graphs, a subset of the AT&T graph collection. Each of the graphs has between 10 and 100 vertices. Data was downloaded from http://graphdrawing.org/data.html. 1277 367 KiB
lin40 This set (denoted by ii) in the conference paper) contains 40 random graphs which were generated by the EppsteinPowerLawGenerator in JUNG. The graphs have 2,500, 5,000, …, 100,000 vertices and approximately 2.5 as many edges. We considered only the largest connected component of each graph. 40 45 MiB
DS3 journal_rand1 A set of 40 random graphs that we generated using the EppsteinPowerLawGenerator in JUNG, which yields graphs whose structure is similar to Web graphs. We considered only the largest connected component of each generated graph. We generated instances with 2,500, 5,000, 7,500, …, 100,000 vertices and approximately 2.5 times as many edges. 40 45 MiB
DS4 journal_rand2 A set of 40 random graphs generated as (DS3). We fixed the number of vertices to 5,000 and generated approximately 1, 1.5, 2, …, 20, 20.5 times as many edges to be able to test graphs with different densities. 40 15 MiB
journal_rand3 A set of 40 random graphs generated as (DS3). We fixed the number of vertices to 1,000 and the number of edges to approximately 2,500. 40 697 KiB
DS5 journal_rand4 A set of 40 random graphs generated as (DS3). We fixed the number of vertices to 1,000 and the number of edges to approximately 10,000. 40 2.5 MiB

License

The package includes source code from the following libraries:

Imprint + Privacy Policy | Privacy Disclaimer