Abstract 1 Introduction 2 Preliminaries 3 Conditions for valid sites 4 Complexity 5 Algorithm References

Farthest-Point Voronoi Diagrams in the Hilbert Metric

Minju Song ORCID Graduate School of Artificial Intelligence, Pohang University of Science and Technology, Republic of Korea Mook Kwon Jung Department of Computer Science and Engineering, Pohang University of Science and Technology, Republic of Korea Hee-Kap Ahn ORCID Graduate School of Artificial Intelligence, Department of Computer Science and Engineering, Pohang University of Science and Technology, Republic of Korea
Abstract

The Hilbert metric, introduced by David Hilbert in 1895, is a projective metric defined on a bounded convex domain in a Euclidean space. For a convex polygon with m vertices and n point sites lying inside the polygon in the plane, it is shown that the nearest-point Voronoi diagram in the Hilbert metric has combinatorial complexity of O(mn) [Gezalyan and Mount, SoCG 2023]. In this paper, we show that the farthest-point Voronoi diagram in the Hilbert metric has combinatorial complexity O(m), which is independent of the number of sites. Also, we present an efficient algorithm to compute the farthest-point Voronoi diagram.

Keywords and phrases:
Farthest-point Voronoi diagram, Hilbert metric, Complexity, Algorithm
Copyright and License:
[Uncaptioned image] © Minju Song, Mook Kwon Jung, and Hee-Kap Ahn; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Computational geometry
Acknowledgements:
For helpful comments we thank Auguste H. Gezalyan, David M. Mount and the anonymous reviewers.
Funding:
This research was supported by the Institute of Information & communications Technology Planning & Evaluation (IITP) grant funded by the Korea government (MSIT) (No. RS-2019-II191906, Artificial Intelligence Graduate School Program (POSTECH)). This research was partly supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (RS-2023-00219980).
Editors:
Pat Morin and Eunjin Oh

1 Introduction

The Hilbert metric, introduced by David Hilbert in 1895 [16], defines a distance function between points in the interior of any convex body in d-dimensional space. Hilbert geometry provides a generalized framework that applies to any convex body, transcending the limitations of Euclidean space [21]. The significance of Hilbert metric is highlighted by a critical role in convex approximation, which is widely used in applications such as approximate nearest neighbor searches in the Euclidean metric and other metric spaces [1, 8], optimal construction of ϵ-kernels [6], approximate closest vectors [12, 13, 19, 23], and approximations of polytopes with low combinatorial complexity [3, 5, 7]. Various elements used in these approximations, such as Macbeath regions and Dikin ellipsoids, act similarly to Hilbert balls [2].

Despite its potential, not much is known about construction algorithms for structures in Hilbert geometry. Nielsen and Shao characterized balls in the Hilbert metric [20]. Bumpus et al. investigated the properties of balls and bisectors in the Hilbert metric [9]. A Voronoi diagram is one of the most fundamental structures in understanding the underlying geometry. Thus, it has been studied under different metrics [10, 17, 18, 22]. Gezalyan and Mount presented an O(mnlogn)-time algorithm for computing the nearest-point Voronoi diagram of n point sites in the Hilbert metric defined by a convex m-gon [15] and an O(n(logn+log3m))-time algorithm for computing the Delaunay triangulation [14]. They showed that the diagram has complexity Θ(mn). No previous work, however, is known about the farthest-point Voronoi diagram in the Hilbert metric. The farthest-point Voronoi diagram may reveal further characteristics of Hilbert geometry and its potential applications.

1.1 Our results and outline

We denote by FV(S) the farthest-point Voronoi diagram of n point sites in the Hilbert metric defined by a convex m-gon Ω. Unlike Voronoi diagrams in the Euclidean metric, FV(S) poses a few difficulties in the computation. The Hilbert distance between points is defined as the logarithm of the cross-ratio of them and the intersections of the line through the points with the domain boundary. It takes O(logm) time to compute the distance between points. The bisector between any two sites is a piecewise conic curve consisting of O(m) segments. Thus, a naïve divide-and-conquer algorithm using bisectors may take Ω(min{nm,m2}) time.

We show that FV(S) has combinatorial complexity Θ(m), which is independent of the number of sites. Moreover, we present an O(n(logn+log2m)+mlogn)-time algorithm for computing the diagram. This is the first algorithm for computing FV(S).

In Section 2, we introduce the Hilbert metric, Hilbert balls, Hilbert bisectors, and FV(S). In the Euclidean metric, a site of S has a nonempty cell in the farthest-point Voronoi diagram if and only if it is a vertex of the convex hull of S [11]. This is, however, not always the case in the Hilbert metric. If a site has a nonempty cell in FV(S), it is a vertex of the convex hull. But not every vertex of the convex hull always has a nonempty cell in FV(S). In Section 3, we characterize this phenomenon and show that each cell in FV(S) is connected and incident to the boundary of Ω. We give an ordering lemma for the sites of S and their Voronoi cells appearing along the boundary of Ω.

In Section 4, we analyze the combinatorial complexity of FV(S). We show that FV(S) has O(m) edges and each Voronoi cell is connected. Using this, we show that the number of sites with nonempty cells is O(m). By Euler’s formula, we show that FV(S) has O(m) vertices. We conclude that the combinatorial complexity of FV(S) is O(m). Additionally, since the complexity of FV(S) is at least the complexity of Ω, a lower bound on the combinatorial complexity of FV(S) is Ω(m). As a result, we give a tight upper bound on the combinatorial complexity of FV(S), which is Θ(m) and independent of the number of the sites of S.

