Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t...

123
Algorithmen zur Visualisierung von Graphen Darstellung von Symmetrien und Inkrementelle Verfahren I NSTITUT F ¨ UR T HEORETISCHE I NFORMATIK –L EHRSTUHL ALGORITHMIK I MARCUS KRUG www.kit.edu KIT – Universit¨ at des Landes Baden-W ¨ urttemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Transcript of Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t...

Page 1: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von GraphenDarstellung von Symmetrien und Inkrementelle Verfahren

INSTITUT FUR THEORETISCHE INFORMATIK – LEHRSTUHL ALGORITHMIK I

MARCUS KRUG

www.kit.eduKIT – Universitat des Landes Baden-Wurttemberg und

nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Page 2: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

bevor’s losgeht

Vorschlag fur Prufungsterminess Donnerstag, 1. Marz ab 9:00 Uhrss Freitag, 30. Marz ab 9:00 Uhr

Evaluation

Page 3: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Darstellung von Symmetrien in Graphen

aus Hong, Eades, Lee ’00

Page 4: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Darstellung von Symmetrien in Graphen

Definition: Automorphismen eines DAG

Ein Automorphismus eines DAG G = (V,E) ist eine Knotenpermutationπ : V → V , die Adjazenzen respektiert und alle Kantenrichtungen erhaltoder alle Kantenrichtungen umdreht:

(u, v) ∈ E ⇔ (π(u), π(v)) ∈ E

oder(u, v) ∈ E ⇔ (π(v), π(u)) ∈ E.

Die Automorphismen von G bilden mit der Hintereinanderausfuhrung eineGruppe.

ss die Automorphismengruppe eines Graphen zu bestimmen ist GI-vollstandigss fur Graphen mit beschranktem Maximalgrad und planare Graphen gehtdas in Polynomialzeit

Page 5: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Darstellung von Symmetrien in Graphen

Definition: Automorphismen eines DAG

Ein Automorphismus eines DAG G = (V,E) ist eine Knotenpermutationπ : V → V , die Adjazenzen respektiert und alle Kantenrichtungen erhaltoder alle Kantenrichtungen umdreht:

(u, v) ∈ E ⇔ (π(u), π(v)) ∈ E

oder(u, v) ∈ E ⇔ (π(v), π(u)) ∈ E.

Die Automorphismen von G bilden mit der Hintereinanderausfuhrung eineGruppe.

ss die Automorphismengruppe eines Graphen zu bestimmen ist GI-vollstandigss fur Graphen mit beschranktem Maximalgrad und planare Graphen gehtdas in Polynomialzeit

Page 6: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Darstellbare Symmetrien

ss ein Automorphismus π eines Graphen ist darstellbar, wenn es eineZeichnung gibt, die eine Symmetrie enthalt, welche π induziertss Lin charakterisiert darstellbare Automorphismen [Lin ’92]ss Darstellbare Automorphismen eines Graphen zu finden ist NP-schwerss fur planare Graphen ist das wieder in Polynomialzeit moglich

12

3 4

1

2 3

4

123

4 5

Page 7: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Darstellbare Symmetrien

ss ein Automorphismus π eines Graphen ist darstellbar, wenn es eineZeichnung gibt, die eine Symmetrie enthalt, welche π induziertss Lin charakterisiert darstellbare Automorphismen [Lin ’92]ss Darstellbare Automorphismen eines Graphen zu finden ist NP-schwerss fur planare Graphen ist das wieder in Polynomialzeit moglich

stellt 1 → 2 → 3 → 4 → 1 dar,aber nicht 1 → 2 → 3 → 1

stellt 1 → 2 → 3 → 1 dar, abernicht 1 → 2 → 3 → 4 → 1

1 → 2 → 3 → 1, 4 → 5 → 4nicht darstellbar

12

3 4

1

2 3

4

123

4 5

Page 8: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Symmetrien in SP-Graphen

πvert

u

v

π(u)

π(v)

Page 9: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Symmetrien in SP-Graphen

πvert πhor

u

v

π(u)

π(v)

u

v

π(u)

π(v)

Page 10: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Symmetrien in SP-Graphen

πvert πhor πrot

u

v

π(u)

π(v)

u

v

π(u)

π(v)

u

v

π(u)

π(v)

Page 11: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Symmetrien in SP-Graphen

πvert πhor πrot {πvert, πhor, πrot}

u

v

π(u)

π(v)

u

v

π(u)

π(v)

u

v

π(u)

π(v)

Page 12: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Symmetrien in SP-Zeichnungen

Satz (Hong, Eades, Lee ’00)

Die in einem kreuzungsfreien Aufwartslayout eines SP-Graphen darstell-baren Symmetrien sind entwederss {id}ss {id, π} mit π ∈ {πvert, πhor, πrot}ss {id, πvert, πhor, πrot}.

Page 13: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

P

S

S

S

S

P

SSQ Q

QQ

Q

Q

Q Q Q Q

Page 14: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

P

S

S

S

S

P

SSQ Q

QQ

Q

Q

Q Q Q Q

Page 15: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

P

SS

S

P

SS

Page 16: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im DekompositionsbaumKanonische Kodierung

ss Setze C(G) = 〈0〉 fur alle Q-Knoten G.ss Fur jede Tiefe t = maxG tiefe(G), . . . , 0ss Fur jeden S- oder P-Knoten G der Tiefe t mit NachfolgernG1, . . . , Gk setze C(G) = 〈c(G1), . . . , c(Gk)〉 und sortiere C(G)nichtabsteigend, falls G ein P-Knoten ist.ss Sortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch.ss Fur jede Komponente G der Tiefe t setze ihre Kodierung aufc, falls ihr Tupel in der sortierten Tupelfolge als c-tes ver-schiedenes Tupel auftritt.

Page 17: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im DekompositionsbaumKanonische Kodierung

