Untangling and Unwinding Curves Dagstuhl Workshop on Computational Geometry April 27, 2017 Jeff Erickson University of Illinois at Urbana-Champaign Joint work with Hsien-Chih Chang Portions appeared at SOCG 2016
http://a.carapetis.com/csf/
Elephant , Mick Burton (1966)
Homotopy moves 1 → 0 2 → 0 3 → 3 Any closed curve in the plane can be simplified using a finite sequence of homotopy moves. [Steinitz 1916, Alexander 1926, Alexander Briggs 1927, Reidemeister 1927]
Old results ‣ Let n = number of self-intersection points, or vertices. ‣ O( n 2 ) homotopy moves are always sufficient. [ Steinitz 1916 ; Grünbaum 1967; Francis 1971; Feo 1985; Truemper 1989; Vegter 1989; Feo Provan 1993 ; Hass and Scott 1994; Nowik 2000; …] ‣ Ω( n ) homotopy moves are always necessary. [trivial]
New results [Cheng E, SOCG 2016] ‣ Simplifying a closed curve in the plane with n vertices requires Θ( n 3/2 ) homotopy moves in the worst case. ▹ Upper bound via new algorithm ▹ Lower bound via classical curve invariant
Curves on surfaces 1 → 0 2 → 0 3 → 3 Any closed curve in any surface can be simplified (as much as possible) using a finite sequence of homotopy moves that never increases the number of vertices . [Grayson 1989, Angenent 1988, Angenent 1991, Hass Scott 1994, de Graaf Schrijver 1997, Paterson 2002]
Old: Curves on surfaces ‣ O( n 2 ) homotopy moves suffice if the simplified curve is actually simple. [Steinitz 1916; Hass Scott 1994] ‣ Trivial exponential upper bound for arbitrary curves. ‣ Ω( n ) homotopy moves are always necessary. [trivial] ‣ Ω( n 3/2 ) homotopy moves are sometimes necessary. [inherited from planar results]
New: Curves on surfaces ‣ Simplifying a contractible closed curve in the annulus requires Ω( n 2 ) homotopy moves in the worst case. ▹ Matches known upper bound [Steinitz 1916; Hass and Scott 1994] ▹ Lower bound via new curve invariant ‣ Any closed curve on any orientable surface can be simplified (as much as possible) using at most O( n 3 ) homotopy moves. ▹ No dependence on the genus of the surface ▹ New algorithm still in development (Dagstuhl 17072)
Old Algorithms
Minimal bigons [Steinitz 1916] Every 4-regular plane graph contains either an empty loop or a minimal bigon . bigon minimal bigon
Minimal bigons [Steinitz 1916] Every non-empty minimal bigon contains at least two triangular faces (one adjacent to each side).
Minimal bigons [Steinitz 1916] Every non-empty minimal bigon contains at least two triangular faces (one adjacent to each side). So we can reduce any minimal bigon to an empty bigon using 3 → 3 moves
Steinitz’s algorithm [Steinitz 1916] ‣ While there are vertices ▹ If there is an empty loop, remove it with a 1 → 0 move ▹ Otherwise, empty any minimal bigon with 3 → 3 moves, and then remove it with a 2 → 0 move ‣ O( n ) moves per bigon = O( n 2 ) moves ‣ Works for simplifiable curves in any orientable surface. [Hass Scott 1994]
Positive 3 → 3 moves [Feo Provan 1993] If there are no empty loops or empty bigons, then some 3 → 3 move decreases the sum of face depths . 1 1 1 1 1 1 2 2 2 2 2 3 3 2 2 3 2 2 3 3 1 1 1 1 3 4 4 3 3 3 3 3 2 2 4 4 3 3 2 2 3 3 2 2 2 2 3 2 3 2 1 1 1 1 1 1 2 2 0 0 1 1
Feo and Provan’s algorithm [Feo Provan 1993] ‣ While there are vertices ▹ If there is an empty loop, perform a 1 → 0 move ▹ Else if there is any empty bigon, perform a 2 → 0 move ▹ Else perform any positive 3 → 3 move ‣ O( Φ ) = O( n 2 ) moves, where potential Φ = sum of face depths
New planar algorithm [Cheng E, SOCG 2016]
Shrinking loops Any loop can be removed using at most 3 A homotopy moves, where A is the number of interior faces.
Shrinking loops Any loop can be removed using at most 3 A homotopy moves, where A is the number of interior faces. ▹ If the loop contains any vertices, we can remove one vertex with a 0 → 2 move followed by a 3 → 3 move. y z ▹ If the loop bounds any empty bigons, we can remove one edge (and one empty bigon face) with a 2 → 0 move.
Shrinking loops Any loop can be removed using at most 3 A homotopy moves, where A is the number of interior faces. 1 1 1 0 1 1 2 1 2 1 3 1 2 3 2 2 2 1 3 2 1 1 1 0 4 2 3 3 3 1 3 2 2 4 2 3 3 2 2 1 3 3 2 2 2 2 3 3 2 2 1 1 1 1 1 1 2 2 0 0 1 1 Contracting a loop decreases the potential by at least A .
New Algorithm ‣ While there are vertices, shrink any loop. ‣ O( Φ ) = O( n 2 ) moves, where Φ = potential 1 1 1 0 1 1 2 1 2 1 3 1 2 3 2 2 2 1 3 2 1 1 1 0 4 2 3 3 3 1 3 2 2 4 2 3 3 2 2 1 3 3 2 2 2 2 3 3 2 2 1 1 1 1 1 1 2 2 0 0 1 1
Tangle ‣ Intersection of curve with a generic closed disk ‣ Boundary-to-boundary paths called strands ‣ Face depths and potential defined exactly as for curves. 1 2 2 1 2 3 3 1 2 1 3 2 3 2 3 3 4 4 4 1 3 3 2 3 1 2 3 2 2 2 1 1
Tightening tangles Any tangle can be tightened in O( md + ms ) moves, where m = #vertices, d = max face depth, and s = #strands ‣ First remove all loops in O( Φ ) = O( md ) moves. ‣ Then straighten all strands in O( ms ) moves.
Useful tangles A tangle is useful if d = O( m 1/2 ) and s ≤ m 1/2 ▹ Can be tightened using O( md + ms ) = O( m 3/2 ) moves ▹ Tightening removes at least half the interior vertices ▹ Always exists (and can be found quickly).
Our algorithm ‣ While there are vertices, tighten any useful tangle. ‣ Analysis: ▹ Tightening a useful tangle with m vertices takes O( m 3/2 ) moves. ▹ Charge O( m 1/2 )=O( n 1/2 ) moves to each deleted vertex ▹ So removing all n vertices takes O( n 3/2 ) moves.
Planar lower bound We use a classical curve invariant called defect : [Aicardi 94, Arnold 94, Polyak 98] ▹ Defect of every simple curve is 0, and each homotopy move changes defect by at most 2. ▹ So simplifying γ requires ≥| defect ( γ )/2| homotopy moves. ▹ Flat torus knots T ( p , p +1) and T ( q –1, q ) have defect ±Θ( n 3/2 ) . T (7,8) T (8,7)
Higher-genus lower bound [Cheng E, unpublished]
Higher-genus lower bound ‣ On any surface with genus>0, simplifying a contractible curve requires Ω( n 2 ) homotopy moves in the worst case. ‣ It’s convenient to work in the punctured plane R 2 \{ o } , where o is an arbitrary point called the origin . ‣ Homotopy moves around o are forbidden.
Our bad curve
Winding number ‣ wind ( γ , p ) = number of times γ winds ccw around p ‣ For points p not on γ , given by Alexander numbering : [Meister 1770, Gauss c.1830, Möbius 1863, Alexander 1928] ‣ For vertices, average the winding numbers of all four incident faces ‣ A curve γ in the punctured plane is contractible iff wind ( γ , o ) = 0.
Vertex types ‣ Consider any contractible curve γ in the punctured plane. ‣ Smoothing γ at any vertex x yields two curves γ x + and γ x – . γ + x x γ − x ‣ Define type ( x ) := wind ( γ x + , o ) = – wind ( γ x – , o ) ‣ Vertices x and z are complementary if type ( x )+ type ( z ) = 0
2 0 0 1 1 0 0 –1 0 0 –1 0 –1 0 –1 0 Winding #s Types
Our bad curve again Types x i –6 –5 –4 –3 –2 –1 y i 1 3 5 7 9 11 1 2 3 4 5 6 a i x ʹ 2 4 6 8 10 12 –6 –5 –4 –3 –2 –1 i z i –12 –11 –10 –9 –8 –7 1 2 3 4 5 6 7 8 9 10 11 12 12 11 10 9 8 7 6 5 4 3 2 1 Winding #s
Winding Lemma ‣ 1 → 0 and 2 → 0 moves do not change vertex winding numbers. ‣ Each 3 → 3 move changes the winding numbers of three vertices, each by exactly 1. ‣ Every 2 → 0 move deletes vertices with equal winding numbers. 1 → 0 2 → 0 3 → 3
Type Lemma ‣ No homotopy move changes the type of any vertex. ‣ Every 1 → 0 move deletes a vertex of type 0. ‣ Every 2 → 0 move deletes two complementary vertices. γ + x z x z x γ − z γ + γ − x z x z x z
Traces ‣ Fix a homotopy that contracts curve γ ‣ Every vertex x of γ defines a path through the homotopy. ▹ Follow x forward through the homotopy to 2 → 0 move that deletes x and some complementary vertex x 1 . ▹ Follow x 1 backward to 0 → 2 move creating x 1 and x 2 . ▹ Follow x 2 forward to 2 → 0 move deleting x 2 and x 3 , and so on. ▹ We eventually reach vertex x 2 k –1 of the original curve γ. ‣ These traces define a matching between complementary vertices of γ .
Winding distance ‣ Any trace between complementary vertices x and z passes through at least | wind ( γ , x ) – wind ( γ , z ) | 3 → 3 moves. ‣ At most 3 traces pass through each 3 → 3 move. ‣ So the total number of 3 → 3 moves is at least Σ x~y | wind ( γ , x ) – wind ( γ , z ) | /3.
Lower bound Type Winding # x i –6 –5 –4 –3 –2 –1 y i 1 3 5 7 9 11 1 2 3 4 5 6 a i x ʹ 2 4 6 8 10 12 –6 –5 –4 –3 –2 –1 i z i –12 –11 –10 –9 –8 –7 1 2 3 4 5 6 7 8 9 10 11 12 12 11 10 9 8 7 6 5 4 3 2 1 ‣ For our bad curve, the vertex matching is essentially unique, and its total winding distance is Ω( n 2 )
http://a.carapetis.com/csf/
Recommend
More recommend