In Section 5, we give an efficient algorithm of O(n(logn+log2m)+mlogn) time for computing FV(S). Our algorithm consists of three stages. The subsections in Section 5 describe these stages of the algorithm. In the first stage, we compute the convex hull of S and remove the points contained in the interior of the convex hull of S. In the second stage, we construct FV(S) restricted to the boundary of Ω incrementally by adding the sites of S one by one in clockwise orientation along the convex hull of S. In doing so, we maintain a list of sites that have nonempty boundary cell. Initially, contains the first two consecutive sites of S. When the next site s is added, we check whether s is the farthest from an intersection point of the boundary cells corresponding to the first and the last sites stored in . If s is not the farthest one from the point, it has an empty cell so we are done and move on to the next iteration. If s is the farthest one, it has a nonempty cell so we append s to . We compute the boundary cell of s along the boundary of Ω from the intersection point. In this way, we compute all sites of S whose Voronoi cell is nonempty in O(n(logn+log2m)) time.

In the third stage, we construct FV(S) by subdividing Ω into Voronoi cells using FV(S) restricted to the boundary of Ω. Our algorithm uses a divide-and-conquer technique similar to the one by Shamos and Hoey [24] that computes the nearest-site Voronoi diagram in the plane under the Euclidean metric. Roughly speaking, we partition a site sequence into two subsequences, SL and SR, of roughly equal size, and compute FV(SLSR) by merging FV(SL) and FV(SR) along their bisector recursively. But the merge step requires a novel algorithmic idea and an in-depth analysis as each bisector is a piecewise conic curve consisting of O(m) segments. In each recursive step, we compute approximate bisectors such that they become the exact bisectors in the last recursive depth. We show that this can be done in O(mlogmin{m,n}) time in total. Therefore, FV(S) can be computed in O(n(logn+log2m)+mlogn) time in total.

2 Preliminaries

For any two points p,qd, we denote the line segment connecting p and q by pq, and denote the Euclidean distance between p and q by |pq|. A set X of points is convex if for any two points p,qX, every point tpq is contained in X. The convex hull of X is the smallest convex set that contains X, which we denote by conv(X). We denote the boundary of X by X and the interior of X by int(X). For any two points p,qΩ, let χ(p,q) denote the intersection of the line through two points p and q with Ω.

2.1 The Hilbert metric and Hilbert balls

Definition 1 (Hilbert metric).

Given a convex body Ω and two points p,qint(Ω), let p¯ and q¯ denote the endpoints of χ(p,q) such that p¯,p,q,q¯ appear in order along χ(p,q). See Figure  1(a). The Hilbert distance d(p,q) between p and q is defined as

d(p,q)=12ln(|q¯p||q¯q||p¯q||p¯p|).

The quantity in the logarithm is the cross-ratio of (p,q;q¯,p¯). If p or q lies on Ω, d(p,q) can be formally defined to be +. This corresponds to a limiting case that a denominator approaches zero. The Hilbert distance d is extended to all pairs of points by letting d(p,p)=0. It satisfies the axioms of a metric, and in particular, it is symmetric and the triangle inequality holds. Observe d(p,q)+d(q,r)=d(p,r) if p,q, and r are collinear in Ω [21].

In the remainder of the paper, we abuse the notation and use Ω to denote a convex polygon with m vertices in the plane. For any two points p,qint(Ω), a simple binary search makes it possible to determine the two edges of Ω, each containing an endpoint of χ(p,q). Thus, the Hilbert distance between two points can be computed in O(logm) time.

Figure 1: (a) The endpoints p¯ and q¯ of χ(p,q) and spokes defined by p. (b) For any point x in the boundary of BΩ(p,ρ), d(p,x)=ρ. (c) The infinite Hilbert ball B(p,q).

For a point pint(Ω) and ρ>0, let BΩ(p,ρ) denote the Hilbert ball of radius ρ centered at p. Nielsen and Shao characterized the shape of Hilbert balls and showed how to compute them [20]. Consider the set of χ(p,v)’s for vertices v of Ω, which we call the spokes of p. See Figure 1(a). For each χ(p,v), there are exactly two points lying on χ(p,v) whose Hilbert distance from p is ρ. Those points are all in convex position. Then BΩ(p,ρ) is the convex polygon with vertices on those 2m points. We say BΩ(p,ρ) is the Hilbert ball centered at p with radius ρ. For a point xBΩ(p,ρ), d(p,x)ρ; the equality holds for x lying on the boundary of BΩ(p,ρ). For a point xΩBΩ(p,ρ), d(p,x)>ρ. See Figure 1(b).

We extend the concept of Hilbert balls to ones centered at points in Ω, which we call infinite Hilbert balls. Let p be a point in Ω, and let q be a point in int(Ω). For arbitrarily small δ>0, let pδ be the point on pq with |ppδ|=δ. As δ approaches 0, any sequence of Hilbert balls in the family {BΩ(pδ,d(pδ,q))} converges to the infinite Hilbert ball centered at p with radius d(pδ,q)=d(p,q), which we denote by B(p,q). See Figure 1(c).

2.2 Hilbert bisectors

Gezalyan and Mount [15] introduced the Hilbert bisector of two points p,qint(Ω), denoted by γ(p,q), which is the set of points xΩ satisfying d(x,p)=d(x,q). For any point xγ(p,q)int(Ω), qBΩ(x,d(x,p)) and pBΩ(x,d(x,q)). For any point xγ(p,q)Ω, qB(x,p) and pB(x,q). For a point xΩ, let p1,p2 be two endpoints of χ(x,p), and let q1,q2 be two endpoints of χ(x,q). Let 1, , and 2 be the lines containing the segments p1q1, pq, and p2q2, respectively. If xΩ, let x=p2=q2 and let 2 be the line tangent to Ω at x. It is shown that two cross ratios, (x,p;p1,p2) and (x,q;q1,q2), are the same if and only if these three lines meet at a common point. It follows d(x,p)=d(x,q), and thus x is on the bisector. See Figure 2(a-b).

Figure 2: γ(p,q) for cases (a) xint(Ω) and (b) xΩ. (c) The subdivision of Ω (square) by the spokes of p (red) and q (blue). γ(p,q) is a piecewise conic curve with joints on the spokes of p and q.

