Canonical Ordering for Triangulations on the - LIX

Canonical Ordering for Triangulations
on the Cylinder, with Applications to
Periodic Straight-line Drawings
Luca Castelli Aleardi, Olivier Devillers and Éric Fusy
LIX, École Polytechnique, Palaiseau, France
GD’12, Redmond
Planar straight-line drawings
⇒
[Wagner’36]
[Fary’48]
[Stein’51]
Planar straight-line drawings
⇒
[Wagner’36]
[Fary’48]
[Stein’51]
Classical algorithms:
[Tutte’63]
spring-embedding
[De Fraysseix,Pach,Pollack’88]
“FPP algo” incremental
[Schnyder’90]
face-counting principle
Periodic straight-line drawings
On the cylinder (⇔ annulus)
⇒
lifts to x-periodic drawing
Periodic straight-line drawings
On the (flat) torus
⇒
m
[Kocay et al’01]
[Gortler et al’06]
[Gonçalves-Lévêque’12]
Grid O(n2 × n2 )
lifts to
x-periodic &
y-periodic
drawing
Overview
1. Recall FPP algorithm 2. Extend to the cylinder 3. Get toroidal drawings
[Castelli,Devillers,F’12]
Cylinder
Plane
Torus
⇓
⇓
Grid (2n−4) × (n−2)
Overview
1. Recall FPP algorithm 2. Extend to the cylinder 3. Get toroidal drawings
[Castelli,Devillers,F’12]
Cylinder
Plane
Torus
⇓
c=3
⇓
d=2
Grid (2n−4) × (n−2) Grid ≤ 2n × n(2d + 1) Grid≤ 2n×(1+n(2c+1))
Canonical ordering for planar triangulations
T a planar triangulation with marked bottom-edge e
Canonical ordering = shelling order (from top to bottom)
At each step:
T \e has 7 vertices
⇓
e
Canonical ordering for planar triangulations
T a planar triangulation with marked bottom-edge e
Canonical ordering = shelling order (from top to bottom)
7
At each step:
T \e has 7 vertices
⇓
e
Canonical ordering for planar triangulations
T a planar triangulation with marked bottom-edge e
Canonical ordering = shelling order (from top to bottom)
7
At each step:
T \e has 7 vertices
⇓
6
e
Canonical ordering for planar triangulations
T a planar triangulation with marked bottom-edge e
Canonical ordering = shelling order (from top to bottom)
7
At each step:
T \e has 7 vertices
5
6
e
⇓
Canonical ordering for planar triangulations
T a planar triangulation with marked bottom-edge e
Canonical ordering = shelling order (from top to bottom)
7
At each step:
T \e has 7 vertices
5
6
4
e
⇓
Canonical ordering for planar triangulations
T a planar triangulation with marked bottom-edge e
Canonical ordering = shelling order (from top to bottom)
7
At each step:
T \e has 7 vertices
5
6
3
4
e
⇓
Canonical ordering for planar triangulations
T a planar triangulation with marked bottom-edge e
Canonical ordering = shelling order (from top to bottom)
7
At each step:
T \e has 7 vertices
5
6
3
4
2
e
⇓
Canonical ordering for planar triangulations
T a planar triangulation with marked bottom-edge e
Canonical ordering = shelling order (from top to bottom)
7
At each step:
T \e has 7 vertices
5
6
⇓
3
4
2
e
1
Canonical ordering: primal tree & dual tree
primal tree: parent of each vertex v = neighbour of v of largest label
7
5
6
3
4
2
e
1
Canonical ordering: primal tree & dual tree
primal tree: parent of each vertex v = neighbour of v of largest label
dual tree: dual of primal tree (augmented with two outer edges)
Canonical ordering: successive induced graphs
7
5
6
G4
4
4
3
3
2
e
1
2
1
e
Notation: Gk is the graph formed by e and {1, . . . , k}
Canonical ordering: successive induced graphs
7
5
6
G4
4
4
3
3
2
e
1
2
1
e
Notation: Gk is the graph formed by e and {1, . . . , k}
Canonical ordering: successive induced graphs
7
5
5
6
G45
4
4
3
3
2
e
1
2
1
e
Notation: Gk is the graph formed by e and {1, . . . , k}
Incremental drawing algorithm
[de Fraysseix, Pollack, Pach’89]
Gk−1
v`
vr
Incremental drawing algorithm
[de Fraysseix, Pollack, Pach’89]
Gk−1
v`
vr
shift by +1
shift by −1
v`
vr
Incremental drawing algorithm
[de Fraysseix, Pollack, Pach’89]
Gk−1
v`
vr
k
Gk
shift by +1
shift by −1
v`
vr
Incremental drawing algorithm
[de Fraysseix, Pollack, Pach’89]
Gk−1
v`
vr
k
Gk
shift by +1
shift by −1
v`
vr
Incremental drawing algorithm
[de Fraysseix, Pollack, Pach’89]
1.
7
2.
3.
5
6
4
4.
3
2
5.
6.
Grid size of Gk : 2k × k
7.
1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Reformulation of the shift-step
At each step: insert two vertical strips of width 1 using the dual tree
Gk−1
Gk
Extension to the cylinder: canonical ordering
annular representation
At each step:
vk
Extension to the cylinder: canonical ordering
annular representation
At each step:
vk
7
Extension to the cylinder: canonical ordering
annular representation
At each step:
vk
7
6
Extension to the cylinder: canonical ordering
annular representation
At each step:
vk
7
5
6
Extension to the cylinder: canonical ordering
annular representation
At each step:
7
5
6
4
vk
Extension to the cylinder: canonical ordering
annular representation
At each step:
7
5
6
4 3
vk
Extension to the cylinder: canonical ordering
annular representation
At each step:
2
7
5
6
4 3
vk
Extension to the cylinder: canonical ordering
annular representation
At each step:
2
7
5
4 3
vk
6
1
Terminates if no chordal edge incident to bottom cycle
Extension to the cylinder: canonical ordering
annular representation
At each step:
vk
Underlying forest
Extension to the cylinder: canonical ordering
annular representation
At each step:
vk
Underlying forest + dual forest
Extension to the cylinder: drawing algorithm
Gk−1
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Extension to the cylinder: drawing algorithm
Gk−1
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Extension to the cylinder: drawing algorithm
Gk−1
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Extension to the cylinder: drawing algorithm
Gk−1
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Extension to the cylinder: drawing algorithm
Gk−1
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Extension to the cylinder: drawing algorithm
Gk−1
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Extension to the cylinder: drawing algorithm
Gk−1
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Extension to the cylinder: drawing algorithm
Gk−1
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Extension to the cylinder: drawing algorithm
Gk−1
Gk
At each step: - insert two vertical strips of width 1
- insert next vertex as in the planar case
Execution on an example
2
7
5
6
1
4 3
Execution on an example
2
7
55
6
1
4 3
Execution on an example
2
7
5
6
1
4 3
1
Execution on an example
2
7
5
6
1
4 3
1
Execution on an example
2
7
5
6
1
4 3
1
Execution on an example
2
7
5
6
1
4 3
2
1
Execution on an example
2
7
5
6
1
4 3
2
1
Execution on an example
2
7
5
6
1
4 3
2
1
Execution on an example
3
2
7
5
4
3
2
1
6
1
Execution on an example
3
2
7
5
4
3
2
1
6
1
Execution on an example
2
7
5
4
3
3
2
1
6
1
Execution on an example
4
2
7
5
4
3
3
2
1
6
1
Execution on an example
4
2
7
5
4
3
3
2
1
6
1
Execution on an example
4
2
7
5
4
3
3
2
1
6
1
Execution on an example
5
4
4 3
2
7
5
3
2
1
6
1
Execution on an example
4
4 3
2
7
3
5
2
6
1
5
1
Execution on an example
5
4
3
4 3
2
7
5
2
6
1
1
Execution on an example
6
2
7
5
4
4
3
3
2
6
1
5
1
Execution on an example
2
7
5
4
3
6
4 5
3
6
2
1
1
Execution on an example
2
7
5
4
3
6
5
4
3
6
2
1
1
Execution on an example
7
2
7
5
6
4
3
6
4
5
3
2
1
1
Execution on an example
7
2
7
5
6
4
3
6
4
5
3
2
1
1
Grid size: w = 2n
Each edge has vertical extension at most w
⇒ h ≤ n(2d + 1)
with d the graph-distance between the two boundaries
Execution on an example
7
2
7
5
6
4
3
4
5
6
d=2
3
2
1
1
Grid size: w = 2n
Each edge has vertical extension at most w
⇒ h ≤ n(2d + 1)
with d the graph-distance between the two boundaries
Dealing with chordal edges at outer cycle
initial spacing
a b c
d
⇓ algo
a
b
c
d
a
b
c
d
Dealing with chordal edges at outer cycle
initial spacing
a b c
d
⇓ algo
a
b
c
d
a
b
c
d
Toroidal triangulations & tambourine
Every toroidal triangulation admits a “tambourine”
[Bonichon, Gavoille, Labourel0 06]
Torus
Cylinder
a b ce d a
ab c
e
d a
Getting a drawing on the (flat) torus
compute
tambourine
a b ce d a
delete edges
in tambourine
ab c
Torus
a
b c
e
drawing algo.
on cylinder
d
resinsert edges
in tambourine
a
b c
d
a
bc e d
e
d a
Cylinder
Getting a drawing on the (flat) torus
compute
tambourine
a b ce d a
delete edges
in tambourine
ab c
Torus
a
b c
e
drawing algo.
on cylinder
d
resinsert edges
in tambourine
b c
d
Cylinder
w ≤ 2n
h ≤ n(2d+1)
∆h ≤ 2n + 1
a
e
d a
d=2
a
bc e d
Getting a drawing on the (flat) torus
compute
tambourine
a b ce d a
delete edges
in tambourine
ab c
Torus
a
b c
e
drawing algo.
on cylinder
d
resinsert edges
in tambourine
a
b c
d
Cylinder
w ≤ 2n
h ≤ n(2d+1)
∆h ≤ 2n + 1
c=3
e
d a
d=2
a
b√c e d
Let c =length shortest non-contractible cycle, c ≤ 2n [Hutchinson,
Albert’78]
Can choose tambourine so that d < c ⇒ h = O(n3/2 )
Extensions and perspectives
• Extension to 3-connected maps on cylinder & torus
(cf Kant’s extension of the FPP algorithm in the planar case)
weakly convex periodic
straight-line drawing
Extensions and perspectives
• Extension to 3-connected maps on cylinder & torus
(cf Kant’s extension of the FPP algorithm in the planar case)
weakly convex periodic
straight-line drawing
• Extension of our method to higher genus ?
Polygonal scheme
Universal cover
Wikipedia pictures
g=2
[Duncan, Goodrich, Kobourov’99]
[Chambers, Eppstein, Goodrich, Löffler’00]
drawing in polynomial area
[Mohar’99]
periodic drawing
out of circle packing