Untangling and Unwinding Curves Dagstuhl Workshop on Computational - - PowerPoint PPT Presentation
Untangling and Unwinding Curves Dagstuhl Workshop on Computational - - PowerPoint PPT Presentation
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/
http://a.carapetis.com/csf/
Elephant, Mick Burton (1966)
Homotopy moves
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]
1→0 2→0 3→3
Old results
- Let n = number of self-intersection points, or vertices.
- O(n2) 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
- Simplifying a closed curve in the plane with n vertices
requires Θ(n3/2) homotopy moves in the worst case.
▹ Upper bound via new algorithm ▹ Lower bound via classical curve invariant
[Cheng E, SOCG 2016]
Curves on surfaces
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]
1→0 2→0 3→3
Old: Curves on surfaces
- O(n2) 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]
- Ω(n3/2) homotopy moves are sometimes necessary.
[inherited from planar results]
New: Curves on surfaces
- Simplifying a contractible closed curve in the annulus
requires Ω(n2) 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(n3) homotopy moves.
▹ No dependence on the genus of the surface ▹ New algorithm still in development (Dagstuhl 17072)
Old Algorithms
Minimal bigons
Every 4-regular plane graph contains either an empty loop or a minimal bigon.
[Steinitz 1916] bigon minimal bigon
Minimal bigons
Every non-empty minimal bigon contains at least two triangular faces (one adjacent to each side).
[Steinitz 1916]
Minimal bigons
Every non-empty minimal bigon contains at least two triangular faces (one adjacent to each side).
[Steinitz 1916]
So we can reduce any minimal bigon to an empty bigon using 3→3 moves
Steinitz’s algorithm
- 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(n2) moves
- Works for simplifiable curves in any orientable surface.
[Hass Scott 1994] [Steinitz 1916]
Positive 3→3 moves
If there are no empty loops or empty bigons, then some 3→3 move decreases the sum of face depths.
[Feo Provan 1993]
1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 3 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 3 2
Feo and Provan’s algorithm
- 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(n2) moves,
where potential Φ = sum of face depths
[Feo Provan 1993]
New planar algorithm
[Cheng E, SOCG 2016]
Any loop can be removed using at most 3A homotopy moves, where A is the number of interior faces.
Shrinking loops
Shrinking loops
Any loop can be removed using at most 3A 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. ▹ If the loop bounds any empty bigons, we can remove one edge (and one empty bigon face) with a 2→0 move.
y z
Shrinking loops
Any loop can be removed using at most 3A homotopy moves, where A is the number of interior faces.
1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 3 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 3 3 2 1 3 2 3
Contracting a loop decreases the potential by at least A.
New Algorithm
- While there are vertices, shrink any loop.
- O(Φ) = O(n2) moves, where Φ = potential
1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 3 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 1 3 3 2 1 3 2 3
- Intersection of curve with a generic closed disk
- Boundary-to-boundary paths called strands
- Face depths and potential defined exactly as for curves.
Tangle
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4
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(m1/2) and s ≤ m1/2
▹ Can be tightened using O(md + ms) = O(m3/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(m3/2) moves. ▹ Charge O(m1/2)=O(n1/2) moves to each deleted vertex ▹ So removing all n vertices takes O(n3/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 ±Θ(n3/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 Ω(n2) homotopy moves in the worst case.
- It’s convenient to work in the punctured plane R2\{o},
where o is an arbitrary point called the origin.
- Homotopy moves around o are forbidden.
Our bad curve
- 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.
Winding number
Vertex types
- Consider any contractible curve γ in the punctured plane.
- Smoothing γ at any vertex x yields two curves γx
+ and γx –.
- Define type(x) := wind(γx
+, o) = –wind(γx –, o)
- Vertices x and z are complementary if type(x)+type(z) = 0
x
γ+
x
γ−
x
1 2 –1 –1 –1
Winding #s
1 –1
Types
Our bad curve again
1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 –1 –2 –3 –4 –5 –6 –7 –8 –9 –10 –11 –12 6 5 4 3 2 1 11 9 7 5 3 1 12 10 8 6 4 2 –1 –2 –3 –4 –5 –6
xi yi xʹ
i
zi ai
Types 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 z z
γ+
x
γ+
x
x x
γ−
z
γ−
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 x1. ▹ Follow x1 backward to 0→2 move creating x1 and x2. ▹ Follow x2 forward to 2→0 move deleting x2 and x3, and so on. ▹ We eventually reach vertex x2k–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
- For our bad curve, the vertex matching is essentially
unique, and its total winding distance is Ω(n2)
1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 –1 –2 –3 –4 –5 –6 –7 –8 –9 –10 –11 –12 6 5 4 3 2 1 11 9 7 5 3 1 12 10 8 6 4 2 –1 –2 –3 –4 –5 –6
xi yi xʹ
i
zi ai