The Hilbert distances d(p,x) and d(q,x) of a point xint(Ω) are determined by the boundary edges of Ω incident to χ(p,x) and χ(q,x), respectively. Consider the subdivision of Ω by all spokes of p and all spokes of q. Observe that for every point x in a subregion, the set of edges of Ω incident to χ(p,x) and χ(q,x) remains the same. Thus, d(p,x) and d(q,x) for points x in a subregion can be formulated in explicit functions, and thus we can obtain the Hilbert bisector of p and q restricted to the subregion from the functions. It has been shown that γ(p,q) in a subregion is a conic curve. It follows that γ(p,q) is a piecewise conic curve whose joints lie on subregion boundaries [9]. Thus, we say that γ(p,q) consists of bisector segments. See Figure 2(c).

Lemma 2 (Lemma 2 of [14]).

For any three points in int(Ω) not lying on the same line, there is at most one Hilbert ball whose boundary contains them.

Lemma 2 naturally extends for infinite Hilbert balls. The lemma implies that γ(p,q)γ(q,r) is at most one point for any three points p,q,rint(Ω) not lying on the same line.

Lemma 3.

Two distinct (infinite) Hilbert balls intersect each other along their boundaries in at most two connected components.

2.3 Farthest-point Voronoi diagram

Let S be a set of n points lying in int(Ω) which we call sites. The farthest-point Voronoi diagram of S in the Hilbert distance on Ω, denoted by FV(S), is a subdivision of Ω into cells in which the same point of S is the farthest point in the Hilbert distance. The farthest-point Voronoi cell of a site sS, denoted by V(s), is the set of points whose farthest site is s in the Hilbert distance. Consider a point pΩ contained in V(s). If pint(Ω), d(p,s)d(p,s) for all sites sS. If pΩ, there is a point sequence {qi}i contained in int(Ω) such that the sequence converges to p and d(qi,s)d(qi,s) for all sites sS and for all i. Not every point of S has a nonempty cell in FV(S). We will investigate this in Section 3.

General Position Assumption.

We assume that no three sites in S are collinear, and in particular, the line passing through any pair of sites of S and the lines extending any two edges of Ω are not coincident at a common point, including all three being parallel. If this assumption does not hold, the bisectors separating Voronoi cells can widen into 2-dimensional regions. These general position conditions were also assumed by Gezalyan and Mount [15].

3 Conditions for valid sites

We study the conditions for a site to have a nonempty cell in FV(S). We say a site sS is valid for FV(S) if V(s). As for the farthest-point Voronoi diagram in the Euclidean metric, a site contained in the interior of conv(S) cannot have a nonempty cell in FV(S).

Lemma 4.

If a site s is contained in int(conv(S)), s is not valid for FV(S).

Proof.

Suppose that sint(conv(S)) is valid for FV(S). Then there is a point pV(s) such that d(p,s)d(p,s) for all sS. This implies that BΩ(p,d(p,s)) contains all sites of S. Since BΩ(p,d(p,s)) is convex, conv(S) is contained in BΩ(p,d(p,s)). Then sint(conv(S))int(BΩ(p,d(p,s))), contradicting that s lies on the boundary of BΩ(p,d(p,s)). In the Euclidean metric, every site has a nonempty cell in the farthest-point Voronoi diagram if it appears as a vertex of the convex hull of the sites. This is not necessarily true for FV(S) in the Hilbert metric. For two distinct points p,qint(Ω), let B1 and B2 be two infinite Hilbert balls, each of which contains both p and q on its boundary. Let Z(p,q)=B1B2. Gezalyan et al. [14] showed that no Hilbert ball contains p,q, and a point rint(Z(p,q)) on its boundary. Using Lemma 2, they showed that every Hilbert ball centered at a point in γ(p,q) and containing both p and q on its boundary contains Z(p,q). See Figure 3(a).

Figure 3: (a) Z(p,q)=B1B2 for two infinite Hilbert balls B1 and B2 with pB1 and qB2. γ(p,q) separates γ(p,r) from γ(q,r). (b) αi,α,αj,α appear in clockwise orientation along Ω. (c) Two infinite Hilbert balls, each containing both si and sj on its boundary. Then si+1Z(si,sj).
Lemma 5.

If a site is contained in Z(p,q) for sites p and q, it is not valid for FV(S).

Proof.

Let r be a site contained in Z(p,q) for some sites p and q. Then no Hilbert ball contains p, q, and r on its boundary [14]. This implies that γ(p,r) does not intersect γ(q,r). Without loss of generality, we assume that γ(p,q) separates p and r from q. Let x be a point contained in γ(p,q). Since the Hilbert ball centered at x and containing p and q on its boundary contains r, d(x,r)<d(x,p)=d(x,q). This means that γ(p,r) separates r and x from p, and γ(q,r) separates r and x from q. Since γ(p,q) does not intersect γ(p,r) and γ(q,r), γ(p,q) separates γ(p,r) from γ(q,r). Then the side of γ(p,r) containing p does not intersect the side of γ(q,r) containing q. Since V(r)={xΩsSd(x,s)d(x,r)}, we have V(r)=, and thus r is not valid for FV(S). See Figure 3(a) for an illustration.

By Lemma 5, a site rS may be not valid for FV(S) even for rint(conv(S)).

3.1 FV(𝑺) restricted to the domain boundary

To find all valid sites of S for FV(S) and compute FV(S) efficiently, we compute FV(S) restricted to the boundary of Ω. We denote it by bFV(S). The Voronoi cell in bFV(S) of a site sS, denoted by β(s), is the intersection of V(s) and Ω. We call a site sS valid for bFV(S) if β(s).

Lemma 6.

Let p be a point in V(s) and p¯ be the endpoint of χ(s,p) closer to p than to s. Then pp¯V(s).

Proof.

Suppose there is a point rpp¯ but rV(s). Let t be a site of S with rV(t). By definition, d(s,p)d(t,p) and d(t,r)>d(s,r). Combining these we have d(s,p)+d(t,r)>d(t,p)+d(s,r), or equivalently d(t,r)>d(t,p)+d(s,r)d(s,p)=d(t,p)+d(p,r) as s,p,r are collinear [21]. But this violates the triangle inequality, yielding a contradiction.

