Automatisches Zeichnen von Graphen

Ähnliche Dokumente
Kap. 4.2: Binäre Suchbäume

Algorithmen zur Visualisierung von Graphen

Zeichnen von Graphen. graph drawing

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen

Binäre Bäume Darstellung und Traversierung

Datenstrukturen. einfach verkettete Liste

Kapiteltests zum Leitprogramm Binäre Suchbäume

13. Binäre Suchbäume

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Datenstrukturen & Algorithmen

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

WS 2009/10. Diskrete Strukturen

Abschnitt 18: Effizientes Suchen in Mengen

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Zeichnen von Bäumen Lina Wolf

368 4 Algorithmen und Datenstrukturen

Vorlesung Datenstrukturen

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany Stammbaum. Stammbaum. Stammbaum

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Tutorium Algorithmen & Datenstrukturen

6 Baumstrukturen. Formale Grundlagen der Informatik I Herbstsemester Robert Marti

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Algorithmen und Datenstrukturen SS09

Klausur Informatik B April Teil I: Informatik 3

Studientag zur Algorithmischen Mathematik

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Verkettete Datenstrukturen: Bäume

Datenstrukturen und Algorithmen

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Graphen und Bäume. A.1 Graphen

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Datenstrukturen & Algorithmen

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Algorithmen und Datenstrukturen Balancierte Suchbäume

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown

Binary Decision Diagrams (Einführung)

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

In diesem Kapitel behandeln wir erste Algorithmen mit dynamischen Strukturen, wie Bäume und Graphen. 1. Bäume Grundlagen...

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

WS 2009/10. Diskrete Strukturen

INTERVALLBÄUME. Tanja Lehenauer, Besart Sylejmani

Informatik II, SS 2014

14. Rot-Schwarz-Bäume

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

6. Übung zur Linearen Optimierung SS08

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung

Programmiertechnik II

Overview. Testen von Planarität. Planare Graphen. Beliebige Knotenpositionen. Gerade Linien. Faces

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Das Linear Ordering Problem Exakte Lösungsverfahren. für NP-schwierige. VO Algorithm Engineering

8 Diskrete Optimierung

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Klausur Algorithmen und Datenstrukturen

Geordnete Binärbäume

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Übung zur Vorlesung Algorithmische Geometrie

KD-Bäume. ein Vortrag von Jan Schaefer

Dynamisches Huffman-Verfahren

Mengen und Abbildungen

Algorithmen, Datenstrukturen und Programmieren II SS 2001

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Grundbegriffe der Informatik

Effiziente Algorithmen I

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Kurs 1613 Einführung in die imperative Programmierung

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16.

Copyright, Page 1 of 8 AVL-Baum

Algorithmen II Vorlesung am

Kapitel 5 KONVERGENZ

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Transkript:

Automatisches Zeichnen von Graphen Kap. 2: Zeichnen von Bäumen Prof. Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering LS11 Universität Dortmund 2./3./4. VO WS07/08 16./22./23. Oktober 2007 1

Literatur für diese VO Originalartikel: E.M. Reingold und J.S. Tilford: Tidier Drawings of Trees, IEEE Transactions on Software Engineering SE-7, 1981, 223-228 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 3

Kapitel 2: Zeichnen von Bäumen Orga Diagramme Dateistrukturen Hierarchien Stammbäume... Reingold, Tilford 1981

Beispiel: Baumzeichnung 0 1 3 2 4 5 7 8 6 9 10 12 11 17 14 15 13 16 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 5

Beispiel: Baumzeichnung 30 Knoten

200 Knoten

Überblick zu Kapitel 2 2.1 Einführung 2.2 Aesthetikkriterien 2.3 Algorithmus von Reingold und Tilford (RT) 2.4 Analyse des RT-Algorithmus 2.5 Komplexität 2.6 Lineares Programm 2.7 Alternative Darstellungen für Bäume Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 8

2.1 Einführung Kurzer Rückblick auf DAP2: Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 9

