The continuous Frechet distance between two polygonal curves is classically computed by exploring their free space diagram. Recently, Har-Peled, Raichel, and Robson [SoCG'25] proposed a radically different approach: instead of directly traversing the continuous free space, they approximate the distance by computing paths in a discrete graph derived from the discrete free space, recursively bisecting edges until the discrete value converges to the continuous Frechet distance. They implement this so-called frog-based technique and report substantial practical speedups over the state of the art. We revisit the frog-based approach and address three of its limitations. First, the method does not compute the Frechet distance exactly. Second, the recursive bisection procedure only introduces the monotonicity events required to realise the Frechet distance asymptotically, that is, only in the limit. Third, the applied simplification technique is heuristic. Motivated by theoretical considerations, we develop new techniques that guarantee exactness, polynomial-time convergence, and near-optimal lossless simplifications. We provide an open-source C++ implementation of our variant. Our primary contribution is an extensive empirical evaluation. As expected, exact computation introduces overhead and increases the median running time. Yet, method is often faster in the worst case, the slowest ten percent of instances, or even on average due to its convergence guarantees. More surprisingly, in our experiments, the implementation of Bringmann, Kuennemann, and Nusser [SoCG'19] consistently outperforms all frog-based approaches in practice. This appears to contrast published claims of the efficiency of the frog-based techniques. These results thereby provide nuanced perspective on frogs: highlighting both the theoretical appeal, but also the practical limitations.
翻译:两条多边形曲线间的连续弗雷歇距离传统上通过探索其自由空间图进行计算。近期,Har-Peled、Raichel与Robson [SoCG'25]提出了一种根本不同的方法:不直接遍历连续自由空间,而是通过计算源自离散自由空间的离散图路径来逼近距离,通过递归二分边直至离散值收敛至连续弗雷歇距离。他们实现了这种称为青蛙算法的技术,并报告了相较于现有技术显著的实践加速效果。本文重新审视青蛙算法,并针对其三个局限性展开研究:首先,该方法无法精确计算弗雷歇距离;其次,递归二分过程仅渐近地引入实现弗雷歇距离所需的单调性事件,即仅在极限情况下成立;第三,所采用的简化技术具有启发性。基于理论考量,我们开发了能保证精确性、多项式时间收敛性及接近无损简化效果的新技术,并提供了该变体的开源C++实现。我们的核心贡献在于广泛的实证评估:如预期所示,精确计算会引入开销并增加中位数运行时间。然而,该方法在最坏情况、最慢的10%实例甚至平均情况下因收敛保证而常表现更快。更令人意外的是,实验中Bringmann、Kuennemann与Nusser [SoCG'19]的实现始终在实践中优于所有青蛙算法变体,这似乎与已发表的青蛙算法效率声明形成对比。这些结果为青蛙算法提供了细致入微的视角:既凸显其理论吸引力,亦揭示其实践局限性。