Since bFV(S) is the restriction of FV(S) on the boundary of Ω, a site valid for bFV(S) is also valid for FV(S). Lemma 6 implies that a site valid for FV(S) is also valid for bFV(S). Thus, we can identify all valid sites of S for FV(S) from bFV(S).

Lemma 7.

β(s) is connected for a site sS.

Proof.

If s is not valid for FV(S), β(s)= and we are done. Assume for the contradiction that s is valid for FV(S) and β(s) is not connected for a site sS. Let α and α be two connected components of β(s). Then there are two sites si,sjS{s}, not necessarily distinct, with connected components αi of β(si) and αj of β(sj) such that αi,α,αj,α appear in order along Ω in clockwise orientation, as shown in Figure 3(b). Observe that αi and α are separated by γ(si,s), and αj and α are separated by γ(sj,s). Since both the side of γ(si,s) containing αi and the side of γ(sj,s) containing αj contain s, γ(si,s) and γ(sj,s) intersect at least two times. Since s,si, and sj are not collinear, this contradicts Lemma 2.

By Lemmas 6 and 7, β(s) is nonempty and connected for every valid site s of S. Aronov et al. [4] gave an Ordering Lemma for the farthest-point geodesic Voronoi diagram for point sites in a simple polygon. We extend the ordering lemma for FV(S) with respect to Ω.

Lemma 8.

The order of valid sites along their convex hull is the same as the order of their Voronoi cells along the boundary of Ω.

Proof.

For ease of description, we relabel the sites such that s0,s1,st1 is the sequence of sites valid for FV(S) in clockwise orientation along their convex hull. We use modulo t for indices. First, we show that β(si) and β(si+1) are adjacent to each other for every i=0,,t1. Suppose that β(si) and β(si+1) are not adjacent to each other for some i. Let sj be a site such that β(sj) and β(si) are adjacent to each other and β(sj) appears right after β(si) in clockwise orientation along Ω. Since p=β(si)β(sj) is an endpoint of γ(si,sj), B(p,si) and B(p,sj) are the same. Then si+1,sj+1B(p,si). See Figure 3(c).

Observe that χ(si,sj) separates si+1 from sj+1 since all sites s0,s1,st1 appear in clockwise orientation along their convex hull. Without loss of generality, assume that si+1 is contained in the side of χ(si,sj) not containing p. Let q be the endpoint of γ(si,sj) other than p. Thus, q is contained in the side of of χ(si,sj) containing si+1. Then B(q,si) and B(q,sj) are the same, and thus B(q,si) contains both si and sj on its boundary. By Lemma 3, B(p,si) and B(q,si) intersect each other along their boundaries at most twice. Thus, si+1 is contained in B(q,si). Since si+1B(p,si)B(q,si), it follows from Lemma 5 that si+1 is not valid for FV(S). This is a contradiction that si+1 is valid. Thus, β(si) and β(si+1) are adjacent to each other.

There are two cases: β(s0),,β(st1) appear in order in clockwise orientation along Ω or they appear in order in counterclockwise orientation along Ω. Suppose the latter case. Then for some i, the side of χ(si1,si+1) containing si contains a point in β(si). Let p and q be the endpoints of γ(si1,si+1) such that β(si1),p,β(si+1), and q appear in clockwise orientation along Ω. By definition, si is contained in B(p,si+1). Observe that si is contained in B(q,si+1) by the argument in the previous paragraph. Thus, si is contained in Z(si1,si+1). By Lemma 5, si is not valid for FV(S), a contradiction. Thus, β(s1),,β(sn) appear in order in clockwise orientation along Ω.

4 Complexity

We analyze the combinatorial complexity of FV(S) by counting the numbers of vertices, bisector segments, and edges of FV(S). Let S^={s0,s1,st1} denote the set of sites valid for FV(S) such that s0,s1,st1 appear in clockwise orientation along their convex hull. We use modulo t for the indices of the sites in S^. Obviously, FV(S) and FV(S^) are the same.

For two sites s,sS^, we call each connected portion of γ(s,s) that appears in FV(S^) a Voronoi edge defined by s and s. Thus, a Voronoi edge is a curve consisting of bisector segments of γ(s,s), with the exception that the first and last segments might be truncated. Each endpoint of a Voronoi edge is a Voronoi vertex, which has degree 3 (if contained in the interior of Ω) or 1 (if contained in Ω). Each endpoint of a bisector segment is either a Voronoi vertex or a vertex with degree 2. We show that FV(S^) has O(m) Voronoi edges, and that FV(S^) consists of O(m) Voronoi cells and O(m) Voronoi vertices. This implies that FV(S^) has complexity O(m). Since the complexity of FV(S^) is at least the complexity of Ω, FV(S^) has complexity Ω(m). Thus, the combinatorial complexity of FV(S^) is Θ(m).

4.1 Complexity of FV(𝑺)

Gezalyan and Mount [15] showed that the combinatorial complexity of the nearest-point Voronoi diagram is O(mn). We show that the combinatorial complexity of the farthest-point Voronoi diagram is O(m). Recall that every bisector is a piecewise conic with joints lying on spokes. To analyze the combinatorial complexity of FV(S), we count the number of Voronoi vertices and the total number of bisector segments in FV(S). Let κ(p) denote the set of farthest sites for a point p in Ω. If κ(p) consists of a single element, we use κ(p) to denote the element. The following lemma shows an upper bound on the number of bisector segments.

Lemma 9.

There are O(m) bisector segments in FV(S).

Proof.
Figure 4: (a) χ(si,v) crosses V(si) at most twice. (b) χ(s,v) for vβ(s) and χ(s,v) for vβ(s) cross V(s). (c) A point xχ(s,s)γ(s,s) not contained in ss.