ss Setze C(G) = 〈0〉 fur alle Q-Knoten G.ss Fur jede Tiefe t = maxG tiefe(G), . . . , 0ss Fur jeden S- oder P-Knoten G der Tiefe t mit NachfolgernG1, . . . , Gk setze C(G) = 〈c(G1), . . . , c(Gk)〉 und sortiere C(G)nichtabsteigend, falls G ein P-Knoten ist.ss Sortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch.ss Fur jede Komponente G der Tiefe t setze ihre Kodierung aufc, falls ihr Tupel in der sortierten Tupelfolge als c-tes ver-schiedenes Tupel auftritt.

Page 18: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im DekompositionsbaumKanonische Kodierung

ss Setze C(G) = 〈0〉 fur alle Q-Knoten G.ss Fur jede Tiefe t = maxG tiefe(G), . . . , 0ss Fur jeden S- oder P-Knoten G der Tiefe t mit NachfolgernG1, . . . , Gk setze C(G) = 〈c(G1), . . . , c(Gk)〉 und sortiere C(G)nichtabsteigend, falls G ein P-Knoten ist.ss Sortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch.ss Fur jede Komponente G der Tiefe t setze ihre Kodierung aufc, falls ihr Tupel in der sortierten Tupelfolge als c-tes ver-schiedenes Tupel auftritt.

Page 19: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im DekompositionsbaumKanonische Kodierung

ss Setze C(G) = 〈0〉 fur alle Q-Knoten G.ss Fur jede Tiefe t = maxG tiefe(G), . . . , 0ss Fur jeden S- oder P-Knoten G der Tiefe t mit NachfolgernG1, . . . , Gk setze C(G) = 〈c(G1), . . . , c(Gk)〉 und sortiere C(G)nichtabsteigend, falls G ein P-Knoten ist.ss Sortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch.ss Fur jede Komponente G der Tiefe t setze ihre Kodierung aufc, falls ihr Tupel in der sortierten Tupelfolge als c-tes ver-schiedenes Tupel auftritt.

Page 20: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im DekompositionsbaumKanonische Kodierung

ss Setze C(G) = 〈0〉 fur alle Q-Knoten G.ss Fur jede Tiefe t = maxG tiefe(G), . . . , 0ss Fur jeden S- oder P-Knoten G der Tiefe t mit NachfolgernG1, . . . , Gk setze C(G) = 〈c(G1), . . . , c(Gk)〉 und sortiere C(G)nichtabsteigend, falls G ein P-Knoten ist.ss Sortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch.ss Fur jede Komponente G der Tiefe t setze ihre Kodierung aufc, falls ihr Tupel in der sortierten Tupelfolge als c-tes ver-schiedenes Tupel auftritt.

Zwei Knoten u und v gleicher Tiefe sind genau dann isomorph, wenn sieden gleichen Code haben.

Page 21: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

P

SS

S

P

SS

Page 22: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

1 111

P

SS

S

P

SS

Page 23: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

1 11

〈1, 1〉〈1, 1〉

1

P

SS

S

P

SS

Page 24: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

1 11

〈1, 1〉〈1, 1〉

1

11

P

SS

S

P

SS

Page 25: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

1 11

〈1, 1〉〈1, 1〉

1

11

〈1, 1〉

P

SS

S

P

SS

Page 26: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

1 11

〈1, 1〉〈1, 1〉

1

11

〈1, 1〉

1 1

11

11

2

P

SS

S

P

SS

Page 27: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

1 11

〈1, 1〉〈1, 1〉

1

11

〈1, 1〉

1 1

11

11

2

〈1, 1〉〈1, 1〉

〈1, 1, 2〉

P

SS

S

P

SS

Page 28: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

1 11

〈1, 1〉〈1, 1〉

1

11

〈1, 1〉

1 1

11

11

2

〈1, 1〉〈1, 1〉

〈1, 1, 2〉1

1 2

P

SS

S

P

SS

Page 29: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Knotenkodierung im Dekompositionsbaum

P

S

〈0〉〈0〉

〈0〉

〈0〉 〈0〉 〈0〉 〈0〉

〈0〉

〈0〉

〈0〉

S

S

P

SS

1 11

〈1, 1〉〈1, 1〉

1

11

〈1, 1〉

1 1

11

11

2

〈1, 1〉〈1, 1〉

〈1, 1, 2〉1

1 2

〈1, 1, 2〉 1P

SS

S

P

SS

Page 30: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Vertikale SymmetrienSatz (Hong, Eades, Lee ’00)

Gegeben sei der kanonische Dekompositionsbaum eines serien-parallelen Graphen. Es sei G eine Komponente, die durch Kompo-sition der Komponenten G1, . . . , Gk entstehe.ss Ist G ein S-Knoten, dann ist G vertikal symmetrisch, wenn alle

G1, . . . , Gk vertikal symmetrisch sind.ss Ist G ein P-Knoten, so betrachten wir die Klassen Gj = {Gi : 1 ≤i ≤ k, c(Gi) = j}, j = 1, . . . , k, von isomorphen Teilgraphen.ss |Gj | gerade ∀j ⇒ vertikal symmetrischss |Gj | ungerade fur genau ein j ⇒ G vertikal symmetrisch g.d.w.

Graphen in Gj vertikal symmetrischss |Gi|, |Gj | ungerade fur i 6= j ⇒ G nicht vertikal symmetrisch

Page 31: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Vertikale SymmetrienSatz (Hong, Eades, Lee ’00)

Gegeben sei der kanonische Dekompositionsbaum eines serien-parallelen Graphen. Es sei G eine Komponente, die durch Kompo-sition der Komponenten G1, . . . , Gk entstehe.ss Ist G ein S-Knoten, dann ist G vertikal symmetrisch, wenn alle

G1, . . . , Gk vertikal symmetrisch sind.ss Ist G ein P-Knoten, so betrachten wir die Klassen Gj = {Gi : 1 ≤i ≤ k, c(Gi) = j}, j = 1, . . . , k, von isomorphen Teilgraphen.ss |Gj | gerade ∀j ⇒ vertikal symmetrischss |Gj | ungerade fur genau ein j ⇒ G vertikal symmetrisch g.d.w.

