Features and limitations of the HL

Features

  • Organizes nodes without overlaps in horizontal or vertical levels.
  • Arranges the graph such that most of the links are short and flow uniformly in the same direction (from left to right, from top to bottom, and so on).
  • Reduces the number of link crossings. Most of the time, produces drawings with no crossings or only few crossings.
  • Often produces balanced drawings that emphasize the symmetries in the graph.
  • Supports self-links (that is, links with the same origin and destination node), multiple links between the same pair of nodes, and cycles.
  • Efficient, scalable algorithm. Produces a nice layout for most sparse and medium-dense graphs relatively quickly, even if the number of nodes is large.
  • Provides several alignment and offset options.
  • Supports port specifications where links attach the nodes. Allows you to specify which side of a node (top, bottom, left, right) a link can be connected to or to specify which relative port position must be used for the connection.
  • Supports layout constraints. Allows you to specify relative positional constraints, for instance, that a node is above another node or left of another node.
  • Incremental and nonincremental mode. In incremental mode, the previous position of nodes are taken into account. Positions the nodes without changing the relative order of the nodes so that the layout is stable on incremental changes of the graph.
  • Can handle flat and nested graphs. In recursive layout mode, it routes the intergraph links of nested graphs and places the labels of nodes and links in subgraphs.
  • The computation time depends on the number of nodes, the number of levels, and the number of links that cross several levels. Most of the time, the links are placed between adjacent levels, which keeps the computation time small.

Limitations

  • The algorithm tries to minimize the number of link crossings (which is generally an NP-complete problem). It is mathematically impossible to solve this problem quickly for any graph size. Therefore, the algorithm uses a fast heuristic that obtains a good layout, but not always with the theoretical minimum number of link crossings.
  • The algorithm tries to place the nodes such that all links point uniformly in the same direction. It is impossible to place cycles of links in this way. For this reason, it sometimes produces a graph where few links are reversed to point into the opposite direction. The algorithm tries to minimize the number of reversed links (which, again, is an NP-complete problem). Therefore, the algorithm uses a fast heuristic resulting in a good layout, but not always with the theoretical minimum number of reversed links.
  • The computation time required to obtain an appropriate drawing depends most significantly on the number of bends in the links. Since the algorithm places one bend whenever a link crosses a level, the number of bends can grow relatively quickly if the layout requires many long links that span several levels. Therefore, the layout process can become time-consuming for dense graphs (the number of links is relatively high compared to the number of nodes) or for graphs that require many node levels.