Incremental Construction of Motorcycle Graphs
<p>Straight skeleton of a polygon. The dashed polygon offsets indicate its shrinking process.</p> "> Figure 2
<p>The corresponding motorcycle graph is defined by two motorcycles, <math display="inline"><semantics> <msub> <mi>m</mi> <mn>1</mn> </msub> </semantics></math> and <math display="inline"><semantics> <msub> <mi>m</mi> <mn>2</mn> </msub> </semantics></math>, that start at the reflex vertices <math display="inline"><semantics> <msub> <mi>w</mi> <mn>1</mn> </msub> </semantics></math> and <math display="inline"><semantics> <msub> <mi>w</mi> <mn>2</mn> </msub> </semantics></math>, respectively.</p> "> Figure 3
<p>Partial motorcycle graph before the insertion of motorcycle <math display="inline"><semantics> <msub> <mi>m</mi> <mn>4</mn> </msub> </semantics></math>.</p> "> Figure 4
<p>Insertion of <math display="inline"><semantics> <msub> <mi>m</mi> <mn>4</mn> </msub> </semantics></math> makes <math display="inline"><semantics> <msub> <mi>m</mi> <mn>1</mn> </msub> </semantics></math> crash. This activates <math display="inline"><semantics> <msub> <mi>m</mi> <mn>3</mn> </msub> </semantics></math> which is now blocking <math display="inline"><semantics> <msub> <mi>m</mi> <mn>2</mn> </msub> </semantics></math>.</p> "> Figure 5
<p>Updating the cell structure of the motorcycle graph.</p> "> Figure 6
<p>Motorcycle cells (<math display="inline"><semantics> <msub> <mi>C</mi> <mn>1</mn> </msub> </semantics></math> to <math display="inline"><semantics> <msub> <mi>C</mi> <mn>4</mn> </msub> </semantics></math>) induce (possibly infinite) convex polygons by extending their bordering motorcycle edge segments. (The green area shows the induced polygon for the cell <math display="inline"><semantics> <msub> <mi>C</mi> <mn>2</mn> </msub> </semantics></math>.).</p> "> Figure 7
<p>The insertion of one motorcycle can block all the others.</p> "> Figure 8
<p>Polygon angles can be adjusted such that removal of any of the <math display="inline"><semantics> <mrow> <mo>Θ</mo> <mo>(</mo> <mi>n</mi> <mo>)</mo> </mrow> </semantics></math> blue motorcycles unblocks its associated red motorcycle, which in turn blocks the <math display="inline"><semantics> <mrow> <mo>Θ</mo> <mo>(</mo> <mi>n</mi> <mo>)</mo> </mrow> </semantics></math> green motorcycles.</p> "> Figure 9
<p>Examples of random polygons from <span class="html-italic">Salzburg Database of Geometric Inputs</span> [<a href="#B10-algorithms-15-00225" class="html-bibr">10</a>].</p> "> Figure 10
<p>Examples of country-based polygons from <span class="html-italic">Natural Earth</span> [<a href="#B11-algorithms-15-00225" class="html-bibr">11</a>].</p> "> Figure 11
<p>Polygon with <math display="inline"><semantics> <mrow> <mo>Θ</mo> <mo>(</mo> <msup> <mi>n</mi> <mn>2</mn> </msup> <mo>)</mo> </mrow> </semantics></math> motorcycle intersections.</p> "> Figure 12
<p>Average number of structural changes per insertion step. (For polygons from [<a href="#B10-algorithms-15-00225" class="html-bibr">10</a>] with up to 7000 reflex vertices).</p> "> Figure 13
<p>Average number of structural changes per insertion step, for specifically constructed polygons.</p> "> Figure 14
<p>Polygon with motorcycles (<b>left</b>) and its abstraction on a disk (<b>right</b>).</p> "> Figure 15
<p>Histogram of motorcycle crew sizes in relation to the number of reflex vertices. Data for 2700 polygons with at least 100 reflex vertices from <span class="html-italic">Salzburg Database of Geometric Inputs</span> [<a href="#B10-algorithms-15-00225" class="html-bibr">10</a>].</p> "> Figure 16
<p>Histogram of motorcycle crew sizes in relation to the number of reflex vertices. Data for 380 country outline based polygons with at least 100 reflex vertices from <span class="html-italic">Natural Earth</span> [<a href="#B11-algorithms-15-00225" class="html-bibr">11</a>] and <span class="html-italic">DIVA-GIS</span> [<a href="#B12-algorithms-15-00225" class="html-bibr">12</a>].</p> ">
Abstract
:1. Introduction
2. Insertion Algorithm
2.1. Preliminaries
2.2. Localized Intersection Computations
- Boundary
- event of motorcycle m at time t, where m crashes into at some point q. If m is alive at t, the motorcycle edge is reported. In addition, we put . If m was already dead at time t there is nothing to do.
- Collision
- event of motorcycle m at time t, where m reaches the trace of another motorcycle at point q, with having tentatively passed q at some time . If (m has already crashed) or if ( has crashed before reaching q), then there is nothing to do. Otherwise m crashes at q, and so we set .
- Switch
- event of motorcycle m at time t, moving from cell C to cell . If there is nothing to do. Otherwise the line segment representing the (tentative) track of m through is inserted into the arrangement . Collision events of m with other motorcycles in are computed via and are inserted into the queue . (Note that collision events between two motorcycles are always associated with the motorcycle reaching the collision point last). Also, the next switch event for m, passing from to the next cell , is computed and inserted into . If there is no such cell , i.e., when m crashes into , then the corresponding boundary event is inserted into .
2.3. Motorcycle Insertion
- Boundary
- events are handled as before.
- Collision
- event of motorcycle m at time t, reaching the trace of motorcycle at point q, with having tentatively passed q at some time . This is handled as before, and in case both motorcycles are alive at q (i.e., m actually crashes at q) and , then we additionally need to ‘activate’ all motorcycles that got blocked by m (after m passed q) and that have . See Figure 3 and Figure 4 for illustrations. For all such motorcycles we do the following: Put , and insert into a switch event of crossing the edge defined by m to reach the next cell, say . (This switch event will then add to .)
- Switch
- events are handled as before.
2.4. Partition Maintenance
3. Experimental Results
4. Structural Aspects
4.1. Motorcycle Crews
4.2. Experimental Data
5. Conclusions
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
References
- Aurenhammer, F.; Klein, R.; Lee, D.T. Voronoi Diagrams and Delaunay Triangulations; World Scientific: Singapore, 2013. [Google Scholar]
- Eppstein, D.; Erickson, J. Raising roofs, crashing cycles, and playing pool: Applications of a data structure for finding pairwise interactions. Discrete Comput. Geom. 1999, 22, 569–592. [Google Scholar] [CrossRef] [Green Version]
- Cheng, S.W.; Mencel, L.; Vigneron, A. A Faster Algorithm for Computing Straight Skeletons. ACM Trans. Algorithms 2016, 12, 1–21. [Google Scholar] [CrossRef]
- Cheng, S.W.; Vigneron, A. Motorcycle graphs and straight skeletons. Algorithmica 2007, 47, 159–182. [Google Scholar] [CrossRef]
- Vigneron, A.; Yan, L. A faster algorithm for computing motorcycle graphs. Discrete Comput. Geom. 2014, 52, 492–514. [Google Scholar] [CrossRef] [Green Version]
- Huber, S.; Held, M. Motorcycle graphs: Stochastic properties motivate an efficient yet simple implementation. J. Exp. Algorithmics 2011, 16, 1. [Google Scholar] [CrossRef]
- Aurenhammer, F.; Steinkogler, M. An insertion strategy for motorcycle graphs. In Proceedings of the 38th European Workshop on Computational Geometry, Perugia, PG, Italy, 14–16 March 2022. [Google Scholar]
- Goodrich, M.; Tamassia, R. Dynamic ray shooting and shortest paths in planar subdivisions via balanced geodesic triangulations. J. Algorithms 1997, 23, 51–73. [Google Scholar] [CrossRef] [Green Version]
- Seidel, R. Backwards Analysis of Randomized Geometric Algorithms. In New Trends in Discrete and Computational Geometrys; Pach, J., Ed.; Springer: Berlin, Germany, 1993. [Google Scholar]
- Eder, G.; Held, M.; Jasonarson, S.; Mayer, P.; Palfrader, P. Salzburg Database of Polygonal Data: Polygons and Their Generators. Data Brief 2020, 31, 105984. [Google Scholar] [CrossRef] [PubMed]
- Natural Earth. Free Vector and Raster Map Data. Available online: https://www.naturalearthdata.com/ (accessed on 6 May 2022).
- DIVA-GIS. Free Spatial Data. Available online: https://www.diva-gis.org/Data (accessed on 6 May 2022).
- Ladurner, C. On the Incremental Construction of Motorcycle Graphs. Master’s Thesis, Graz University of Technology, Graz, Austria, 2022. [Google Scholar]
- Golumbic, M. Algorithm Graph Theory and Perfect Graphs; Academic Press: New York, NY, USA, 1980. [Google Scholar]
- Cormen, T.; Leiserson, C.; Rivest, R.; Stein, C. Introduction to Algorithms, 3rd ed.; MIT Press: Cambridge, MA, USA, 2009. [Google Scholar]
- Aurenhammer, F.; Steinkogler, M. On merging straight skeletons. In Proceedings of the 34th European Workshop on Computational Geometry, Berlin, Germany, 21–23 March 2018. [Google Scholar]
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Aurenhammer, F.; Ladurner, C.; Steinkogler, M. Incremental Construction of Motorcycle Graphs. Algorithms 2022, 15, 225. https://doi.org/10.3390/a15070225
Aurenhammer F, Ladurner C, Steinkogler M. Incremental Construction of Motorcycle Graphs. Algorithms. 2022; 15(7):225. https://doi.org/10.3390/a15070225
Chicago/Turabian StyleAurenhammer, Franz, Christoph Ladurner, and Michael Steinkogler. 2022. "Incremental Construction of Motorcycle Graphs" Algorithms 15, no. 7: 225. https://doi.org/10.3390/a15070225
APA StyleAurenhammer, F., Ladurner, C., & Steinkogler, M. (2022). Incremental Construction of Motorcycle Graphs. Algorithms, 15(7), 225. https://doi.org/10.3390/a15070225