Graphen in Gj vertikal symmetrischss |Gi|, |Gj | ungerade fur i 6= j ⇒ G nicht vertikal symmetrisch

Page 32: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Vertikale SymmetrienSatz (Hong, Eades, Lee ’00)

Gegeben sei der kanonische Dekompositionsbaum eines serien-parallelen Graphen. Es sei G eine Komponente, die durch Kompo-sition der Komponenten G1, . . . , Gk entstehe.ss Ist G ein S-Knoten, dann ist G vertikal symmetrisch, wenn alle

G1, . . . , Gk vertikal symmetrisch sind.ss Ist G ein P-Knoten, so betrachten wir die Klassen Gj = {Gi : 1 ≤i ≤ k, c(Gi) = j}, j = 1, . . . , k, von isomorphen Teilgraphen.ss |Gj | gerade ∀j ⇒ vertikal symmetrischss |Gj | ungerade fur genau ein j ⇒ G vertikal symmetrisch g.d.w.

Graphen in Gj vertikal symmetrischss |Gi|, |Gj | ungerade fur i 6= j ⇒ G nicht vertikal symmetrisch

Page 33: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Vertikale SymmetrienSatz (Hong, Eades, Lee ’00)

Gegeben sei der kanonische Dekompositionsbaum eines serien-parallelen Graphen. Es sei G eine Komponente, die durch Kompo-sition der Komponenten G1, . . . , Gk entstehe.ss Ist G ein S-Knoten, dann ist G vertikal symmetrisch, wenn alle

G1, . . . , Gk vertikal symmetrisch sind.ss Ist G ein P-Knoten, so betrachten wir die Klassen Gj = {Gi : 1 ≤i ≤ k, c(Gi) = j}, j = 1, . . . , k, von isomorphen Teilgraphen.ss |Gj | gerade ∀j ⇒ vertikal symmetrischss |Gj | ungerade fur genau ein j ⇒ G vertikal symmetrisch g.d.w.

Graphen in Gj vertikal symmetrischss |Gi|, |Gj | ungerade fur i 6= j ⇒ G nicht vertikal symmetrisch

Page 34: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beweisidee vertikale Symmetrie

S-Knoten

Page 35: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beweisidee vertikale Symmetrie

S-Knoten

P-Knoten, alle Klassen gerade Anzahl

Page 36: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beweisidee vertikale Symmetrie

S-Knoten

P-Knoten, alle Klassen gerade Anzahl

P-Knoten, eine Klasse ungerade Anzahl & v-symm.alle Knoten v-symm.

Page 37: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Symmetrien zeichnen

aus Hong, Eades, Lee ’00

Page 38: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Symmetrien zeichnen

aus Hong, Eades, Lee ’00

Page 39: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Symmetrien zeichnen

aus Hong, Eades, Lee ’00

Page 40: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Inkrementelle VerfahrenAllgemeine Vorgehensweisess bestimme geeignete Knoten-Ordnungss berechne Layout inkrementell durch iteratives Hinzufugen der Knoten

Beispiel: Orthogonale Zeichnung von Graphen mit Maximalgrad ≤ 4

Vorgehensweisess 2-fach-Zusammenhangskomponenten berechnenss fur jede 2-fach-Zusammenhangskomponente geeignete Knoten-Ordnungberechnenss Inkrementelles Layout fur Zusammenhangskomponentess rekursiver Ansatz fur Gesamt-Graph

Page 41: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Blocke und Block-BaumSchnittknoten (Artikulation): Knoten, dessen Entfernen die Anzahl derZusammenhangskomponenten erhoht; C Menge der Schnittknoten von G

Block-Baum

Baum T = (B, F ) mit B = B ∪C und F enthalt alle Kanten zwischen b ∈ Bund c ∈ C genau dann, wenn c ∈ b gilt.

Block maximaler 2-fach zusammenhangender Graph oder Brucke oderisolierter Knoten; Menge der Blocke B

Page 42: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Blocke und Block-BaumSchnittknoten (Artikulation): Knoten, dessen Entfernen die Anzahl derZusammenhangskomponenten erhoht; C Menge der Schnittknoten von G

Block-Baum

Baum T = (B, F ) mit B = B ∪C und F enthalt alle Kanten zwischen b ∈ Bund c ∈ C genau dann, wenn c ∈ b gilt.

Block maximaler 2-fach zusammenhangender Graph oder Brucke oderisolierter Knoten; Menge der Blocke B

Page 43: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Blocke und Block-BaumSchnittknoten (Artikulation): Knoten, dessen Entfernen die Anzahl derZusammenhangskomponenten erhoht; C Menge der Schnittknoten von G

Block-Baum

Baum T = (B, F ) mit B = B ∪C und F enthalt alle Kanten zwischen b ∈ Bund c ∈ C genau dann, wenn c ∈ b gilt.

Block maximaler 2-fach zusammenhangender Graph oder Brucke oderisolierter Knoten; Menge der Blocke B

Page 44: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Terminologie

Spannbaum Baum der alle Knoten enthalt

Spannbaum mit Wurzel Jeder Knoten(außer der Wurzel) hat eindeutigenVorganger

DFS-Baum Spannbaum mit Wurzel, derdurch Tiefensuche in Graphen entsteht

offener Pfad Pfad von der Wurzel zum ak-tuellen Knoten der Tiefensuche

Lowpoint Der Lowpoint w von u ist derKnoten in T (G), der s am nachsten ist,so dass ein Weg u ∗→ v ↪→ w existiert.

w

u

v

x

z

Page 45: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Terminologie

Spannbaum Baum der alle Knoten enthalt

Spannbaum mit Wurzel Jeder Knoten(außer der Wurzel) hat eindeutigenVorganger

DFS-Baum Spannbaum mit Wurzel, derdurch Tiefensuche in Graphen entsteht

offener Pfad Pfad von der Wurzel zum ak-tuellen Knoten der Tiefensuche