Worst Case Analyse von BinarySearch Definitionen Gewurzelter Baum (rekursiv): entweder leer oder Knoten (Wurzel) mit Verweisen auf mehrere gewurzelte Bäume (Teilbäume) T 1,T 2,,T m Kind von Knoten v: Wurzelknoten eines nichtleeren Teilbaums von v Blatt: Knoten ohne Kinder Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 10

Worst Case Analyse von BinarySearch Bezeichnungen: Gewurzelte Bäume Wurzel innere Knoten 5 Kanten linker Unterbaum von 5 2 3 5 7 8 Knoten Blätter: Knoten ohne Kinder Tiefe d(v): # der Elter-Knoten bis Wurzel (inkl.) 3 ist Wurzel des linken Unterbaums von 5 3 ist Elter von 2, 3 ist Elter von 5 2 ist linkes Kind von 3, 5 ist rechtes Kind von 3

Worst Case Analyse von BinarySearch Bezeichnungen Wurzel innere Knoten linker Unterbaum von 5 2 3 5 5 7 d(3)=1? d(8)=2? d(wurzel)=0? 8 Blätter: Knoten ohne Kinder Tiefe d(v): # der Elter-Knoten bis Wurzel (inkl.) Ebene: Menge aller Knoten mit gleicher Tiefe Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 12

Worst Case Analyse von BinarySearch innere Knoten linker Unterbaum von 5 Bezeichnungen 2 3 5 5 7 Wurzel d(3)=1 d(8)=2 d(wurzel)=0 Nachfolger(v): Menge aller Knoten im Unterbaum mit Wurzel v 8 d(t 3 )=1 d(t 8 )=0 d(t Wurzel )=2 Blätter: Knoten ohne Kinder Höhe h(t r ) eines (Teil-)baumes T r mit Wurzel r: max { d(v): v ist Knoten in T r }

WorstWeitere Case Analyse Definitionen von BinarySearch Ein gewurzelter Baum heißt geordnet, wenn die Reihenfolge der Kinder festgelegt ist Ein binärer gewurzelter Baum ist ein gewurzelter Baum, bei dem jeder Knoten genau 0,1, oder 2 Kinder hat. Ein geordneter gewurzelter binärer Baum unterscheidet also zwischen linkem und rechtem Kind T L /T R bzw. linkem und rechtem Unterbaum. Ein binärer Baum heißt vollständig, wenn alle Blätter die gleiche Tiefe haben. HIER: Binärbaum:= geordneter gewurzelter Binärbaum Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 14

Worst Case Analyse von BinarySearch Binärbäume Achtung: Binärbäume sind keine Untermenge von Bäumen A A B B Dies sind die gleichen Bäume aber unterschiedliche Binärbäume Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 15

Worst Case Analyse von BinarySearch Implementierung binärer Bäume Realisierung als verallgemeinerte Listen mit bis zu zwei Nachfolgern: x.key: Schlüssel von Knoten x x.info: zum Schlüssel zu speichernde Daten x.parent: Elter von Knoten x x.left: linkes Kind von Knoten x x.right: rechtes Kind von Knoten x Zugriff auf den Baum erfolgt über seinen Wurzelknoten root Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 16

Worst Case Analyse von BinarySearch Traversierungen für binäre Bäume Inorder-Traversierung: Durchsuche rekursiv zunächst den linken Unterbaum, dann die Wurzel, durchsuche dann den rechten Unterbaum. 3,1,7,5,4,6,0,2 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 17

Worst Case Analyse von BinarySearch Traversierungen für binäre Bäume Preorder-Traversierung: Durchsuche rekursiv zunächst die Wurzel, dann den linken Unterbaum, durchsuche dann den rechten Unterbaum. 0,1,3,4,5,7,6,2 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 18

Worst Case Analyse von BinarySearch Traversierungen für binäre Bäume Postorder-Traversierung: Durchsuche rekursiv zunächst den linken Unterbaum, dann den rechten Unterbaum, durchsuche dann die Wurzel. 3,7,5,6,4,1,2,0 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 19

