![Page 1: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/1.jpg)
Kap. 2: HierarchischesGraphenzeichnen
2.1. Kreuzungszählen
VO Algorithm Engineering
Professor Dr. Petra Mutzel
Lehrstuhl für Algorithm Engineering, LS11
2. VO 5. April 2007
![Page 2: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/2.jpg)
Literatur für diese VO
• W. Barth, M. Jünger und P. Mutzel: Simple and Efficient 2-Layer Cross Counting, Journal of Graph Algorithms and Applications(JGAA), 2003
![Page 3: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/3.jpg)
Überblick• Einführung
– Hierarchisches Graphzeichnen– Kreuzungszählen
• Algorithmen– verschiedene klassische Algorithmen– BJM-Algorithmus
• Experimente
![Page 4: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/4.jpg)
Allgemeines Problem
Gegeben: Menge S von GeradensegmentenGesucht: Anzahl der Schnittpunkte
![Page 5: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/5.jpg)
Allgemeiner Fall
Ausgeben der Kreuzungen: Chazelle & Edelsbrunner [1992] O(|E| log |E| + |C|)
Nur Zählen:Chazelle [1985] O(|E|1.695)
![Page 6: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/6.jpg)
Spezielles Problem
Endpunkte der Segmenteliegen auf parallelen Geraden
![Page 7: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/7.jpg)
...eigentlich: bipartiter Graph
1
0 2 51 3 4
0 2 3 4
Anwendung: Automatisiertes Zeichnen von Graphen
![Page 8: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/8.jpg)
taz
![Page 9: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/9.jpg)
![Page 10: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/10.jpg)
Sugiyama Algorithmus
![Page 11: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/11.jpg)
Festlegung der Schichten
![Page 12: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/12.jpg)
Festlegung der Schichten
![Page 13: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/13.jpg)
Einfügung künstlicher Knoten
![Page 14: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/14.jpg)
Kreuzungsreduktion
![Page 15: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/15.jpg)
Kreuzungsreduktion
![Page 16: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/16.jpg)
Kreuzungsreduktion
![Page 17: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/17.jpg)
Kreuzungsreduktion
![Page 18: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/18.jpg)
Kreuzungsreduktion
![Page 19: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/19.jpg)
Kreuzungsreduktion
![Page 20: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/20.jpg)
Kreuzungsreduktion
![Page 21: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/21.jpg)
Begradigung der Kanten
![Page 22: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/22.jpg)
26%
26%26%
100%
26,3%
95,2%
91,1%26%22,5% 12% 26% 28%
25%
26,25%
100%
23%
21,3%15,7%
VEAGVereinigte
Elektrizitätswerke
EnBWEnergie
Baden-Württ. AG
VEW AG
RWEEnergie AG
VEWEnergie AG
EnergieVerwaltungs-GmbH
RWEAG
VIAG AG
ContigasAG Bewag AG
VEBAAG
PreussenElektra AG
SydkraftAB
HEWHamburgische
Elektr.-Werke AG
Bayernwerk AG
EBHGmbH
Southern EnergyHolding Bet.-GmbH
AG
100%
1%13.5%
15.4%
30%
60%
20%
![Page 23: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/23.jpg)
Datenbank einer Versicherung
![Page 24: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/24.jpg)
Zählen der Kreuzungen
Vor und nach jeder Heuristik-Anwendung:Zählen von Kreuzungen
1
0 2 51 3 4
0 2 3 4
![Page 25: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/25.jpg)
Zählen der Kreuzungen
g h i k l
a b c d e f
Naiver Algorithmus
Laufzeit: O(|E|2)
Für alle Kantenpaare e,f ∈E:Falls π(eN) < π(fN) UND π(eS) > π(fS)Dann: Zähle Kreuzung
Permutation π(N):
Permutation π(S):
e
f
![Page 26: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/26.jpg)
1
0 2 51 3 4
0 2 3 4
Zählen der Kreuzungen
Sweepline Algorithmus
![Page 27: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/27.jpg)
1
0 2 51 3 4
0 2 3 4
4
Zählen der Kreuzungen
![Page 28: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/28.jpg)
1
0 2 51 3 4
0 2 3 4
12
Zählen der Kreuzungen
![Page 29: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/29.jpg)
1
0 2 51 3 4
0 2 3 4
12
Zählen der Kreuzungen
![Page 30: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/30.jpg)
Sweepline Algorithmus
Bewege Sweepline von links nach rechts:Teilung in
• bereits beendete Kanten (links), • noch nicht erreichte Kanten (rechts), und• aktive Kanten (1 Endknoten erreicht)
![Page 31: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/31.jpg)
Sweepline von Sander 1995
Zwei geordnete Listen UL und LL:Endknoten der aktiven Kanten wird in der
• UL-Liste in der oberen Schicht deaktiviert• LL-Liste in der unteren Schicht deaktiviert
Laufzeit: O(|E| + |C|)
![Page 32: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/32.jpg)
Sweepline von Sander 19950. Vorverarbeitung: Splitte Knoten, so dass Knotengrad = 1
für alle Knoten.• Durchlaufe die Knoten nacheinander (von links nach
rechts). • Fall A: Sei v der aktuelle Knoten in unteren Schicht von
Kante (w,v) 3. Falls v Endknoten ist, dann4. CrossCount += |LL|5. u = first(UL)6. While u links von w liegt {7. CrossCount += 1; u = next(UL)8. }9. /* jetzt gilt: u==w /* entferne w aus Liste UL10. Sonst: aktiviere neue Kante: Eintrag in Liste LL11. Fall B: vertausche Rollen von UL und LL
![Page 33: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/33.jpg)
Geht es schneller als O(|E|+|C|)?
Anzahl der Kreuzungen: • Worst Case: |E|2• Average Case: ¼ |E|2
Auflisten von Kreuzungen:
Zählen von Kreuzungen:
NEIN!
JA!
![Page 34: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/34.jpg)
Ein zweiter Sweepline Algorithmus: O(|E| log |V|) Waddle & Malhotra [1999]
1
0 2 51 3 4
0 2 3 4
Probleme: • viele komplizierte Fallunterscheidungen• aufwändiger Algorithmus (viele Seiten)• aufwändige Implementierung
Zählen der Kreuzungen
![Page 35: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/35.jpg)
Ein einfacherO(|E| log |V|) Algorithmus
1
0 2 51 3 4
0 2 3 4
Zählen der Kreuzungen
![Page 36: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/36.jpg)
1
0 2 51 3 4
0 2 3 4
Lexikographisches Sortieren
![Page 37: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/37.jpg)
0 2 51 3 4
0 3 40 1 2 3 4 0 2 2
Lexikographisches Sortieren
![Page 38: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/38.jpg)
0 2 51 3 4
0 3 40 1 2 3 4 0 2 2
Beobachtung
Die Anzahl der Kreuzungen ist gleich derAnzahl der Inversionen der unteren Folge.
![Page 39: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/39.jpg)
0 0 01
0
3 4
2 51
22 23
3
4
4
Zählen der Inversionen
Insertion Sort
![Page 40: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/40.jpg)
0 0 01
0
3 4
2 51
22 23
3
4
4
Kreuzungen: 2 + 4 + 2 + 1 + 3 = 12
Zählen der Inversionen
Insertion Sort
![Page 41: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/41.jpg)
0 01
0
3 4
2 51
2 23
3
4
4
0 2
Kreuzungen: 2 + 4 + 2 + 1 + 3 = 12
Zählen der Inversionen
Insertion Sort
![Page 42: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/42.jpg)
0 0 0 1
0
3 4
2 51
22 2 3
3
4
4
Kreuzungen: 2 + 4 + 2 + 1 + 3 = 12
Zählen der Inversionen
Insertion Sort
![Page 43: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/43.jpg)
0 0 1
0 2 51
2 2 3
3
4
4
0 2 3 4
Zählen der Inversionen
Insertion Sort
![Page 44: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/44.jpg)
1
0 2 51 3 4
0 2 3 4
Alternative 2: Verbesserung auf O(|E| log |Vsmall|)
Alternative 1: Merge Sort: O(|E| log |E|)
Laufzeit: O(|C|)Insertion Sort
Zählen der Inversionen
![Page 45: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/45.jpg)
Accumulator Tree
![Page 46: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/46.jpg)
0 2 51 3 4
0 3 40 1 2 3 4 0 2 2
![Page 47: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/47.jpg)
0 3 40 1 2 3 4 0 2 2
![Page 48: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/48.jpg)
0
00
0000
0 0 0 0000010 2 3 4
0 3 40 1 2 3 4 0 2 2
![Page 49: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/49.jpg)
0
00
0000
0 0 0 0000010 2 3 4
0 3 40 1 2 3 4 0 2 2
![Page 50: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/50.jpg)
1
01
0001
1 0 0 0000010 2 3 4
0 3 41 2 3 4 0 2 2
![Page 51: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/51.jpg)
1
01
0001
1 0 0 0000010 2 3 4
0 3 41 2 3 4 0 2 2
![Page 52: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/52.jpg)
2
02
0002
1 1 0 0000010 2 3 4
0 3 42 3 4 0 2 2
![Page 53: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/53.jpg)
3
03
0012
2 1 1 0000010 2 3 4
3 43 4 0 2 2
+1
![Page 54: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/54.jpg)
3
03
0013
2 1 1 0000010 2 3 4
3 43 4 0 2 2
+1+1
![Page 55: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/55.jpg)
3
04
0013
2 1 1 0000010 2 3 4
3 43 4 0 2 2
+1+1
![Page 56: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/56.jpg)
4
04
0013
2 1 1 0000010 2 3 4
3 43 4 0 2 2
+1+1
![Page 57: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/57.jpg)
0 0 0 1
0
3 4
2 51
22 2 3
3
4
4
1+1=2 Kreuzungen bisher
2
0 3 40 1 2 3 4 0 2 2
![Page 58: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/58.jpg)
11
29
0254
3 1 3 0002210 2 3 4
(+1+1)+1+2+1+1+1+1+2+1=12 Kreuzungen
![Page 59: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/59.jpg)
Algorithmus CrossCount1. Sortiere die untere Schicht lexikographisch →
southsequence[0..r-1]2. Initialisierung des Accumulator Tree3. CrossCount = 0; /* Kreuzungsanzahl */4. For (k=0; k<r; k++) { /* füge Kante k ein */5. index = southsequence[k] + startindex6. tree[index]++; /* Eintrag auf Blattebene */7. While (index>0) { /* laufe Baum hoch */8. If (index zu linkem Kind gehörig) 9. crosscount += tree[index + 1];9. Wandere eine Schicht nach oben: neuer index10. tree[index]++; /* Eintrag auf aktueller Schicht */11. } 12.}
![Page 60: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/60.jpg)
C-Program-Fragment/* build the accumulator tree */
firstindex = 1;while (firstindex<q) firstindex *=2;treesize = 2*firstindex – 1; /* number of tree nodes */firstindex -= 1; /* index of leftmost leaf */tree = (int *) malloc(treesize*sizeof(int));for (t=0; t<treesize; t++) tree[t] = 0;
/* count the crossings */
crosscount = 0; /* number of crossings */for (k=0; k<r; k++) { /* insert edge k */index = southsequence[k] + firstindex;tree[index]++;while (index>0) {
if (index%2) crosscount += tree[index + 1];index = (index – 1)/2;tree[index]++;
}}printf(“Number of crossings: %d\n”,crosscount);free(tree);
![Page 61: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/61.jpg)
Praktische Experimente
SAN Sander [1995] O(|E| + |C|)
WAM Waddle & Malhotra [1999] O(|E| log |V|)
INS Insertion Sort O(|E| + |C|)
MER Merge Sort O(|E| log run(p))
BJM Neuer Algorithmus O(|E| log |Vsmall|)
![Page 62: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/62.jpg)
Laufzeit für dünne Graphen
0
5
10
15
20
25
0 5000 10000 15000 20000 25000 30000
Knotenanzahl pro Schicht
Lauf
zeit
in 1
/100
Sek
unde
n
SAN
WAM
INS
MER
![Page 63: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/63.jpg)
Laufzeit für dünne Graphen
0
5
10
15
20
25
0 5000 10000 15000 20000 25000 30000
Knotenanzahl pro Schicht
Lauf
zeit
in 1
/100
Sek
unde
n
SAN
WAM
INS
MER
BJM
![Page 64: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/64.jpg)
Laufzeit für dünne Graphen
0
5
10
15
20
25
0 5000 10000 15000 20000 25000 30000
Knotenanzahl pro Schicht
Lauf
zeit
in 1
/100
Sek
unde
n
SAN
WAM
INS
MER
BJM
SANMED
WAMMED
INSMED
MERMED
BJMMED
![Page 65: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/65.jpg)
0
50
100
150
200
250
300
350
0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000
Knotenanzahl pro Schicht
Lauf
zeit
in 1
/100
Sek
unde
n
BJMMERWAMSANINSBJMMEDMERMEDWAMMEDSANMEDINSMED
Laufzeit für große dünne Graphen
![Page 66: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/66.jpg)
0
2
4
6
8
10
12
0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000
Kantenanzahl pro Schichtenpaar
Lauf
zeit
in 1
/100
Sek
unde
n
BJM
MER
WAM
SAN
INS
BJMMED
MERMED
WAMMED
SANMED
INSMED
Laufzeit für dichte Graphen
![Page 67: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/67.jpg)
Computational ExperimentsAT&T Graphen
1. Phase: Schichteneinteilung von AGD• longest-path-layering: 30,061 Instanzen• Coffman-Graham-layering: 57,300 Instanzen
Für jede Instanz:10 zufällige Umsortierungen
gefolgt durch einen Median-Sortierschritt
Anzahl an Testläufen:601,220 “longest path”
1,146,000 “Coffman-Graham”
![Page 68: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/68.jpg)
Computational ExperimentsAT&T Graphen
Longest path layering
1 bis 6,566 obere Knoten, 63 durchschnittlich1 bis 5,755 untere Knoten, 57 durchschnittlich
1 bis 6,566 Kanten, 64 durchschnittlich
Zufällige Umsortierungen:0 bis 10,155,835 Kreuzungen, 24,472 durchschnittlich
Median-sortierte Schichten:0 bis 780,017 Kreuzungen, 182 durchschnittlich
![Page 69: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/69.jpg)
Computational ExperimentsAT&T Graphen
Coffman-Graham layering
1 bis 3,278 obere Knoten, 142 durchschnittlich1 bis 3,278 untere Knoten, 137 durchschnittlich
1 bis 3,276 Kanten, 141 durchschnittlich
Zufällige Umsortierungen:0 bis 2,760,466 Kreuzungen, 47,559 durchschnittlich
Median-sortierte Schichten:0 bis 2,872 Kreuzungen, 4 durchschnittlich
![Page 70: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/70.jpg)
Graphen aus der PraxisAT&T Graphen
![Page 71: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/71.jpg)
Folgerung
WAM, MER, BJMReduzieren die Laufzeit
des Sugiyama-Algorithmussignifikant!
BJM ist sehr einfachzu implementieren!
![Page 72: Kap. 2: Hierarchisches Graphenzeichnen 2.1. Kreuzungszählenls11- · 2007-04-10 · 0 bis 780,017 Kreuzungen, 182 durchschnittlich. Computational Experiments AT&T Graphen Coffman-Graham](https://reader033.vdocuments.mx/reader033/viewer/2022060411/5f1083c87e708231d4497ccf/html5/thumbnails/72.jpg)
Offenes Problem
Gegeben: eine Permutation von 0..n-1:
Ist wirklich Zeit Θ(n log n) nötig, umdie Anzahl der Inversionen zu zählen?
Vielen Dank