650 likes | 803 Views
Shortest Paths in Three Dimensions. Advisor: Carola Wenk. Speaker: Atlas F. Cook IV. Overview. Motivation for 3D Shortest Paths ♫ Motif ♫ Edge Sequence describes a 3D shortest path. Shortest Path Map is a set of edge sequences.
E N D
Shortest Paths in Three Dimensions Advisor: Carola Wenk Speaker: Atlas F. Cook IV
Overview • Motivation for 3D Shortest Paths • ♫ Motif ♫ • Edge Sequence describes a 3D shortest path. • Shortest Path Map is a set of edge sequences. • Query Process: Lookup edge sequence; return d(s,t) • Shortest Path Map Construction • Continuous Dijkstra (fixed source) • Chen & Han (fixed source) • Arbitrary Source • In-Progress & Future Work • Conclusion
Motivation • 2D Shortest Paths Goal Start
Motivation Goal • 2D Shortest Paths Start
Motivation • General 3D Shortest Paths • NP-Hard [Canny & Reif]
Motivation Our Focus: • 3D Shortest Paths on a polyhedral surface End Start
Motivation • Polyhedral Surface: • Set of faces, edges, & vertices • Face = 2D triangle • Examples: • Terrain Polyhedron
Convexity • A surface is convex when • The line segment joining any two points on the surface boundary is “inside” the surface. Convex Surface Non-Convex Surface t s t s
Motivation • Are shortest paths on a polyhedral surface important? • Yes! Don’t freeze / starve Efficiently drive in the mountains on Mars
Motif ♫ • Edge Sequence describes a 3D shortest path. • Shortest Path Map is a set of edge sequences. • Query Process: Lookup edge sequence; return d(s,t) Hammer of Fate
Describing a Shortest Path • A shortest path traverses a set of edges & faces. E2 F3 F2 E1 F1
Describing a Shortest Path • Face Sequence = the ordered set of faces crossed by a shortest path. F3 F2 F1
Describing a Shortest Path • Edge Sequence = the ordered set of edges crossed by a shortest path. E2 E1
E2 E1 Describing a Shortest Path • Edge Sequence + Face Sequence = Shortest Path • Edge sequence ≈ Face sequence • Motif • ♫Edge Sequence describes a 3D shortest path.
SPM(s) • ♫Shortest Path Map is a set of edge sequences. • Choose a fixed source point s. • Partition the 3D surface into cells. • Cell = edge sequence • ♫Query Process: Lookup edge sequence; return d(s,t) • Locate targetcell edge sequence • Use edge sequence to return: • d(s,t) ∈ O(log n) time • p(s,t) ∈ O(log n + PathSize) time “Unfolding” converts an edge sequence d(s,t)
Unfolding • Unfolding: • Technique to reduce 3D problem into 2D problem. 3D Surface Unfolded 2D Surface http://plus.maths.org/issue27/features/mathart/index.html
Unfolding • Unfolding Examples: http://plus.maths.org/issue27/features/mathart/index.html
Unfolding • Unfolding Examples: http://plus.maths.org/issue27/features/mathart/index.html
Unfolding • Unfolding Examples: http://plus.maths.org/issue27/features/mathart/index.html
Unfolding • Unfolding Examples: http://plus.maths.org/issue27/features/mathart/index.html
Unfolding • Unfolding Examples: http://plus.maths.org/issue27/features/mathart/index.html
Unfolding • Unfolding Examples: Trojan Horse http://plus.maths.org/issue27/features/mathart/index.html
Unfold(Edge Sequence) d(s,t) E2 F3 F2 E1 F3 E2 Unfold F1 F2 E1 F1 2D Unfolding 3D Shortest Path
Unfold(Edge Sequence) d(s,t) F3 • Facts: [Mitchell87] • A shortest path on a convex 3D polyhedral surface unfolds to a 2D straight line segment. • A shortest path on a non-convex 3D polyhedral surface unfolds to a 2D polygonal path. F2 F1
Unfold(Edge Sequence) d(s,t) t • Input: • E(s,t) – 3D edge sequence • Outputs: • d(s,t) – Shortest Path Distance • p(s,t) – Shortest Path on 3D Surface s
Unfold(Edge Sequence) d(s,t) E2 F3 t F2 • E(s,t) = {E1,E2 } • F(s,t) = {F1,F2,F3} • Step 1 of 2: Unfold F(s,t) • Rotate F1 about E1 into F2’s plane • Rotate {F1,F2} about E2 into F3’s plane. E1 F1 s F3 E2 F2 E1 F1
Unfold(Edge Sequence) d(s,t) t2D F3 • Step 2: [Convex case] • d(s,t) = ||s2D–t2D|| • p(s,t) = fold s2Dt2D back onto the surface. • Step 2: [Non-convex case] • d(s,t) = length of 2D polygonal path • p(s,t) = fold polygonal path back onto the surface. F2 s2D F1
Unfold(Edge Sequence) d(s,t) • Summary: • ♫Edge Sequence describes a 3D shortest path. • Unfold edge sequence (rotate faces about edges) • 2D unfolded shortest path 3D shortest path. • How do we compute the edge sequences? • ♫Shortest Path Map is a set of edge sequences.
Shortest Path Map Construction • Continuous Dijkstra • Chen & Han • Arbitrary Source • Source specified at query time Fixed Source (source specified at preprocessing time)
Continuous Dijkstra [MMP87] • Pick a source pointon surface • Simulate a wavefront that… • Propagates out from the source • At time t, the wavefront touches all points at distance t from the source. Source
Continuous Dijkstra • Wavefront moves continuously! • But events are discrete • Event = new arc appears/ disappears on wavefront • Builds a shortest path map • Partition of surface into cells • Each cell stores an edge sequence Source
Continuous Dijkstra [Convex case]: • All unfolded shortest paths are line segments. • Unfold faces iteratively (priority queue) • This builds all edge sequences from s. • Maintain line-of-sight from s tj ||s-tj|| = Shortest Path ||s-tk|| ≠ Shortest Path s tk An unfolded set of faces from s
Continuous Dijkstra • Summary: Continuous Dijkstra • Fixed 3D source point s • Maintains 3D wavefront SPM(s) • Convex Preprocessing: [Schreiber06] • O(n log n) time & space • Non-Convex Preprocessing: [MMP87] • O(n2 log n) time & O(n2) space Source
Chen & Han [Chen96] • Chen & Han’s Shortest Path Map • Alternative to Continuous Dijkstra • Fixed 3D source point s • Uses “Star Unfolding” • Compute shortest paths to all 3D surface vertices • Similar to continuous Dijkstra • Unfold the surface into the plane (Star Unfolding) • Compute a shortest path map on the 2D unfolding • Each cell represents an edge sequence
Chen & Han s s v4 v4 v3 v3 v1 v1 v2 v2 Polyhedral Surface (1)Compute shortest paths to vertices (2) Unfold along shortest paths
Chen & Han • Star Unfolding • Unfold along shortest paths to vertices • s maps to n points s1,…,sn in the 2D unfolding s1 s v4 Star Unfolding v3 s4 s2 v4 v3 v2 v1 v1 s3 v2
t Chen & Han [Convex case]: • Star Unfolding is a non-overlapping 2D polygon. • d(s,t)= mini=1,…,n ||si – t|| [Chandru04] s1 s Star Unfolding v4 v3 s4 s2 v4 v3 v2 v1 d(s,t) v1 s3 v2
Chen & Han • Compute a shortest path map on the 2D unfolding • Quickly reveal the closest sito t • New Concept: Voronoi diagram of s1,…,sn s1 v4 v3 s4 s2 v2 v1 Voronoi Diagram of Star Unfolding s3
Chen & Han • Intuition for Voronoi Diagrams • Mail a box at the nearestpost office.
Chen & Han Region for each post office Nearby post offices
Chen & Han You are here You are here One closest post office Two closest post offices
t’ t d(s,t)=||s4-t|| (Nearest post office is s4) Chen & Han • Compute a shortest path map on the unfolding • Traditional Voronoi diagram • s1,s2,s3,s4 are“post offices” s1 v4 v3 s4 s2 v2 v1 d(s,t’)=||s2-t’|| s3
s1 s2 Chen & Han • Non-Convex Complications • The star unfolding can overlap itself. s4 s Star Unfolding v5 v4 v2 v5 s5 s3 v4 v1 v3 v2 Dent v1 v3 Overlap
s2 s1 Chen & Han • Non-Convex Complications • Shortest paths can turn at corner vertices [MMP87] • (3) A Voronoi diagram of the star unfolding still yields the shortest path map [Chen96]. • “Post offices” are: • s1,…,sn (as before) • v1,…,vn(new). s4 v5 v4 v2 s5 s3 v1 v3
Chen & Han • Summary of Chen & Han [Chen96] • Fixed 3D source point s • Compute shortest paths to all 3D surface vertices • Compute Star Unfolding • Compute a shortest path map on the 2D unfolding • (Voronoi diagram) • Preprocessing: • O(n2) time, O(n) space • Queries: • Lookup edge sequence return d(s,t), p(s,t) s1 v4 v3 s4 s2 v1 v2 s3
Arbitrary Source Approach [Agarwal97] • Previous Techniques: • Continuous Dijkstra & Chen and Han • Limited queries to a fixed 3D source point s • New Goal: Arbitrary Source Approach • Support queries from any 3D source point s
Arbitrary Source Approach • Idea of Arbitrary Source: • Choose a fixed 3D source point s • Compute star unfolding • (Unfold on a shortest path to every vertex) • What if s is shifted infinitesimally to s’? • No shortest path changes • Same “combinatorial” star unfolding • i.e., same set of vertices, edges, & faces
Arbitrary Source Approach Shifting s to s’ produces minor changes in the star unfolding. The same set of vertices, edges, & faces exists. s s s’ s’