Eine Kurzbeschreibung des HL-Algorithmus.
Dieser Algorithmus arbeitet in vier Schritten:
- Schritt 1: Ebenen anlegen
- Die Knoten werden in Gruppen eingeteilt. Jede Gruppe bildet eine Ebene. Die Zielsetzung ist, die Knoten so zu gruppieren, dass die Links immer von einer Ebene mit einem kleineren Index auf eine Ebene mit einem größeren Index zeigen.
- Schritt 2: Reduktion von Kreuzungen
- Die Knoten werden auf jeder Ebene sortiert. Der Algorithmus versucht, die Anzahl der Linkkreuzungen möglichst gering zu halten, wenn die Knoten für jede Ebene in der folgenden Reihenfolge in einer Linie platziert werden (siehe Ebenen- und Positionsindizes). Diese Sortierung ergibt den relativen Positionsindex jedes Knotens innerhalb seiner Ebene.
- Schritt 3: Positionierung der Knoten
- Anhand der Ebenenindizes und Positionsindizes werden ausgeglichene Koordinaten für die Knoten berechnet. Für ein Layout, in dem die Linkrichtung von oben nach unten verläuft, werden die Knoten beispielsweise entlang horizontalen Linien platziert, so dass alle Knoten, die zu derselben Ebene gehören, (ungefähr) dieselbe Y-Koordinate haben. Die Knoten einer Ebene mit einem kleineren Index haben eine kleinere Y-Koordinate als die Knoten einer Ebene mit einem höheren Index. Innerhalb einer Ebene haben die Knoten mit einem kleineren Positionsindex eine kleinere X-Koordinate als die Knoten mit einem höheren Positionsindex.
- Schritt 4: Steuerung der Links
- Die Formen der Links werden so berechnet, dass die Links die Knoten an den Ebenenlinien umgehen. In vielen Fällen erfordert dies die Erstellung eines Kurvenpunkts, wenn ein Link eine Ebenenlinie kreuzen muss. In einem Layout, das von oben nach unten verläuft, haben diese Kurvenpunkte dieselbe Y-Koordinate wie die Ebenenlinie, die sie kreuzen. (Diese Kurvenpunkte erhalten ebenfalls einen Positionsindex.)
Ebenen- und Positionsindizes veranschaulicht, wie
der Algorithmus für hierarchisches Layout die Ebenen- und Positionsindizes verwendet, um den Graphen zu zeichnen.

Ebenen- und Positionsindizes
Sie können Parameter für die Schritte des Layoutalgorithmus
auf verschiedene Arten definieren.
Beispielsweise können Sie den Ebenenindex angeben, den der Algorithmus
für einen Knoten in Schritt 1 oder für die relative Knotenposition innerhalb der Ebene in Schritt 2 auswählen muss.
Sie können auch die Ausrichtung der Knoten innerhalb einer Ebene und den Stil der Linkformen angeben.
Beispiel für das hierarchische Layout
Das folgende Codebeispiel zeigt, wie ein hierarchisches Layout ausgeführt wird:
var layout = new ibm_ilog.graphlayout.hierarchical.HierarchicalLayout(); graph.setNodeLayout(layout); graph.performGraphLayout();