Lowpoint Der Lowpoint w von u ist derKnoten in T (G), der s am nachsten ist,so dass ein Weg u ∗→ v ↪→ w existiert.

w

u

v

x

z

Page 46: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Terminologie

Spannbaum Baum der alle Knoten enthalt

Spannbaum mit Wurzel Jeder Knoten(außer der Wurzel) hat eindeutigenVorganger

DFS-Baum Spannbaum mit Wurzel, derdurch Tiefensuche in Graphen entsteht

offener Pfad Pfad von der Wurzel zum ak-tuellen Knoten der Tiefensuche

Lowpoint Der Lowpoint w von u ist derKnoten in T (G), der s am nachsten ist,so dass ein Weg u ∗→ v ↪→ w existiert.

Vorwartskante w → u

w

u

v

x

z

Page 47: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Terminologie

Spannbaum Baum der alle Knoten enthalt

Spannbaum mit Wurzel Jeder Knoten(außer der Wurzel) hat eindeutigenVorganger

DFS-Baum Spannbaum mit Wurzel, derdurch Tiefensuche in Graphen entsteht

offener Pfad Pfad von der Wurzel zum ak-tuellen Knoten der Tiefensuche

Lowpoint Der Lowpoint w von u ist derKnoten in T (G), der s am nachsten ist,so dass ein Weg u ∗→ v ↪→ w existiert.

Vorwartskante w → u

Ruckwartskante v ↪→ w

w

u

v

x

z

Page 48: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Terminologie

Spannbaum Baum der alle Knoten enthalt

Spannbaum mit Wurzel Jeder Knoten(außer der Wurzel) hat eindeutigenVorganger

DFS-Baum Spannbaum mit Wurzel, derdurch Tiefensuche in Graphen entsteht

offener Pfad Pfad von der Wurzel zum ak-tuellen Knoten der Tiefensuche

Lowpoint Der Lowpoint w von u ist derKnoten in T (G), der s am nachsten ist,so dass ein Weg u ∗→ v ↪→ w existiert.

Vorwartskante w → u

Ruckwartskante v ↪→ w

Querkante

w

u

v

x

z

Page 49: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Terminologie

Spannbaum Baum der alle Knoten enthalt

Spannbaum mit Wurzel Jeder Knoten(außer der Wurzel) hat eindeutigenVorganger

DFS-Baum Spannbaum mit Wurzel, derdurch Tiefensuche in Graphen entsteht

offener Pfad Pfad von der Wurzel zum ak-tuellen Knoten der Tiefensuche

Lowpoint Der Lowpoint w von u ist derKnoten in T (G), der s am nachsten ist,so dass ein Weg u ∗→ v ↪→ w existiert.

Vorwartskante w → u

Ruckwartskante v ↪→ w

Querkante

w

u

v

x

z

Baumpfad z ∗→ x

Page 50: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Terminologie

Spannbaum Baum der alle Knoten enthalt

Spannbaum mit Wurzel Jeder Knoten(außer der Wurzel) hat eindeutigenVorganger

DFS-Baum Spannbaum mit Wurzel, derdurch Tiefensuche in Graphen entsteht

offener Pfad Pfad von der Wurzel zum ak-tuellen Knoten der Tiefensuche

Lowpoint Der Lowpoint w von u ist derKnoten in T (G), der s am nachsten ist,so dass ein Weg u ∗→ v ↪→ w existiert.

Vorwartskante w → u

Ruckwartskante v ↪→ w

Querkante

w

u

v

x

z

Baumpfad z ∗→ x

Page 51: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Terminologie

Spannbaum Baum der alle Knoten enthalt

Spannbaum mit Wurzel Jeder Knoten(außer der Wurzel) hat eindeutigenVorganger

DFS-Baum Spannbaum mit Wurzel, derdurch Tiefensuche in Graphen entsteht

offener Pfad Pfad von der Wurzel zum ak-tuellen Knoten der Tiefensuche

Lowpoint Der Lowpoint w von u ist derKnoten in T (G), der s am nachsten ist,so dass ein Weg u ∗→ v ↪→ w existiert.

Vorwartskante w → u

Ruckwartskante v ↪→ w

Querkante

w

u

v

x

z

Baumpfad z ∗→ x

Page 52: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

Beobachtung [Tarjan ’73]

Ein Graph G = (V,E) ist genau dann zweifach zusammenhangend, wennim DFS-Baum T (G) nur die Wurzel s ihr eigener Lowpoint ist und wenn eshochstens eine Kante v → w gibt, so dass v der Lowpoint von w ist (dannist v die Wurzel).

Page 53: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

Beobachtung [Tarjan ’73]

Ein Graph G = (V,E) ist genau dann zweifach zusammenhangend, wennim DFS-Baum T (G) nur die Wurzel s ihr eigener Lowpoint ist und wenn eshochstens eine Kante v → w gibt, so dass v der Lowpoint von w ist (dannist v die Wurzel).

Algorithmus zur Berechnung von 2-fachen Zusammenhangskomponentenvon Tarjanss 1. Phase: berechne Lowpointsss 2. Phase: benutze Lowpoint-Information, um Zusammenhangskompo-

nenten zu berechnenss Nachteil: Graph muss 2 mal durchsucht werden

Page 54: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

Andere Herangehensweise [Gabow ’00]Pfadbasierte Berechnung von 2-fachen Zusammenhangskomponenten inDFS-Baum

Beobachtung

Zwei Kanten sind in der gleichen 2-fachen Zusammenhangskomponentengenau dann, wenn es einen einfachen Kreis gibt, der beide Kanten enthalt.

→ Aquivalenz-Relation auf der Menge der Kanten, benutze ”erste” Kanteeiner Komponente als Reprasentant

Page 55: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

nicht klassifizierte KantenReprasentanten-Kandidaten

Stack CStack S

Page 56: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

t 2

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)

Stack CStack S

Page 57: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

t

g

2

3

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)

Stack CStack S

Page 58: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

t

g

h

2

3

4

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)