Worst Case Analyse von BinarySearch Traversierungen für binäre Bäume Level-Order-Traversierung: Durchsuche zunächst alle Ebenen von links nach rechts, wobei die Ebenen von oben nach unten besucht werden. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 20

Inorder-Traversierung (1) Procedure INORDER(p) (2) if p NULL { (3) INORDER(p.left) (4) Ausgabe von p (5) INORDER(p.right) (6) } Aufruf: INORDER(root) Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 21

Worst Case Analyse von BinarySearch Traversierungen für binäre Bäume Aus Inorder-Traversierung und Preorder- Traversierungsreihenfolge kann der binäre Baum eindeutig rekonstruiert werden, wenn er lauter verschiedene Schlüssel enthält. Dies gilt nicht, wenn lediglich Preorder- und Postorder-Reihenfolge gegeben sind. Beispiel: 5 5 2 3 2 3 Preorder: 5,2,1,3 Postorder: 1,2,3,5 1 1

ENDE Rückblick auf DAP2 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 23

2.2 Aesthetikkriterien für Binärbäume 1. Schichtenzeichnungen, d.h. Knoten mit gleicher Entfernung zur Wurzel erhalten gleiche Schicht (y- Koordinaten) 2. Linkes Kind soll links vom Elter liegen, rechtes Kind soll rechts vom Elter liegen 3. Elter sollte zentriert über den Kindern liegen 4. Zwei isomorphe Unterbäume sind gleich gezeichnet 5. Ein Baum und sein Spiegelbild erhalten spiegelbildliche Zeichnungen Weitere Ziele: Gitterzeichnung, d.h. ganzzahlige Koordinaten Aufgabe: Bestimme die x-koordinaten, so dass Weite minimal Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 24

Bemerkung Aesthetikkriterium 4. widerspricht sich mit der Forderung der minimalen Weite: 7 breit 8 breit minimale Weite Zeichnung mit Bed. 4 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 26

Algorithmus von Reingold und Tilford Idee: Postorder -Traversal Zeichne den linken Unterbaum (UB) Zeichne den rechten UB Füge die Zeichnung der UB so zusammen, dass diese Mindestabstand 2 haben Platziere die Wurzel der beiden UB eine Schicht weiter oben genau in der Mitte der beiden Kinder Falls ein Elter nur 1 Kind besitzt, platziere Wurzel in horizontaler Distanz 1 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 27

Beispiel des RT-Algorithmus 0 1 6 2 4 3 8 9 5 7 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 28

Probleme: Beispiel Problem: ungerader Abstand nicht-ganzzahlige Koordinate Lösung: rücke rechten UB um 1 weiter nach rechts 0 7 8 14 9 10 15 2 11 12 13 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 29

Beispiel des RT-Algorithmus Problem: ungerader Abstand nicht-ganzzahlige Koordinate Lösung: rücke rechten UB um 1 weiter nach rechts Problem: Weite größer als notwendig 0 7 8 14 9 10 15 3 11 12 13 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 30

Beispiel des RT-Algorithmus Problem: ungerader Abstand nicht-ganzzahlige Koordinate Lösung A: rücke rechten UB um 1 weiter nach rechts Problem: Weite größer als notwendig 0 7 8 14 9 10 15 11 12 13 Lösung: Lösung A in Verbindung mit separiere mit Distanz 1 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 31

Algorithmus von Reingold und Tilford Ausgefeiltere Idee: Postorder -Traversal Zeichne den linken UB Zeichne den rechten UB Füge die Zeichnung der UB so zusammen, dass diese Mindestabstand 1 haben Platziere die Wurzel der beiden UB eine Schicht weiter oben genau in der Mitte der beiden Kinder (falls der Abstand ungerade, dann schiebe rechten UB um 1 weiter nach rechts) Falls ein Elter nur 1 Kind besitzt, platziere Wurzel in horizontaler Distanz 1 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 32

