SLIDE 1 Smooth Orthogonal Drawings
Philipp Kindermann Chair of Computer Science I Universit¨ at W¨ urzburg
Joint work with
- Md. Jawaherul Alam, Michael A. Bekos, Michael Kaufmann,
Stephen G. Kobourov & Alexander Wolff
SLIDE 2 Orthogonal Layouts
- all edge segments are horizontal or vertical
- a well-studied drawing convention
- many examples in applications
SLIDE 3 Orthogonal Layouts
- all edge segments are horizontal or vertical
- a well-studied drawing convention
- many examples in applications
ER diagram in OGDF
SLIDE 4 Orthogonal Layouts
- all edge segments are horizontal or vertical
- a well-studied drawing convention
- many examples in applications
ER diagram in OGDF UML diagram by Oracle
SLIDE 5 Orthogonal Layouts
- all edge segments are horizontal or vertical
- a well-studied drawing convention
- many examples in applications
ER diagram in OGDF UML diagram by Oracle Organigram of HS Limburg
SLIDE 6 Orthogonal Layouts
- all edge segments are horizontal or vertical
- a well-studied drawing convention
- many examples in applications
ER diagram in OGDF UML diagram by Oracle Organigram of HS Limburg Circuit diagram by Jeff Atwood
SLIDE 7 Orthogonal Layouts
- all edge segments are horizontal or vertical
- a well-studied drawing convention
- many examples in applications
UML diagram by Oracle Circuit diagram by Jeff Atwood Fused Grid city layouts [By Fgrammen, via Wikimedia Commons]
SLIDE 8 Orthogonal Layouts
- all edge segments are horizontal or vertical
- a well-studied drawing convention
- many examples in applications
VLSI/PCI chip design [Mora et al. 2013] Fused Grid city layouts [By Fgrammen, via Wikimedia Commons]
SLIDE 9
Orthogonal Layouts – Well-Known Results
Can minimize number of bends for fixed embedding. [Tamassia, SIAM J Comp’87] [Bl¨ asius et al., ’11] Given an embedding and a function flex: E → N≥1, can compute a drawing with ≤ flex(e) bends/edge (if one exists). [Garg & Tamassia, SIAM J Comp’01] Without fixed embedding, bend minimization is hard to approx. [Biedl & Kant, CGTA’98], [Liu et al., DAM’98] Can compute drawing on the (n × n)-grid with ≤ 2n + 2 bends for any embedding (and ≤ 2 bends/edge – except octahedron)
SLIDE 10 Smooth Drawings
Mark Lombardi (1951–2000)
Lombardi drawings
- circular arc edges
- perfect angular
resolution
SLIDE 11 Smooth Drawings
Mark Lombardi (1951–2000)
Lombardi drawings
- circular arc edges
- perfect angular
resolution k-Lombardi drawings
circular arcs
SLIDE 12 Smooth Drawings
The New York Times info diagram
SLIDE 13 Smooth Drawings
Terra Nova - Design Overdrive by Carlos Barbosa
SLIDE 14 Smooth Drawings
Public transportation map by O¨ OVG
SLIDE 15 Smooth Orthogonal Layouts
Combine both worlds:
smooth orthogonal
SLIDE 16 Smooth Orthogonal Layouts
Combine both worlds:
- edges leave and enter vertices horizontally or vertically
- rthogonal
smooth orthogonal
SLIDE 17 Smooth Orthogonal Layouts
Combine both worlds:
- edges leave and enter vertices horizontally or vertically
- each edge is drawn as a sequence of axis-aligned line
segments and circular-arc segments without bends
smooth orthogonal
SLIDE 18 Smooth Orthogonal Layouts
Combine both worlds:
- edges leave and enter vertices horizontally or vertically
- each edge is drawn as a sequence of axis-aligned line
segments and circular-arc segments without bends
- there are no edge-crossings (for planar graphs)
- rthogonal
smooth orthogonal
SLIDE 19 Edge Complexity
smooth orthogonal
SLIDE 20 Edge Complexity
smooth orthogonal complexity of an edge: number of arcs
SLIDE 21 Edge Complexity
smooth orthogonal complexity of an edge: number of arcs 2
SLIDE 22 Edge Complexity
smooth orthogonal complexity of an edge: number of arcs 2 2
SLIDE 23 Edge Complexity
smooth orthogonal complexity of an edge: number of arcs edge complexity: maximum complexity over all edges 2 2
SLIDE 24 Edge Complexity
smooth orthogonal complexity of an edge: number of arcs edge complexity: maximum complexity over all edges 2 2 1 2
SLIDE 25
Liu et al. Algorithm
biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 26 Liu et al. Algorithm
biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 27 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 28 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 29 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 30 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 31 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 32 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2 3
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 33 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2 3
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 34 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2 3
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 35 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2 3
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 36 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2 3
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 37 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2 3
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 38 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2 3
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← → biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 39 Liu et al. Algorithm
3
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
1 n 2
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← →
biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 40 Liu et al. Algorithm
- choose vertices s and t
- place vertices by their st-numbering
- Invariant:
When we fix an endpoint of edge e, we associate e with a column.
- Use ports in this order:
- ut:
↑ → ← in: ↓ ← →
3 1 n 2
biconnected 4 -planar graph → orthogonal complexity-3 layout
SLIDE 41 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
3 1 n 2 smooth
SLIDE 42 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ 3 1 n 2 smooth
SLIDE 43 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ 3 1 n 2 smooth
SLIDE 44 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → 3 1 n 2 smooth
SLIDE 45 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → 3 1 n 2 smooth
SLIDE 46 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → → 3 1 n 2 smooth
SLIDE 47 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → → 3 1 n 2 smooth
SLIDE 48 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → → → 3 1 n 2 smooth
SLIDE 49 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → → → 3 1 n 2 smooth
SLIDE 50 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → → → 3 1 n 2 → smooth
SLIDE 51 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → → → → 3 1 n 2 smooth
SLIDE 52 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → → → → → 3 1 n 2 smooth
SLIDE 53 SC2-Layouts
biconnected 4 -planar graph → orthogonal complexity-2 layout
→ → → → → → 3 1 n 2 smooth
SLIDE 54
Crossings
SLIDE 55
Crossings
SLIDE 56
Crossings
SLIDE 57
Crossings
SLIDE 58
Crossings
SLIDE 59
Crossings
SLIDE 60
Cut
Def.
SLIDE 62 Cut
Def.
- y-monotone curve
- consists of horizontal, vertical and circular segments
u u
SLIDE 63 Cut
Def.
- y-monotone curve
- consists of horizontal, vertical and circular segments
- divides the current drawing into a left and a right part
u u
SLIDE 64 Cut
Def.
- y-monotone curve
- consists of horizontal, vertical and circular segments
- divides the current drawing into a left and a right part
- intersects only horizontal segments
u u u
SLIDE 65 Cut
Def.
- y-monotone curve
- consists of horizontal, vertical and circular segments
- divides the current drawing into a left and a right part
- intersects only horizontal segments
u u u u
SLIDE 66 Cut
Def.
- y-monotone curve
- consists of horizontal, vertical and circular segments
- divides the current drawing into a left and a right part
- intersects only horizontal segments
u u u u u
SLIDE 67 Cut
Def.
- y-monotone curve
- consists of horizontal, vertical and circular segments
- divides the current drawing into a left and a right part
- intersects only horizontal segments
u u u u u
Problems:
SLIDE 68 Cut
Def.
- y-monotone curve
- consists of horizontal, vertical and circular segments
- divides the current drawing into a left and a right part
- intersects only horizontal segments
u u u u u
Problems:
SLIDE 69 Cut
Def.
- y-monotone curve
- consists of horizontal, vertical and circular segments
- divides the current drawing into a left and a right part
- intersects only horizontal segments
u u u u u
Problems:
SLIDE 70
Invariants
(I1) Every open edge is associated with a column
SLIDE 71
Invariants
(I1) An L-shape always contains a horizontal segment; it never contains a vertical segment. Every open edge is associated with a column (I2)
SLIDE 72
Invariants
(I1) An L-shape always contains a horizontal segment; it never contains a vertical segment. Every open edge is associated with a column (I2) (I3) A C-shape always has a horizontal segment incident to its bottom vertex.
SLIDE 73
Maintain invariants
L-shape
SLIDE 74
Maintain invariants
L-shape C-shape
SLIDE 75
Maintain invariants
L-shape C-shape Double C-shape
SLIDE 76
Maintain invariants
L-shape C-shape Double C-shape protected
SLIDE 77
Invariants, updated
(I1) An L-shape always contains a horizontal segment; it never contains a vertical segment. Every open edge is associated with a column (I2) (I3) An unprotected C-shape always has a horizontal segment incident to its bottom vertex.
SLIDE 78
Eliminate crossings
u v v u
SLIDE 79 Eliminate crossings
u v v u
SLIDE 80 Eliminate crossings
u v
v u
SLIDE 81 Eliminate crossings
u v
v u
SLIDE 82 Eliminate crossings
u v
v u
SLIDE 83 Eliminate crossings
u v
v u
- 2. find a cut
- 3. move vertices to the left
SLIDE 84 Eliminate crossings
u v
- 1. move v up
- 2. find a cut
- 3. move vertices to the left
v u
SLIDE 102
Extension to Arbitrary Graphs
SLIDE 103
Extension to Arbitrary Graphs
cutvertices
SLIDE 104
Extension to Arbitrary Graphs
bridges cutvertices
SLIDE 105
Extension to Arbitrary Graphs
bridges cutvertices
SLIDE 106
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face cutvertices
SLIDE 107
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices
SLIDE 108
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices
SLIDE 109
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices
SLIDE 110
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices
SLIDE 111
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices
SLIDE 112
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices
SLIDE 113
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices Connect the pieces
SLIDE 114
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices Connect the pieces
SLIDE 115
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices Connect the pieces
SLIDE 116
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices Connect the pieces
SLIDE 117
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices Connect the pieces
SLIDE 118
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices Connect the pieces
SLIDE 119
Extension to Arbitrary Graphs
bridges Draw specific vertex on outer face Draw cut vertices with right angles cutvertices Connect the pieces 4-planar graph → smooth orthogonal complexity-2 layout
SLIDE 120
SC1-Layouts
SLIDE 121
SC1-Layouts
Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 122
SC1-Layouts
Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 123
SC1-Layouts
Consider the dual tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 124
SC1-Layouts
Consider the dual tree Pick a root, traverse the tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 125
SC1-Layouts
Consider the dual tree Pick a root, traverse the tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 126
SC1-Layouts
Consider the dual tree Pick a root, traverse the tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 127
SC1-Layouts
Consider the dual tree Pick a root, traverse the tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 128
SC1-Layouts
Consider the dual tree Pick a root, traverse the tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 129
SC1-Layouts
Consider the dual tree Pick a root, traverse the tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 130
SC1-Layouts
Consider the dual tree Pick a root, traverse the tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 131
SC1-Layouts
Consider the dual tree Pick a root, traverse the tree Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 132
SC1-Layouts
Any triconnected 3-planar graph admits an SC1-layout. Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 133
SC1-Layouts
Any Hamiltonian 3-planar graph admits an SC1-layout. Any triconnected 3-planar graph admits an SC1-layout. Any biconnected 4-outerplanar graph admits an SC1-layout.
SLIDE 134
Area Requirement of SC1-Layouts
There is an infinite class of graphs that require exponential area if they are drawn with SC1.
SLIDE 135
Area Requirement of SC1-Layouts
There is an infinite class of graphs that require exponential area if they are drawn with SC1.
SLIDE 136
Area Requirement of SC1-Layouts
There is an infinite class of graphs that require exponential area if they are drawn with SC1.
SLIDE 137
Area Requirement of SC1-Layouts
There is an infinite class of graphs that require exponential area if they are drawn with SC1.
SLIDE 138
Area Requirement of SC1-Layouts
There is an infinite class of graphs that require exponential area if they are drawn with SC1.
SLIDE 139
Biconnected Graphs without SC1-Layout
There exists a biconnected 4-planar graph that admits an OC2-layout, but does not admit an SC1-layout.
SLIDE 140
Biconnected Graphs without SC1-Layout
There exists a biconnected 4-planar graph that admits an OC2-layout, but does not admit an SC1-layout.
SLIDE 141
Biconnected Graphs without SC1-Layout
There exists a biconnected 4-planar graph that admits an OC2-layout, but does not admit an SC1-layout.
SLIDE 142 Open Problems
- Do all 4-planar graphs admit an SC2-layout
in polynomial area?
SLIDE 143 Open Problems
- Do all 4-planar graphs admit an SC2-layout
in polynomial area?
- Do all 4-outerplanar graphs admit an SC1-layout?
SLIDE 144 Open Problems
- Do all 4-planar graphs admit an SC2-layout
in polynomial area?
- Do all 4-outerplanar graphs admit an SC1-layout?
- Do all 3-planar graphs admit an SC1-layout?
SLIDE 145 Open Problems
- Do all 4-planar graphs admit an SC2-layout
in polynomial area?
- Do all 4-outerplanar graphs admit an SC1-layout?
- Do all 3-planar graphs admit an SC1-layout?
- Is it NP-hard to decide whether a 4-planar graph
admits an SC1-layout?