Yao graphs are geometric spanners that connect each point of a given point set to its nearest neighbor in each of $k$ cones drawn around it. Yao graphs were introduced to construct minimum spanning trees in $d$ dimensional spaces. Moreover, they are used for instance in topology control in wireless networks. An optimal \Onlogn time algorithm to construct Yao graphs for given point set has been proposed in the literature but -- to the best of our knowledge -- never been implemented. Instead, algorithms with a quadratic complexity are used in popular packages to construct these graphs. In this paper we present the first implementation of the optimal Yao graph algorithm. We develop and tune the data structures required to achieve the O(n log n) bound and detail algorithmic adaptions necessary to take the original algorithm from theory to practice. We propose a priority queue data structure that separates static and dynamic events and might be of independent interest for other sweepline algorithms. Additionally, we propose a new Yao graph algorithm based on a uniform grid data structure that performs well for medium-sized inputs. We evaluate our implementations on a wide variety synthetic and real-world datasets and show that our implementation outperforms current publicly available implementations by at least an order of magnitude.
翻译:Yao 图形是几何射线仪, 将设定的每个点的每个点点点连接到附近附近周围的每个以美元为单位的圆锥形中。 Yao 图形被引入, 用于构建以美元为单位的最小横贯树体。 此外, 这些图形还用于无线网络的地形控制。 文献中已经提出了用于构建特定点集的 Yao 图形的最优化 = ologn 时间算法, 但是 -- -- 以我们的知识而言 -- -- 从未实施过。 相反, 在广受欢迎的组合中, 使用具有二次方位复杂性的算法来构建这些图形。 我们在此文件中介绍了最佳 Yao 图表算法的首次实施情况。 我们开发和调整了实现 O(n log n) 约束和 详细算法所需的数据结构, 以将原始算法从理论到实践。 我们提议了一个优先的队列数据结构, 将静态和动态事件区分开来, 并可能对其他扫描线算法有独立的兴趣。 此外, 我们提出一个新的 Yao 图表算法基于一个统一的网格数据结构结构, 来进行良好的中等化输入。 我们用一个最广的合成和现实数据级来评估我们现有的执行程序, 显示最差的大小的公制式, 。</s>