12.07.2014 Views

Schnyder woods for higher genus triangulated surfaces with ...

Schnyder woods for higher genus triangulated surfaces with ...

Schnyder woods for higher genus triangulated surfaces with ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

7 <strong>Schnyder</strong> <strong>woods</strong> <strong>for</strong> <strong>higher</strong> <strong>genus</strong> <strong>triangulated</strong> <strong>surfaces</strong><br />

(planar case)<br />

w<br />

C<br />

C<br />

S out<br />

invariants<br />

S out<br />

conquer(w)+<br />

colororient(w)<br />

Figure 5: These pictures show the result of a colorient operation in the planar case.<br />

an edge. Cutting S out along e consists in splitting into two<br />

smaller <strong>surfaces</strong> S 1 and S 2 , each of which is partitioned into<br />

a conquered area and a not conquered area. Assume w.l.o.g.<br />

that S 1 is the area whose boundary (between conquered and<br />

not conquered) does not contain the base-edge; and now define<br />

e as the base-edge of that boundary. Any free vertex v<br />

<strong>for</strong> S 1 is also a free vertex <strong>for</strong> S (indeed by definition v is<br />

not incident to any chord <strong>for</strong> S 1 nor is it an extremity of e;<br />

hence v is not incident to any chord of S). There<strong>for</strong>e, as S<br />

has no free vertex, S 1 has neither a free vertex. Now observe<br />

that a non-contractible non-separating cycle <strong>for</strong> S 1 is also<br />

non-contractible and non-separating <strong>for</strong> S. Hence there can<br />

not be any candidate <strong>for</strong> a merge or split in S 1 (since there is<br />

no such candidate in S). We have thus reached a contradiction,<br />

as S 1 has fewer faces than S in its not conquered area<br />

(because of the minimality of S).<br />

<br />

Lemma 9 For any <strong>triangulated</strong> surface S of<br />

<strong>genus</strong> g having n vertices, the procedure<br />

COMPUTESCHNYDERANYGENUS(S) can be implemented<br />

to run in O(n) time.<br />

Proof : Implementing the algorithm to run in linear time requires<br />

some bookkeeping. For this purpose, we maintain the<br />

list of chordal edges <strong>for</strong> ∂S in , and, which is more difficult,<br />

we maintain a classification of these chordal edges as contractible,<br />

non-contractible separating, split edges, and merge<br />

edge. Such a classification is done by maintaining a spanning<br />

cut-graph G c <strong>for</strong> the dual of S out , such that G c contains the<br />

dual of all chordal edges; and by maintaining a depth-firstsearch<br />

spanning tree of G c so as to test which edges of G c<br />

disconnect G c . All this bookkeeping can be done in amortized<br />

linear cost, as detailed below. Firstly, consider a special<br />

vertex spanning tree T p of S out , including the boundary<br />

∂S in in the following way (blue edges in Fig. 8). For<br />

each boundary component C i of ∂S in choose a boundary<br />

edge (x i 0,x i 1) (where <strong>for</strong> the first component we take the<br />

root edge (v 0 ,v 1 )) and add all the edges in ∂S in \ C i to the<br />

set T p (which initially consists of a set of disjoints paths).<br />

Then per<strong>for</strong>m a depth-first traversal S out starting from v 0 ,<br />

that computes a spanning tree of the primal graph of S out :<br />

add its edges to T p . Note that by construction chordal edges<br />

do not appear in T p , as each extremity already lies to the<br />

paths added in the first step. Now consider the dual map G c<br />

(red edges in Fig. 8) of T p , which is a sub-map of the dual<br />

graph of S out , defined in the following manner: its nodes<br />

correspond to the faces of S out , while its arcs are exactly<br />

the dual of that edges not appearing in T p . If we denote by<br />

g ′ the <strong>genus</strong> of S out , then G c is a map of <strong>genus</strong> g ′ , having<br />

only one face. We firstly simplify this structure, by recursively<br />

eliminating all degree one nodes (vertices which are<br />

leaves at some step of this decimating procedure). Note that<br />

this trans<strong>for</strong>mation does not affect the topology of the resulting<br />

map obtained by G c , which has still <strong>genus</strong> g ′ and<br />

one face, thus containing 2g ′ non trivial cycles. Observe that<br />

each chordal edge has a corresponding dual arc in G c . We<br />

now compute a vertex spanning tree of such map, which will<br />

contain ‖G c ‖−2g ′ arcs (as it cannot contain any cycle, by<br />

construction). Note that the cycle contained in map G c must<br />

be non-trivial (non-contractible and non-separating). For example,<br />

the existence of a contractible cycle would imply the<br />

existence of a vertex v which would not appear in T p (which<br />

by construction is a spanning tree of all the vertices of S out ).<br />

On the other hand, the existence of a non-contractible but<br />

Preprint MAT. 18/08, communicated on September 1 st , 2008 to the Department of Mathematics, Pontifícia Universidade Católica — Rio de Janeiro, Brazil.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!