We present a new fully dynamic algorithm for maintaining convex hulls under insertions and deletions while supporting geometric queries. Our approach combines the logarithmic method with a deletion-only convex hull data structure, achieving amortised update times of $O(\log n \log \log n)$ and query times of $O(\log^2 n)$. We provide a robust and non-trivial implementation that supports point-location queries, a challenging and non-decomposable class of convex hull queries. We evaluate our implementation against the state of the art, including a new naive baseline that rebuilds the convex hull whenever an update affects it. On hulls that include polynomially many data points (e.g. $Θ(n^\varepsilon)$ for some $\varepsilon$), such as the ones that often occur in practice, our method outperforms all other techniques. Update-heavy workloads strongly favour our approach, which is in line with our theoretical guarantees. Yet, our method remains competitive all the way down to when the update to query ratio is $1$ to $10$. Experiments on real-world data sets furthermore reveal that existing fully dynamic techniques suffer from significant robustness issues. In contrast, our implementation remains stable across all tested inputs.
翻译:我们提出了一种新的全动态算法,用于在支持几何查询的条件下维护插入和删除操作下的凸包结构。该方法将对数方法与仅支持删除的凸包数据结构相结合,实现了均摊更新复杂度$O(\log n \log \log n)$和查询复杂度$O(\log^2 n)$。我们提供了一套稳健且非平凡的实现,支持点定位查询——这是一类具有挑战性且不可分解的凸包查询。我们将该实现与现有最优技术进行了对比评估,包括一种在更新影响凸包时重建凸包的新型朴素基线方法。对于包含多项式数量数据点(例如$Θ(n^\varepsilon)$,其中$\varepsilon$为某常数)的凸包——这类凸包在实际应用中频繁出现——我们的方法优于所有其他技术。更新密集型工作负载显著有利于我们的方法,这与理论保证高度一致。然而,即使当更新与查询比例降至1:10时,我们的方法仍保持竞争性。针对真实数据集的实验进一步表明,现有全动态技术存在严重的稳健性问题,而我们的实现在所有测试输入上均保持稳定。