114
Dr. Martin N¨ ollenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen 1 Tamara Mchedlidze · Martin N¨ ollenburg Algorithmen zur Visualisierung von Graphen INSTITUT F ¨ UR THEORETISCHE INFORMATIK · FAKULT ¨ AT F ¨ UR INFORMATIK Flussmethoden: orthogonales Graphenzeichnen 12.01.2015

Flussmethoden: orthogonales Graphenzeichnen Algorithmen ......Planarisierung 1 2 3 4 orthogonale Beschreibung 1 2 3 4 planare Einbettung 1 2 3 4 Knickminimierung Fl achen-minimierung

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen1

    Tamara Mchedlidze · Martin Nöllenburg

    Algorithmen zur Visualisierung von Graphen

    INSTITUT FÜR THEORETISCHE INFORMATIK · FAKULTÄT FÜR INFORMATIK

    Flussmethoden: orthogonales Graphenzeichnen

    12.01.2015

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen2

    Orthogonales Graphenzeichnen

    Kantenrichtungen horizontal und vertikalgut untersuchte Zeichenkonventionin vielen Anwendungen relevant

    Org

    an

    igra

    mo

    fH

    SL

    imb

    urg

    Cir

    cuit

    dia

    gra

    mb

    yJe

    ffA

    two

    od

    UM

    Ld

    iag

    ram

    by

    Ora

    cle

    ER

    dia

    gra

    min

    OG

    DF

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen2

    Orthogonales Graphenzeichnen

    Kantenrichtungen horizontal und vertikalgut untersuchte Zeichenkonventionin vielen Anwendungen relevant

    Org

    an

    igra

    mo

    fH

    SL

    imb

    urg

    Cir

    cuit

    dia

    gra

    mb

    yJe

    ffA

    two

    od

    UM

    Ld

    iag

    ram

    by

    Ora

    cle

    ER

    dia

    gra

    min

    OG

    DF

    Konsequenzen?Sinnvolle Ästhetikkriterien?

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen3

    (Planare) Orthogonale Zeichnungen

    Dreistufiger Ansatz: Topology – Shape – Metrics

    V = {v1, v2, v3, v4}E = {v1v2, v1v3, v1v4, v2v3, v2v4}

    [Tamassia SIAM J. Comput. 1987]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen3

    (Planare) Orthogonale Zeichnungen

    Dreistufiger Ansatz: Topology – Shape – Metrics

    V = {v1, v2, v3, v4}E = {v1v2, v1v3, v1v4, v2v3, v2v4}

    kombinatorischeEinbettung/Planarisierung

    12

    3

    4

    Kre

    uzu

    ngs

    min

    imie

    run

    g

    [Tamassia SIAM J. Comput. 1987]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen3

    (Planare) Orthogonale Zeichnungen

    Dreistufiger Ansatz: Topology – Shape – Metrics

    V = {v1, v2, v3, v4}E = {v1v2, v1v3, v1v4, v2v3, v2v4}

    kombinatorischeEinbettung/Planarisierung

    12

    3

    4

    orthogonaleBeschreibung

    1

    2

    3

    4Knickminimierung

    Kre

    uzu

    ngs

    min

    imie

    run

    g

    [Tamassia SIAM J. Comput. 1987]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen3

    (Planare) Orthogonale Zeichnungen

    Dreistufiger Ansatz: Topology – Shape – Metrics

    V = {v1, v2, v3, v4}E = {v1v2, v1v3, v1v4, v2v3, v2v4}

    kombinatorischeEinbettung/Planarisierung

    12

    3

    4

    orthogonaleBeschreibung

    1

    2

    3

    4

    planareEinbettung

    12

    34

    Knickminimierung

    Flächen-minimierung

    Kre

    uzu

    ngs

    min

    imie

    run

    g

    [Tamassia SIAM J. Comput. 1987]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen3

    (Planare) Orthogonale Zeichnungen

    Dreistufiger Ansatz: Topology – Shape – Metrics

    V = {v1, v2, v3, v4}E = {v1v2, v1v3, v1v4, v2v3, v2v4}

    kombinatorischeEinbettung/Planarisierung

    12

    3

    4

    orthogonaleBeschreibung

    1

    2

    3

    4

    planareEinbettung

    12

    34

    Knickminimierung

    Flächen-minimierung

    Kre

    uzu

    ngs

    min

    imie

    run

    g

    [Tamassia SIAM J. Comput. 1987]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen4

    Knickminimierung bei fester Einbettung

    Problem geometrische Knickminimierung

    planarer Graph G = (V,E) mit Maximalgrad 4kombinatorische Einbettung F und äußere Facette f0

    Geg:

    einbettungsäquivalente orthogonale Gitterzeichnung mitminimaler Knickanzahl

    Ges:

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen4

    Knickminimierung bei fester Einbettung

    Problem geometrische Knickminimierung

    planarer Graph G = (V,E) mit Maximalgrad 4kombinatorische Einbettung F und äußere Facette f0

    Geg:

    einbettungsäquivalente orthogonale Gitterzeichnung mitminimaler Knickanzahl

    Ges:

    bzw. zunächst folgende Variante

    Problem kombinatorische Knickminimierung

    planarer Graph G = (V,E) mit Maximalgrad 4kombinatorische Einbettung F und äußere Facette f0

    Geg:

    einbettungsäquivalente orthogonale Beschreibung H(G)mit minimaler Knickanzahl

    Ges:

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen5

    Orthogonale Beschreibung

    Eingabe: planarer Graph G = (V,E), Facettenmenge F ,äußere Facette f0

    Ausgabe: orthogonale Beschreibung H(G) = {H(f) | f ∈ F}

    Facettenbeschreibung H(f): im UZS um f geordnete Folgevon Kantenbeschreibungen (e, δ, α) mit

    e ist Randkante von fδ ist Folge in {0, 1}∗ (0 = Rechtsknick, 1 = Linksknick)α ist Winkel ∈ {π2 , π,

    3π2 , 2π} zwischen e und Nachfolger e

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen6

    Orthogonale Beschreibung: Beispiel

    f1 f2

    f0

    e1

    e2e3

    e4

    e5

    e6

    H(f0) = ((e1, 11,π2 ), (e5, 111,

    3π2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅,

    π2 ))

    H(f1) = ((e1, 00,3π2 ), (e2, ∅,

    π2 ), (e6, 00, π))

    H(f2) = ((e5, 000,π2 ), (e6, 11,

    π2 ), (e3, ∅, π), (e4, ∅,

    π2 ))

    Wie sieht die kombinatorische

    ”Zeichnung“ zu H(G) aus?

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen6

    Orthogonale Beschreibung: Beispiel

    f1 f2

    f0

    e1

    e2e3

    e4

    e5

    e6

    H(f0) = ((e1, 11,π2 ), (e5, 111,

    3π2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅,

    π2 ))

    H(f1) = ((e1, 00,3π2 ), (e2, ∅,

    π2 ), (e6, 00, π))

    H(f2) = ((e5, 000,π2 ), (e6, 11,

    π2 ), (e3, ∅, π), (e4, ∅,

    π2 ))

    e1

    e2 e3 e4

    e5

    e6

    f1f2

    f0

    01

    0

    00

    0

    0

    01

    11

    1

    1

    1

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen6

    Orthogonale Beschreibung: Beispiel

    f1 f2

    f0

    e1

    e2e3

    e4

    e5

    e6

    H(f0) = ((e1, 11,π2 ), (e5, 111,

    3π2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅,

    π2 ))

    H(f1) = ((e1, 00,3π2 ), (e2, ∅,

    π2 ), (e6, 00, π))

    H(f2) = ((e5, 000,π2 ), (e6, 11,

    π2 ), (e3, ∅, π), (e4, ∅,

    π2 ))

    e1

    e2 e3 e4

    e5

    e6

    f1f2

    f0

    01

    0

    00

    0

    0

    01

    11

    1

    1

    1

    f0 falsch rum!?

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen6

    Orthogonale Beschreibung: Beispiel

    f1 f2

    f0

    e1

    e2e3

    e4

    e5

    e6

    H(f0) = ((e1, 11,π2 ), (e5, 111,

    3π2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅,

    π2 ))

    H(f1) = ((e1, 00,3π2 ), (e2, ∅,

    π2 ), (e6, 00, π))

    H(f2) = ((e5, 000,π2 ), (e6, 11,

    π2 ), (e3, ∅, π), (e4, ∅,

    π2 ))

    e1

    e2 e3 e4

    e5

    e6

    f1f2

    f0

    01

    0

    00

    0

    0

    01

    11

    1

    1

    1

    π 3π2

    π2

    ππ2

    π2

    π2

    π2

    π2 π 3π

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen6

    Orthogonale Beschreibung: Beispiel

    f1 f2

    f0

    e1

    e2e3

    e4

    e5

    e6

    H(f0) = ((e1, 11,π2 ), (e5, 111,

    3π2 ), (e4, ∅, π), (e3, ∅, π), (e2, ∅,

    π2 ))

    H(f1) = ((e1, 00,3π2 ), (e2, ∅,

    π2 ), (e6, 00, π))

    H(f2) = ((e5, 000,π2 ), (e6, 11,

    π2 ), (e3, ∅, π), (e4, ∅,

    π2 ))

    e1

    e2 e3 e4

    e5

    e6

    f1f2

    f0

    01

    0

    00

    0

    0

    01

    11

    1

    1

    1

    π3π2

    π2

    ππ2

    π2

    π2

    π2 π

    2 π 3π2

    π

    konkrete Geometrie noch nicht festgelegt!

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen7

    Korrektheit einer orthogonalen Beschreibung

    (H1) H(G) entspricht F , f0

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen7

    Korrektheit einer orthogonalen Beschreibung

    (H1) H(G) entspricht F , f0(H2) für gemeinsame Randkante {u, v} zweier Facetten f und g

    mit ((u, v), δ1, α1) ∈ H(f) und ((v, u), δ2, α2) ∈ H(g) giltδ1 ist invertierte und umgedrehte Folge δ2

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen7

    Korrektheit einer orthogonalen Beschreibung

    (H1) H(G) entspricht F , f0(H2) für gemeinsame Randkante {u, v} zweier Facetten f und g

    mit ((u, v), δ1, α1) ∈ H(f) und ((v, u), δ2, α2) ∈ H(g) giltδ1 ist invertierte und umgedrehte Folge δ2

    (H3) Sei |δ|0 (bzw. |δ|1) die Anzahl Nullen (bzw. Einsen) in δund r = (e, δ, α). Für C(r) := |δ|0 − |δ|1 + 2− 2α/π gilt:∑r∈H(f)

    C(r) = 4 für f 6= f0 und∑

    r∈H(f0)

    C(r) = −4

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen7

    Korrektheit einer orthogonalen Beschreibung

    (H1) H(G) entspricht F , f0(H2) für gemeinsame Randkante {u, v} zweier Facetten f und g

    mit ((u, v), δ1, α1) ∈ H(f) und ((v, u), δ2, α2) ∈ H(g) giltδ1 ist invertierte und umgedrehte Folge δ2

    (H3) Sei |δ|0 (bzw. |δ|1) die Anzahl Nullen (bzw. Einsen) in δund r = (e, δ, α). Für C(r) := |δ|0 − |δ|1 + 2− 2α/π gilt:∑r∈H(f)

    C(r) = 4 für f 6= f0 und∑

    r∈H(f0)

    C(r) = −4

    (H4) Für jeden Knoten v ist die Summe der anliegenden Winkelgleich 2π

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen8

    Kombinatorische Knickminimierung

    Problem kombinatorische Knickminimierung

    Graph G = (V,E) mit Maximalgrad 4kombinatorische Einbettung F und äußere Facette f0

    Geg:

    einbettungsäquivalente orthogonale Beschreibung H(G)mit minimaler Knickanzahl

    Ges:

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen8

    Kombinatorische Knickminimierung

    Problem kombinatorische Knickminimierung

    Graph G = (V,E) mit Maximalgrad 4kombinatorische Einbettung F und äußere Facette f0

    Geg:

    einbettungsäquivalente orthogonale Beschreibung H(G)mit minimaler Knickanzahl

    Ges:

    Idee: erstelle ein Flussnetzwerk miteine Flusseinheit entspricht einem π/2 WinkelFluss von Knoten zu Facetten entspricht KnotenwinkelFluss zwischen Facetten entspricht Kantenknicken

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen9

    Erinnerung: s-t Flussnetzwerk

    Flussnetzwerk (D = (V,A); s, t; c) mitgerichtetem Graph D = (V,A)Kantenkapazitäten c : A→ R+0Quelle s ∈ V , Senke t ∈ V

    Eine Abbildung X : A→ R+0 heißt s-t-Fluss, falls gilt:

    0 ≤ X(i, j) ≤ c(i, j) ∀(i, j) ∈ A (1)∑(i,j)∈A

    X(i, j)−∑

    (j,i)∈A

    X(j, i) = 0 ∀i ∈ V \ {s, t} (2)

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen10

    Erinnerung: Allgemeines Flussnetzwerk

    Flussnetzwerk (D = (V,A); `;u; b) mitgerichtetem Graph D = (V,A)untere Kantenkapazitäten ` : A→ R+0obere Kantenkapazitäten u : A→ R+0Knotenbewertung b : V → R mit

    ∑i∈V b(i) = 0

    Eine Abbildung X : A→ R+0 heißt Fluss, falls gilt:

    `(i, j) ≤ X(i, j) ≤ u(i, j) ∀(i, j) ∈ A (3)∑(i,j)∈A

    X(i, j)−∑

    (j,i)∈A

    X(j, i) = b(i) ∀i ∈ V (4)

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen11

    Fragestellungen für Flussnetzwerke

    (A) Gültiger Fluss:Finde einen gültigen Fluss X : A→ R+0 , d.h.

    Kapazitäten l(e), u(e) werden respektiertBedarf b(v) wird genau erfüllt

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen11

    Fragestellungen für Flussnetzwerke

    (A) Gültiger Fluss:Finde einen gültigen Fluss X : A→ R+0 , d.h.

    Kapazitäten l(e), u(e) werden respektiertBedarf b(v) wird genau erfüllt

    Zusätzlich gegeben: Kostenfunktion cost : A→ R+0Def: cost(X) :=

    ∑(i,j)∈A cost(i, j) ·X(i, j)

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen11

    Fragestellungen für Flussnetzwerke

    (A) Gültiger Fluss:Finde einen gültigen Fluss X : A→ R+0 , d.h.

    Kapazitäten l(e), u(e) werden respektiertBedarf b(v) wird genau erfüllt

    Zusätzlich gegeben: Kostenfunktion cost : A→ R+0Def: cost(X) :=

    ∑(i,j)∈A cost(i, j) ·X(i, j)

    (B) MinimalkostenflussFinde einen gültigen Fluss X : A→ R+0 , der cost(X)minimiert (unter allen gültigen Flüssen)

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen12

    Flussnetzwerk zur Knickminimierung

    Flussnetzwerk N(G) = ((V ∪ F , A); `;u; b; cost)A = {(v, f) ∈ V ×F | v inzident zu f} ∪A = {(f, g) ∈ F × F | ∀e ∈ E mit e trennt f, g}

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen12

    Flussnetzwerk zur Knickminimierung

    Flussnetzwerk N(G) = ((V ∪ F , A); `;u; b; cost)A = {(v, f) ∈ V ×F | v inzident zu f} ∪A = {(f, g) ∈ F × F | ∀e ∈ E mit e trennt f, g}b(v) = 4 ∀v ∈ V

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen12

    Flussnetzwerk zur Knickminimierung

    Flussnetzwerk N(G) = ((V ∪ F , A); `;u; b; cost)A = {(v, f) ∈ V ×F | v inzident zu f} ∪A = {(f, g) ∈ F × F | ∀e ∈ E mit e trennt f, g}b(v) = 4 ∀v ∈ Vb(f) = −2(dG(f)− 2) ∀f ∈ F \ {f0}b(f0) = −2(dG(f0) + 2)

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen12

    Flussnetzwerk zur Knickminimierung

    Flussnetzwerk N(G) = ((V ∪ F , A); `;u; b; cost)A = {(v, f) ∈ V ×F | v inzident zu f} ∪A = {(f, g) ∈ F × F | ∀e ∈ E mit e trennt f, g}b(v) = 4 ∀v ∈ Vb(f) = −2(dG(f)− 2) ∀f ∈ F \ {f0}b(f0) = −2(dG(f0) + 2)

    ⇒∑w b(w) ?= 0

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen12

    Flussnetzwerk zur Knickminimierung

    Flussnetzwerk N(G) = ((V ∪ F , A); `;u; b; cost)A = {(v, f) ∈ V ×F | v inzident zu f} ∪A = {(f, g) ∈ F × F | ∀e ∈ E mit e trennt f, g}b(v) = 4 ∀v ∈ Vb(f) = −2(dG(f)− 2) ∀f ∈ F \ {f0}b(f0) = −2(dG(f0) + 2)

    ⇒∑w b(w) = 0(Euler)

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen12

    Flussnetzwerk zur Knickminimierung

    Flussnetzwerk N(G) = ((V ∪ F , A); `;u; b; cost)A = {(v, f) ∈ V ×F | v inzident zu f} ∪A = {(f, g) ∈ F × F | ∀e ∈ E mit e trennt f, g}b(v) = 4 ∀v ∈ Vb(f) = −2(dG(f)− 2) ∀f ∈ F \ {f0}b(f0) = −2(dG(f0) + 2)

    ⇒∑w b(w) = 0(Euler)∀(f, g) ∈ A, f, g ∈ F `(f, g) := 0 ≤ X(f, g) ≤ ∞ =: u(f, g)

    ∀(v, f) ∈ A, v ∈ V, f ∈ F `(v, f) := 1 ≤ X(v, f) ≤ 4 =: u(v, f)

    ∀i ∈ V ∪ F∑

    (i,j)∈A

    X(i, j)−∑

    (j,i)∈A

    X(j, i) = b(i)

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

    V

    F

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

    V

    F

    V ×F ⊇

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

    V

    F

    V ×F ⊇

    F × F ⊇

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

    V

    F

    4

    4

    4

    4

    4

    -2-4

    -14

    V ×F ⊇

    F × F ⊇

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

    V

    F

    4

    4

    4

    4

    4

    -2-4

    -14

    1/4/0`/u/c

    V ×F ⊇

    F × F ⊇

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

    V

    F

    4

    4

    4

    4

    4

    -2-4

    -14

    1/4/0`/u/c

    0/∞/1V ×F ⊇

    F × F ⊇

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

    V

    F

    4

    4

    4

    4

    4

    -2-4

    -14

    1/4/0`/u/c

    1

    11

    1

    3

    32

    3

    0/∞/1

    2

    1

    111

    V ×F ⊇

    F × F ⊇

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen13

    Beispiel Flussnetzwerk

    f1 f2

    f0

    e1

    e2

    e3

    e4

    e5

    e6

    v1

    v2 v3

    v4v5

    V

    F

    4

    4

    4

    4

    4

    -2-4

    -14

    1/4/0`/u/c

    1

    11

    1

    3

    32

    3

    0/∞/1

    2

    1

    1111

    cost = 1Knick!(nach außen)

    V ×F ⊇

    F × F ⊇

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen14

    Kernaussage

    Satz 1: Zu einem planar eingebetteten Graphen (G,F , f0)existiert genau dann eine zulässige orthogonaleBeschreibung H(G) mit k Knicken, wenn es imFlussnetzwerk N(G) einen Fluss x mit Kosten k gibt.

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen14

    Kernaussage

    Satz 1: Zu einem planar eingebetteten Graphen (G,F , f0)existiert genau dann eine zulässige orthogonaleBeschreibung H(G) mit k Knicken, wenn es imFlussnetzwerk N(G) einen Fluss x mit Kosten k gibt.

    Beweis:

    ⇐ Geg: Fluss x in N(G) mit Kosten kGes: orthogonale Beschreibung H(G) mit k Knicken

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen14

    Kernaussage

    Satz 1: Zu einem planar eingebetteten Graphen (G,F , f0)existiert genau dann eine zulässige orthogonaleBeschreibung H(G) mit k Knicken, wenn es imFlussnetzwerk N(G) einen Fluss x mit Kosten k gibt.

    Beweis:

    ⇐ Geg: Fluss x in N(G) mit Kosten kGes: orthogonale Beschreibung H(G) mit k Knickentransformiere Fluss in orthogonale Beschreibungzeige Eigenschaften (H1)–(H4)

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen14

    Kernaussage

    Satz 1: Zu einem planar eingebetteten Graphen (G,F , f0)existiert genau dann eine zulässige orthogonaleBeschreibung H(G) mit k Knicken, wenn es imFlussnetzwerk N(G) einen Fluss x mit Kosten k gibt.

    Beweis:

    ⇐ Geg: Fluss x in N(G) mit Kosten kGes: orthogonale Beschreibung H(G) mit k Knickentransformiere Fluss in orthogonale Beschreibungzeige Eigenschaften (H1)–(H4)

    ⇒ Geg: orthogonale Beschreibung H(G) mit k KnickenGes: Fluss x in N(G) mit Kosten k

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen14

    Kernaussage

    Satz 1: Zu einem planar eingebetteten Graphen (G,F , f0)existiert genau dann eine zulässige orthogonaleBeschreibung H(G) mit k Knicken, wenn es imFlussnetzwerk N(G) einen Fluss x mit Kosten k gibt.

    Beweis:

    ⇐ Geg: Fluss x in N(G) mit Kosten kGes: orthogonale Beschreibung H(G) mit k Knickentransformiere Fluss in orthogonale Beschreibungzeige Eigenschaften (H1)–(H4)

    ⇒ Geg: orthogonale Beschreibung H(G) mit k KnickenGes: Fluss x in N(G) mit Kosten k

    definiere Abbildung x : A→ R+0zeige x erfüllt Flussbedingungen und hat Kosten k

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen15

    Zusammenfassung Knickminimierung

    Aus Satz 1 folgt, dass die orthogonale Knickminimierungfür eingebettete planare Graphen durch Lösen einesMin-Cost-Flow Problems durchgeführt werden kann.

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen15

    Zusammenfassung Knickminimierung

    Aus Satz 1 folgt, dass die orthogonale Knickminimierungfür eingebettete planare Graphen durch Lösen einesMin-Cost-Flow Problems durchgeführt werden kann.

    Dieses spezielle Flussproblem lässt sich unter Ausnutzungder Planarität von N(G) in O(n3/2) Zeit lösen.

    [Cornelsen, Karrenbauer GD 2011]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen15

    Zusammenfassung Knickminimierung

    Aus Satz 1 folgt, dass die orthogonale Knickminimierungfür eingebettete planare Graphen durch Lösen einesMin-Cost-Flow Problems durchgeführt werden kann.

    Dieses spezielle Flussproblem lässt sich unter Ausnutzungder Planarität von N(G) in O(n3/2) Zeit lösen.

    [Cornelsen, Karrenbauer GD 2011]

    Die Knickminimierung ohne gegebene kombinatorischeEinbettung ist NP-schwer. [Garg, Tamassia SIAM J. Comput. 2001]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen15

    Zusammenfassung Knickminimierung

    Aus Satz 1 folgt, dass die orthogonale Knickminimierungfür eingebettete planare Graphen durch Lösen einesMin-Cost-Flow Problems durchgeführt werden kann.

    Dieses spezielle Flussproblem lässt sich unter Ausnutzungder Planarität von N(G) in O(n3/2) Zeit lösen.

    [Cornelsen, Karrenbauer GD 2011]

    Die Knickminimierung ohne gegebene kombinatorischeEinbettung ist NP-schwer. [Garg, Tamassia SIAM J. Comput. 2001]

    Das Entscheidungsproblem, ob ein Graph eine orthogonaleZeichnung mit höchstens f(e) Knicken pro Kante e besitztist polynomiell lösbar, falls f(e) ≥ 1 für alle e ∈ E.

    [Bläsius et al. GD 2010]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen16

    (Planare) Orthogonale Zeichnungen

    Dreistufiger Ansatz: Topology – Shape – Metrics

    V = {v1, v2, v3, v4}E = {v1v2, v1v3, v1v4, v2v3, v2v4}

    kombinatorischeEinbettung/Planarisierung

    12

    3

    4

    orthogonaleBeschreibung

    1

    2

    3

    4

    planareEinbettung

    12

    34

    Knickminimierung

    Flächen-minimierung

    Kre

    uzu

    ngs

    min

    imie

    run

    g

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen16

    (Planare) Orthogonale Zeichnungen

    Dreistufiger Ansatz: Topology – Shape – Metrics

    V = {v1, v2, v3, v4}E = {v1v2, v1v3, v1v4, v2v3, v2v4}

    kombinatorischeEinbettung/Planarisierung

    12

    3

    4

    orthogonaleBeschreibung

    1

    2

    3

    4

    planareEinbettung

    12

    34

    Knickminimierung

    Flächen-minimierung

    Kre

    uzu

    ngs

    min

    imie

    run

    g

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen17

    Kompaktierung

    Problem Kompaktierung

    planarer Graph G = (V,E) mit Maximalgrad 4orthogonale Beschreibung H(G)

    Geg:

    kompaktes orthogonales Layout von G, das H(G) realisiertGes:

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen17

    Kompaktierung

    Problem Kompaktierung

    planarer Graph G = (V,E) mit Maximalgrad 4orthogonale Beschreibung H(G)

    Geg:

    kompaktes orthogonales Layout von G, das H(G) realisiertGes:

    Spezialfall: alle Facetten sind Rechtecke

    → Garantien möglich minimale Gesamtkantenlängeminimale Fläche

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen17

    Kompaktierung

    Problem Kompaktierung

    planarer Graph G = (V,E) mit Maximalgrad 4orthogonale Beschreibung H(G)

    Geg:

    kompaktes orthogonales Layout von G, das H(G) realisiertGes:

    Spezialfall: alle Facetten sind Rechtecke

    → Garantien möglich minimale Gesamtkantenlängeminimale Fläche

    Eigenschaften:

    Knicke höchstens als Ecken der äußeren Facettegegenüberliegende Seiten einer Facette gleich lang

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen17

    Kompaktierung

    Problem Kompaktierung

    planarer Graph G = (V,E) mit Maximalgrad 4orthogonale Beschreibung H(G)

    Geg:

    kompaktes orthogonales Layout von G, das H(G) realisiertGes:

    Spezialfall: alle Facetten sind Rechtecke

    → Garantien möglich minimale Gesamtkantenlängeminimale Fläche

    Eigenschaften:

    Knicke höchstens als Ecken der äußeren Facettegegenüberliegende Seiten einer Facette gleich lang

    Erstelle ein Flussnetzwerk zur(horizontalen) Kompaktierung.

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen18

    Flussnetzwerk Längenzuweisung

    Def: Flussnetzwerk Nhor = ((Whor, Ahor); `;u; b; cost)

    Whor = F \ {f0} ∪ {s, t}Ahor = {(f, g) | f, g besitzen gemeinsames horizontalesKantensegment und f liegt unterhalb von g} ∪ {(t, s)}`(a) = 1 ∀a ∈ Ahoru(a) =∞ ∀a ∈ Ahorcost(a) = 1 ∀a ∈ Ahorb(f) = 0 ∀f ∈Whor

    s

    t

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen18

    Flussnetzwerk Längenzuweisung

    Def: Flussnetzwerk Nhor = ((Whor, Ahor); `;u; b; cost)

    Whor = F \ {f0} ∪ {s, t}Ahor = {(f, g) | f, g besitzen gemeinsames horizontalesKantensegment und f liegt unterhalb von g} ∪ {(t, s)}`(a) = 1 ∀a ∈ Ahoru(a) =∞ ∀a ∈ Ahorcost(a) = 1 ∀a ∈ Ahorb(f) = 0 ∀f ∈Whor

    s

    t

    s und t repräsentieren untereund obere Hälfte von f0

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen19

    Flussnetzwerk Längenzuweisung

    Def: Flussnetzwerk Nver = ((Wver, Aver); `;u; b; cost)

    Wver = F \ {f0} ∪ {s, t}Aver = {(f, g) | f, g besitzen gemeinsames vertikalesKantensegment und f liegt links von g} ∪ {(t, s)}`(a) = 1 ∀a ∈ Ahoru(a) =∞ ∀a ∈ Ahorcost(a) = 1 ∀a ∈ Ahorb(f) = 0 ∀f ∈Whor

    s t

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen20

    Optimales Layout

    Satz 2: Ganzzahlige Flüsse xhor und xver in Nhor und Nver mitminimalen Kosten liefern:

    zugeh. Seitenlängen induzieren gültiges Layout|xhor(t, s)| und |xver(t, s)| entsprechen minimalerBreite und Höhe des Layouts∑a∈Ahor xhor(e) · cost(a) +

    ∑e∈Aver xver(a) · cost(a)

    entsprechen minimaler Gesamtkantenlänge

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen20

    Optimales Layout

    Satz 2: Ganzzahlige Flüsse xhor und xver in Nhor und Nver mitminimalen Kosten liefern:

    zugeh. Seitenlängen induzieren gültiges Layout|xhor(t, s)| und |xver(t, s)| entsprechen minimalerBreite und Höhe des Layouts∑a∈Ahor xhor(e) · cost(a) +

    ∑e∈Aver xver(a) · cost(a)

    entsprechen minimaler Gesamtkantenlänge

    Aber was macht man, wenn nicht alle FacettenRechtecke sind?

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    f

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    Dummyknoten für Knicke

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    e

    next(e)

    corner(e)

    Dummyknoten für Knicke

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1 front(e0): Nachfolger der erstenKante mit

    ∑turn(e) = 1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1 front(e0): Nachfolger der erstenKante mit

    ∑turn(e) = 1

    project(e0)

    extend(e0)

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen21

    Verfeinerung von (G,H) – innere Facette

    e0e1

    e2e3

    e4e5

    e6

    e7

    e8e9

    e10e11

    e12

    e13

    e14

    e15 f

    −1

    −1

    1

    −1

    −1

    −1

    −1

    1

    1

    1 1

    11

    1

    1

    1

    Dummyknoten für Knicke

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    Rechteck R um dieäußere Facette legen

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    1

    1

    −1

    1

    1

    1

    1

    −1

    −1

    −1 −1

    −1−1−1

    −1−1

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    turn(e) =

    1 Linksknick

    0 kein Knick

    −1 Rechtsknick

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    e0 e1e2

    e3e4

    e5

    e6

    e7

    e8 e9e10

    e11

    e12

    e13

    e14

    e15

    f0

    Rechteck R um dieäußere Facette legen

    falls∑

    turn(e) < 1 fürkomplette Umrundungvon f0, projiziere auf R

    alle Facetten sind Rechtecke→ wende Flussnetzwerke an

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    Flächenminimal?

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    Nein!

    Flächenminimal?

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen22

    Verfeinerung von (G,H) – äußere Facette

    Nein!

    Flächenminimal?

    Die Flächenkompaktierung bei gegebener orthogonalerBeschreibung ist im Allgemeinen NP-schwer.

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen23

    Komplexität der Kompaktierung

    Satz 3: Für einen Graphen G mit gegebener orthogonalerBeschreibung H(G) und ein K ∈ N ist es NP-schwerzu entscheiden, ob sich (G,H(G)) auf einem Gitterder Größe höchstens K zeichnen lässt.

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen23

    Komplexität der Kompaktierung

    Reduktion von SAT, d.h. Erfüllbarkeitstest für BoolescheFormel Φ = c1 ∧ · · · ∧ cm, wobei jedes ci Klausel überVariablenmenge {x1, . . . , xn}geometrische Struktur der Reduktion

    KlauselgadgetsVariablengadgets

    Bestimme geeigneten Wert K, so dass sich (G,H) inFläche K zeichnen lässt gdw. Φ erfüllbar

    Satz 3: Für einen Graphen G mit gegebener orthogonalerBeschreibung H(G) und ein K ∈ N ist es NP-schwerzu entscheiden, ob sich (G,H(G)) auf einem Gitterder Größe höchstens K zeichnen lässt.

    Beweisskizze:

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen24

    Variablengadget

    w

    l(w × l)-Rechteck

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen24

    Variablengadget

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen24

    Variablengadget

    ?

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen24

    Variablengadget

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen24

    Variablengadget

    Gürtel ist eine Kante mit Beschreibung (r4l4)2nr4

    Gürtelzellen lassen sich innerhalb des Rahmens verschieben

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen24

    Variablengadget

    Gürtel ist eine Kante mit Beschreibung (r4l4)2nr4

    Gürtelzellen lassen sich innerhalb des Rahmens verschieben

    jeder Kolben entspricht einer Variablen mit zwei Belegungen

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen24

    Variablengadget

    ?

    Gürtel ist eine Kante mit Beschreibung (r4l4)2nr4

    Gürtelzellen lassen sich innerhalb des Rahmens verschieben

    jeder Kolben entspricht einer Variablen mit zwei Belegungen

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen24

    Variablengadget

    true true

    false false

    Gürtel ist eine Kante mit Beschreibung (r4l4)2nr4

    Gürtelzellen lassen sich innerhalb des Rahmens verschieben

    jeder Kolben entspricht einer Variablen mit zwei Belegungen

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen25

    Klauselgadgets

    c1

    c2

    c3

    c4

    x1 x3 x4 x5

    true

    false

    truetrue

    false

    x2

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen25

    Klauselgadgets

    c1

    c2

    c3

    c4

    x1 x3 x4 x5

    true

    false

    truetrue

    false Beispiel:c1 = x2 ∨ x4c2 = x1 ∨ x2 ∨ x3c3 = x5c4 = x4 ∨ x5

    x x ∅

    x2

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen25

    Klauselgadgets

    c1

    c2

    c3

    c4

    x1 x3 x4 x5

    true

    false

    truetrue

    false Beispiel:c1 = x2 ∨ x4c2 = x1 ∨ x2 ∨ x3c3 = x5c4 = x4 ∨ x5

    x x ∅

    x2

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen25

    Klauselgadgets

    c1

    c2

    c3

    c4

    x1 x3 x4 x5

    true

    false

    truetrue

    false Beispiel:c1 = x2 ∨ x4c2 = x1 ∨ x2 ∨ x3c3 = x5c4 = x4 ∨ x5

    x x ∅

    lege A2n−1-Kette durchjede Klausel

    x2

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen25

    Klauselgadgets

    c1

    c2

    c3

    c4

    x1 x3 x4 x5

    true

    false

    truetrue

    false Beispiel:c1 = x2 ∨ x4c2 = x1 ∨ x2 ∨ x3c3 = x5c4 = x4 ∨ x5

    x x ∅

    lege A2n−1-Kette durchjede Klausel

    x2

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen25

    Klauselgadgets

    c1

    c2

    c3

    c4

    x1 x3 x4 x5

    true

    false

    truetrue

    false Beispiel:c1 = x2 ∨ x4c2 = x1 ∨ x2 ∨ x3c3 = x5c4 = x4 ∨ x5

    x x ∅

    lege A2n−1-Kette durchjede Klausel

    x2

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen25

    Klauselgadgets

    c1

    c2

    c3

    c4

    x1 x3 x4 x5

    true

    false

    true

    false Beispiel:c1 = x2 ∨ x4c2 = x1 ∨ x2 ∨ x3c3 = x5c4 = x4 ∨ x5

    x x ∅

    lege A2n−1-Kette durchjede Klausel

    x2false

    Höh

    e+

    2

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen26

    Komplette Reduktion

    9m+ 7

    9n+ 2

    SetzeK = (9n+ 2) · (9m+ 7)

    (G,H) auf Fläche Kzeichenbar⇔

    Φ erfüllbar

    Es gilt:

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen27

    Zusammenfassung

    Flächenkompaktierung bei gegebener orthogonalerBeschreibung ist im Allgemeinen NP-schwer

    falls alle Facetten Rechtecke sind ist Kompaktierung durchFlussmodell effizient möglich

    heuristisch durch Verfeinerung nicht-rechteckiger Facettenzu Rechtecken lösbar

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen27

    Zusammenfassung

    Flächenkompaktierung bei gegebener orthogonalerBeschreibung ist im Allgemeinen NP-schwer

    falls alle Facetten Rechtecke sind ist Kompaktierung durchFlussmodell effizient möglich

    heuristisch durch Verfeinerung nicht-rechteckiger Facettenzu Rechtecken lösbar

    im allgemeinen Fall durch ganzzahlige lineareProgrammierung (ILP) lösbar [Klau, Mutzel IPCO 1999]

    experimenteller Vergleich verschiedener heuristischerMethoden bzgl. Laufzeit und Qualität [Klau, Klein, Mutzel GD 2001]

    für nicht-planare Graphen sogar schwer zu approximieren[Bannister, Eppstein, Simons JGAA 2012]

  • Dr. Martin Nöllenburg · Algorithmen zur Visualisierung von Graphen Flussmethoden: orthogonales Graphenzeichnen28

    (Planare) Orthogonale Zeichnungen

    Dreistufiger Ansatz: Topology – Shape – Metrics

    V = {v1, v2, v3, v4}E = {v1v2, v1v3, v1v4, v2v3, v2v4}

    kombinatorischeEinbettung/Planarisierung

    12

    3

    4

    orthogonaleBeschreibung

    1

    2

    3

    4

    planareEinbettung

    12

    34

    Knickminimierung

    Flächen-minimierung

    Kre

    uzu

    ngs

    min

    imie

    run

    g

    Orthogonales GraphenzeichnenOrthogonale ZeichnungenKnickminimierung bei fester EinbettungOrthogonale BeschreibungOrthogonale Beschreibung: BeispielKorrektheit einer orthogonalen BeschreibungKombinatorische KnickminimierungErinnerung: $s$-$t$ FlussnetzwerkErinnerung: Allgemeines FlussnetzwerkFragestellungen für FlussnetzwerkeFlussnetzwerk zur KnickminimierungKnickminimierungKernaussageZusammenfassung KnickminimierungOrthogonale ZeichnungenKompaktierungFlussnetzwerk LängenzuweisungFlussnetzwerk LängenzuweisungOptimales LayoutVerfeinerungKomplexität der KompaktierungVariablengadgetKlauselgadgetsKomplette ReduktionZusammenfassungOrthogonale Zeichnungen