Stack CStack S

Page 59: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4t

g

h

2

3

4

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)

Stack CStack S

Page 60: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4t

g

h

4 2

3

4

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)

Stack CStack S

Page 61: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

4 2

3

4 5

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)

Stack CStack S

Page 62: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

4 2

3

4

5

6

5

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)

Stack CStack S

Page 63: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

a

4 2

3

4

5

6

7

5

6

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)

Stack CStack S

Page 64: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

a

4 2

3

4

5

6

7

7

5

6

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)

Stack CStack S

Page 65: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

4 2

3

4

8

5

6

7

7

5

6 6

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)

Stack CStack S

Page 66: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

4 2

3

4

8

5

6

7

7

5

5

6 6

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)

Stack CStack S

Page 67: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

4 2

3

4

8

5

6

7

7

5

5

6 6

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)

Stack CStack S

Page 68: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

c

4 2

3

4

8

5

6 9

7

7

5

5

5

6 6

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)f → c f → c (5)

Stack CStack S

Page 69: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

c

4 2

3

4

8

5

6 9

7

7

5

5

5

6 6

9

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)f → c f → c (5)

Stack CStack S

Page 70: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

c

d

4 2

3

4

8

5

6 9

107

7

5

5

5

6 69

9

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)f → c f → c (5)c→ d c→ d (9)

Stack CStack S

Page 71: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

c

d

4 2

3

4

8

5

6 9

107

7

5

5

5

6 69

10

9

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)f → c f → c (5)c→ d c→ d (9)

Stack CStack S

Page 72: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

c

d

4 2

3

4

8

5

6 9

107

7

5

5

5

6 69

10

9

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)f → c f → c (5)c→ d c→ d (9)

Stack CStack S

Page 73: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung von Blocken

s 1

t

g

h f

b

ea

c

d

1

2

3

4

3

t

g

h f

b

ea

c

d

4 2

3

4

8

5

6 9

107

7

5

5

5

6 69

10

9

nicht klassifizierte KantenReprasentanten-Kandidaten

s→ t s→ t (1)t→ g t→ g (2)g → h g → h (3)g → f g → f (3)g → ff → b f → b (5)b→ a b→ a (6)b→ e b→ e (6)f → c f → c (5)c→ d c→ d (9)

Stack CStack S

Page 74: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

st-Ordnung

Satz [Lempel, Even, Cederbaum, 1967]

Ist G = (V,E) ein zweifach zusammenhangender Graph, dann existiert zujeder Kante (s, t) ∈ E eine s-t-Ordnung.

Definition

Sei G = (V,E) ein zweifach zusammenhangender Graph und s 6= t ∈ V .Eine Ordung s = v1, v2, . . . , vn = t der Knoten von G heißt s-t-Ordnung,falls fur alle Knoten vj , 1 < j < n, gilt:

es ex. 1 ≤ i < j < k ≤ n mit {vi, vj}, {vj , vk} ∈ E .

Page 75: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

st-Ordnung

Satz [Lempel, Even, Cederbaum, 1967]

Ist G = (V,E) ein zweifach zusammenhangender Graph, dann existiert zujeder Kante (s, t) ∈ E eine s-t-Ordnung.

Definition

Sei G = (V,E) ein zweifach zusammenhangender Graph und s 6= t ∈ V .Eine Ordung s = v1, v2, . . . , vn = t der Knoten von G heißt s-t-Ordnung,falls fur alle Knoten vj , 1 < j < n, gilt:

es ex. 1 ≤ i < j < k ≤ n mit {vi, vj}, {vj , vk} ∈ E .

Page 76: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung einer st-Ordnung

Berechnung einer st-Orientierung aus Ohrenzerlegung

Satz

G hat eine st-Ordnung genau dann, wenn er eine st-Orientierung hat.

st-Orientierung

Sei G = (V,E) ein Graph. Eine st-Orientierung (bipolar orientation) von Gist eine Orientierung der Kanten, so dass der resultierende Graph azyklischist und s die einzige Quelle sowie t die einzige Senke sind.

Page 77: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Berechnung einer st-Ordnung

Berechnung einer st-Orientierung aus Ohrenzerlegung

Satz

G hat eine st-Ordnung genau dann, wenn er eine st-Orientierung hat.

st-Orientierung

Sei G = (V,E) ein Graph. Eine st-Orientierung (bipolar orientation) von Gist eine Orientierung der Kanten, so dass der resultierende Graph azyklischist und s die einzige Quelle sowie t die einzige Senke sind.

Page 78: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

Definition

Sei G = (V,E) ein 2-fach zusammenhangender Graph. Ein Ohr von G istein einfacher Pfad oder Kreis O = (v0, {v0, v1}, v1, . . . , vk−1, {vk−1, vk}, vk).Ein Ohr heißt offen, falls v0 6= vk ist, d.h. falls O ein einfacher Pfad ist.

Eine Folge D = (P0, . . . , Pr) von (offenen) Pfaden heißt (offene) Ohren-dekomposition, falls E(P0), . . . , E(Pr) eine Partition von E ist und furalle Pi = (v0, e1, v1, . . . , ek, vk), 1 ≤ i ≤ r, gilt {v0, vk} ⊆ Vi−1 und{v1, . . . , vk−1} ∩ Vi−1 = ∅.

Eine Ohrendekomposition beginnt mit {s, t} ∈ E, falls P0 = (s, {s, t}, t).

Eine Ohrendekomposition induziert Graphen Gi = (Vi, Ei) mit Vi =⋃ij=0 V (Pj) und Ei =

⋃ij=0E(Pj), 0 ≤ i ≤ r.

Page 79: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

Definition

Sei G = (V,E) ein 2-fach zusammenhangender Graph. Ein Ohr von G istein einfacher Pfad oder Kreis O = (v0, {v0, v1}, v1, . . . , vk−1, {vk−1, vk}, vk).Ein Ohr heißt offen, falls v0 6= vk ist, d.h. falls O ein einfacher Pfad ist.