We count the number of bisector segments in FV(S) by counting the spokes of s that cross the boundary of V(s) for each sS. Consider a bisector segment σ of γ(si,sj) in FV(S) for two sites si and sj. Since γ(si,sj) is a piecewise conic with joints on spokes of si and sj, each endpoint of σ lies on a spoke of si or sj unless it is a Voronoi vertex. Let v be a vertex of Ω such that an endpoint of σ lies on χ(si,v). Then χ(si,v) intersects V(si). By Lemma 6, χ(si,v) intersects at most two bisector segments in V(si). See Figure 4(a). This implies that the number of bisector segments in FV(S) can be obtained by counting the total number of spokes of s that intersect V(s) for each sS.

Consider χ(s,v) for a site s and a vertex v of Ω such that χ(s,v)V(s). Then either vβ(s) or vβ(s). See Figure 4(b). If vβ(s), v is incident to at most two Voronoi cells, and thus the total number of such spokes is O(m).

Consider the case that vβ(s). Assume for the contradiction that there is another site s (s) such that χ(s,v)V(s) but vβ(s). Let p be the intersection of χ(s,v) and β(s), and let p be the intersection of χ(s,v) and β(s). See Figure 4(c). If v, s, and s are collinear, p=p and κ(p)=κ(p), implying s=s.

So assume that v, s, and s are not collinear. Since γ(s,s) separates β(s) and s from β(s) and s, γ(s,s) crosses each of ps, ss, and sp in an odd number of times. Thus, there is a point x on χ(s,s)γ(s,s) that is not contained in ss. By definition, d(x,s)=d(x,s). Since x,s, and s are all contained in χ(s,s), we have d(x,s)=d(x,s)+d(s,s) or d(x,s)=d(x,s)+d(s,s), implying that d(s,s)=0 and thus s=s.

Hence, the total number of such spokes is O(m). Since there are O(m) spokes that cross cell boundaries in FV(S), the total number of bisector segments in FV(S) is O(m). It remains to count the number of Voronoi vertices, which can be done by Euler’s formula.

Lemma 10.

For a site sS, V(s) is connected.

Proof.

Assume for the contradiction that V(s) is not connected for a site sS. Let C1 and C2 be two connected components of V(s). For each i=1,2, let pi be a point lying inside Ci, and let qi be the point closer to pi than s among two endpoints of χ(s,pi). By Lemma 6, piqiV(s). However, q1 and q2 are not connected in β(s), which contradicts Lemma 7.

Lemma 11.

There are O(m) sites in FV(S).

Proof.

By Lemmas 6 and 9, there are O(m) sites valid for bFV(S). Thus, there are O(m) sites in FV(S) by Lemma 8.

Theorem 12.

The farthest-point Voronoi diagram of n point sites lying inside a convex m-gon in the Hilbert metric has combinatorial complexity O(m).

Proof.

By Lemmas 10 and 11, the number of Voronoi cells is O(m). Since the number of bisector segments is O(m) by Lemma 9, the number of Voronoi edges is O(m). By Euler’s formula, the number of Voronoi vertices is O(m).

5 Algorithm

In this section, we present an algorithm to compute FV(S). Our algorithm computes bFV(S) and identifies all valid sites. Then it computes FV(S) in a divide-and-conquer manner.

5.1 Computing FV(𝑺) restricted to the domain boundary

By Lemma 4, every site of S contained in int(conv(S)) is not valid for FV(S). Hence, we compute conv(S) and remove all sites contained in its interior from S. This can be done in O(nlogn) time. Thus, all remaining sites in S are in convex position. We relabel them such that s1,s2,sn is the sequence of sites in clockwise orientation along their convex hull.

Some sites of S, however, may not be valid for FV(S). We will identify all valid sites of S by computing bFV(S). We do this incrementally by inserting sites one by one in order, checking if the newly inserted one is valid for the Voronoi diagram of the sites inserted so far, and handling the cases accordingly. We maintain a few structures. Let Si be the subset of S consisting of the first i sites of S for i=2,,n. Let βi(s) denote the Voronoi cell of sSi in bFV(Si). Let i be the list that maintains all valid sites for FV(Si).

Initially, let S2={s1,s2} and 2=[s1,s2]. We compute bFV(S2) by computing the endpoints of γ(s1,s2). In the i-th iteration with i3, we compute bFV(Si) and maintain i as follows. Let sl and sr be the first element and the last element in i1, respectively. Then there is a point p shared by βi1(sl) and βi1(sr). By Lemma 8, si is valid if and only if pβi(si). If d(si,p)<d(sl,p), si is not valid for FV(Si), and thus it is not valid for FV(S). We set i=i1 and move on to the next iteration. If d(si,p)d(sl,p), si is valid for FV(Si). We set i=i1. Then we update bFV(Si) from bFV(Si1) by computing the endpoints of βi(si). This can be done by searching them along the boundary of Ω from p, once in clockwise orientation and once in counterclockwise orientation. In doing so, we update i accordingly, and then append si to i.

Consider the case that we search for an endpoint of βi(si) along the boundary of Ω in counterclockwise orientation from p. Let q be the endpoint of βi1(sr) other than p. Observe that qβi1(sr) for site sr previous to sr in i1. If d(si,q)<d(sr,q), one endpoint of βi(si) lies on βi1(sr). We compute the endpoint of γ(sr,si) on βi1(sr). Otherwise, sr is not valid for FV(Si), and thus it is not valid for FV(S). We remove sr from i and move on to sr. We repeat this until one endpoint of βi(si) is found. See Figure 5.

Figure 5: (a) In the i-th iteration, si is inserted. (b) If d(si,p)d(sl,p), si is valid for FV(Si). We compute the endpoints of βi1(si) along Ω from p in both orientations. (c) bFV(Si).

We find the other endpoint of βi(si) in clockwise orientation similarly. After computing both endpoints of βi(si), we append si to i.

Lemma 13 (Lemma 7 of [14]).

Given an m-sided convex polygon Ω and any two points p,qint(Ω), the endpoints of γ(p,q) on Ω can be computed in O(log2m) time.