Genauer: Algorithmus Idee von RT (1) Starte mit Wurzel W L und W R (2) Bestimme die minimale Distanz (3) Falls Kinder existieren, dann (4) Wandere eine Schicht tiefer; Gehe zu (2) (5) Beim Hochwandern: Fixiere Position der UB relativ zu ihrem Elter, der über ihnen zentriert wird (6) Am Ende werden die relativen Positionen in absolute Koordinaten umgewandelt mittels preorder Bemerkung: Eine Zeichnung eines UB ändert sich während des Verfahrens nicht mehr Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 33

Problem: Äußerste Kontur des Baumes? Kontur folgt nicht immer von Elter zu Kind 1 Realisierung: Falls unterschiedliche Höhe 2 4 beim Zusammenschieben, dann füge diesen Extra-Link ein 3 5 6 7 8 9 10 Beobachtung: In diesen Fällen ist Knoten ein Blatt Lösung: Benutze normale Kind-Zeiger in Verbindung mit Unterscheidungsbit Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 34

Algorithmus von RT: Teil 1 (1) Durchlaufe den geg. Baum in postorder: (2) // Sei T der aktuelle (Teil-)Baum (3) Initialisiere: MINDIST=1 (4) Platziere die Wurzeln der UB in MINDIST zueinander (5) Wandere entlang der rechten Kontur von T L und der linken Kontur von T R nach unten und erhöhe dabei MINDIST, falls notwendig (6) Setze OFFSET(T L ) = -(MINDIST+1)/2 (DIV rundet ab) (7) Setze OFFSET(T R ) = (MINDIST+1)/2 (8) Bei ungleicher Tiefe von T L und T R : Bestimme neue Konturen von T (setze Link zum Rand des tieferen) Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 35

Algorithmus von RT: Teil 2 // Jetzt liegen die relativen Koordinaten fest (9) Laufe durch linken Rand um absoluten OFFSET von Wurzel W zu erhalten XCOORD(W) (10) Durchlaufe T in Preorder-Sequenz und lege die x- Koordinaten aller Knoten fest Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 36

Beispiel für RT Algorithmus neue Kontur: halte hierfür Extrazeiger auf rechteste und linkeste Blätter des linken und rechten Teilbaums auf unterster Ebene 0 D 1-1 B -2 3 A 4 E 5-1 C 2 0 I OFFSET-Werte XCOORD 1-1 F 1 2 J 3 5-1 1 G 1 neue rechte Kontur Beispiel durchrechnen H Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 37

Verallgemeinerung auf Bäume Der RT-Algorithmus kann einfach für allgemeine Bäume verallgemeinert werden Problem: Man muss kleine UB zwischen großen UB gleichmäßig aufteilen 6 2 5 8 1 4 3 7 5 9 Algorithmus von Walker 1990, Korrektur in Buchheim, Jünger, Leipert: Drawing rooted trees in linear time, 2006 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 38

2.4 Analyse des RT Algorithmus Die gewünschten Eigenschaften (1)-(5) aus 2.2 (Aesthetikkriterien) sind bei einer RT Zeichnung erfüllt. Alle Koordinaten sind ganzzahlig. Ganzzahlige Koordinaten (1) Schichtenzeichnungen (2) Kinder links/rechts von Elter (3) Elter zentriert (4) isomorphe Unterbäume gleich (5) Baum und Spiegelbild identisch Wie ist es mit minimaler Weite unter diesen Bedingungen? Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 39

Analyse des RT Algorithmus Der RT Algorithmus erreicht nicht immer die minimale Weite unter den gewünschten Bedingungen. Schlimmer: Es existieren Binärbäume T, für die der RT-Algorithmus Zeichnungen mit Weite (n+2)/3 produziert, während die optimale Weite gleich 2 ist. T 1 : T k : T 1 Höhe: 6k T 2 n=6k+1 Weite(T k )=2k+1= =(n-1)/3+1=(n+2)/3 RT-Zeichnung 3 min. Weite 2 RT-Weite 2k+1 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 40 T k