Eine Folge D = (P0, . . . , Pr) von (offenen) Pfaden heißt (offene) Ohren-dekomposition, falls E(P0), . . . , E(Pr) eine Partition von E ist und furalle Pi = (v0, e1, v1, . . . , ek, vk), 1 ≤ i ≤ r, gilt {v0, vk} ⊆ Vi−1 und{v1, . . . , vk−1} ∩ Vi−1 = ∅.

Eine Ohrendekomposition beginnt mit {s, t} ∈ E, falls P0 = (s, {s, t}, t).

Eine Ohrendekomposition induziert Graphen Gi = (Vi, Ei) mit Vi =⋃ij=0 V (Pj) und Ei =

⋃ij=0E(Pj), 0 ≤ i ≤ r.

Page 80: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

Definition

Sei G = (V,E) ein 2-fach zusammenhangender Graph. Ein Ohr von G istein einfacher Pfad oder Kreis O = (v0, {v0, v1}, v1, . . . , vk−1, {vk−1, vk}, vk).Ein Ohr heißt offen, falls v0 6= vk ist, d.h. falls O ein einfacher Pfad ist.

Eine Folge D = (P0, . . . , Pr) von (offenen) Pfaden heißt (offene) Ohren-dekomposition, falls E(P0), . . . , E(Pr) eine Partition von E ist und furalle Pi = (v0, e1, v1, . . . , ek, vk), 1 ≤ i ≤ r, gilt {v0, vk} ⊆ Vi−1 und{v1, . . . , vk−1} ∩ Vi−1 = ∅.

Eine Ohrendekomposition beginnt mit {s, t} ∈ E, falls P0 = (s, {s, t}, t).

Eine Ohrendekomposition induziert Graphen Gi = (Vi, Ei) mit Vi =⋃ij=0 V (Pj) und Ei =

⋃ij=0E(Pj), 0 ≤ i ≤ r.

Page 81: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

Definition

Sei G = (V,E) ein 2-fach zusammenhangender Graph. Ein Ohr von G istein einfacher Pfad oder Kreis O = (v0, {v0, v1}, v1, . . . , vk−1, {vk−1, vk}, vk).Ein Ohr heißt offen, falls v0 6= vk ist, d.h. falls O ein einfacher Pfad ist.

Eine Folge D = (P0, . . . , Pr) von (offenen) Pfaden heißt (offene) Ohren-dekomposition, falls E(P0), . . . , E(Pr) eine Partition von E ist und furalle Pi = (v0, e1, v1, . . . , ek, vk), 1 ≤ i ≤ r, gilt {v0, vk} ⊆ Vi−1 und{v1, . . . , vk−1} ∩ Vi−1 = ∅.

Eine Ohrendekomposition beginnt mit {s, t} ∈ E, falls P0 = (s, {s, t}, t).

Eine Ohrendekomposition induziert Graphen Gi = (Vi, Ei) mit Vi =⋃ij=0 V (Pj) und Ei =

⋃ij=0E(Pj), 0 ≤ i ≤ r.

Page 82: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

G0

s

g

h f

b

ea

c

Iteratives Vorgehen [Brandes ’02]ss P0 = (s{s, t}, t)ss solange ∃ w → x ∈ Ei, v ↪→ w /∈ Ei

mit x ∗→ v und w, x ∈ Viss u letzter Knoten in Vi auf x ∗→ v

⇒ Pi+1 = u∗→ v ↪→ w (Ohr zu v ↪→ w)

t

d

Satz [Whitney ’32]

Ist G ein zweifach zusammenhangender Graph, dann existiert fur jedeKante {s, t} ∈ E eine offene Ohrendekomposition, die mit {s, t} beginnt.

Page 83: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

G0

s

g

h f

b

ea

c

Iteratives Vorgehen [Brandes ’02]ss P0 = (s{s, t}, t)ss solange ∃ w → x ∈ Ei, v ↪→ w /∈ Ei

mit x ∗→ v und w, x ∈ Viss u letzter Knoten in Vi auf x ∗→ v

⇒ Pi+1 = u∗→ v ↪→ w (Ohr zu v ↪→ w)

t

d

Satz [Whitney ’32]

Ist G ein zweifach zusammenhangender Graph, dann existiert fur jedeKante {s, t} ∈ E eine offene Ohrendekomposition, die mit {s, t} beginnt.

Page 84: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

G0

s

g

h f

b

ea

c

Iteratives Vorgehen [Brandes ’02]ss P0 = (s{s, t}, t)ss solange ∃ w → x ∈ Ei, v ↪→ w /∈ Ei

mit x ∗→ v und w, x ∈ Viss u letzter Knoten in Vi auf x ∗→ v

⇒ Pi+1 = u∗→ v ↪→ w (Ohr zu v ↪→ w)

t

d

Satz [Whitney ’32]

Ist G ein zweifach zusammenhangender Graph, dann existiert fur jedeKante {s, t} ∈ E eine offene Ohrendekomposition, die mit {s, t} beginnt.

Page 85: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

G0

s

g

h f

b

ea

c

G1

Iteratives Vorgehen [Brandes ’02]ss P0 = (s{s, t}, t)ss solange ∃ w → x ∈ Ei, v ↪→ w /∈ Ei

mit x ∗→ v und w, x ∈ Viss u letzter Knoten in Vi auf x ∗→ v

⇒ Pi+1 = u∗→ v ↪→ w (Ohr zu v ↪→ w)

t

d

Satz [Whitney ’32]

Ist G ein zweifach zusammenhangender Graph, dann existiert fur jedeKante {s, t} ∈ E eine offene Ohrendekomposition, die mit {s, t} beginnt.

Page 86: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

G0

s

g

h f

b

ea

c

G1

Iteratives Vorgehen [Brandes ’02]ss P0 = (s{s, t}, t)ss solange ∃ w → x ∈ Ei, v ↪→ w /∈ Ei

mit x ∗→ v und w, x ∈ Viss u letzter Knoten in Vi auf x ∗→ v