We can compute d(si,p) and d(sl,p) in O(logm) time. If d(si,p)<d(sl,p), we are done. If d(si,p)d(sl,p), we identify all sites not valid for FV(Si) among sites valid for FV(Si1), and remove them from i. This takes O(nlogm) time in total over all insertion steps. Then we compute the endpoints of βi(si). Observe that one endpoint of βi(si) is an endpoint of γ(si,s) and the other endpoint of βi(si) is an endpoint of γ(si,s), where s and s are the first and the last elements in i. We can compute the endpoints of βi(si) in O(log2m) time by Lemma 13. Since the number of sites is n, it takes O(nlog2m) time in total to compute bFV(S).

Lemma 14.

bFV(S) can be computed in O(n(logn+log2m)) time.

5.2 Computing FV(𝑺)

We have preprocessed bFV(S) of size O(m) and all O(min{m,n}) sites valid for FV(S) and bFV(S) by Lemma 14. We give an algorithm for computing FV(S) in O(min{mlogm,mlogn}) time by subdividing Ω into Voronoi cells using bFV(S). Our algorithm is based on a divide-and-conquer technique similar to the one by Shamos and Hoey [24] that computes the nearest-site Voronoi diagram in the plane under the Euclidean metric. But the merge step requires a novel algorithmic idea and an in-depth analysis to reduce the running time as each bisector is a piecewise conic curve consisting of O(m) segments.

Let S^=s0,,st1 denote the sequence of sites valid for FV(S) such that s0,,st1 appear in clockwise orientation along conv(S^). Observe t=O(min{m,n}). We use modulo t for the indices. For a site sS^, let R(s) denote the region in Ω bounded by sp, sq, β(s), where p and q are two endpoints of β(s). By Lemma 6, V(s)R(s). Observe that every spoke of s intersecting R(s) intersects V(s). Let n(s) denote the number of the spokes of s intersecting R(s). The total number of n(s) for all sS^ is O(m) by Lemma 9.

We compute FV(S^), which is the same as FV(S). Roughly speaking, we partition a site sequence into two subsequences, SL and SR, of roughly equal size, and compute FV(SLSR) by merging FV(SL) and FV(SR) along γ(SL,SR) recursively. The bisector γ(SL,SR) satisfies the property that any point of Ω lying on one side of γ(SL,SR) is farthest from some site in SL and any point of Ω lying on the other side of γ(SL,SR) is farthest from some site in SR. Observe that γ(SL,SR) is connected in Ω with two distinct points on Ω. If γ(SL,SR) was not connected or it had more than two points on Ω, it partitions Ω into four or more pieces, each belonging to either bFV(SL) or bFV(SR). Then the cells of bFV(SL) or bFV(SR) are not consecutive along Ω, contradicting Lemma 8. Also, γ(SL,SR) has no closed loop since no Voronoi cell in the loop is incident to Ω.

Consider the k-th recursive step of the algorithm. Let SL and SR be two input sequences of sites in the step. We have FV(SL) and FV(SR). For a site sSLSR, let Vk(s) denote the cell of s in FV(SLSR), and let Vk1(s) denote the cell of s in FV(SL) for sSL and the cell of s in FV(SR) for sSR. Let βk(s)=Vk(s)Ω and Rk(s)=R(s)Vk(s). Let Rk1(SL)=sSLRk1(s) and Rk1(SR)=sSRRk1(s).

If three consecutive sites si1,si,si+1 are contained in SLSR for some i, βk(si) and β(si) are the same. Thus, Vk(si)R(si) by Lemma 6, implying that Rk(si) is Vk(si).

Lemma 15.

The followings hold.

  1. 1.

    γ(SL,SR)Rk1(SL)Rk1(SR) is connected.

  2. 2.

    γ(SL,SR)(Rk1(SL)Rk1(SR)) does not appear in FV(S).

  3. 3.

    γ(SL,SR)Rk1(s) is connected for any sSLSR.

Proof.

Let γ=γ(SL,SR). Consider Claim 1. Since γ has an endpoint in Rk1(SL)Rk1(SR), it suffices to show that γRk1(SL) is connected and γRk1(SR) is connected. Assume for the contradiction that γRk1(SL) is not connected. Then there is a curve C contained in γRk1(SL) which has an endpoint on Rk1(si) for some site siSL. Consider the case {si1,si,si+1}SLSR. Then there is a point pΩRk1(si) such that the farthest site in SLSR of p is si, contradicting Vk(si)Rk(si)Rk1(si).

Thus, si1SLSR or si+1SLSR. By definition, Rk1(si) consists of a line segment and a part of γ(si,sl)’s for some slSL. If C has an endpoint on γ(si,sl), there is a point pΩRk1(SL) such that the farthest site of p is sl. This contradicts pRk(sl)Rk1(sl). Thus, γ intersects at least three times, contradicting Lemma 6. Therefore, γRk1(SL) is connected. We can show that γRk1(SR) is connected by exchanging the roles of SL and SR. Thus, Claim 1 holds.

Consider Claim 2. Let C be the part of γ(sl,sr) for slSL and srSR that appears in FV(S). Then CV(sl)Vk(sl) and CV(sr)Vk(sr). Since V(s)Rk1(s) for every sSLSR, CRk1(sl)Rk1(sr). Thus, CRk1(SL)Rk1(SR). By contraposition, Claim 2 holds.

Consider Claim 3. Let s be a site in SL. Let γ~ be the maximal portion of γ contained in Rk1(SL). By Claim 1, it suffices to show that γ~Rk1(s) is connected. Assume for the contradiction that γ~Rk1(s) is not connected. Then there is a region R bounded by γ~ and Rk1(s) satisfying RRk1(s). Since γ~ is connected, R does not intersect Ω. By Lemma 10, there is a site sSLSR with Vk(s)R. This contradicts that each Voronoi cell intersects Ω. Similarly, we can show the case for sSR.

Lemma 15.1 guarantees that once we compute the endpoint of γ(SL,SR) contained in Rk1(SL)Rk1(SR), we can compute γ(SL,SR) within Rk1(SL)Rk1(SR) by tracing the bisector from the endpoint. Also, Lemma 15.2 implies that it suffices to trace γ(SL,SR) within Rk1(SL)Rk1(SR) in computing FV(S).

