Graph Drawing Live Challenge

Crossing Angle Maximization

We shall hold the Graph Drawing Challenge in a format similar to a typical programming contest. At the start of the challenge, teams of contestants will receive the collection of challenge graphs. After one hour, the teams will submit their final drawings and the team with the highest cumulative score wins.

Teams will be allowed to use any combination of software and human interaction systems to produce the best drawings. To accommodate both teams wishing to prepare for the challenge and teams wishing simply to participate, with no preparation, we will be providing, in advance, a small set of graph visualization tools. These tools are not necessarily meant to solve the problems at hand but are there to help the teams manually draw and manipulate the graphs. To further the development of new tools and to help promote tools already in existence, teams are also welcome and highly encouraged to create and bring their own software packages.

There will be two categories in the challenge that are judged independently:

  • Automatic: This category is for teams using their own tool. Since we assume that the tool contains special algorithms to solve the challenge automatically, these teams will receive larger challenge graphs. Manual fine-tuning is allowed.
  • Manual: This category is for teams using the provided graph editor. The graph editor does not contain any specific algorithm to solve the challenge. It allows only to change vertex locations. This category is for creating manual solutions without help of an automatic algorithm. Teams in this category will receive smaller challenge graphs. The tool is available online.

The challenge focuses on maximizing the smallest angle between any pair of crossing edges in a straight-line embedding. The input graphs are arbitrary undirected graphs.

Two edges of an embedded graph are said to cross if they do not share an endpoint, but the interiors of their images intersect. The crossing angle for such a pair of edges is the smaller of the two angles between their two supporting lines; that is, it is a value between 0 and 90 degrees.

The min crossing angle for a given drawing is the minimum over the set of crossing angles between crossing edges, or 90 degrees if this set is empty. The goal is to find an embedding which maximizes the min crossing angle.

Here is an overview of the rules for the challenge:

  • The challenge will take place for one hour during the Graph Drawing Symposium.
  • Teams may consist of up to three participants each. Each team should bring their own computers and/or software tools to the challenge.
  • Software tools for manually solving the challenge will be provided for each team with time available prior to the challenge to set-up and practice with the system.
  • At the start of the challenge, contestants will receive a collection of five to ten graphs. The graphs will have up to a few thousand nodes.
  • The allowed grid size will be specified in the file format, but will not be larger than 1,000,000 x 1,000,000.
  • For each graph, the team submitting the drawing with the largest smallest crossing angle receives the highest score. The graphs do not necessarily have an initial embedding.
  • Scores for other submissions of the same graph shall be weighed with respect to this value. The team with the highest total score over all graphs wins.

File Format

The file format has been changed for this year's contest. Please update your parsers accordingly.

For the GD2018 contest, a JSON format described below will be used. The contest graphs will be provided in this format and the final submissions should be prepared using the same format. A valid JSON file consists of the following entries:

  • nodes: An array with one element per node of the graph. Each element has the following entries:
    • id: The id of the node. Has to be an integer between 0 and #nodes-1.
    • x: The x-coordinate of the node. Has to be an integer between 0 and xdimension.
    • y: The y-coordinate of the node. Has to be an integer between 0 and ydimension.
  • edges: An array with one element per edge of the graph. Each element has the following entries:
    • source: The id of the source node.
    • target: The id of the target node.
  • xdimension (optional): The maximum x-coordinate of the grid. Has to be a non-negative integer. If unspecified, the xdimension is set to 1,000,000.
  • ydimension (optional): The maximum y-coordinate of the grid. Has to be a non-negative integer. If unspecified, the ydimension is set to 1,000,000.

Sample File

Below is a simple example:

{ "nodes": [
    { "id": 0, "x": 0, "y": 15 },
    { "id": 1, "x": 5, "y": 5 },
    { "id": 2, "x": 10, "y": 0 },
    { "id": 3, "x": 15, "y": 0 },
    { "id": 4, "x": 20, "y": 5 },
    { "id": 5, "x": 25, "y": 15 } ],
  "edges": [
    { "source": 0, "target": 1 },
    { "source": 0, "target": 3 },
    { "source": 0, "target": 5 },
    { "source": 1, "target": 2 },
    { "source": 1, "target": 4 },
    { "source": 2, "target": 3 },
    { "source": 2, "target": 4 },
    { "source": 2, "target": 5 },
    { "source": 3, "target": 4 },
    { "source": 4, "target": 5 } ],
  "xdimension": 25,
  "ydimension": 15 }

The left drawing below corresponds to this input file. This layout has a crossing angle of 45° and is not optimal. By moving the nodes 1 and 4 up and the nodes 2 and 3 down, the graph can be drawn with a single right-angle crossing; see the right drawing below.

     

How to participate

The Live Challenge will be part of the 26th International Symposium on Graph Drawing and Network Visualization, and will take place on Wednesday, September 26, 6:30 pm CEST.

If you are attending the Graph Drawing Symposium, you can choose to participate in either the manual or automatic category. In either case, you will need to bring an internet-enabled laptop or other device to the conference. If you wish to participate in the manual category, you will attempt to solve the problems using a supplied tool. You can already access the tool and familiarize yourself with its use here.

If you wish to participate in the automatic category, you can use any software you wish to solve the problems, including the supplied tool (however, problems instances will be much larger than in the manual category).

If you are not attending the symposium, you can still participate remotely in the automatic category. In either case, you may use at most one computer per team.

The challenge will be run through an online submission system. You can already visit the system and try out some test graphs here.