We design and engineer Fast-Sparse-Spanner, a simple and practical (fast and memory-efficient) algorithm for constructing sparse low stretch-factor geometric graphs on large pointsets in the plane. To our knowledge, this is the first practical algorithm to construct fast low stretch-factor graphs on large pointsets with average-degrees (hence, the number of edges) competitive with that of greedy-spanners, the sparsest known class of Euclidean geometric spanners. To evaluate our implementation in terms of computation speed, memory usage, and quality of output, we performed extensive experiments with synthetic and real-world pointsets, and by comparing it to our closest competitor Bucketing, the fastest known greedy-spanner algorithm for pointsets in the plane, devised by Alewijnse et al. (Algorithmica, 2017). We always found that Fast-Sparse-Spanner generated near-greedy t-spanners while being fast and memory-efficient. Our experiment with constructing a 1.1-spanner on a large synthetic pointset with 128K points uniformly distributed within a square shows more than a 41-fold speedup with roughly a third of the memory usage of that of Bucketing, but with only a 3% increase in the average-degree of the resulting graph. In terms of diameter, the graphs generated by Fast-Sparse-Spanner beat greedy-spanners in most cases (have substantially lower diameter) while maintaining near-greedy average-degree. As a byproduct of our research, we design and engineer Fast-Stretch-Factor, a practical parallelizable algorithm that can measure the stretch-factor of any graph generated by Fast-Sparse-Spanner. Our experiments show that it is much faster than the naive Dijkstra-based stretch-factor measurement algorithm.
翻译:我们设计并工程化了Fast-Sparse-Spanner算法,这是一种简单实用的(快速且内存高效)算法,用于在平面上大规模点集中构造稀疏的低拉伸因子几何图。据我们所知,这是首个能够在大规模点集上快速构造低拉伸因子图,且其平均度(即边数)与贪心生成器(已知最稀疏的欧几里得几何生成器类别)相竞争的实用算法。为评估我们实现的计算速度、内存使用和输出质量,我们使用合成与真实世界点集进行了大量实验,并与其最接近的竞争对手Bucketing(由Alewijnse等人于2017年提出的平面点集最快已知贪心生成器算法,发表于Algorithmica)进行了比较。实验结果始终表明,Fast-Sparse-Spanner在快速且内存高效的同时,生成了近似贪心的t-生成器。我们在一个均匀分布在正方形内的128K点大规模合成点集上构建1.1-生成器的实验中,发现其速度提升了41倍以上,内存使用约为Bucketing的三分之一,而生成图的平均度仅增加了3%。在直径方面,Fast-Sparse-Spanner生成的图在大多数情况下优于贪心生成器(具有显著更低的直径),同时保持近似贪心的平均度。作为研究的副产品,我们设计并工程化了Fast-Stretch-Factor算法,这是一种实用的可并行化算法,能够测量由Fast-Sparse-Spanner生成的任意图的拉伸因子。实验表明,它比基于Dijkstra的朴素拉伸因子测量算法快得多。