Given a set of pairwise disjoint polygonal obstacles in the plane, finding an obstacle-avoiding Euclidean shortest path between two points is a classical problem in computational geometry and has been studied extensively. Previously, Hershberger and Suri [SIAM J. Comput. 1999] gave an algorithm of $O(n\log n)$ time and $O(n\log n)$ space, where $n$ is the total number of vertices of all obstacles. Recently, by modifying Hershberger and Suri's algorithm, Wang [SODA 2021] reduced the space to $O(n)$ while the runtime of the algorithm is still $O(n\log n)$. In this paper, we present a new algorithm of $O(n+h\log h)$ time and $O(n)$ space, provided that a triangulation of the free space is given, where $h$ is the number of obstacles. The algorithm, which improves the previous work when $h=o(n)$, is optimal in both time and space as $\Omega(n+h\log h)$ is a lower bound on the runtime. Our algorithm builds a shortest path map for a source point $s$, so that given any query point $t$, the shortest path length from $s$ to $t$ can be computed in $O(\log n)$ time and a shortest $s$-$t$ path can be produced in additional time linear in the number of edges of the path.
翻译:鉴于飞机上的一系列双向脱节多边形障碍,在两个点之间找到一个避免障碍的欧几里德最短路径,这是计算几何学上的一个典型问题,而且已经对此进行了广泛研究。以前,Hershberger和Suri[SIAM J.Comput. 1999]给出了美元(n)n美元和美元(n)美元(n)美元)的算法,其中美元是所有障碍的总数。最近,通过修改赫什贝格和苏里最短的算法,王[SOD 20211]将空间减到美元(n)美元,而算法的运行时间仍然是美元(n)美元(n)和Suri[SIAM J. Comput. 1999]给出了美元($(n)的时间和美元(n)的计算法,条件是给自由空间的三角图,其中美元是障碍的数量。在$(h)美元(n)和Suri的算法中,在美元($(n)的最短的计算方法上,在时间和以美元为美元($(n)时间和美元(ralgalal_ral_ral_)。