⇒ Pi+1 = u∗→ v ↪→ w (Ohr zu v ↪→ w)

t

d

Satz [Whitney ’32]

Ist G ein zweifach zusammenhangender Graph, dann existiert fur jedeKante {s, t} ∈ E eine offene Ohrendekomposition, die mit {s, t} beginnt.

Page 87: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

G0

s

g

h f

b

ea

c

G1

Iteratives Vorgehen [Brandes ’02]ss P0 = (s{s, t}, t)ss solange ∃ w → x ∈ Ei, v ↪→ w /∈ Ei

mit x ∗→ v und w, x ∈ Viss u letzter Knoten in Vi auf x ∗→ v

⇒ Pi+1 = u∗→ v ↪→ w (Ohr zu v ↪→ w)

t

d

Satz [Whitney ’32]

Ist G ein zweifach zusammenhangender Graph, dann existiert fur jedeKante {s, t} ∈ E eine offene Ohrendekomposition, die mit {s, t} beginnt.

Page 88: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

G0

s

g

h f

b

ea

c

G1

Iteratives Vorgehen [Brandes ’02]ss P0 = (s{s, t}, t)ss solange ∃ w → x ∈ Ei, v ↪→ w /∈ Ei

mit x ∗→ v und w, x ∈ Viss u letzter Knoten in Vi auf x ∗→ v

⇒ Pi+1 = u∗→ v ↪→ w (Ohr zu v ↪→ w)

t

d

Satz [Whitney ’32]

Ist G ein zweifach zusammenhangender Graph, dann existiert fur jedeKante {s, t} ∈ E eine offene Ohrendekomposition, die mit {s, t} beginnt.

Page 89: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Ohrenzerlegung

G0

s

g

h f

b

ea

c

G1

Iteratives Vorgehen [Brandes ’02]ss P0 = (s{s, t}, t)ss solange ∃ w → x ∈ Ei, v ↪→ w /∈ Ei

mit x ∗→ v und w, x ∈ Viss u letzter Knoten in Vi auf x ∗→ v

⇒ Pi+1 = u∗→ v ↪→ w (Ohr zu v ↪→ w)

t

d

Satz

D(T ) ist eine offene Ohrendekomposition, die mit {s, t} beginnt.

Satz [Whitney ’32]

Ist G ein zweifach zusammenhangender Graph, dann existiert fur jedeKante {s, t} ∈ E eine offene Ohrendekomposition, die mit {s, t} beginnt.

Page 90: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Orientierung der KantenDefinition: Ruckwartskante v ↪→ w hangt vonVorwartskante w → x ab, fur die w ∗→ v gilt.

Orientierung der Kanten: Betrachte Sequenzvon Ohren P0, P1, . . . , Pk in D(T ). Orientiere P0

von s nach t und anschließend iterativ alle weit-ere Ohren entsprechend der Orientierung ihrerabhangigen Kante.

s

c

a e d

f

b

h

t

g

Page 91: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Orientierung der KantenDefinition: Ruckwartskante v ↪→ w hangt vonVorwartskante w → x ab, fur die w ∗→ v gilt.

Orientierung der Kanten: Betrachte Sequenzvon Ohren P0, P1, . . . , Pk in D(T ). Orientiere P0

von s nach t und anschließend iterativ alle weit-ere Ohren entsprechend der Orientierung ihrerabhangigen Kante.

s

c

a e d

f

b

h

t

g

Page 92: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Orientierung der KantenDefinition: Ruckwartskante v ↪→ w hangt vonVorwartskante w → x ab, fur die w ∗→ v gilt.

Orientierung der Kanten: Betrachte Sequenzvon Ohren P0, P1, . . . , Pk in D(T ). Orientiere P0

von s nach t und anschließend iterativ alle weit-ere Ohren entsprechend der Orientierung ihrerabhangigen Kante.

s

c

a e d

f

b

h

t

g

Page 93: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Orientierung der KantenDefinition: Ruckwartskante v ↪→ w hangt vonVorwartskante w → x ab, fur die w ∗→ v gilt.

Orientierung der Kanten: Betrachte Sequenzvon Ohren P0, P1, . . . , Pk in D(T ). Orientiere P0

von s nach t und anschließend iterativ alle weit-ere Ohren entsprechend der Orientierung ihrerabhangigen Kante.

s

c

a e d

f

b

h

t

g

Page 94: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Orientierung der KantenDefinition: Ruckwartskante v ↪→ w hangt vonVorwartskante w → x ab, fur die w ∗→ v gilt.

Orientierung der Kanten: Betrachte Sequenzvon Ohren P0, P1, . . . , Pk in D(T ). Orientiere P0

von s nach t und anschließend iterativ alle weit-ere Ohren entsprechend der Orientierung ihrerabhangigen Kante.

s

c

a e d

f

b

h

t

g

Page 95: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Orientierung der KantenDefinition: Ruckwartskante v ↪→ w hangt vonVorwartskante w → x ab, fur die w ∗→ v gilt.

Orientierung der Kanten: Betrachte Sequenzvon Ohren P0, P1, . . . , Pk in D(T ). Orientiere P0

von s nach t und anschließend iterativ alle weit-ere Ohren entsprechend der Orientierung ihrerabhangigen Kante.

s

c

a e d

f

b

h

t

g

Page 96: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Orientierung der KantenDefinition: Ruckwartskante v ↪→ w hangt vonVorwartskante w → x ab, fur die w ∗→ v gilt.

Orientierung der Kanten: Betrachte Sequenzvon Ohren P0, P1, . . . , Pk in D(T ). Orientiere P0

von s nach t und anschließend iterativ alle weit-ere Ohren entsprechend der Orientierung ihrerabhangigen Kante.

s

c

a e d

f

b

h

t

g

Page 97: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Orientierung der KantenDefinition: Ruckwartskante v ↪→ w hangt vonVorwartskante w → x ab, fur die w ∗→ v gilt.

Orientierung der Kanten: Betrachte Sequenzvon Ohren P0, P1, . . . , Pk in D(T ). Orientiere P0