Laufzeitanalyse des RT Algorithmus Lemma: Der RT-Algorithmus läuft in linearer Zeit. F(T): Zeit des Algorithmus für Baum T T L : linker UB, T R rechter UB, h(t) Höhe von T h: Anzahl Knoten auf längstem Weg: altes h(t)+1 Rekursionsgleichung: F(T) = F(T L )+F(T R )+min(h(t L ),h(t R )) Auflösung (Beh.): F(T) = n(t)-h(t) ohne Konstanten Beweis: Induktion über Anzahl der Knoten n(t)=0: F(T)=0 n(t)=1: F(T)=1-1=0 Aussage sei wahr für Bäume mit <N Knoten, sei n(t)=n F(T) = F(T L ) + F(T R ) + min(h(t L ),h(t R )) = = (K h(t L ))+(N K 1 h(t R )) + min(h(t L ),h(t R )) = = N (max(h(t L ),h(t R )) + 1) = N h(t) = n(t) h(t)

2.5 Komplexität des Baumzeichenproblems Lemma: Das Problem eine Zeichnung eines Binärbaums mit Weite W zu erstellen, bei der die Bedingungen (1)-(5) erfüllt sind und (6) die x-koordinaten ganzzahlig sind, ist NP-vollständig. Beweis: Reduktion von 3-SAT (s. Bw. in Supowit, Reingold: The complexity of drawings trees nicely, 1983, sowie Akkerman, Buchheim, Jünger, Teske: corrigendum, 2004) Lemma: Das Problem eine Zeichnung eines Binärbaums mit Weite W zu erstellen, bei der die obigen Bedingungen ohne (5) und ohne (6) erfüllt sind, ist äquivalent zu Linearer Programmierung. Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 42

2.6 Lineares Programm Variablen x(v) : für x-koordinaten von Knoten v und 2 zusätzlichen Variablen L und R (für linken und rechten Rand) mit L x(v) für alle v und R x(v) für alle v. Zielfunktion: minimiere R-L unter den Nebenbedingungen:??? Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 43

2.6 Lineares Programm Zielfunktion: minimiere R-L unter den Nebenbedingungen: zu 1.: Aufstellung via preorder zu 2.: x(v.right) x(v) 1 und x(v) x(v.left) 1 für alle v zu 3.: x(v.right) x(v) = x(v) x(v.left) Abstände: x(v 2 ) x(v 1 ) 1 für alle v 1,v 2 auf derselben Schicht mit v 2 level-order Nachfolger von v 1 level-order zu (4): Bestimmung aller Paare von isomorphen UB: Sei {v 1,v 2,,v k } Menge von Wurzeln isomorpher UB: x(v i.right) x(v i ) = x(v i+1.right) x(v i+1 ) für alle i, 1 i<k, für die v i.right existiert ODER dasselbe für v i.left: x(v i ) x(v i+1.left) = x(v i+1 ) x(v i+1.left)??? Lineares UGLS und Lineare Zielfunktion polynomielle Zeit Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 44

Wie bestimmt man die isomorphen UB? Merke die Größe (Anzahl der Knoten) jeden UB Jeder UB T k der Größe k erhält eine Nummer: Rank(T k ), so dass isomorphe UB gleichen Rang erhalten. Aufbau von Rank: 1. Stelle: Wurzel, Stellen danach, die kleiner sind als Wurzel hängen am linken UB, die restlichen am rechten UB. Beispiel: 6 2 1 3 4 5 8 7 9 6 2 8 1 3 7 9 4 5 Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 45

2.7 Alternative Darstellungen für Bäume Inclusion Drawings: Kinder sind enthalten in Tip-Over Zeichnungen: Kinder entweder horizontal oder vertikal Radiale Baumzeichnungen Petra Mutzel: Automatisches Zeichnen von Graphen, WS07/08 46