5.2.1 Divide-and-conquer algorithm

Now we are ready to describe our algorithm for computing FV(S^) from bFV(S). In the k-th recursive step, we maintain a region Uk(s) which contains Vk(s) for sS^. As the base case, we initialize U0(s) to R(s). For the k-th recursive step, we compute Uk(s) from Uk1(s) for k1 inductively. In the last recursive step, we have Uk(s)=V(s) for every sS^.

Consider the recursive step with SL=si and SR=si+1. We compute the point pβ(si)β(si+1). Then we trace γ(si,si+1) starting from p until the bisector meets U0(si) or U0(si+1). Consider the case that γ(si,si+1) meets U0(si) at q first. We shoot a ray from q towards si+1 and find the point r of U0(si+1) hit by the ray. Let γ~ be the curve consisting of the part of γ(si,si+1) from p to q, and qr. Then γ~ partitions U0(si) and U0(si+1) into two subregions. We set U1(sj) to the subregion of U0(sj) containing β(sj) for each j=i,i+1. See Figure 6. We handle the case that γ(si,si+1) meets U0(si+1) first analogously.

Figure 6: (a) Tracing γ(si,si+1) from p. (b) Ray from q towards si+1. (c) U1(si) and U1(si+1).

Consider the k-th recursive step. Let SL and SR be the two input sequences of sites. Without loss of generality, let si be the last site of SL and si+1 be the first site of SR. Let Uk1(SL)=sSLUk1(s) and Uk1(SR)=sSRUk1(s). We find the point pβ(si)β(si+1). Then we trace γ(si,si+1) until it leaves (1) Uk1(si), (2) Uk1(si+1), (3) Uk1(SL), or (4) Uk1(SR).

Consider the case that (1) holds but (3) does not hold. Let q be the point where γ(si,si+1) leaves Uk1(si) and γ(si,si+1) enters Uk1(s) for sSL. If Uk1(s) has been visited before, we trace a ray from q towards s′′SR satisfying qUk1(s′′), until the first intersection with Uk1(s′′). If Uk1(s) has not been visited before, we repeat tracing γ(si+1,s) from q inwards Uk1(s) as before until it leaves one of those four regions. See Figure 7(a). We handle the case that (2) holds but (4) does not hold analogously.

Consider the case that (3) holds. Let q be the point where γ(si,si+1) leaves Uk1(SL). We trace a ray from q towards s′′SR satisfying qUk1(s′′) until the first intersection point with Uk1(s′′). See Figure 7(a). We handle the case that (4) holds analogously.

Let γ~ be the resulting curve from the tracing above. Then γ~ partitions Uk1(s) into two subregions for some sSLSR. We set Uk(s) to the subregion of Uk1(s) containing β(s).

Observe that Rk(s)Uk(s) for all sS^ by the construction of the algorithm. Since pRk1(SL)Rk1(SR), the following lemma holds.

Lemma 16.

Let SL and SR be two input sequences in the k-th recursive step. Then γ(SL,SR) and γ~ are the same in Rk1(SL)Rk1(SR).

Figure 7: (a) γ~ (blue) leaves Uk1(SL) or γ~ (red) visits Uk1(s) twice. (b) Edges of type (1) (red), edges of type (2) (thick black), and edges of type (3) (blue). (c) Uk1(sl) and Uk1(sr) for slSL and srSR. Updating Uk1(sl) and Uk1(sr) along γ~. (d) Uk(sl) and Uk(sr) after update.

We show how to maintain Uk(s) for all sS^ in a map Dk(s). Each region in Dk(s) has at most four sides. In the base case, we store the subdivision of U0(s) by the spokes of s in 𝒟0(s) for each sS^. We construct 𝒟k(s) from 𝒟k1(s) by shaving off the edges in 𝒟k1(s) along γ~ from an endpoint pΩ. Each edge of Dk1(s) belongs to one of three types: (1) part of a spoke of s, (2) an edge connecting a Voronoi vertex and β(s), and (3) part of Uk1(s)β(s). See Figure 7(b). Observe that γ~Uk1(s) is connected and it is part of the boundary of Uk(s). When γ~ crosses an edge of type (1), we shave off the part of the edge not contained in Uk(s). The resulting edge is incident to the intersection point. See Figure 7(c-d). Then we continue tracing γ~. When γ~ crosses an edge of type (2), we remove the edge and continue tracing γ~. When γ~ crosses an edge of type (3), we insert a Voronoi vertex v at the intersection and insert an edge χ(s,v)Uk(s) of type (3). If γ~ leaves 𝒟k1(s), we finish the construction of 𝒟k(s) by removing the boundary curve of 𝒟k1(s) from p to v.

5.2.2 Analysis

We analyze the running time for the k-th recursive step. Since we already have bFV(S), we can find an endpoint of γ(SL,SR) in O(1) time. By Lemmas 15.3 and 16, γ(SL,SR) in Uk1(SL)Uk1(SR) has complexity sSLSRO(n(s)). Thus, sSLSRUk1(s) has complexity sSLSRO(n(s)). The same Uk1(s) is visited O(1) times. We can check whether γ meets the same Uk1(s) for the second time in O(1) additional time. The ray shooting and partitioning take time linear to the complexity of each cell.

Now we analyze the running time of the algorithm. The recursion depth is O(logt)=O(logmin{m,n}) and sSn(s)=O(m) by Lemma 9. The total complexity of Uk1(s) for sites s over all recursive calls at a fixed level k of recursion is O(m). Thus, the algorithm runs in O(mlogmin{m,n}) time, after computing bFV(S) in O(nlogn+nlog2m) time.

Theorem 17.

The farthest-point Voronoi diagram of n point sites lying inside a convex m-gon in the Hilbert metric can be computed in O(n(logn+log2m)+mlogn) time.

