Baumeinbettung mit schönen Winkeln Jan Baumann - [email protected] 2. Juli 2008 1 Einführung Angenommen, wir möchten einen gegebenen Baum in der Ebene zeichnen, d.h. planar einbetten. Dazu möchten wir zuerst für jede Kante die Steigung festlegen und danach davon unabhängig ihre Länge. Für welche Wahl von Steigungen bekommen wir eine Einbettung mit Kanten, die sich nicht schneiden? Um diese Frage zu beantworten, präzisieren wir zunächst einige Begriffe. Definition 1. Ein konvexer Bogen (convex arch) ist eine polygonale Kette mit einer Winkelsumme von höchstens π, bei der die Kantensteigungen der Größe nach sortiert sind. Ein Beispiel für einen konvexen Bogen ist Abb. 1 links. Abb. 1: Links: Ein konvexer Bogen. Mitte: Kein konvexer Bogen, da die Summe der Winkel größer als π ist. Rechts: Kein konvexer Bogen, da die Kanten nicht nach Steigung sortiert sind. Definition 2. Ein eingebetteter Baum hat konvexe Flächen, wenn der Pfad zwischen je zwei Blattknoten des Baums ein konvexer Bogen ist. 1 Hat eine Baumeinbettung konvexe Flächen, so lassen sich alle Kanten, welche einen Blattknoten beinhalten, zu unendlich langen Strahlen verlängern, ohne dass sie sich kreuzen. Deshalb ist der resultierende Baum unabhängig von der Wahl der Kantenlängen planar (siehe Abb. 2). Abb. 2: Oben: Die Kanten eines Blattknotens einer konvexen Fläche lassen sich ins Unendliche verlängern, ohne dass sie sich schneiden. Unten: Ist die Fläche nicht-konvex (d.h. per Definition kein konvexer Bogen), so schneiden sich die Strahlen. Baumeinbettungen mit konvexen Flächen sind für das Auge angenehm zu betrachten, z.B. ist es durch die Konvexität der Flächen einfacher, Knoten in verschiedenen Teilbäumen auseinanderzuhalten (für ein Beispiel siehe Abb. 9). Definition 3. Die Winkelauflösung (angular resolution) ist der minimale Winkel zwischen je zwei Kanten, welche vom gleichen Knoten ausgehen, siehe Abb. 3. Nun können wir das Problem präzise formulieren: Baumeinbettung mit konvexen Flächen und optimalen Winkeln Eingabe: Baum T Ausgabe: Baumeinbettung von T mit konvexen Flächen mit maximaler Winkelauflösung unter allen möglichen Einbettungen 2 120° 120° 120° 150° 150° 60° 90° 90° 90° 90° Abb. 3: Links: Optimale Winkelauflösung von 2π/3. Mitte: Einbettung mit nichtoptimaler Winkelauflösung. Rechts: Optimale Einbettung mit 5 Knoten Wir betrachten zwei Versionen dieses Problems: 1. Die Kantenreihenfolge in jedem Knoten von T ist festgelegt, d.h. eine Einbettung ist festgelegt und diese muss der Algorithmus respektieren. 2. Die Kantenreihenfolge jedes Knotens kann vom Algorithmus beliebig permutiert werden. Abb. 4: Verschiedene Einbettungen eines Baumes haben verschiedene optimale Winkelauflösungen Die optimale Winkelauflösung von Problemversion eins kann sich bei gleichem Eingabebaum von Problemversion zwei unterscheiden. Der linke Baum in Abbildung 4 hat eine Einbettung vorgegeben. Dieser Baum kann mit einer maximalen Winkelauflösung von 2π/5 eingebettet werden. Im rechten Baum konnte durch eine Permutation der Kanten des mittleren Knotens eine bessere Winkelauflösung, nämlich π/2, erreicht werden. In der Phase, in welcher die Steigungen der Kanten festgelegt werden, kommt es nicht auf die Wahl der Wurzel des Baums an, da die Definitionen des konvexen Bogens und der konvexen Fläche nicht von der Wurzel des Baums abhängen. Deshalb nehmen wir an, dass T zunächst keinen als Wurzelknoten 3 ausgezeichneten Knoten hat. Nach dieser Phase ist es nützlich einen Wurzelknoten zu wählen, um die Struktur des Baumes mithilfe der Einbettung besser zu visualisieren (näheres dazu weiter unten). 2 Pfade und Rakes Zunächst behandeln wir einige Spezialfälle und bestimmen ihre optimale Winkelauflösung. 2.1 Pfad Definition 4. Ein Pfad ist ein Baum, in dem alle Knoten höchstens Grad 2 haben. Offensichtlich ist die optimale Winkelauflösung eines Pfads genau π/2, die genau dann erreicht wird, wenn wir alle Knoten auf einer gemeinsamen Linie zeichnen (siehe Abb. 5). Abb. 5: Ein Pfad und seine optimale Einbettung 2.2 Rake Definition 5. Ein Rake ist ein Baum in dem alle Knoten höchstens Grad 3 haben und bei dem ein Pfad alle Knoten von Grad 3 verbindet. Sei T ein Rake und sei P ein minimaler gerichteter Pfad in T , welcher alle Knoten vom Grad 3 verbindet. Wenn T in der Ebene eingebettet ist, hat jeder Knoten v vom Grad 3 innerhalb von P eine eingehende Kante in P , eine ausgehende Kante in P und eine unorientierte Kante, welche nicht zu P gehört. Wir sagen P macht einen Left-Turn in v, wenn die Kanten im Uhrzeigersinn folgendermaßen geordnet sind: 1. Eingehende Kante 4 2. Ausgehende Kante 3. Unorientierte Kante Sonst macht P in v einen Right-Turn. Wir bezeichnen ein Paar von direkt aufeinanderfolgenden Turns in P , welche beide Left bzw. Right-Turns sind, als Double-Turn. Abb. 6: Links: Ein Rake ohne Double-Turns mit Winkelauflösung 2π/3. Mitte: Ein Rake mit 3 Double-Turns (graue Dreiecke) mit Winkelauflösung 7π/12. Rechts: Einbettung eines beliebigen Rakes mit Winkelauflösung π/2. Lemma 1. Ein Rake ohne vorgegebene Einbettung hat eine optimale Winkelauflösung von 2π/3. Ein Rake mit vorgegebener Einbettung und k Double1 Turns hat eine optimale Winkelauflösung von π( 21 + 6+2k ). Beweis. Falls der Rake keine Double-Turns hat, kann er optimal in die Ebene eingebettet werden, indem man die Ebene zunächst in Sechsecke unterteilt (man stelle sich Bienenwaben vor) und die Kanten des Rakes auf die Kanten dieser Sechsecke legt, vgl. auch Abbildung 6 links. Wenn der Input ein Rake ohne vorgegebene Einbettung ist, so können wir solch eine Einbettung durch Permutation der Kantenfolgen immer erreichen, indem wir Left und RightTurns alternieren lassen. Diese Einbettung ist offensichtlich optimal. Falls der Rake nun eine Einbettung vorgegeben hat, schauen wir uns die Winkel zwischen je zwei aufeinanderfolgenden Blattknoten des Baumes an. Diese 5 Winkel sind immer nicht-negativ und ihre Summe ergibt 2π, da dies eine Unterteilung des Vollkreises darstellt. Sei die Winkelauflösung nun π2 + , dann muss der Winkel zwischen den beiden Pfaden der beiden Knoten vom Grad 3, welche kein Turn sind (die beiden äußersten Knoten vom Grad 3), mindestens π2 + sein. Der Winkel zwischen einem dieser Pfade und dem Pfad zum Blattknoten des nächstgelegenen Turns muss mindestens 2 betragen, weil diese beiden Pfade über zwei Winkel von mindestens π2 + verbunden sind. Das gleiche Argument gilt für die Winkel zwischen den Blattknotenpfaden in einem Double-Turn. Die restlichen Pfadpaare können parallel verlaufen. Addieren wir nun diese Winkel erhalten wir 2( π2 + 3) für die Winkel am Ende des Rakes und 2 für jeden Double-Turn. Da diese Summe gleich 2π sein muss, können wir nach auflösen und erhalten π + (6 + 2k) = 2π ⇒ = π( 1 ). 6 + 2k Da die Winkelauflösung als π2 + vorausgesetzt war, folgt die Behauptung. Wenn die Anzahl k der Double-Turns sehr gross wird, gilt für die Winkelauflösung 1 π 1 )= . lim π( + k→∞ 2 6 + 2k 2 Durch eine einfache Konstruktion können wir jeden Rake mit Winkelauflösung π2 einbetten. Man zeichnet den Pfad, welcher die Knoten vom Grad 3 verbindet abwechselnd horizontal und vertikal, anhängig davon, ob er einen right Turn oder einen left Turn macht (zur Veranschaulichung siehe Abb. 6 rechts). Im Allgemeinen zeigt dieser Algorithmus das Folgende: Lemma 2. Sei T ein Rake, und seien zwei Steigungen, θ1 and θ2 , gegeben. Dann kann T so eingebettet werden, dass alle Kanten Steigung θ1 oder θ2 haben und alle Flächen von T , außer der äußeren Fläche an der Wurzel, konvex sind. Wenn |θ1 − θ2 | ≤ π2 gilt, dann ist die Winkelauflösung der durch Lemma 2 erzeugten Einbettung |θ1 − θ2 |. Wir werden dieses Resultat später als Teil unseres Algorithmus benutzen, um Bäume einzubetten, die keine Rakes sind. 2.3 Triple-Rake Definition 6. Sei T ein Baum mit maximalem Knotengrad 3 und sei T 0 der minimal überspannende Teilbaum der Knoten vom Grad 3 in T . T ist ein Rake genau dann wenn T 0 ein Pfad ist. Der nächst einfachere Fall ist, wenn 6 Abb. 7: Ein Triple-Rake mit einem Double-Turn und einem short path. Die optimale Winkelauflösung beträgt 5π 18 T 0 einen Knoten t vom Grad 3 enthält. Wenn wir t als Wurzelknoten von T festlegen, dann sind die drei Teilbäume, welche von t ausgehen, Rakes. Deshalb nennen wir T einen Triple-Rake. Falls T eingebettet ist, können wir in jedem Rake-Teilbaum Turns und Double-Turns analog zur Rake Definition definieren. Zusätzlich definieren wir einen short path als einen Pfad ohne Turns, d.h. ein einzelner Knoten vom Grad 3, der durch Pfade mit t und mit zwei Blattknoten verbunden ist. Lemma 3. Wenn T ein Triple-Rake mit s short paths ohne vorgegebene 1 ). Wenn Einbettung ist, dann ist seine optimale Winkelauflösung π( 21 + 2(9−2s) T ein Triple-Rake mit s short paths und d double Turns mit vorgegebener 1 Einbettung ist, dann ist seine optimale Winkelauflösung π( 12 + 2(9−2s+2d) ). Beweis. Der Fall ohne vorgegebene Einbettung folgt aus dem anderen Fall, indem man T ohne double Turns einbettet. Für den Fall mit vorgegebener Einbettung nehmen wir wieder an, daß die optimale Winkelauflösung π2 + ist. Nun gehen wir analog zu Lemma 1 vor: wir betrachten alle in radialer Ordnung um t auftretenden Paare von Blattknoten mit ihren anhängenden Pfaden und bestimmen ihren Winkel zueinander. Während wir um den Triple-Rake herumwandern, addieren wir alle so erhaltenen Winkel. Diese Summe muss wieder gleich 2π sein. 7 Die drei Winkel zwischen den Blattknotenpfaden der Knoten vom Grad 3, welche keine Turns sind (die äußersten Knoten vom Grad 3) sind mindestens π2 + . Falls der betrachtete Teil-Rake kein short path ist, ist analog zu Lemma 1 der Winkel zwischen dem Blattknotenpfad des Knotens vom Grad 3, welcher kein Turn ist, und dem Blattknotenpfad des nächstgelegen Turns mindesten 2. Double Turns können auch wie in Lemma 1 behandelt werden, d.h. 2 Winkelvergrößerung für jeden Double Turn. Insgesamt ergibt sich 3π + (9 − 2s + 2d) = 2π, 2 woraus die Behauptung wieder folgt. Der Beweis legt alle Winkel der Einbettung fest, so dass ein Triple-Rake nun problemlos eingebettet werden kann. 3 Einbettung von Bäumen mit vorgegebener Einbettung Nachdem wir nun die Behandlung der Spezialfälle abgeschlossen haben, können wir uns dem allgemeinen Fall der Baumeinbettung zuwenden. Wir nehmen dazu an, daß der Baum T kein Path, Rake oder Triple-Rake ist, da die Einbettung für diese Fälle ja bekannt ist. Da wir bis jetzt keinen als Wurzelknoten r ausgezeichneten Knoten benötigt haben, bestimmen wir diesen folgendermassen: - Falls T Knoten mit Knotengrad 4 oder größer enthält, dann soll einer dieser Knoten die Wurzel r sein. - Ansonsten betrachten wir T 0 , den minimalen überspannenden Teilbaum von T , welcher alle Knoten vom Grad 3 enthält. Wir können T 0 finden, indem wir aus T alle Blattknoten und alle Pfade, die aus Grad 2 Knoten bestehen und zu einem Blattknoten führen, entfernen. Dieser Teilbaum T 0 kann kein Pfad sein, da wir vorausgesetzt haben, dass T kein Rake ist. Deshalb existiert in T 0 mindestens ein Knoten mit Grad 3 und die Wurzel r soll einer dieser Knoten sein. Nachdem wir nun einen Knoten als Wurzelknoten ausgezeichnet haben, betrachten wir für jeden Knoten v und jeden Kindknoten w von v den Teilbaum Tw , welcher durch v, w und allen Nachfahren von w besteht. Später wird es wichtig sein zu bestimmen, ob dieser Teilbaum ein Pfad oder ein Rake ist. Das dieses in Zeit O(n) möglich ist, zeigt das folgende Lemma. 8 Lemma 4. Für alle w können wir in Zeit O(n) entscheiden, ob Tw ein Pfad, ein Rake oder ein Baum der kein Pfad oder Rake ist. Beweis. Man gehe von den Blättern des Baums in Richtung des Knotens v. Bleibt der Knotengrad gleich 2 handelt es sich um einen Pfad, bei Knotengrad 3 um einen Rake und bei Knotengrad größer 3 um keinen Pfad oder Rake. Da man für immer näher an der Wurzel liegende Knoten die bereits berechneten Teillösungen benutzen kann und deswegen jeder Knoten nur einmal besucht werden muss, folgt die Behauptung. Definition 7. Wir definieren einen Fork im Knoten v als eine Teilfolge von zwei oder mehr Kindknoten wi von v (Reihenfolge der wi ist durch die vorgegebene Einbettung im Konten v festgelegt), so dass die Bäume Twi des ersten und letzten Kindes der Teilfolge Pfade und alle Twi innerhalb der Teilfolge Rakes sind (siehe Abb. 8). Abb. 8: Ein Knoten mit 3 Forks. Die Teilbäume dieses Knotens enthalten noch weitere Forks Ein Fork ist auch eindeutig durch den Teilbaum bestehend aus v, der Teilfolge von Kindknoten wi von v und deren Nachfahren bestimmt. Wenn v nicht die Wurzel ist, ist die Teilfolge wi in linearer Reihenfolge. Falls v = r, dann sind die Kindknoten wi in zyklischer Reihenfolge um r angeordnet und wir erlauben jede lineare Teilfolge dieser zyklischen Reihenfolge. Falls für genau einen Kindknoten w von r der Teilbaum Tw ein Pfad ist, und alle anderen Twi Rakes sind, erlauben wir auch einen Fork bestehend aus dem Pfad als Startpfad des Forks, den Rakes in der zyklischen Ordnung um die Wurzel, und wieder dem Pfad als Endpfad des Forks. 9 Lemma 5. Falls der Teilbaum Tw ein Rake ist, dann enthält dieser genau einen Fork am untersten Knoten mit seinen beiden Söhnen. Ansonsten gibt es mindestens zwei Forks in den Knoten von Tw (vorausgesetzt Tw ist kein Pfad). Beweis. Ein Rake Teilbaum Tw der Höhe 2 besitzt offensichtlich exakt einen Fork. Erweitern wir diesen Rake nach oben gibt es nur zwei Möglichkeiten, damit Tw ein Rake bleibt: • Der Rake wird durch einen Pfad verlängert. • Der Rake wird durch einen Pfad verlängert und bekommt in seiner Wurzel einen neuen Pfad zu einem Blatt. In beiden Fällen entsteht kein neuer Fork. Sei Tw nun kein Pfad oder Rake. Hat w nur einen Sohn x, dann ist Tx auch kein Rake und wir können in Tx zwei Forks finden. Hat w zwei Söhne, dann ist entweder einer der beiden Söhne kein Rake (in diesem gibt es mind. zwei Forks) oder beide sind Rakes und haben in ihren untersten Knoten jeweils einen Fork. Hat Tw drei oder mehr Söhne, und einer davon ist kein Path oder Rake, gibt es allein in diesem Unterbaum schon zwei Forks. Ist genau einer der drei oder mehr Unterbäume ein Rake, müssen die anderen Unterbäume Pfade sein. Dann haben wir einen Fork im Rake und einen bei w durch die beiden Pfade. Wenn alle Unterbäume Pfade sind, erzeugt jedes aufeinanderfolgene Pfadpaar einen Fork, also gibt es mindestens zwei. Lemma 6. Sei F ein Fork in einem Knoten v, welcher r rakes beinhaltet, in einer Baumeinbettung mit konvexen Flächen und einer Winkelauflösung von θ. Dann ist der Winkel zwischen dem ersten und dem letzten Blatt in F mindestens (r + 1)θ. Beweis. Insgesamt gibt es r + 2 Kanten in v, zwischen denen r + 1 Winkel sind. Da die Winkelauflösung θ ist, muss jeder dieser Winkel mindestens θ sein. Deshalb muss der Gesamtwinkel der ausgehenden Kanten im Knoten v mindestens (r + 1)θ sein. Durch Hinzufügen weiterer Kanten des Forks kann dieser Winkel nicht mehr kleiner werden. Lemma 7. Sei T ein Baum mit f Forks und Wurzelknoten r. Dann hat jede Einbettung mit konvexen Flächen von T eine Winkelauflösung von höchstens 2π/f . Beweis. Wir zeigen allgemeiner, daß wenn T f Forks in einem Knoten v hat, der Winkel zwischen dem ersten und dem letzten Blatt der Unterbäume von v mindestens f θ ist. Die Behauptung folgt dann für v = r. Sei die Steigung 10 des ersten Blatts o.B.d.A. 0. Durch jeden Fork in einem Unterbaum von v, welcher kein Rake oder Path ist, vergrößert sich die Steigung monoton um θ. In einem Rake, welcher kein Teil eines Forks ist, müssen die untersten beiden Blätter einen Winkel von θ einschliessen (dies ist ein Fork). Jeder Fork im Knoten v, welcher r Rakes enthält (also insgesamt r+1 Forks), führt zu einer Winkelvergrößerung von (r + 1)θ und diese Vergrößerung ist wieder gleich der Winkelvergrößerung von r+1 Forks. Lemma 8. In einem Baum mit Wurzel r (die Wurzel wurde wie oben beschrieben gewählt), welcher kein Pfad, Rake oder Triple Rake ist, gibt es mindestens vier Forks. Beweis. Falls zwei oder mehr Teilbäume, welche von der Wurzel r ausgehen, keine Pfade oder Rakes sind, folgt die Behauptung aus Lemma 5, denn ein Baum, welcher kein Pfad oder Rake ist, hat mindestens 2 Forks. Wenn r vier Söhne hat, von denen genau einer kein Pfad oder Rake ist, sind in diesem Sohn mindestens 2 Forks. Falls die restlichen drei Söhne Pfade sind, ergeben sich zwei Forks (erster Pfad mit zweitem und zweiter mit drittem). Falls die restlichen drei Söhne zwei Pfade und ein Rake sind, ergibt sich zwischen den beiden Pfaden ein Fork und im Rake gibt es auch mindestens ein Fork. Falls unter den restlichen Söhnen zwei oder mehr Rakes sind, gibt es auch mindestens zwei Forks, also gibt es immer mindestens vier Forks bei dieser Konfiguration. Nun kommen wir zu dem Fall, in dem alle vier oder mehr Söhne von r Pfade oder Rakes sind. Sind alle vier Söhne Pfade, dann erzeugt jeder Path einen Fork mit einem anderen Pfad (falls nur ein Pfad existiert schliesst dieser den Fork mit sich selbst) im Uhrzeigersinn um die Wurzel und jeder Rake hat einen Fork am untersten Kindknoten, also wieder insgesamt mindestens vier. Wenn r Knotengrad 3 hat, dann kann keiner der drei Teilbäume, deren Ursprung r ist, ein Pfad sein (wegen der Wahl unserer Wurzel). Ausserdem muss einer der Teilbäume kein Rake sein, da wir vorausgesetzt haben, daß T kein Triple-Rake ist. Aus diesem Teilbaum erhalten wir mindestens zwei Forks und mindestens zwei Forks aus den anderen beiden Teilbäumen. Wegen Lemma 7 und 8 ist die Winkelauflösung eines Baums, welcher kein Pfad, Rake oder Triple Rake ist, höchstens π2 . Deshalb können wir die RakeKonstruktion von Lemma 2 verwenden. Lemma 9. Sei T ein Baum mit f Forks und Wurzelknoten r. Dann hat die Einbettung mit konvexen Flächen von T eine Winkelauflösung von 2π/f . Beweis. Wir legen die Kantensteigungen von T in Post-Ordnung fest. In einem Unterbaum mit f 0 Forks ist der Winkel zwischen dem ersten und dem 11 0 letzten Blatt des Unterbaums 2π ff , also wird der Gesamtwinkel um T wie gewollt wieder 2π sein. Wenn wir die Kantensteigungen der Unterbäume eines Knotens v festlegen, betrachten wir die Kanten von v in ihrer Reihenfolge. Jeder Unterbaum, welcher kein Pfad oder Rake ist, bekommt für die Kante zu seinem ersten Blatt die gleiche Steigung wie das letzte Blatt des vorherigen Unterbaums zugewiesen. Bei jedem weiteren Blatt addieren wir die Winkelauflösung zur Steigung dazu. Die Kante, welche zu diesem Teilbaum führt, bekommt als Steigung die Winkelhalbierende des Winkels zwischen dem ersten und dem letzten Blatt zugewiesen. Dieser Winkel ist mindestens 2π/f größer als der Winkel der ersten Blattkante und mindestens 2π/f kleiner als der Winkel der letzten Blattkante des Unterbaums. Deshalb ist zwischen den Kanten von v immer ein Winkel von mindestens 2π/f . Jeder Pfad, welcher nicht der abschließende Pfad eines Forks ist, bekommt die gleiche Steigung wie das zuletzt gezeichnete Blatt. Jeder Rake, welcher sich in einer Folge von Rakes befindet, welche direkt auf einen Pfad folgt, wird mit Hilfe von Lemma 2 so gezeichnet, so dass die Steigung insgesamt um 2π/f ansteigt (also wie in einem einzelnen Fork). Die Wurzelkante des Rakes bekommt die gleiche Steigung wie die Kante der letzten Blatts des Rakes. Jeder andere Rake wird auch mit Lemma 2 gezeichnet, allerdings bekommt die Wurzelkante die gleiche Steigung wie die Kante des ersten Blatts des Rake. Letztlich bekommt jeder zweite Pfad eines Forks die Steigung der Summe des letzten Blatts und 2π/f . Kombinieren wir diese Lemmata erhalten wir: Theorem 1. Sei T ein Baum mit vorgegebener Einbettung ohne Wurzel. Dann kann kann eine Einbettung von T mit konvexen Flächen und optimaler Winkelauflösung in Zeit O(n) gefunden werden. Beweis. Zuerst testen wir, ob T ein Pfad, Rake oder Triple Rake ist. Ist T ein Pfad, betten wir T mit Winkelauflösung π ein. Falls T ein Rake ist, benutzen wir Lemma 1, falls T ein Triple Rake ist, benutzen wir Lemma 3. Ansonsten bestimmen wir wie oben beschrieben einen Wurzelknoten, bestimmen welche Teilbäume Pfade und Rakes sind, zählen die Anzahl Forks in jedem Knoten und benutzen die Einbettung von Lemma 9. Die Optimalität der Winkelauflösung folgt aus Lemma 7. 12 4 Einbettung von Bäumen ohne vorgegebener Einbettung Nun können wir Bäume ohne vorgegebener Einbettung behandeln. Da unsere Wahl der Wurzel nicht von der Einbettung abhängt können wir diese Wurzel auch für diesen Fall verwenden. Allerdings hängt die Definition eines Forks stark von der Einbettung ab, deshalb müssen wir um eine maximale Winkelauflösung zu erreichen, die Anzahl der Forks minimieren. Definition 8. Wir definieren den Excess eines Knotens v, welcher nicht der Wurzelknoten ist, als Ev = max(0, Pv − Nv − 1), wobei Pv die Anzahl der von v herabgehenden Bäume, die Pfade sind, ist und Nv die Anzahl der von v herabgehenden Bäume, welche weder Pfade noch Rakes sind, ist. Für den Wurzelknoten definieren wir Pr und Nr genauso und setzen Er = max(0, Pr − Nr ). Der Gesamt-Excess E(T) ist die Summe der Excesse in jedem Knoten. Lemma 10. Jede Einbettung eines Baums T in der Ebene hat mindestens E(T ) Forks und es gibt eine Einbettung von T mit genau E(T ) forks. Beweis. Im Knoten v gibt es, unabhängig von der Wahl der Einbettung, Pv Pfade, welche Pv − 1 potentielle hintereinanderfolgene Pfadpaare bilden können (Pv Paare in der zyklischen Reihenfolge an der Wurzel). Höchstens Nv von diesen Pfadpaaren können von einem Unterbaum getrennt werden, welcher kein Pfad oder Rake ist (damit kein Fork entsteht). Die verbleibenden Pfade erzeugen Forks, also gibt es mindestens Ev forks in v und E(T ) insgesamt. Diese Schranke wird erreicht, indem man in jedem Knoten jeweils einen Pfad und einen Unterbaum, welcher kein Pfad oder Rake ist, abwechselnd nebeneinander setzt, solange dies möglich ist. Die restlichen Pfade erzeugen Forks. Die Platzierung eines Rakes in dieser Reihenfolge und die Reihenfolge der Unterbäume in einem Rake hat auf die Anzahl der entstehenden Forks keine Auswirkung. Theorem 2. Sei T ein Baum ohne vorgegebener Einbettung ohne Wurzel. Eine Einbettung von T mit konvexen Flächen und optimaler Winkelauflösung kann in Zeit O(n) gefunden werden. Wenn T kein Pfad, Rake oder Triple-Rake ist, ist die optimale Winkelauflösung aller Einbettungen von T mit konvexen Flächen 2π/E(T ). 13 Beweis. Zuerst testen wir, ob T ein Pfad, Rake oder Triple Rake ist. Ist T ein Pfad, betten wir T mit Winkelauflösung π ein. Falls T ein Rake ist, benutzen wir Lemma 1, falls T ein Triple Rake ist, benutzen wir Lemma 3. Ansonsten bestimmen wir wie oben beschrieben einen Wurzelknoten, legen mit Lemma 10 eine Einbettung mit einer minimalen Anzahl von Forks fest und benutzen dann Theorem 1 mit der gleichen Wurzel. Die Optimalität der Winkelauflösung folgt aus den Lemmata 7, 9 und 10. 5 Festlegen der Kantenlängen Obwohl unser Hauptaugenmerk auf den Steigungen der Kanten lag, können wir keinen Baum zeichnen ohne seine Kantenlängen festzulegen. Da wir explizit davon ausgegangen sind, daß die Pfade, welche zu einem Blattknoten führen, ins Unendliche verlängert werden dürfen ohne sich zu kreuzen, können wir die Kantenlängen nach Belieben festlegen um den Baum ästhetisch aussehen zu lassen oder um eine uns wichtige Eigenschaft des Baums zu unterstreichen. 5.1 Gleiche Kantenlängen Wenn alle Kantenlängen auf die gleiche Länge gesetzt werden, wird ein Baum mit einem für das Auge angenehmen gleichen Knotenabstand erzeugt. Diese Wahl der Kantenlängen ist auch gut geeignet, falls der Baum keinen als Wurzelknoten ausgezeichneten Knoten hat. Für ein Beispiel siehe Abb. 9. Abb. 9: Ein Baum mit uniformen Kantenlängen 14 5.2 Knoten auf konzentrischen Kreisen Abb. 10: Ein Baum, bei dem die Knoten auf konzentrischen Kreisen liegen Wir können den Wurzelknoten in das Zentrum eines Systems von konzentrischen Kreisen legen. Jeder andere Knoten liegt auf dem Kreis, der seinem Abstand zur Wurzel entspricht. Um dies zu erreichen, legen wir die Kantenlängen in preorder (rLR) fest. Da die Steigungen festgelegt sind, kann eine neue Kante (u, v) eingefügt werden, indem von der Position von u (schon festgelegt wegen preorder) ein Strahl mit der festgelegten Kantensteigung ins Unendliche gelegt wird. Da der Kreis von u innerhalb des Kreises von v liegt, schneidet der Strahl den Kreis von v in genau einem Punkt; an diesem Punkt wird v platziert. Die Kantenlänge ist die Länge des Verbindungsvektors. Ein Beispiel ist in Abb. 10 zu sehen. Baumzeichnungen dieser Art machen die Wurzel für den Betrachter direkt erkennbar. Ausserdem wird der Abstand eines jeden Knotens von der Wurzel deutlich sichtbar, besonders wenn die Kreise mit angezeigt werden. 5.3 Kantenlänge abhängig von der Position im Baum Legt man die Kantenlängen als Funktionen des Abstands von der Wurzel fest, entstehen Bäume in dem die Abstände von der Wurzel und der Wurzelknoten selbst schnell erkennbar werden. Abb. 11 zeigt einen Baum mit Kantenlängen invers proportional zum Abstand von der Wurzel. 15 Abb. 11: Ein Baum mit Kantenlängen invers proportional zum Abstand von der Wurzel 16