Progressive Simplification of Polygonal Curves Kevin Buchin Maximilian Konzack Wim Reddingius
Curve Simplification
Curve Simplification min-# Simplification problem: • Given a polygonal curve C and an ε > 0 as an error threshold • Objective: minimize the number of vertices in a simplification S
Curve Simplification min-# Simplification problem: • Given a polygonal curve C and an ε > 0 as an error threshold • Objective: minimize the number of vertices in a simplification S
Curve Simplification min-# Simplification problem: • Given a polygonal curve C and an ε > 0 as an error threshold ε
Curve Simplification Upper bound [Chan and Chin, 1996] A min-# simplification can be computed in O ( n 2 ) time in R 2 Higher dimensions [Barequet et al., 2002] For the L 1 or L ∞ metric, a min-# simplification can be computed in O ( n 2 ) time
Progressive Simplification S 1
Progressive Simplification S 1 Zoom out
Progressive Simplification S 2 S 1 Zoom out
Progressive Simplification S 3 S 2 S 1 Zoom out
Progressive Simplification S 4 S 3 S 2 S 1 Zoom out
Progressive Simplification Zoom in S 4 S 3 S 2 S 1 Zoom out
Progressive Simplification Zoom in S 4 S 3 S 2 S 1 Zoom out Impose Consistency Across Many Scales • Zoom in and out without flickering • A sequence of m scales: 0 < ε 1 < · · · < ε m • Require monotonicity : S m ⊑ S m − 1 ⊑ · · · ⊑ C • Minimize � m k =1 |S k | ( optimality )
Results • An O ( n 3 m ) time algorithm for the progressive simplification problem • works with various distance measures such as Hausdorff, Fr´ echet and area-based distances • enables simplification for continuous scaling in O ( n 5 ) time S 2 ⊑ S 1 ⊑ C
Shortcut Graph Shortcut: • Given a polygonal curve C , a shortcut ( p i , p j ) is an ordered pair of vertices p 4 ε Validity: • Given C and an ε > 0, ( p i , p j ) is valid if ε ( p i , p j ) ≤ ε p 1
Shortcut Graph C
Shortcut Graph • Given a curve C and an ε > 0, the shortcut graph G ( C , ε ) captures all valid shortcuts C G ( C , ε )
Shortcut Graph • Given a curve C and an ε > 0, the shortcut graph G ( C , ε ) captures all valid shortcuts C G ( C , ε ) S • Minimum-link path in G ( C , ε ) is an optimal simplification S
Minimal Progressive Simplification Dynamic Programming • Assign a cost value c k i , j ∈ N for each shortcut ( p i , p j ) ∈ G ( C , ε k ) at scale ε k • c k i , j relates to the cost of including ( p i , p j ) in S k
Minimal Progressive Simplification Dynamic Programming • Assign a cost value c k i , j ∈ N for each shortcut ( p i , p j ) ∈ G ( C , ε k ) at scale ε k • c k i , j relates to the cost of including ( p i , p j ) in S k • Example: ε 1 < ε 2 < ε 3 G ( C , ε 1 ) 1 1 1 1 1 p n p 1 1 1
Minimal Progressive Simplification Dynamic Programming • Assign a cost value c k i , j ∈ N for each shortcut ( p i , p j ) ∈ G ( C , ε k ) at scale ε k • c k i , j relates to the cost of including ( p i , p j ) in S k • Example: ε 1 < ε 2 < ε 3 G ( C , ε 1 ) 1 1 1 1 1 p n p 1 1 1 S 1 1 1 1
Minimal Progressive Simplification Dynamic Programming • Assign a cost value c k i , j ∈ N for each shortcut ( p i , p j ) ∈ G ( C , ε k ) at scale ε k • c k i , j relates to the cost of including ( p i , p j ) in S k • Example: ε 1 < ε 2 < ε 3 ⊆ G ( C , ε 1 ) G ( C , ε 2 ) 3 4 1 1 1 1 1 p n p 1 1 1 S 1 1 1 1
Minimal Progressive Simplification Dynamic Programming • Assign a cost value c k i , j ∈ N for each shortcut ( p i , p j ) ∈ G ( C , ε k ) at scale ε k • c k i , j relates to the cost of including ( p i , p j ) in S k • Example: ε 1 < ε 2 < ε 3 ⊆ G ( C , ε 1 ) G ( C , ε 2 ) 3 4 1 1 1 1 1 2 2 2 2 2 p n p 1 1 1 2 2 S 1 1 1 1
Minimal Progressive Simplification Dynamic Programming • Assign a cost value c k i , j ∈ N for each shortcut ( p i , p j ) ∈ G ( C , ε k ) at scale ε k • c k i , j relates to the cost of including ( p i , p j ) in S k • Example: ε 1 < ε 2 < ε 3 ⊆ G ( C , ε 1 ) G ( C , ε 2 ) 3 4 1 1 1 1 1 2 2 2 2 2 p n p 1 1 1 2 2 ⊒ S 1 S 2 3 1 1 1 2
Minimal Progressive Simplification Dynamic Programming • Assign a cost value c k i , j ∈ N for each shortcut ( p i , p j ) ∈ G ( C , ε k ) at scale ε k • c k i , j relates to the cost of including ( p i , p j ) in S k • Example: ε 1 < ε 2 < ε 3 ⊆ ⊆ G ( C , ε 3 ) G ( C , ε 1 ) G ( C , ε 2 ) 4 3 4 5 1 1 1 1 1 2 2 2 2 3 3 3 3 3 2 p n p 1 1 1 3 2 2 3 6 ⊒ S 1 S 2 3 1 1 1 2
Minimal Progressive Simplification Dynamic Programming • Assign a cost value c k i , j ∈ N for each shortcut ( p i , p j ) ∈ G ( C , ε k ) at scale ε k • c k i , j relates to the cost of including ( p i , p j ) in S k • Example: ε 1 < ε 2 < ε 3 ⊆ ⊆ G ( C , ε 3 ) G ( C , ε 1 ) G ( C , ε 2 ) 4 3 4 5 1 1 1 1 1 2 2 2 2 3 3 3 3 3 2 p n p 1 1 1 3 2 2 3 6 ⊒ S 1 ⊒ S 2 S 3 3 1 1 1 2 6
Minimal Progressive Simplification Dynamic Program 1 if k = 1 c k i , j = � c k − 1 1 + min if 1 < k ≤ m x , y π ∈ � k − 1 i , j ( p x , p y ) ∈ π � k i , j denotes the set of all paths in G ( C , ε k ) from p i to p j
Minimal Progressive Simplification Dynamic Program 1 if k = 1 c k i , j = � c k − 1 1 + min if 1 < k ≤ m x , y π ∈ � k − 1 i , j ( p x , p y ) ∈ π � k i , j denotes the set of all paths in G ( C , ε k ) from p i to p j Algorithm Construct simplifications from S m down to S 1 1. Compute costs c k i , j at scale ε k 2. Compute shortest path P from p i to p j in G ( C , ε k ) for all ( p i , p j ) ∈ S k +1 3. Link P to obtain S k
Minimal Progressive Simplification Algorithm Running time Construct simplifications from S m down to S 1 m times 1. Compute costs c k i , j at scale ε k 2. Compute shortest path P from p i to p j in G ( C , ε k ) for all ( p i , p j ) ∈ S k +1 3. Link P to obtain S k
Minimal Progressive Simplification • Employ the algorithm by [Chan and Chin, 1996] • Runs in O ( n 2 ) time in the plane Algorithm Running time Construct simplifications from S m down to S 1 m times O ( n 2 ) 1. Compute costs c k i , j at scale ε k 2. Compute shortest path P from p i to p j in G ( C , ε k ) for all ( p i , p j ) ∈ S k +1 3. Link P to obtain S k
Minimal Progressive Simplification • Run Dijkstra’s algorithm on O ( n ) nodes of G ( C , ε k ) • Dijkstra’s algorithm runs in O ( n 2 ) time on G with integer weights Algorithm Running time Construct simplifications from S m down to S 1 m times O ( n 2 ) 1. Compute costs c k i , j at scale ε k 2. Compute shortest path P from p i to O ( n 3 ) p j in G ( C , ε k ) for all ( p i , p j ) ∈ S k +1 3. Link P to obtain S k
Minimal Progressive Simplification • Employ the algorithm by [Chan and Chin, 1996] Algorithm Running time Construct simplifications from S m down to S 1 m times O ( n 2 ) 1. Compute costs c k i , j at scale ε k 2. Compute shortest path P from p i to O ( n 3 ) O ( n 3 ) p j in G ( C , ε k ) for all ( p i , p j ) ∈ S k +1 3. Link P to obtain S k O ( n )
Minimal Progressive Simplification Total Running Time • Optimal progressive simplification computable in O ( n 3 m ) time • Takes O ( n 5 ) time for continuous scaling Algorithm Running time Construct simplifications from S m down to S 1 m times O ( n 2 ) 1. Compute costs c k i , j at scale ε k 2. Compute shortest path P from p i to O ( n 3 ) O ( n 3 ) p j in G ( C , ε k ) for all ( p i , p j ) ∈ S k +1 3. Link P to obtain S k O ( n ) O ( n )
Conclusion • An O ( n 3 m ) time algorithm for the progressive simplification problem • works with various distance measures such as Hausdorff, Fr´ echet and area-based distances • enables simplification for continuous scaling in O ( n 5 ) time S 2 ⊑ S 1 ⊑ C
Conclusion Further Results • Technique to compute all shortcuts for a fixed ε in O ( n 2 log n ) time instead of O ( n 3 ) time • Storage-efficient representation of the shortcut graph allowing to find shortest paths in O ( n log n ) time • Experimental evaluation on a trajectory of a migrating vulture Thank you for your attention.
Recommend
More recommend