Approximating a Motorcycle Graph by a Straight Skeleton Stefan Huber Martin Held Universit¨ at Salzburg, Austria CCCG 2011, Toronto ON, August 10–12, 2011 Stefan Huber, Martin Held: Approximating Motorcycle Graphs 1 / 17
Introduction to straight skeletons ◮ [Aichholzer and Aurenhammer, 1996]: straight skeleton of a PSLG G ◮ Defined by the propagation of a wavefront . Stefan Huber, Martin Held: Approximating Motorcycle Graphs Introduction 2 / 17
Introduction to straight skeletons ◮ [Aichholzer and Aurenhammer, 1996]: straight skeleton of a PSLG G ◮ Defined by the propagation of a wavefront . ◮ edge event ◮ split event Stefan Huber, Martin Held: Approximating Motorcycle Graphs Introduction 2 / 17
Introduction to straight skeletons ◮ [Aichholzer and Aurenhammer, 1996]: straight skeleton of a PSLG G ◮ Defined by the propagation of a wavefront . ◮ edge event ◮ split event ◮ Straight skeleton S ( G ): set of loci that are traced out by wavefront vertices. ◮ Edges of S ( G ) are called arcs . ◮ Reflex arcs are traced by reflex wavefront vertices. Stefan Huber, Martin Held: Approximating Motorcycle Graphs Introduction 2 / 17
Introduction to motorcycle graphs ◮ Introduced by [Eppstein and Erickson, 1999]. ◮ A motorcycle is a point moving with constant velocity, starting from a start point. ◮ Motorcycle graph : ◮ Given n motorcycles m 1 , . . . , m n . ◮ Motorcycles leave behind a trace while driving. ◮ If motorcycle reaches other motorcycle’s trace, it crashes . ◮ Motorcycle graph M ( m 1 , . . . , m n ): the arrangement of all motorcycle traces. Stefan Huber, Martin Held: Approximating Motorcycle Graphs Introduction 3 / 17
Geometric relationship: motorcycle graph and straight skeleton Consider a PSLG G . ◮ Define for each reflex wavefront vertex a motorcycle with the same velocity. ◮ The edges of G are walls. ◮ Denote the resulting motorcycle graph by M ( G ). ◮ Assumption: no two motorcycle crash simultaneously into each other. Stefan Huber, Martin Held: Approximating Motorcycle Graphs Introduction 4 / 17
Geometric relationship: motorcycle graph and straight skeleton Consider a PSLG G . ◮ Define for each reflex wavefront vertex a motorcycle with the same velocity. ◮ The edges of G are walls. ◮ Denote the resulting motorcycle graph by M ( G ). ◮ Assumption: no two motorcycle crash simultaneously into each other. Theorem ([Cheng and Vigneron, 2007], [Huber and Held, 2011]) The motorcycle graph M ( G ) covers the reflex arcs of the straight skeleton S ( G ) . Stefan Huber, Martin Held: Approximating Motorcycle Graphs Introduction 4 / 17
Applications Fruitful geometric relationship between M ( G ) and S ( G ): ◮ Alternative characterization of straight skeletons. ◮ Theoretical O ( n √ n log 2 n ) straight-skeleton algorithm for non-degenerate polygons with holes [Cheng and Vigneron, 2007]. ◮ Bone : a fast and implementable straight-skeleton algorithm for PSLGs that exhibits an O ( n log n ) runtime in practice [Huber and Held, 2011]. Idea Further investigate the geometric relationship between M ( G ) and S ( G )! Stefan Huber, Martin Held: Approximating Motorcycle Graphs Introduction 5 / 17
Roadmap So far: reducing the computation of S ( G ) to M ( G ). New questions: 1. Can we reduce the computation of M ( G ) to S ( G )? ◮ . . . to transfer lower runtime bounds for S ( G ). ◮ . . . to learn more about the relative complexity. Stefan Huber, Martin Held: Approximating Motorcycle Graphs Approximating motorcycle graphs 6 / 17
Roadmap So far: reducing the computation of S ( G ) to M ( G ). New questions: 1. Can we reduce the computation of M ( G ) to S ( G )? ◮ . . . to transfer lower runtime bounds for S ( G ). ◮ . . . to learn more about the relative complexity. 2. We know: M ( G ) covers reflex arcs of S ( G ). ◮ Given motorcycles m 1 , . . . , m n , can we construct a G such that parts of S ( G ) approximate M ( m 1 , . . . , m n ) up to any given tolerance? ◮ . . . to learn more on the geometric relationship between M ( G ) and S ( G ). Stefan Huber, Martin Held: Approximating Motorcycle Graphs Approximating motorcycle graphs 6 / 17
Approximating M ( m 1 , . . . , m n ) Question Can we find a PSLG G such that parts of S ( G ) and M ( m 1 , . . . , m n ) cover each other up to any given tolerance? ◮ Denote by p i the start point and by v i the velocity of m i . ◮ → Place isosceles triangle ∆ i at p i and corresponding interior angle α i . ◮ How can we make the gaps between the traces and the reflex arcs small? Stefan Huber, Martin Held: Approximating Motorcycle Graphs Approximating motorcycle graphs 7 / 17
Approximating M ( m 1 , . . . , m n ) Question Can we find a PSLG G such that parts of S ( G ) and M ( m 1 , . . . , m n ) cover each other up to any given tolerance? ◮ Denote by p i the start point and by v i the velocity of m i . ◮ → Place isosceles triangle ∆ i at p i and corresponding interior angle α i . ◮ How can we make the gaps between the traces and the reflex arcs small? ◮ General observation: faster motorcycles lead to smaller gaps. ◮ Multiplying all v i with a constant λ > 0 leaves M ( m 1 , . . . , m n ) invariant! Stefan Huber, Martin Held: Approximating Motorcycle Graphs Approximating motorcycle graphs 7 / 17
Approximating M ( m 1 , . . . , m n ) Question Can we always find a λ large enough such that the gaps become arbitrarily small? Stefan Huber, Martin Held: Approximating Motorcycle Graphs Approximating motorcycle graphs 8 / 17
Approximating M ( m 1 , . . . , m n ) ◮ We denote by s i the trace of m i . Lemma Let m i crash into s j . Then s i covers the reflex arc incident to p i up to a gap size of at most ǫ if 1 � L � λ ≥ min k | v k | sin Φ · max 2 , . min { µ / 4 , ǫ } Where ◮ − → s i . . . infinite track of m i . p i 3 min 1 ≤ i , j , k ≤ n R + ∩ { d ( − → s i , p j ) , d ( − → s i , − → s j ∩ − → ◮ µ := 1 s k ) } . ◮ ϕ i , j = ϕ j , i . . . non-oriented angle between v i and v j . L > ◮ Φ := min 1 ≤ i < j ≤ n R + ∩ { ϕ i , j , π − ϕ i , j } . < Φ s i ◮ L := max 1 ≤ i , j ≤ n d ( p i , − → s i ∩ − → s j ). ǫ ≤ p j s j Stefan Huber, Martin Held: Approximating Motorcycle Graphs Approximating motorcycle graphs 9 / 17
Computing M ( m 1 , . . . , m n ) Question Can we compute M ( m 1 , . . . , m n ) using a straight skeleton? ◮ Still, some gaps remain. ◮ How to algorithmically decide which motorcycle crashes into which trace? Stefan Huber, Martin Held: Approximating Motorcycle Graphs Computing the motorcycle graph 10 / 17
Computing M ( m 1 , . . . , m n ) ◮ u i . . . the reflex wavefront vertex emanating from p i . Lemma Consider S ( G ) with � � 2 , 8 L max µ λ ≥ min k | v k | · sin Φ . Then m i crashes into s j if and only if u i leads to a split event with a wavefront emanated by ∆ j until time µ / 4 . p i s i µ 8 q ≤ µ 8 p s j p j p + D µ / 8 Stefan Huber, Martin Held: Approximating Motorcycle Graphs Computing the motorcycle graph 11 / 17
Computing M ( m 1 , . . . , m n ) Algorithm 1. Compute µ, L , Φ. 2. Generate G and compute S ( G ). 3. Apply the previous lemma in order to decide for each motorcycle whether it crashed, and into which trace. Stefan Huber, Martin Held: Approximating Motorcycle Graphs Computing the motorcycle graph 12 / 17
An application: P -completeness of straight skeleton ◮ P -completeness w.r.t. NC -reductions: ◮ NC : solvable in poly-logarithmic time using a polynomial number of processors. ◮ A P -complete problem cannot be efficiently parallelized, unless NC = P . ◮ LOGSPACE ⊆ NC Stefan Huber, Martin Held: Approximating Motorcycle Graphs P -completeness 13 / 17
An application: P -completeness of straight skeleton ◮ P -completeness w.r.t. NC -reductions: ◮ NC : solvable in poly-logarithmic time using a polynomial number of processors. ◮ A P -complete problem cannot be efficiently parallelized, unless NC = P . ◮ LOGSPACE ⊆ NC ◮ [Eppstein and Erickson, 1999] proved the P -completeness of computing motorcycle graphs. Stefan Huber, Martin Held: Approximating Motorcycle Graphs P -completeness 13 / 17
An application: P -completeness of straight skeleton ◮ P -completeness w.r.t. NC -reductions: ◮ NC : solvable in poly-logarithmic time using a polynomial number of processors. ◮ A P -complete problem cannot be efficiently parallelized, unless NC = P . ◮ LOGSPACE ⊆ NC ◮ [Eppstein and Erickson, 1999] proved the P -completeness of computing motorcycle graphs. Lemma The construction of the straight skeleton of PSLGs G (resp. polygons with holes) is P -complete under LOGSPACE -reductions. ◮ Has already been mentioned by [Eppstein and Erickson, 1999] without a proof. (Referring to similar arguments as for the motorcycle graph.) Our proof: ◮ Determine L , Φ , µ for the motorcycle graphs generated by Eppstein and Erickson. ◮ Apply the algorithm mentioned before. Stefan Huber, Martin Held: Approximating Motorcycle Graphs P -completeness 13 / 17
Recommend
More recommend