References

  • [1] Ahmed Abdelkader, Sunil Arya, Guilherme D. da Fonseca, and David M. Mount. Approximate nearest neighbor searching with non-Euclidean and weighted distances. In Proceedings of the 13th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2019), pages 355–372, 2019. URL: https://dl.acm.org/doi/10.5555/3310435.3310458.
  • [2] Ahmed Abdelkader and David M. Mount. Economical Delone sets for approximating convex bodies. In Proceedings of the 16th Scandinavian Symposium and Workshops on Algorithm Theory (SWAT 2018), volume 101, pages 4:1–4:12, 2018. doi:10.4230/LIPICS.SWAT.2018.4.
  • [3] Ahmed Abdelkader and David M. Mount. Convex approximation and the Hilbert geometry. In Proceedings of the 7th Symposium on Simplicity in Algorithms (SOSA 2024), pages 286–298, 2024. doi:10.1137/1.9781611977936.26.
  • [4] Boris Aronov, Steven Fortune, and Gordon Wilfong. The furthest-site geodesic Voronoi diagram. Discrete & Computational Geometry, 9:217–255, 1993. doi:10.1007/BF02189321.
  • [5] Rahul Arya, Sunil Arya, Guilherme D. da Fonseca, and David M. Mount. Optimal bound on the combinatorial complexity of approximating polytopes. ACM Transactions on Algorithms, 18(4):1–29, 2022. doi:10.1145/3559106.
  • [6] Sunil Arya, Guilherme D. da Fonseca, and David M. Mount. Near-optimal ϵ-kernel construction and related problems. In Proceedings of 33rd International Symposium on Computational Geometry (SoCG 2017), volume 77, pages 10:1–10:15, 2017. doi:10.4230/LIPIcs.SoCG.2017.10.
  • [7] Sunil Arya, Guilherme D. da Fonseca, and David M. Mount. On the combinatorial complexity of approximating polytopes. Discrete & Computational Geometry, 58:849–870, 2017. doi:10.1007/S00454-016-9856-5.
  • [8] Sunil Arya, Guilherme D. da Fonseca, and David M. Mount. Optimal approximate polytope membership. In Proceedings of the 28th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2017), pages 270–288, 2017.
  • [9] Madeline Bumpus, Xufeng Caesar Dai, Auguste H. Gezalyan, Sam Munoz, Renita Santhoshkumar, Songyu Ye, and David M. Mount. Analysis of dynamic Voronoi diagrams in the Hilbert metric, 2024. arXiv:2304.02745.
  • [10] L. Paul Chew and Robert L. Dyrsdale III. Voronoi diagrams based on convex distance functions. In Proceedings of the 1st Annual Symposium on Computational geometry (SoCG 1985), pages 235–244, 1985.
  • [11] Mark De Berg, Otfried Cheong, Marc Kreveld, and Mark Overmars. Computational Geometry: Algorithms and Applications. Springer Berlin, Heidelberg, 3rd edition, 2008.
  • [12] Friedrich Eisenbrand, Nicolai Hähnle, and Martin Niemeier. Covering cubes and the closest vector problem. In Proceedings of the 27th Annual Symposium on Computational geometry (SoCG 2011), pages 417–423, 2011. doi:10.1145/1998196.1998264.
  • [13] Friedrich Eisenbrand and Moritz Venzin. Approximate CVPp in time 20.802n. Journal of Computer and System Sciences, 124:129–139, 2022. doi:10.1016/J.JCSS.2021.09.006.
  • [14] Auguste H. Gezalyan, Soo H. Kim, Carlos Lopez, Daniel Skora, Zofia Stefankovic, and David M. Mount. Delaunay triangulations in the Hilbert metric. In Proceedings of the 19th Scandinavian Symposium and Workshops on Algorithm Theory (SWAT 2024), volume 294, pages 25:1–25:17, 2024. doi:10.4230/LIPICS.SWAT.2024.25.
  • [15] Auguste H. Gezalyan and David M. Mount. Voronoi diagrams in the Hilbert metric. In Proceedings of the 39th International Symposium on Computational Geometry (SoCG 2023), volume 258, pages 35:1–35:16, 2023. doi:10.4230/LIPICS.SOCG.2023.35.
  • [16] David Hilbert. Ueber die gerade Linie als kürzeste Verbindung zweier Punkte. Mathematische Annalen, 46(1):91–96, 1895.
  • [17] Rolf Klein. Abstract Voronoi diagrams and their applications. In Proceedings of Computational Geometry and its Applications (CG 1988), pages 148–157, 1988. doi:10.1007/3-540-50335-8_31.
  • [18] Der-Tsai Lee. Two-dimensional Voronoi diagrams in the Lp-metric. Journal of the ACM, 27(4):604–618, 1980. doi:10.1145/322217.322219.
  • [19] Márton Naszódi and Moritz Venzin. Covering convex bodies and the closest vector problem. Discrete & Computational Geometry, 67(4):1191–1210, 2022. doi:10.1007/S00454-022-00392-X.
  • [20] Frank Nielsen and Laetitia Shao. On balls in a Hilbert polygonal geometry. In Proceedings of the 33rd International Symposium on Computational Geometry (SoCG 2017), volume 77, pages 67:1–67:4, 2017. doi:10.4230/LIPIcs.SoCG.2017.67.
  • [21] Athanase Papadopoulos and Marc Troyanov. Handbook of Hilbert geometry. European Mathematical Society, 2014.
  • [22] Evantha Papadopoulou and D. T. Lee. The L Voronoi diagram of segments and VLSI applications. International Journal of Computational Geometry & Applications, 11(05):503–528, 2001.
  • [23] Thomas Rothvoss and Moritz Venzin. Approximate CVP in time 20.802n – Now in any norm! In Proceedings of the 23rd International Conference on Integer Programming and Combinatorial Optimization (IPCO 2022), pages 440–453, 2022.
  • [24] Michael Ian Shamos and Dan Hoey. Closest-point problems. In Proceedings of the 16th Annual Symposium on Foundations of Computer Science (FOCS 1975), pages 151–162. IEEE, 1975. doi:10.1109/SFCS.1975.8.