von s nach t und anschließend iterativ alle weit-ere Ohren entsprechend der Orientierung ihrerabhangigen Kante.

s

c

a e d

f

b

h

t

g

Satz

Die Orientierung von P0, . . . , Pi liefert eine s-t-Orientierung von Gi fur alle0 ≤ i ≤ r, und fur die partiellen Ordnungen ≺i gilt:

w → x ∈ Ei und w ≺i x (bzw. x ≺i w) =⇒ w ≺i v (bzw. v ≺i w)

fur alle v ∈ T (x) ∩ Vi.

Page 98: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

st-OrdnungIterative Berechnung der st-Ordnungss starte mit Sequenz (s, t)ss betrachte Ohren P1, . . . , Pr in dieser Ordnungss sei Pi = u

∗→ v ↪→ w das Ohr zu v ↪→ wss falls Pi von w nach u orientiert wird, fuge Sequenz V (Pi) unmittelbar voru ein, sonst hinter u

w

u Pi+1

(s, . . . , w, . . . , u, . . . , t)

x1x2 x3

w

u Pi+1

x1x2 x3

(s, . . . , u, . . . , w, . . . , t)

Page 99: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

st-OrdnungIterative Berechnung der st-Ordnungss starte mit Sequenz (s, t)ss betrachte Ohren P1, . . . , Pr in dieser Ordnungss sei Pi = u

∗→ v ↪→ w das Ohr zu v ↪→ wss falls Pi von w nach u orientiert wird, fuge Sequenz V (Pi) unmittelbar voru ein, sonst hinter u

Satz

Die erhaltene Ordnung von Vi ist eine lineare Erweiterung von ≺i fur alle0 ≤ i ≤ r.

w

u Pi+1

(s, . . . , w, . . . , u, . . . , t)

x1x2 x3

w

u Pi+1

x1x2 x3

(s, . . . , u, . . . , w, . . . , t)

Page 100: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s→ t

Page 101: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s→ t

Page 102: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s→ t

Page 103: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s→ b→ f→ g→ t

Page 104: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s

t

g

hf

b

ea

c

d

s→ b→ f→ g→ t

Page 105: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s→ b→ f→ g→ h→ t

Page 106: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s

t

g

hf

b

ea

c

d

s→ a→ b→ f→ g→ h→ t

Page 107: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s→ a→ b→ f→ g→ h→ t

Page 108: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s

t

g

hf

b

ea

c

d

s→ a→ b→ e→ f→ g→ h→ t

Page 109: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s→ a→ b→ e→ f→ g→ h→ t

Page 110: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Eager st-Ordering

s

t

g

hf

b

ea

c

d

process ears(tree edge w → x) beginforeach v ↪→ w ∈ D[w → x] do

u ← v;while u 6∈ L do u ← PARENT [u];

P ← (u∗→ v ↪→ w);

if w → x von w nach x (bzw. x nach w) orientiert thenorientiere P von w nach u (bzw. u nach w);fuge innere Knoten von P unmittelbar vor (bzw. hinter) uin L ein;

foreach Baumkante w′ → x′ von P do process ears(w′ → x′);

D[{w, x}] ← ∅;

dfs(vertex v) begini ← i + 1; DFS [v] ← i;while es ex. nicht nummerierte Kante e = {v, w} do

DFS [e] ← DFS [v];if w nicht nummeriert then

CHILDEDGE [v] ← e;PARENT [w] ← v;dfs(w);

else{w, x} ← CHILDEDGE [w];D[{w, x}] ← D[{w, x}] ∪ {e};if x ∈ L then process ears(w → x);

s

t

g

hf

b

ea

c

d

s→ a→ b→ e→ f→ c→ d→ g→ h→ t

Page 111: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Algorithmus fur Blocke

0

1v1 v2

vi vi vi vn

vn−1

Page 112: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beispiel

1

2 3

4

5556

57

Page 113: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beispiel

1

2 3

4

5556

57

1 2

1

2

Page 114: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beispiel

1

2 3

4

5556

57

1 2

3

1

2 3

Page 115: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beispiel

1

2 3

4

5556

57

1 2

4

3

1

2 3

4

Page 116: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beispiel

1

2 3

4

5556

57

1 2

4

55

3

1

2 3

4

55

Page 117: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beispiel

1

2 3

4

5556

57

1 2

4

55

56

3

1

2 3

4

5556

Page 118: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beispiel

1

2 3

4

5556

57

1 2

4

55

57

56

3

1

2 3

4

5556

57

Page 119: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Beispiel

1

2 3

4

5556

57

1 2

4

55

57

56

3

1

2 3

4

5556

57

Page 120: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Planaritat

vi

Gi−1

Page 121: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Analyse

Satz [Biedl & Kant ’94]

Die benotigte Gittergroße ist hochstens (m− n+ 1)× n.

Page 122: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Analyse

Satz [Biedl & Kant ’94]

Die benotigte Gittergroße ist hochstens (m− n+ 1)× n.

Satz [Biedl & Kant ’94]

Die Gesamtzahl der Knicke ist hochstens 2m−2n+4, und keine Kante hatmehr als zwei Knicke, es sei denn G ist ein Oktaeder.

Page 123: Algorithmen zur Visualisierung von GraphenSortiere die Menge der Tupel aller Knoten der Tiefe t lexiko-graphisch. ss Fur jede Komponente¨ G der Tiefe t setze ihre Kodierung auf c,

Algorithmen zur Visualisierung von Graphen

Marcus Krug

Institut fur Theoretische Informatik

Lehrstuhl Algorithmik I

Algorithmus fur allgemeine Graphen

Satz [Biedl & Kant ’94]

Sei G ein einfach zusammenhangender Graph mit Maximalgrad 4. Dannkann G auf einem Gitter der Große n × n mit hochstens 2 Knicken proKante eingebettet werden.

v

v

v

G0

G1

G2G3

G4

G1G2

v1

v2 v3

v4