An Efficient Algorithm for Computing High-Quality Paths amid
Polygonal Obstacles∗
Pankaj K. Agarwal†

Kyle Fox‡

Oren Salzman§

arXiv:1706.02939v1 [cs.CG] 9 Jun 2017

June 12, 2017

Abstract
We study a path-planning problem amid a set O of obstacles in R2 , in which we wish to compute a
short path between two points while also maintaining a high clearance from O; the clearance of a point
is its distance from a nearest obstacle in O. Specifically, the problem asks for a path minimizing the
reciprocal of the clearance integrated over the length of the path. We present the first polynomial-time
approximation scheme for this problem. Let n be the total number of obstacle vertices and let ε ∈ (0, 1].
2
Our algorithm computes in time O( nε2 log nε ) a path of total cost at most (1 + ε) times the cost of the
optimal path.

1

Introduction

Motivation. Robot motion planning deals with planning a collision-free path for a moving object in an
environment cluttered with obstacles [6]. It has applications in diverse domains such as surgical planning and
computational biology. Typically, a high-quality path is desired where quality can be measured in terms of
path length, clearance (distance from nearest obstacle at any given time), or smoothness, to mention a few
criteria.
Problem statement. Let O be a set of polygonal obstacles in the plane, consisting of n vertices in total.
A path γ for a point robot moving in the plane is a continuous function γ : [0, 1] → R2 . Let kpqk denote the
Euclidean distance between two points p, q. The clearance of a point p, denoted by clr(p) := mino∈O kpok, is
the minimal Euclidean distance between p and an obstacle (clr(p) = 0 if p lies in an obstacle).
We use the following cost function, as defined by Wein et al. [17], that takes both the length and the
clearance of a path γ into account:
Z
1
µ(γ) :=
dτ.
(1)
γ clr(γ(τ ))
This criteria is useful in many situations because we wish to find a short path that does not pass too close to
the obstacles due to safety requirements. For two points p, q ∈ R2 , let π(p, q) be the minimal cost1 of any
path between p and q.
∗ A preliminary version of this work appear in the Proceedings of the 27th Annual ACM-SIAM Symposium on Discrete
Algorithms. Most of this work was done while O. Salzman was a student at Tel Aviv University. Work by P.K. Agarwal and K.
Fox was supported in part by NSF under grants CCF-09-40671, CCF-10-12254, CCF-11-61359, IIS-14-08846, and CCF-15-13816,
and by Grant 2012/229 from the U.S.-Israel Binational Science Foundation. Work by O. Salzman was supported in part by the
Israel Science Foundation (grant no.1102/11), by the German-Israeli Foundation (grant no. 1150-82.6/2011), by the Hermann
Minkowski–Minerva Center for Geometry at Tel Aviv University and by the National Science Foundation IIS (#1409003), Toyota
Motor Engineering & Manufacturing (TEMA), and the Office of Naval Research.
† Duke University, pankaj@cs.duke.edu
‡ Duke University, kylefox@cs.duke.edu
§ Carnegie Mellon University, osalzman@andrew.cmu.edu
1 Wein et al. assume the minimal-cost path exists. One can formally prove its existence by taking the limit of paths
approaching the infimum cost.

1

The (approximate) minimal-cost path problem is defined as follows: Given the set of obstacles O in R2 , a
real number ε ∈ (0, 1], a start position s and a target position t, compute a path between s and t with cost at
most (1 + ε) · π(s, t).
Related work. There is extensive work in robotics and computational geometry on computing shortest
collision-free paths for a point moving amid a set of planar obstacles, and by now optimal O(n log n) algorithms
are known; see Mitchell [12] for a survey and [5, 10] for recent results. There is also work on computing
paths with the minimum number of links [13]. A drawback of these paths is that they may touch obstacle
boundaries and therefore their clearance may be zero. Conversely, if maximizing the distance from the
obstacles is the optimization criteria, then the path can be computed by constructing a maximum spanning
tree in the Voronoi diagram of the obstacles (see Ó’Dúnlaing and Yap [14]). Wein et al. [16] considered
the problem of computing shortest paths that have clearance at least δ for some parameter δ. However,
this measure does not quantify the tradeoff between the length and the clearance, and the optimal path
may be very long. Wein et al. [17] suggested the cost function defined in equation (1) to balance find a
between minimizing the path length and maximizing its clearance. They devise an approximation algorithm
to compute near-optimal paths under this metric for a point robot moving amidst polygonal obstacles in
the plane. Their approximation algorithm runs in time polynomial in 1ε , n, and Λ where ε is the maximal
additive error, n is the number of obstacle vertices, and Λ is (roughly speaking) the total cost of the edges in
the Voronoi diagram of the obstacles; for the exact definition of Λ, see [17]. Note that the running time of
their algorithm is exponential in the worst-case, because the value of Λ may be exponential as a function of
the input size. We are not aware of any polynomial-time approximation algorithm for this problem. It is not
known whether the problem of computing the optimal path is NP-hard.
The problem of computing shortest paths amid polyhedral obstacles in R3 is NP-hard [3], and a few
heuristics have been proposed in the context of sampling-based motion planning in high dimensions (a widely
used approach in practice [6]) to compute a short path that has some clearance; see, e.g., [15].
Several other bicriteria measures have been proposed in the context of path planning amid obstacles in R2 ,
which combine the length of the path with curvature, the number of links in the path, the visibility of the
path, etc. (see e.g. [1, 4, 11] and references therein). We also note a recent work by Cohen et al. [7], which is
in some sense dual to the problem studied here: Given a point set P and a path γ, they define the cost of γ
to be the integral of clearance along the path, and the goal is to compute a minimal-cost path between two
given points. They present an approximation algorithm whose running time is near-linear in the number of
points.
Our contribution. We present an algorithm that given O, s, t and ε ∈ (0, 1], computes in time O



n2
ε2

log

n
ε



a path from s to t whose cost is at most (1 + ε)π(s, t).
As in [17], our algorithm is based on sampling, i.e., it employs a weighted geometric graph G = (V, E)
with V ⊂ R2 and s, t ∈ V and computes a minimal-cost path in G from s to t. However, we prove a number
of useful properties of optimal paths that enable us to sample much fewer points and construct a graph of
2
size O( nε2 log nε ).
We first compute the Voronoi diagram V of O and then refine each Voronoi cell into constant-size cells.
We refer to the latter as the refined Voronoi diagram of O and denote it by Ṽ. We prove in Section 3 the
existence of a path γ from s to t whose cost is O(π(s, t)) and that has the following useful properties: (i) for
every cell T ∈ Ṽ, γ ∩ int(T ) is a connected subpath and the clearances of all points in this subpath are the
same; we describe these subpaths as well-behaved ; (ii) for every edge e ∈ Ṽ, there are O(1) points, called
anchor points, that depend only on the two cells incident to e with the property that either γ intersects e
transversally (i.e., γ ∩ e is a single point) or the endpoints of γ ∩ e are anchor points. We use anchor points to
propose a simple O(n)-approximation algorithm (Section 4.1). We then use anchor points and the existence of
well-behaved paths to choose a set of O(n) sample points on each edge of Ṽ and construct a planar graph G
with O(n2 ) vertices and edges so that the optimal path in G from s to t has cost O(π(s, t)) (Section 4.2).
2
Finally, we prove additional properties of optimal paths to construct the final graph with O( nε2 log nε )
edges (Section 4.3). Unlike Wein et al. [17], we do not connect every pair of sample points on the boundary
of a cell T of Ṽ. Instead, we construct a small size spanner within T which ensures that the number of edges
2
3
in the graph is only O( nε2 log nε ) and not O( nε2 ).
2

uT
αT

κT
T

vT
βT

s
t

(a) Voronoi Diagram

(b) Refined Voronoi Diagram

Figure 1: The Voronoi diagram and the refined Voronoi diagram of a set of obstacles (dark red). (a) Voronoi edges
are depicted by solid black lines. (b) Voronoi edges are depicted by dashed black lines. Green solid lines and blue
dotted lines represent edges of type (i) and type (ii), respectively. A representative cell T is depicted in light blue.

2

Preliminaries

Recall that O is a set of polygonal obstacles in the plane consisting of n vertices in total. We refer to the
edges and vertices of O as its features. Given a point p and a feature o, let ψo (p) be the closest point to p
on o so that kpok = kpψo (p)k. If a path γ contains two points p and q, we let γ[p, q] denote the subpath of γ
between p and q. Let F = cl(R2 \ O) denote the free space. We assume in this paper that the free space F is
bounded. This assumption can be enforced by placing a sufficiently large bounding box around O and the
points s and t.
Voronoi diagram and its refinement. The Voronoi cell of a polygon feature o, denoted by V(o), is the
set of points in F for which o is a closest feature of O. Cell V(o) is star shaped, and the interiors of Voronoi
cells of two different features are disjoint. The Voronoi diagram of features of O, denoted by V, is the planar
subdivision of F induced by the Voronoi cells of features in O. The edge between the Voronoi cells of a vertex
and an edge feature is a parabolic arc, and between two vertex or two edge features, it is a line segment. See
Figure 1(a). The Voronoi diagram has total complexity O(n). See [2] for details.
For any obstacle feature o and for any point x along any edge on ∂V(o), the function kxψo (x)k is convex.
We construct the refined Voronoi diagram Ṽ by adding the following edges to each Voronoi cell V(o) and
refining it into constant-size cells:
(i) the line segments xψo (x) between each obstacle feature o and every vertex x on V(o) and
(ii) for each edge e of V(o), the line segment xψo (x), where x ∈ e is the point that minimizes kxψo (x)k.
We also add a line segment from the obstacle feature o closest to s (resp. t) that initially follows ψo (s)s
(resp. ψo (t)t) and ends at the first Voronoi edge it intersects. Note that some edges of type (i) may already
be present in the Voronoi diagram V. We say that an edge in Ṽ is an internal edge if it separates two cells
incident to the same polygon. Other edges are called external edges.
Clearly, the complexity of Ṽ is O(n). Moreover, each cell T in Ṽ is incident to a single obstacle feature o
and has three additional edges. One edge is external, and it is a monotone parabolic arc or line segment. The
other two edges are internal edges on T , and they are both line segments. For each cell T , let κT denote the
external edge of T , let αT and βT denote the shorter and longer internal edges of T respectively, and let uT
and vT denote the vertices connecting αT and βT to κT respectively. See Figure 1(b).
For any value c > 0, the set of points in Voronoi cell T of clearance c, if nonempty, forms a connected
arc η which is a circular arc centered at o if o is a vertex and a line segment parallel to o if o is an edge. One
endpoint of η lies on βT and the other on αT or κT .

3

t
t

t

rt

s

rt

o
θt

θt

s

θs

o

o

(b) Line obstacle

(c) Line obstacle (degenerate)

θs

(a) Point obstacle

s

rs

rs

s

t

(d) Polygonal obstacles

Figure 2: Different examples of optimal paths (blue) among different types obstacles (red). In (d), the Voronoi
diagram of the obstacles is depicted by dashed black lines.
Properties of optimal paths. We list several properties of our cost function. For detailed explanations
and proofs, the reader is referred to Wein et al. [17]. Let s = rs eiθs be a start position and t = rt eiθt be a
target position.
(P1) Let o be a point obstacle with O = {o}, and assume without loss of generality that o lies at the origin
and 0 ≤ θs ≤ θt ≤ π. The optimal path between s and t (see Figure 2(a)) is a logarithmic spiral centered
on o, and its cost is
p
(2)
π(s, t) = (θt − θs )2 + (ln rt − ln rs )2 .
(P2) Let o be a line obstacle with O = {o}, and assume without loss of generality that o is supported by the
line y = 0, 0 ≤ θs ≤ θt ≤ π, and rs = rt = r. The optimal path between s and t (see Figure 2(b)) is a
circular arc with its center at the origin, and its cost2 is
π(s, t) = ln

1 − cos θt
1 − cos θs
θt
θs
− ln
= ln tan − ln tan .
sin θt
sin θs
2
2

(3)

(P3) Let o be an obstacle with O = {o} and s on the line segment between ψo (t) and t. The optimal path
between s and t (see Figure 2(c)) is a line segment, and its cost is
π(s, t) = ln clr(t) − ln clr(s).

(4)

(P4) The minimal-cost path γ between two points p and q on an edge e of V is the piece of e between p
and q. Moreover, there is a closed-form formula describing the cost of γ.
(P5) Since each point within a single Voronoi cell is closest to exactly one obstacle feature, we may conclude
the following: Given a set of obstacles, the optimal path connecting s and t consists of a sequence of
circular arcs, pieces of logarithmic spirals, line segments, and pieces of Voronoi edges. Each of member
of this sequence begins and ends on an edge or vertex of Ṽ (see Figure 2(d)).
The following lemma follows immediately from (1) and (2).
Lemma 2.1. Let p and q be two points such that clr(p) ≤ clr(q). The following properties hold:
2 The

original equation describing the cost of the optimal path in the vicinity of a line obstacle had the obstacle on x = 0,
and it contained a minor inaccuracy in its calculation. We present the correct cost in (3).

4

clr(q)
(i) We have π(p, q) ≥ ln clr(p)
. If p and q lie in the same Voronoi cell of an obstacle feature o and if p lies
on the line segment qψo (q), then the bound is tight.

(ii) If there is a single point obstacle o located at the origin, p = rp eiθp and q = rq eiθq with 0 ≤ θp ≤ θq ≤ π,
then π(p, q) ≥ θq − θp . If rp = rq (namely, p and q are equidistant to o), then the bound is tight.
An immediate corollary of Lemma 2.1 is the following:
Corollary 2.2. Let p and q be two points on the boundary of a Voronoi cell T . Let w be another point on
the same edge of T as p, and let clr(p) ≤ clr(w) ≤ clr(q). Then π(p, w) ≤ π(p, q).
Model of computation. We are primarily concerned with the combinatorial time complexity of our
algorithm. Therefore, we assume a model of computation that allows us to evaluate basic trigonometric and
algebraic expressions, such as the ones given above, in constant time. Our model also allows us to find the
roots of a constant-degree polynomial in constant time.

3

Well-behaved Paths

Let T be a cell of Ṽ incident to obstacle feature o, and let p and q be two points on ∂T .
We define a well-behaved path between p and q, denoted
by γ(p, q), whose cost is at most 11π(p, q) and that can be
vT
computed in O(1) time. We first define γ(p, q), then analyze
its cost, and finally prove an additional property of γ(p, q) that
allows us to compute it in O(1) time.
ηw
w̄p∗
wp∗
uT
If both p and q lie on the same edge of ∂T or neither of them
λ(p; w)
γ(w̄; q)
lies on the edge βT , then we define γ(p, q) to be the unique
path from p to q along ∂T that does not intersect o. If one of p
p
q
and q, say, p, lies on βT , then γ(p, q) is somewhat more involved,
T
αT
βT
because the path along ∂T can be quite expensive. Instead, we
let γ(p, q) enter the interior of T . For a point w ∈ βT , let ηw
be the maximal path in T of clearance clr(w) beginning at w,
i.e., its image is the set of points {z ∈ T | clr(z) = clr(w)}.
By the discussion in Section 2, ηw is a line segment or a Figure 3: Components of the well-behaved
circular arc with w as one of its endpoints. Let w̄ be the other path γ(p, q).
endpoint of ηw . We define the path
λ(p; w) = pw ◦ ηw
to be the segment of pw followed by the arc ηw . We refer to w as the anchor point of λ(p; w). Let wp∗ be the
anchor point on edge βT of clearance greater than clr(p) that minimizes the cost of λ(p; w). Namely,
wp∗ =

argmin µ(λ(p; w)).
w∈βT
clr(w)≥clr(p)

We now define
γ(p, q; w) = λ(p; w) ◦ γ(w̄, q),
γ(p, q) = γ(p, q; wp∗ ).

See Figure 3.
The next two lemmas bound the cost of γ(p, q).
Lemma 3.1.
(i) If p and q lie on the same edge of ∂T , then µ(γ(p, q)) = π(p, q).
(ii) If neither p nor q lies on βT , then µ(γ(p, q)) ≤ 3π(p, q).
5

vT

vT
vT

κT
uT

q

w

w̄

uT

λ(p; w)
γ(w̄, q)

κT

w̄
w

w̄

Π∗[p, q]

λ(p; w)

γ(w̄, q)

p
αT

βT
(a) Case 1: q ∈ κT

κT
uT

w
λ(p; w)

γ(w̄, q)

∗

Π [p, q]

q

Π∗[p, q]

q

p

p
αT

βT

(b) Case 2: q, w̄ ∈ αT

αT

βT

(c) Case 3: q ∈ αT , w̄ ∈ κT

Figure 4: Different cases considered in the proof of Lemma 3.2. We use Π∗ [p, q] to denote the minimal-cost path
between p and q.

Proof.
(i) If p and q lie on the same edge e of ∂T , then γ(p, q) ⊆ e, and by (P4), γ(p, q) is the optimal path
between p and q. Hence, the claim follows.
(ii) Suppose p ∈ αT and q ∈ κT . Path γ(p, q) travels along αT from p to uT , and then along κT from uT to q.
By Corollary 2.2 and the fact that uT is the lowest clearance point on κT , we have π(p, uT ) ≤ π(p, q).
By the triangle inequality, we have that
π(uT , q) ≤ π(uT , p) + π(p, q) ≤ 2π(p, q).
Finally,
µ(γ(p, q)) = π(p, uT ) + π(uT , q) ≤ 3π(p, q).
Lemma 3.2. If p ∈ βT and q ∈
/ βT , then µ(γ(p, q)) ≤ 11π(p, q).
Proof. Let w be any point of βT such that clr(w) ≥ clr(p). We begin by proving µ(γ(p, q; w)) ≤ 4µ(λ(p; w)) +
3π(p, q). Later, we will show µ(λ(p; wp∗ )) ≤ 2π(p, q), proving the lemma.
To prove the first claim, we consider different cases depending on the edges of ∂T that contain w̄ and q.
See Figure 4.
Case 1: q ∈ κT . In this case, γ(w̄, q) ⊆ κT , and therefore µ(γ(w̄, q)) = π(w̄, q). By the triangle inequality,
π(w̄, q) ≤ µ(λ(p; w)) + π(p, q).
Case 2: q, w̄ ∈ αT . In this case, γ(w̄, q) ⊆ αT , and therefore µ(γ(w̄, q)) = π(w̄, q). Again, π(w̄, q) ≤
µ(λ(p; w)) + π(p, q).
Case 3: q ∈ αT , w̄ ∈ κT . In this case, γ(w̄, q) first travels along κT from w̄ to uT and then along αT
from uT to q. Since clr(uT ) ≤ clr(w),
π(q, uT ) ≤ π(q, p) + π(p, w) ≤ π(p, q) + µ(λ(p; w))
by Corollary 2.2. Furthermore, by the triangle inequality,
π(w̄, uT ) ≤ µ(λ(p; w)) + π(p, q) + π(q, uT )
≤ 2µ(λ(p; w)) + 2π(p, q).

Hence, µ(γ(w̄, q)) = π(w̄, uT ) + π(uT , q) ≤ 3µ(λ(p; w)) + 3π(p, q).

6

y

vT

βT

κT

η(t)

a/

p
t

uT

θβ

θα

q

q

p

w̄(t)

a

αT
x

(a) Case 1(a): w̄∗ ∈ αT

o

θβ

θ θα

a

uT
x

w(θ) η(θ)
p

uT
αT

βT

cos θ

αT
o

co
sθ

w(t)

y
κT w̄
q

w
vT

1+
2a/

vT
βT κ
T
w
ηw
w̄∗

y

θβ θ θα

a

o

x

(b) Case 1(b)(i): w̄∗ ∈ κT ; (c) Case 1(b)(ii): w̄∗ ∈ κT ; κT is a
κT is a line segment
parabolic arc

Figure 5: Different cases considered in the proof of Lemma 3.3, Case 1: o is a vertex.

Since µ(γ(w̄, q)) ≤ 3µ(λ(p; w)) + 3π(p, q) in all three cases, µ(γ(p, q; w)) ≤ 4µ(λ(p; w)) + 3π(p, q) as claimed.
Let c∗ be the maximum clearance of a point on the optimal path between p and q (if there are multiple
optimal paths between p and q, choose one of them arbitrarily). Let w ∈ βT be the point of clearance
min{c∗ , clr(vT )}. We now prove that µ(λ(p; w)) ≤ 2π(p, q).
We first note that clr(p) ≤ clr(w) ≤ c∗ . Therefore, by Corollary 2.2, µ(pw) = π(p, w) ≤ π(p, q). Next, we
argue that µ(ηw ) ≤ π(p, q). Indeed, if o is a polygon edge, then ηw is the Euclidean shortest path between
any pair of points on βT and one of αT or κT whose clearance never exceeds c∗ . It also (trivially) has the
highest clearance of any such path. If o is a polygon vertex, then ηw spans a shorter angle relative to o than
any other path whose clearance never exceeds c∗ . By Lemma 2.1(ii), the cost of any such path from βT to
one of αT or κT is at least this angle, and by (P1), the cost of ηw is exactly this lower bound. Either way,
any path between p and q also goes between βT and one of αT or κT , so we conclude that µ(ηw ) ≤ π(p, q).
Hence, µ(λ(p; w)) ≤ 2π(p, q). In particular, µ(λ(p; wp∗ )) ≤ 2π(p, q), and µ(γ(p, q; wp∗ )) ≤ 11π(p, q).
If p ∈ βT and q ∈
/ βT , then computing γ(p, q) requires computing the anchor point w that minimizes µ(λ(p, w)). We show that the point wp∗ ∈ βT that defines γ(p, q) is either p itself or a point that only
depends on the geometry of ∂T and not on p or q.
Lemma 3.3. There exist two points wαT and wκT on βT , such that for any p ∈ βT , wp∗ ∈ {p, wαT , wκT }.
Furthermore, these two points can be computed in O(1) time.
Proof. There are several cases to consider depending on whether o is a vertex or an edge, whether the point w̄∗
lies on κT or αT , and whether κT is a line segment or a parabolic arc. Depending on the geometry of T , we
define wαT and wκT accordingly. In each case, we parameterize the anchor point w on βT appropriately and
show that wp∗ ∈ {p, wαT , wκT }. For simplicity, for a parameterized anchor point w(t), we use η(t), λ(t), and
µ(t) to denote ηw(t) , λ(p; w(t)), and µ(λ(p; w(t))), respectively. We now describe each case:
Case 1: o is a vertex. Without loss of generality, assume that o lies at the origin, edges αT and βT intersect
the line y = 0 at the origin with angles θα and θβ respectively, and θβ > θα ≥ 0. In this case, ηw , the
constant-clearance path anchored at w ∈ βT , is a circular arc. We consider two cases depending on whether w̄∗
lies on αT or κT . See Figure 5.
Case 1(a): w̄∗ ∈ αT . We parameterize the anchor point w by its clearance, i.e. clr(w(t)) = t, and the feasible
range of t is [clr(p), clr(uT )]. If w̄(t) ∈ αT , then the cost of η(t) is simply θβ − θα , and
µ(t) = ln

clr(w(t))
t
+ θβ − θα = ln
+ θβ − θα .
clr(p)
clr(p)

Therefore, µ is minimized in the range [clr(p), clr(uT )] for t = clr(p), so w∗ = p in this case.
Case 1(b): w̄∗ ∈ κT . We parameterize w with the angle θ of the segment ow̄. We call θ feasible if clr(w(θ)) ≥
clr(p) and θα ≤ θ ≤ θβ . We divide this case further into two subcases:
7

κT

βT

uT
w̄

t

p

αT q
xα
o

uT

w

ηw

xβ x

(a) Case 2(a): w̄∗ ∈ αT

q
αT
xα

θ

w
p

t

κT

βT

ηw

w̄

vT

y
ηw

w̄
uT
a

q
αT
xα

xβ

w
p

t

x
o

βT

t2/4a + a

κT

vT

y

t tan θ

vT

y

xβ
x

o

(b) Case 2(b)(i): w̄∗ ∈ κT ; (c) Case 2(b)(ii): w̄∗ ∈ κT ;
κT is a line segment
κT is a parabolic arc

Figure 6: Different cases considered in the proof of Lemma 3.3, Case 2: o is an edge.

Case 1(b)(i): κT is a line segment. Without loss of generality, κT is supported by the line x = a. The equation
of the line in polar coordinates is r = a/ cos θ. We have θβ ≤ π/2. Restricting ourselves to feasible values
of θ, we have
clr(w(θ))
a/ cos θ
µ(θ) = ln
+ θβ − θ = ln
+ θβ − θ.
clr(p)
clr(p)
Taking the derivative, we obtain
d
µ(θ) = tan θ − 1.
dθ
This expression is negative for θ = 0, positive near θ = π/2, and it has at most one root within feasible
values of θ, namely at θ = π/4. Therefore, µ(θ) is minimized when either clr(w(θ)) = clr(p) or θ = θ∗ =
min{max{π/4, θα }, θβ }. We pick wκT = w(θ∗ ).
Case 1(b)(ii): κT is a parabolic arc. Without loss of generality, the parabola supporting κT is equidistant
between o and the line x = 2a. The equation of the parabola in polar coordinates is r = 2a/(1 + cos θ). We
2a
have θβ ≤ π. The polar coordiantes of w(θ) are w(θ) = ( 1+cos
θ , θβ ).
Restricting ourselves to feasible values of θ, we have
µ(θ) = ln

2a/(1 + cos θ)
clr(w(θ))
+ θβ − θ = ln
+ θβ − θ.
clr(p)
clr(p)

Here,
d
sin θ
µ(θ) =
− 1 = tan(θ/2) − 1.
dθ
1 + cos θ
Again, the expression is negative for θ = 0, positive for θ near π, and it has at most one root within
feasible values of θ, namely at θ = π/2. Therefore, µ(θ) is minimized when either clr(w(θ)) = clr(p) or
θ = θ∗ = min{max{π/2, θαT }, θβT }. We pick wκT = w(θ∗ ).
Case 2: o is an edge. Without loss of generality, o lies on the line y = 0, the edge αT lies on the line x = xα ,
the edge βT lies on the line x = xβ , and xβ > xα ≥ 0. In this case, ηw is a horizontal segment. We again
consider two cases. See Figure 6.
Case 2(a): w̄∗ ∈ αT . As in Case 1(a), we parameterize the anchor point w by its clearance, i.e., clr(w(t)) = t,
and the feasible range of t is [clr(p), clr(uT )]. Restricting ourselves to feasible values of w(t), we have
µ(γ(p, λ)) = ln
We have

clr(w(t))
kη(t)k
t
xβ − xα
+
= ln
+
.
clr(p)
clr (w(t))
clr(p)
t
d
(xβ − xα )
µ(t) = 1/t −
.
dt
t2
8

This expression is negative for t near 0, positive for large t, and it has at most one root within feasible values
of t, namely at t = xβ − xα . If xβ − xα ≤ clr(uT ), then µ(t) is minimized when either clr(w(t)) = clr(p)
or t = t∗ = xβ − xα . If xβ − xα > clr(uT ), then w̄∗ ∈ κT , so assume that xβ − xα ≤ clr(uT ). We
pick wαT = w(t∗ ).
Case 2(b): w̄∗ ∈ κT . We parameterize w by the x-coordinate of w̄. We call t feasible if clr(w(t)) ≥ clr(p) and
t ∈ [xα , xβ ]. There are two subcases.

Case 2(b)(i): κT is a line segment. Without loss of generality, the line supporting κT intersects o at the origin
with angle θ. Restricting ourselves to feasible values of t, we have
µ(t) = ln

clr(w(t))
kη(t)k
t tan θ xβ − t
+
= ln
+
.
clr(p)
clr (w(t))
clr(p)
t tan θ

We see

1
xβ
tan θ − xβ
d
µ(t) = − 2
= 2
.
dt
t
t tan θ
t tan θ
This expression is negative for t near 0, positive for large t, and it has at most one root within feasible
values of t, namely at t = xβ / tan θ. Therefore, µ(t) is minimized when either clr(w(t)) = clr(p) or t = t∗ =
min{max{xβ / tan θ, xα }, xβ }. We pick wκT = w(t∗ ); note that clr(wκT ) = t∗ tan θ.
Case 2(b)(ii): κT is a parabolic arc. Without loss of generality, the parabola supporting κT is equidistant
between o and a point located at (0, 2a). Therefore, the parabola is described by the equation y = x2 /(4a) + a.
Restricting ourselves to feasible values of t, we have
µ(t) = ln
We have

clr(w(t))
kη(t)k
t2 /(4a) + a
xβ − t
+
= ln
+ 2
.
clr(p)
clr (w(t))
clr(p)
t /(4a) + a
d
2t3 + 4at2 + 8a(a − xβ )t − 16a3
µ(t) =
.
dt
(t2 + 4a2 )2

This expression is negative for t near 0 and positive for large t. The derivative of the numerator is 6t2 +
8at + 8a(a − xβ ), which has at most one positive root. Therefore, the numerator has at most one positive
d
local maximum or minimum. We see
µ(t) goes from negative to positive around exactly one positive
dt
root (which may not be feasible), and µ(t) has one minimum at a positive value of t. Let t0 be this root
d
of
µ(t). Value µ(t) is minimized when either clr(w(t)) = clr(p) or t = t∗ = min{max{t0 , xα }, xβ }. We
dt
pick wκT = w(t∗ ); note that clr(wκT ) = (t∗ )2 /(4a) + a.
We note that in all cases w∗ ∈ {p, wκT , wαT } for some choices of wκT and wαT that depend only on the
geometry of T and not on p. Note that no subcase of Case 1 required picking a concrete wαT , so if o is a
vertex, we let wαT be an arbitrary point on βT . In every case, wκT and wαT can be computed in O(1) time.
We conclude the proof of the lemma.

4

Approximation Algorithms

In this section, we propose a near-quadratic-time (1 + ε)-approximation algorithm for computing the minimalcost path between two points s, t ∈ F amid O. We assume that clr(s) ≤ clr(t) throughout this section. We
first give a high-level overview of the algorithm and then describe each step in detail. Throughout this section,
let Π∗ denote a minimal-cost (s, t)-path.
High-level description. Our algorithm begins by computing the refined Voronoi diagram Ṽ of O. The
algorithm then works in three stages. The first stage computes an O(n)-approximation of d∗ = µ(s, t), i.e., it
returns a value d˜ such that d∗ ≤ d˜ ≤ cnd∗ for some constant c > 0. By augmenting Ṽ with a linear number
of additional edges, each a constant-clearance path between two points on the boundary of a cell of Ṽ, the

9

κT
uT
ηκT

vT
w κT

vT
ηκT

ws
ηs

uT

ηs

αT

βT

T

w κT
ws

ηαT

αT βT

(a) Point-obstacle cell

κT

vT

w αT

uT
αT

(b) Line-obstacle cell

κT

q

Π[p, q] wκ
T
p
ws

T

βT

w αT

(c) (p, q)-path γ

Figure 7: (a), (b) Edges added within cell T for the O(n)-approximation algorithm. (c) Visualization of proof of
Lemma 4.1.
algorithm constructs a graph G1 with O(n) vertices and edges, and it computes a minimal-cost path from s
to t in G1 .
˜ the second stage computes an O(1)-approximation of d∗ . For a given d ≥ 0,
Equipped with the value d,
this algorithm constructs a graph G2 = G2 [d] by sampling O(n) points on the boundary of each cell T of Ṽ
and connecting these sample points by adding O(n) edges (besides the boundary of T ), each of which is again
a constant-clearance path. The resulting graph G2 is planar and has O(n2 ) edges total, so a minimal-cost path
in G2 from s to t can be computed in O(n2 ) time [9]. We show that if d ≥ d∗ , then the cost of the optimal
path from s to t in G2 is O(d). Therefore, if d ∈ [d∗ , 2d∗ ], the cost of the optimal path is O(d∗ ). Using the
˜ i | 0 ≤ i ≤ dlog cne},
˜ we run the above procedure for O(log n) different values of d, namely d ∈ {d/2
value of d,
2
and return the least costly path among them. Let dˆ be the cost of the path returned.
ˆ the third stage samples O(n/ε) points on the boundary of each cell T of Ṽ and
Finally, using the value d,
connects each point to O((1/ε) log(n/ε)) other points on the boundary of T by an edge. Unlike the last two
stages, each edge is no longer a constant-clearance path but it is a minimal-cost path between its endpoints
lying inside T . The resulting graph G3 has O(n2 /ε) vertices and O((n2 /ε2 ) log(n/ε)) edges. The overall
algorithm returns the minimal-cost path in G3 . Anchor points and well-behaved paths play a pivotal role in
each stage of the algorithm.

4.1

Computing an O(n)-approximation algorithm

Here, we describe a near-linear time algorithm to obtain an O(n)-approximation of d∗ . We augment Ṽ
with O(n) additional edges as described below to create the graph G1 = (V1 , E1 ).
We do the following for each cell T of Ṽ. We compute anchor points wαT and wκT as described in Lemma 3.3.
Let sT be the point on βT of clearance min{clr(vT ), clr(s)}. Set WT = {wαT , wκT , sT }, ET = {ηw |w ∈ WT },
and W̄T = {w̄αT , w̄κT , s̄T }. Vertex set V1 is the set of Voronoi vertices plus the set WT ∪ W̄T for all cells
T ∈ Ṽ3 . Next, for each edge e of Ṽ, we add the portion of e between two consecutive vertices of V1 as an edge
of E1 , and for each cell T ∈ Ṽ we also add ET to E1 . See Figure 7(a) and (b). (Note that if sT = vT then ηsT
is a trivial path and there is no need to add ηsT to E1 . Paths ηwαT and ηwκT may be trivial as well.) The
cost µ(e) for each edge e ∈ E1 is computed using (1) or the equations of Wein et al. [17] for Voronoi edges.
By construction, |V1 | = O(n) and |E1 | = O(n). We compute and return, in O(n log n) time, an optimal path
from s to t in G1 .
Lemma 4.1. Graph G1 contains an s, t-path of cost at most O(n) · d∗ .
Proof. Let Π∗ be an optimal path from s to t. We will deform Π∗ into another path Π̃ from s to t of cost
O(n) · d∗ that enters or exits the interior of a cell of Ṽ only at the vertices of V1 and follows an arc of ET in
the interior of the cell T . By construction, Π̃ will be a path in G1 which will imply the claim.
By construction s, t ∈ V1 . Let Π denote the current path that we have obtained by deforming Π∗ . Let
T ∈ Ṽ be the first cell (along Π) such that Π enters the interior of T but int(T ) ∩ Π is not an arc of ET . Let p
(resp. q) be the first (resp. last) point of Π ∩ T . If both p and q lie on the same edge of T or neither of them
3 Note that as we consider each cell independently, we actually consider each edge e twice as it is adjacent to two cells and
add vertices on e for each cell independently. The set of vertices put on e is the union of these two sets. Considering each edge
twice does not change the complexity of the algorithm or its analysis, and doing so simplifies the algorithm’s description.

10

vT

u0T

uT

vT0

vT00

vT+

κT
u−
T

vT−

αT

T

βT

Figure 8: Samples placed on the edges of a cell T of Ṽ. The sampled regions are depicted in purple. For the
constant-factor approximation algorithm, samples are placed on βT only.
lies on βT , we replace Π[p, q] with the well-behaved path γ(p, q), because γ(p, q) ⊆ ∂T in this case. Suppose
p ∈ βT and q ∈
/ βT (the other case is symmetric). We replace Π[p, q] with Π[p, q] = psT ◦ γ(sT , q), i.e., the
segment psT ⊆ βT followed by the well-behaved path γ(sT , q). By Lemma 3.3, cl(int(T ) ∩ γ(st , q)) ∈ ET .
We repeate the above step until no such cell T is left. Since the above step is performed at most once for
each cell of Ṽ, we obtain the final path Π̃ in O(n) steps.
We now bound the cost of Π̃. If Π[p, q] is replaced by γ(p, q), then by Lemma 3.1, µ(γ(p, q)) ≤ 3µ(Π[p, q]).
On the other hand, if p ∈ βT and q ∈
/ βT , then µ(Π̃[p, q]) = µ(psT ) + µ(γ(sT , q)). By the triangle inequality,
π(sT , q) ≤ π(sT , p) + π(p, q), and by Lemma 3.2,
µ(γ(sT , q)) ≤ 11π(sT , q) ≤ 11(π(sT , p) + π(p, q)).
By Corollary 2.2, π(p, sT ) = µ(psT ) ≤ d∗ . Putting everything together,
µ(Π̃[p, q]) ≤ 12π(p, sT ) + 11π(p, q)
∗

(5)
∗

≤ 12d + 11π(p, q) = O(d ).

Summing over all O(n) steps, the cost of Π̃ is O(n) · d∗ .
We thus obtain the following.
Theorem 4.2. Let O be a set of polygonal obstacles in the plane, and let s, t be two points outside O. There
exists an O(n log n)-time O(n)-approximation algorithm for computing the minimal-cost path between s and t.

4.2

Computing a constant-factor approximation

Recall that, given an estimate d of the cost d∗ of the optimal path, we construct a planar graph G2 = G2 [d]
by sampling points along the edges of the refined Voronoi diagram Ṽ. The sampling procedure here can be
thought of as a warm-up for the more-involved sampling procedure given in Section 4.3.
Let T be a Voronoi cell of Ṽ. Let vT− and vT+ be the points on βT with clearance min{clr(vT ), clr(t)/ exp(d)}
and min{clr(vT ), clr(s) · exp(d)}, respectively. We refer to the segment β̂T = vT− vT+ ⊆ βT as the marked
portion of βT . By (4), µ(β̂T ) = O(d). We place sample points on β̂T , its endpoints always being sampled, so
that the cost between consecutive samples is exactly nd (except possibly at one endpoint). Given a sample
point p on an edge of Ṽ, it is straightforward to compute the coordinates of the sample point p0 on the same
edge such that π(p, p0 ) = c for any c > 0. Simply use the formula for the cost along a Voronoi edge given
in [17, Corollary 8]. We emphasize that the points are separated evenly by cost; the samples are not uniformly
placed by Euclidean distance along the edge; see Figure 8.
For each cell T ∈ Ṽ, let WT be the set of sample points on βT plus the anchor points wκT and wαT . For each
point w ∈ WT , we compute the constant-clearance arc ηw . Let ET = {ηw |w ∈ WT } and W̄T = {w̄|w ∈ WT }
be the set of other endpoints of arcs in ET . Set V2 is the set of vertices of Ṽ plus the set WT ∪ W̄T over all
cells in Ṽ. For each edge of Ṽ, we add the portions between consecutive sample vertices of V2 to E2 , and
we also add ET , over all cells T ∈ Ṽ, to E2 . The cost of each edge in E2 is computed as before. We have
|V2 |, |E2 | = O(n2 ), and G2 can be constructed in O(n2 ) time.
The refined Voronoi diagram Ṽ is planar. Every edge ηw added to create G2 stays within a single cell
of Ṽ and has constant clearance. Therefore, no new crossings are created during its construction, and G2 is
11

planar as well. We compute the minimal-cost path from s to t in G2 , in O(n2 ) time, using the algorithm of
Henzinger et al. [9].
Lemma 4.3. If d ≥ d∗ , then Π∗ ∩ βT ⊆ β̂T for any cell T ∈ Ṽ.
Proof. Let pmin be the point where Π∗ attains the minimal clearance. Clearly, π(s, t) ≥ π(s, pmin ) + π(pmin , t).
Using this observation together with Lemma 2.1(i) and the assumption that clr(s) ≤ clr(t), we conclude that
the clearance of any point on Π∗ is at least clr(t)/ exp(d∗ ) ≥ clr(t)/ exp(d). A similar argument implies the
clearance of any point on Π∗ is at most clr(s) · exp(d). Hence, Π∗ ∩ βT ⊆ β̂T .
Lemma 4.4. For d ≥ d∗ , graph G2 [d] contains an s, t-path of cost O(d).
Proof. We deform the optimal path Π∗ into a path Π̃ of G2 in the same way as in the proof of Lemma 4.1
except for the following twist. As in Lemma 4.1, let p (resp. q) be the first (resp. last) point on Π∗ in a cell
T of Ṽ. If p ∈ βT and q ∈
/ βT , let p0 be a sample point on βT such that π(p, p0 ) ≤ d/n; the existence of p0
follows from Lemma 4.3. We replace Π∗ [p, q] with Π̃T = pp0 ◦ γ(p0 , q), i.e., p0 replaces the role of sT in the
proof of Lemma 4.1. Since π(p, p0 ) ≤ d/n, we have
µ(Π̃T ) ≤ 11π(p, q) + O(d/n).
Summing over all steps in the deformation of Π∗ and using the fact d ≥ d∗ = µ(Π∗ ), we obtain µ(Π̃) = O(d).
It is clear from the construction that Π̃ is a path in G2 .
For our constant-factor approximation algorithm, we perform an exponential search over the values of
path costs. Let d˜ ≤ cnd∗ be the cost of the path returned by the O(n)-approximation algorithm (Section 4.1).
˜ i . We run the above procedure to construct a graph G2 [di ]
For each i from 0 to dlog cne, we choose di = d/2
and compute a minimal-cost path Πi in the graph. Let ∆i = µ(Πi ). We compute k = argmini ∆i and return
Πk .
Fix integer î so d∗ ≤ dî ≤ 2d∗ . By Lemma 4.4, we have
∆k ≤ ∆î = O(dî ) = O(d∗ ).
Theorem 4.5. Let O be a set of polygonal obstacles in the plane, and let s, t be two points outside O. There
exists an O(n2 log n) time O(1)-approximation algorithm for computing the minimal-cost path between s and t.

4.3

Computing the final approximation

Finally, let d be the estimate returned by our constant factor approximation algorithm so that d∗ ≤ d ≤ cd∗
for some constant c. We construct a graph G3 = (V3 , E3 ) by sampling O(n/ε) points along each edge of Ṽ
and connecting (a certain choice of) O( εn2 log nε ) pairs of sample points on the boundary of each cell of Ṽ
2
2
by “locally optimal” paths. We guarantee |V3 | = O( nε ) and |E3 | = O( nε2 log nε ). We compute and return, in
2
O( nε2 log nε ) time, a minimal-cost path in G3 [8].
Vertices of G3 . Let c = clr(t)/ exp(d) and c = clr(s) · exp(d). Let T be a cell of Ṽ. For each edge of T ,
we mark at most two connected portions, each of cost O(d). We refer to each marked portion as an edgelet.
We sample points on each edgelet so that two consecutive samples lie at cost εd/n apart; endpoints of each
edgelet are always included in the sample. The total number of samples places on ∂T is O(n/ε). We now
describe the edgelets of T .
+
Let u−
T , uT be points on αT of clearance min{clr(uT ), c} and min{clr(uT ), c}, respectively. Similarly, let
− +
vT , vT be points on βT of clearance min{clr(vT ), c} and min{clr(vT ), c}, respectively. The edgelets on αT and
+
− +
βT are the segments u−
T uT and vT vT , respectively. Next, we mark (at most) two edgelets on κT : If µ(κT ) ≤ 2d,
then the entirety of κT is a single edgelet; otherwise, let u0T ∈ κT be the point such that µ(κT [uT , u0T ]) = 2d.
Let vT0 ∈ κT be the point of clearance clr(vT+ ). If µ(κT [u0T , vT0 ]) ≤ 4d, then κT [uT , vT0 ] is the only edgelet on
κT . Otherwise, let vT00 ∈ κT be the point such that clr(vT00 ) ≤ clr(vT0 ) and µ(κT [vT0 , vT00 ]) = 4d; κT has two
edgelets κT [uT , u0T ] and κT [vT0 , vT00 ]. See Figure 8. We repeat this procedure for all cells of T . Set V3 is the
set of all samples placed on the edges of Ṽ. We have |V3 | = O(n2 /ε).
12

κT

Vertices in V (G3) ∪ S(p)
Vertices in V (G3) \ S(p)

ξ

→
−
q

w κT

←
−
q
w κT

p

αT

T

βT

Figure 9: Vertices in S(p) which are used to construct the set of edges of G3 .
The edges of G3 . Let T be a cell of Ṽ incident to obstacle feature o. We say two points p and q in T
are locally reachable from one another if the minimal-cost path from p to q relative only to o lies within T .
Equivalently, the minimal-cost path relative to o is equal to the minimal-cost path relative to O.
Let p ∈ ∂T be a sample point. We compute a subset S(p) ⊆ V3 of candidate neighbors of p in G3 . Let
N (p) ⊆ S(p) be the subset of these points that are locally reachable from p. We connect p to each point
q ∈ N (p) by an edge in E3 of cost π(p, q). By definition, the minimal-cost path between p and q lies inside T .
Finally, as in G1 and G2 , we add the portion of each edge of Ṽ between two sample points as an edge of E3 .
We now describe how we construct S(p). Let ξ be an edgelet of ∂T such that p and ξ do not lie on the
same edge of T . We first define a shadow point p̆ of p. If p ∈ αT ∪ κT , then p̆ = p. If p ∈ βT , and ξ ∈ κT
(resp. ξ ∈ αT ), then p̆ = p if clr(p) ≥ clr(wκT ) (resp. clr(p) ≥ clr(wαT )), and p̆ = wκT (resp. wαT ) otherwise.
−
−
q (resp. →
q ) be the sample point on ξ of highest (resp. lowest) clearance less (resp. more) than p̆, if
Let ←
−
−
q or →
q may not exist if no point of clearance p̆ exists on ξ; in this case,
such a point exists. Exactly one of ←
←
−
−
the construction implies that q is the endpoint of ξ of higher clearance or →
q is the endpoint of ξ of lower
←
−
←
−
clearance. If q exists, we add q to S(p). We iteratively walk along sample points of ξ in decreasing order
−
of clearance starting with the first sample point encountered after ←
q . For each non-negative integer i, we
−
i
add the point qi encountered at step b(1 + ε) c of the walk until we reach an endpoint of ξ. Similarly, if →
q
→
−
exists, we add to S(p) the point q and perform the walk along points of greater clearance. See Figure 9.
Finally, we add the two endpoints of ξ to S(p). We repeat this step for all edgelets on ∂T . Since ξ has O(n/ε)
sample points and ∂T has at most four edgelets, |S(p)| = O((1/ε) log(n/ε)), and S(p) can be constructed in
O(|S(p)|) time.
2

2

Analysis. It is clear from the construction that |V3 | = O( nε ), |E3 | = O( nε2 log nε ), and that G3 can be
2
constructed in time O( nε2 log nε ). By using Dijkstra’s algorithm with Fibonacci heaps [8], a minimal-cost
2
path in G3 can be computed in O( nε2 log nε ) time. So it remains to prove that the algorithm returns a path
of cost at most (1 + O(ε))π(s, t). By rescaling ε, we can thus compute a path from s to t of cost at most
2
(1 + ε)π(s, t) in time O( nε2 log nε ).
Lemma 4.6. Let Π∗ be a minimal-cost path from s to t. For every edge e ∈ Ṽ, Π∗ ∩ e lies inside the marked
portion of e.
Proof. Fix an edge e ∈ Ṽ, and let q ∈ Π∗ ∩ e. We aim to prove q lies inside the marked portion of e. Recall,
d ≥ d∗ . The proof of Lemma 4.3 already handles the case of e being an internal edge.
Now, suppose e is an external edge. We assume µ(e) > 2d; otherwise, the proof is trivial. We have e ∈ κT
and e ∈ κT 0 for two adjacent Voronoi cells T and T 0 . By construction, point s lies outside the interior of
T ∪ T 0 . Therefore, Π∗ [s, q] intersects at least one internal edge incident to T or T 0 at some point p. Without
loss of generality, assume that internal edge belongs to T . We have two cases.
Case 1: p ∈ αT . Since clr(p) ≤ clr(uT ) ≤ clr(q), we have π(p, uT ) ≤ d∗ . By triangle inequality,
π(uT , q) ≤ π(uT , p) + π(p, q) ≤ 2d∗ ≤ 2d.
Case 2: p ∈ βT . By (4), π(vT+ , p) ≤ 2d. Recall from the proof of Lemma 4.3 that the clearance of any
point on Π∗ is at most clr(s) · exp(d). We defined ηv+ as the line segment or circular arc with vT+ as one
T

13

vT

y

βT

f (βT ) = βT∗
f (a) = a∗

b

a

αT
θβ

f (κT ) = κ∗T
f (r, θ) = (θ, ln r)

γ

o

ln r

κT

uT

f (αT ) = αT∗

f (b) = b∗

rT x

θα

θβ

θα

θ

Figure 10: Case 1 of proof of Lemma 4.7: a cell of a point obstacle in Ṽ and the optimal path between points
a and b (blue) in the original (left) and transformed plane (right), respectively.
ln r

ln r
`p

κ∗T
ζp
p∗

θα

βT∗
Vp∗

Vp∗

αT∗

p∗

βT∗

gp

`p∗

κ∗T

αT∗
θβ

θαT

θ

(a) p ∈ αT

θβ

θ

(b) p ∈ κT

Figure 11: Case 1 of proof of Lemma 4.7: the set of locally reachable points (purple) from the point p in the
transformed plane; the solid part of `p is gp .
of its endpoints; vT0 is its other endpoint. One can easily verify µ(ηv+ ) ≤ d∗ ; see the proof of Lemma 3.2.
T
By the triangle inequality,
π(vT0 , q) ≤ µ(ηv+ ) + π(vT+ , p) + π(p, q) ≤ 2d∗ + 2d ≤ 4d.
T

Now, we prove a property of locally reachable points from a fixed point which will be crucial for our
analysis.
Lemma 4.7. Let T be a cell of Ṽ, and let p ∈ ∂T . For every edge e of T , the set of points on e locally
reachable from p, if non-empty, is a connected portion of e and contains an endpoint of e.
Proof. Let o be the feature of O associated with T . We consider two main cases.
Case 1: o is a vertex. Without loss of generality, o lies at the origin, edge αT intersects the line y = 0 at the
origin with angle θα , edge βT intersects the line y = 0 at the origin with angle θβ , and θβ > θα ≥ 0. We
consider a map f : R2 → R2 taking points to what we refer to as the transformed plane. Given in polar
coordinates point (r, θ), the map f is defined as f (r, θ) = (θ, ln r). For a point x ∈ R2 , let x∗ = f (x), and for
a point set X ⊆ R2 , let X ∗ = {f (x)|x ∈ X}. Both αT and βT become vertical rays in the transformed plane
going to −∞. Further, it is straightforward to show that κT becomes a convex curve in the transformed plane
when restricted to values of θ such that θα ≤ θ ≤ θβ . Therefore, T ∗ is a semi-bounded pseduo-trapezoid. By
(P1) in Section 2 (see also [17]), the minimal-cost path with respect to o between two points a, b ∈ T maps
to the line segment a∗ b∗ . So a and b are locally reachable if a∗ b∗ ⊆ T ∗ , i.e., a∗ and b∗ are visible from each
other (see Figure 11).
For a point p∗ ∈ (∂T )∗ , let Vp∗ ⊆ T ∗ be the set of points of T ∗ visible from p∗ , `p the line tangent to κ∗T
from p∗ (if it exists), and ζp = `p ∩ κ∗T . Note that `p is well defined, because either p∗ ∈ κ∗T or the x-monotone
14

vT

p = (xp , yp )
+

r+

0

C (t )

uT

−

C (t)

r−

t

t0

βT

C0

αT

x

T

C

C + (t)
C − (t0 )

κT

p

(a)

(b)

Figure 12: Illustration of properties of Cp in Case 2 of proof of Lemma 4.7.
convex curve κ∗T either lies to the left or to the right of p∗ . The closure of ∂Vp∗ \ (∂T )∗ consists of a line
segment gp = a∗ b∗ ⊂ `p . If p ∈
/ κT , then ζp is one endpoint of gp and the other endpoint lies on αT∗ or βT∗ . In
either case, for any edge e ∈ ∂T , if (e∗ \ {p∗ }) ∩ Vp∗ =
6 ∅, then it is a connected arc and contains one of the
endpoints of e∗ , as claimed.
Case 2: o is an edge. Without loss of generality, o lies on the line y = 0, the edge αT lies on the line x = xα ,
the edge βT lies on the line x = xβ , and xβ > xα ≥ 0. There is no equally convenient notion of the transformed
plane for edge feature o, but we are still able to use similar arguments to those given in Case 1.
In this case, for two points a, b ∈ T , the minimal-cost path with respect to o from a to b is the circular
arc with a and b as its endpoints and centered at the x-axis (see (P2) in Section 2). Therefore, a and b are
locally reachable if this circular arc does not cross κT .
Fix a point p = (xp , yp ) ∈ ∂T . If p ∈ αt ∪ βT , then all points on the edge of T containing p are locally
reachable, and if p ∈ κT then no point on κT \ {p} is locally reachable from p. So we will focus on edges of T
that do not contain p.
Let Cp denote the one-parameter family of circles that pass through p and that are centered at the x-axis.
For any q ∈ T \ {p}, there is a unique circle Cq ∈ Cp that passes through q. We parameterize the circles in Cp
with the x-coordinate of its center, i.e., C(t) ∈ Cp for t ∈ (−∞, ∞) and is centered at (t, 0). Let C + (t) (resp.
C − (t)) be the circular arc of C(t) lying to the right (resp. left) of the line x = xp . See Figure 12(a). The
following properties of Cp are easily verified:
(a) For t < t0 , C + (t) (resp. C − (t0 )) lies in the interior of C(t0 ) (resp. C(t)); see Figure 12(a).
(b) If a circle C ∈ Cp intersects κT at two points, say, r− and r+ , then there is another circle C 0 ∈ Cp that
is tangent to κT between r− and r+ ; see Figure 12(b).
(c) A circle in Cp intersects αT or βT in at most one point.
(d) There is at most one circle C ∈ Cp that is tangent to κT .
Properties (a) and (b) are straightforward; (c) follows from (a) and a continuity argument; (d) follows
from (a), (c), and the convexity of κT .
If there is no circle in Cp that is tangent to κT then for any point q ∈ T , the arc Cq [p, q] lies inside T , so
every point in T is locally reachable, and the lemma follows.
Next, assume there is a circle C0 ∈ Cp that is tangent to κT at a point rp . By (d), C0 is the only such
circle. There are three cases:
(i) If p ∈
/ αT , then points in int(C) ∩ αT are locally reachable from p by property (a).

(ii) Similar, if p ∈
/ βT , then the points in int(C) ∩ βT are locally reachable, again by property (a).

(iii) If p ∈ αT (resp. p ∈ βT ), then the points in κT [ut , rp ] (resp. κT [rp , vT ]) are locally reachable from p by
properties (c) and (d).

15

κT

a

q
αT

ξ

←
− w̄∗
qk q

qk+1

T

wκT
p
0
βT p

Figure 13: Visualization of proof of Lemma 4.8.
Hence, in each case at most one connected portion of an edge e of T is locally reachable from p, and it
contains one endpoint of e.

Lemma 4.8. Graph G3 contains an s, t-path of cost at most (1 + O(ε))d∗ .
Proof. Once again, we deform the optimal path Π∗ into a path Π̃ of G3 as in Lemmas 4.1 and 4.4. Let Π
denote the current path that we have obtained by deforming Π∗ . Let T ∈ Ṽ be the first cell such that Π enters
int(T ) but int(T ) ∩ Π is not an arc of E3 . Let p ∈ Π be the first point (on ∂T ) at which Π enters in int(T ),
and let q be the next point on Π ∩ ∂T , i.e., int(Π[p, q]) ⊂ int(T ). If both p and q lie on the same edge e of T ,
we replace Π∗ [p, q] with the portion of e between p and q, denoted by Π̃T ; note that µ(Π̃T ) = π(p, q).
Now, suppose p ∈ βT and q ∈ κT . The other cases are similar. Points p and q are locally reachable from
each other. By Lemmas 4.6 and 4.7, there exists a sample point p0 locally reachable from q on βT such
that π(p, p0 ) ≤ εd/n. We have π(p0 , q) ≤ π(p, q) + εd/n. Suppose there exists a point q 0 ∈ S(p0 ) on κT locally
reachable from p0 such that π(q, q 0 ) ≤ εd/n. Let a be the minimal-cost path from p0 to q 0 . In this case, we
replace Π∗ [p, q] with Π̃T = pp0 ◦ a ◦ γ(q 0 , q). We have µ(Π̃T ) ≤ π(p, q) + 4εd/n.
Finally, suppose there is no locally reachable q 0 as described above. As in Section 3, let w̄∗ denote the
first intersection of well-behaved path γ(p0 , q) with κT . Recall our algorithm adds sample points along several
edgelets of length O(d) such that each pair of samples lies at cost εd/n apart. By Lemma 4.6, point q lies on
one of these edgelets ξ.
By Lemma 3.3 and construction, either w̄∗ ∈ ξ and w̄∗ lies between consecutive sample points of ξ we
−
−
−
−
denoted as ←
q and →
q , or w̄∗ ∈
/ ξ and exactly one of ←
q or →
q exists at an endpoint of ξ. By construction,
←
−
→
−
←
−
→
−
each existing point of q and q is in S(p0 ). Let q− ∈ { q , q } be the first sample point of ξ encountered as
we walk along κT from w̄∗ , past q, and to an endpoint of κT . We claim there exists at least one additional
sample point of ξ other than q− encountered during this walk, and we denote q0 as the first of these sample
−
−
points. Indeed, if q0 does not exist, then w̄∗ ∈ ξ and q lies between ←
q and →
q . At least one of them is locally
reachable from p0 by Lemma 4.7, which contradicts the assumption that q is at least εd/n cost away from any
sample point of ξ ∩ S(p0 ) locally reachable from p0 . By a similar argument, we claim q does not lie between
q0 and w̄∗ .
−
−
Recall, our algorithm adds samples qi to S(p) spaced geometrically away from one of ←
q and →
q in the
direction of q; point q0 is one of these samples. These samples also include one endpoint of ξ. Let qk , qk+1
be two consecutive sample points of S(p) such that q lies between them. By Lemma 4.7, at least one of qk
and qk+1 is locally reachable from p0 . Let q 0 be this locally reachable point. Let a be the mimimal-cost path
from p0 to q 0 . As before, we replace Π∗ [p, q] with Π̃T = pp0 ◦ a ◦ γ(q 0 , q). See Figure 13.
Let δ = π(q− , q)n/(εd). Value δ is an upper bound on the number of samples in ξ between q− and q.
We have b(1 + ε)k c ≤ δ ≤ b(1 + ε)k+1 c. In particular δ ≤ (1 + ε)k+1 , which implies δ − b(1 + ε)k c ≤ εδ + 1.

16

Similarly, b(1 + ε)k+1 c − δ ≤ εδ. By Lemma 3.2, π(q− , q) ≤ 11µ(p0 , q). We have
εd
π(q, q 0 ) ≤ (εδ + 1)
n
 εd

εn
+1
≤ π(q− , q)
εd
n
εd
= επ(q− , q) +
n
εd
≤ 11επ(p0 , q) + .
n
We have π(p0 , q 0 ) ≤ π(p0 , q) + π(q, q 0 ) ≤ (1 + 11ε) · π(p0 , q) + εd/n. Therefore, in all three cases we have
µ(Π̃T ) ≤ (1 + O(ε))π(p, q) + O(εd/n).
Summing over all steps in the deformation of Π∗ and using the fact d∗ ≤ d ≤ cd∗ for a constant c, we
obtain µ(Π̃) = (1 + O(ε))d∗ . As before, it is clear from the construction that Π̃ is a path in G3 .
We conclude with our main theorem.
Theorem 4.9. Let O be a set of polygonal obstacles in the plane with n vertices total, and let s, t be two
2
points outside O. Given a parameter ε ∈ (0, 1], there exists an O( nε2 log nε )-time approximation algorithm
for the minimal-cost path problem between s and t such that the algorithm returns an s, t-path of cost at
most (1 + ε)π(s, t).

5

Discussion

In this paper, we present the first polynomial-time approximation algorithm for the problem of computing
minimal-cost paths between two given points (when using the cost defined in (1)). One immediate open
problem is to improve the running time of our algorithm to be near-linear. A possible approach would be to
refine the notion of anchor points so it suffices to put only O(log n) additional points on each edge of the
refined Voronoi diagram.
Finally, there are other natural interesting open problems that we believe should be addressed. The first
is to determine if the problem at hand is NP-hard. When considering the complexity of such a problem, one
needs to consider both the algebraic complexity and the combinatorial complexity. In this case we suspect
that the algebraic complexity may be high because of the cost function we consider. However, we believe
that combinatorial complexity, defined analogously to the number of “edge sequences”, may be small. The
second natural interesting open problem calls for extending our algorithm to compute near-optimal paths
amid polyhedral obstacles in R3 .

References
[1] P. K. Agarwal and H. Wang. Approximation algorithms for curvature-constrained shortest paths. SIAM
J. Comput. 30(6):1739–1772, 2000.
[2] F. Aurenhammer, R. Klein, and D. Lee. Voronoi Diagrams and Delaunay Triangulations. World Scientific,
2013.
[3] J. F. Canny and J. H. Reif. New lower bound techniques for robot motion planning problems. Proc.
28th Annu. Symp. Found. Comput. Sci., pp. 49–60. 1987.
[4] D. Z. Chen, O. Daescu, and K. S. Klenk. On geometric path query problems. Int. J. Comput. Geometry
Appl. 11(6):617–645, 2001.
[5] D. Z. Chen and H. Wang. Computing shortest paths among curved obstacles in the plane. Proc. 29th
Annu. Symp. Comput. Geom., pp. 369–378. 2013.
17

[6] H. Choset, K. M. Lynch, S. Hutchinson, G. Kantor, W. Burgard, L. E. Kavraki, and S. Thrun. Principles
of Robot Motion: Theory, Algorithms, and Implementation. MIT Press, June 2005.
[7] M. B. Cohen, B. T. Fasy, G. L. Miller, A. Nayyeri, D. R. Sheehy, and A. Velingker. Approximating
nearest neighbor distances. Proc. 14th Symp. Algo. Data Struct., pp. 200–211. 2015.
[8] M. L. Fredman and R. E. Tarjan. Fibonacci heaps and their uses in improved network optimization
algorithms. J. ACM 34(3):596–615, 1987.
[9] M. R. Henzinger, P. N. Klein, S. Rao, and S. Subramanian. Faster shortest-path algorithms for planar
graphs. J. Comput. Syst. Sci. 55(1):3–23, 1997.
[10] J. Hershberger, S. Suri, and H. Yıldız. A near-optimal algorithm for shortest paths among curved
obstacles in the plane. Proc. 29th Annu. Symp. Comput. Geom., pp. 359–368. 2013.
[11] N. Lebeck, T. Mølhave, and P. K. Agarwal. Computing highly occluded paths on a terrain. Proc. 21st
Annu. ACM SIGSPATIAL Int. Conf. Adv. Geo. Info. Sys., pp. 14–23. 2013.
[12] J. S. B. Mitchell. Shortest paths and networks. Handbook of Discrete and Computational Geometry,
Second Edition., pp. 607–641. 2004.
[13] J. S. B. Mitchell, G. Rote, and G. J. Woeginger. Minimum-link paths among obstacles in the plan.
Algorithmica 8(5&6):431–459, 1992.
[14] C. Ó’Dúnlaing and C. Yap. A “retraction” method for planning the motion of a disc. J. Algo. 6(1):104–111,
1985.
[15] G. Song, S. Miller, and N. M. Amato. Customizing PRM roadmaps at query time. Proc. IEEE Int.
Conf. Robotics Automat., pp. 1500–1505. 2001.
[16] R. Wein, J. P. van den Berg, and D. Halperin. The visibility-voronoi complex and its applications.
Comput. Geom. 36(1):66–87, 2007.
[17] R. Wein, J. P. van den Berg, and D. Halperin. Planning high-quality paths and corridors amidst obstacles.
I. J. Robotics Res. 27(11-12):1213–1231, 2008.

18

