Abstract 1 Introduction 2 Overview and Results 3 Maxima and staircases 4 Closest Pair 5 Convex hull 6 Approximate Euclidean minimum spanning tree References

On the Fragile Complexity of Geometric Algorithms

Boris Aronov ORCID Department of Computer Science and Engineering, Tandon School of Engineering, New York University, Brooklyn, NY, USA    Mayank Goswami ORCID Department of Computer Science, Queens College CUNY, New York, NY, USA    John Iacono ORCID Université libre de Bruxelles, Ixelles, Belgium    Indu Ramesh ORCID Department of Computer Science and Engineering, Tandon School of Engineering, New York University, Brooklyn, NY, USA
Abstract

Surprisingly, the question of bounding the maximum number of operations undergone by each individual element in an algorithm – known as the fragile complexity of the algorithm – has not received much attention. In a foundational paper, Afshani et al. (2019) developed the concept of fragility and explored classic problems such as sorting and selection from this perspective. Motivated by a suggestion for future research by Afshani et al., we initiate a study of fragile complexity in computational geometry. We obtain bounds on several time-honored questions in 2D such as computing the maxima, closest pair, convex hull, triangulation, and approximate Euclidean Minimum Spanning Tree (apx-EMST). Our algorithms for the maxima, convex hull, and triangulation problems are competitive with the classical algorithms in terms of worst-case runtime and guarantee polylogarithmic fragility. We present an O(nlog2n) time algorithm that returns a 1.0125-apx-EMST and achieves O(log2n) fragility, thus matching the best known performance up to polylogarithmic factors.

Keywords and phrases:
Fragile complexity, convex hull, maxima, closest pair, algorithmic complexity
Funding:
Boris Aronov: Partially supported by NSF Grant CCF-20-08551.
Mayank Goswami: Supported by National Science Foundation CCF-2503086. Part of this work was performed at the AlgoPARC Workshop on Parallel Algorithms and Data Structures at the University of Hawai’i at Mānoa, USA, with the support of the National Science Foundation (USA) under Grant No. 2452276.
John Iacono: Research supported by the Fonds de la Recherche Scientifique – FNRS (Belgium). Part of this work was performed at the AlgoPARC Workshop on Parallel Algorithms and Data Structures at the University of Hawai’i at Mānoa, USA, with the support of the National Science Foundation (USA) under Grant No. 2452276.
Indu Ramesh: Supported by NSF Grant CCF-20-08551.
Copyright and License:
[Uncaptioned image] © Boris Aronov, Mayank Goswami, John Iacono, and Indu Ramesh; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Computational geometry
Editor:
Pierre Fraigniaud

1 Introduction

Comparison-based algorithms are a fundamental and well-researched topic in computer science, and comprise a good fraction of most introductory algorithms courses. The traditional measure of the complexity of an algorithm is the total number of comparisons performed. For an input of n elements, however, the traditional algorithms typically do not care how these comparisons are spread across the elements. For example, in the sorting algorithm Quicksort, some pivots undergo Ω(n) many comparisons, which is higher than the average O(logn) comparisons per element for any optimal comparison-based sorting algorithm. Can one sort in O(nlogn) comparisons where every element participates in O(logn) comparisons?

Questions of the above flavor were considered in the seminal work of Afshani et al. [1], who studied the fundamental problems of sorting, selection, and median via the lens of fragile complexity. A comparison-based algorithm 𝒜 has fragile complexity f(n) if, for every input of n elements, any element participates in at most f(n) comparisons during the execution of A on . The fragile complexity of a problem is the minimum fragile complexity of any comparison-based algorithm solving that problem. We will soon highlight (and later use) some results from this foundational paper.

There are several motivations for considering the fragile complexity of a problem. Sometimes a comparison with an element results in the element undergoing some destructive phenomenon. Consider athletes being ranked via matches (comparisons), or ranking consumable objects (smørrebrød, beer, etc.) by comparisons. Every comparison has a physical toll on the athlete and reduces the amount of the consumable object, and so it is reasonable to ask whether there are algorithms that spread the comparisons across the elements evenly. In addition to the above, there may be privacy advantages in not using an element too many times. Furthermore, a procedure that involves using every item roughly an equal number of times may be perceived to have a lower bias compared to a procedure where some elements are involved in many more operations than others.

The original paper [1] ends with a tantalizing open question: what about the fragile complexity of geometric problems? They state: “In particular, it would be interesting to study “geometric orthogonal problems” such as finding the maxima of a set of points, detecting intersections between vertical and horizontal line segments, kd-trees, axis-aligned point location and so on. All of these problems can be solved using algorithms that simply compare the coordinates of points.” Apart from another work on the fragile complexity of adaptive algorithms [5], we are not aware of other research on fragile complexity.

In this work we address the fragile complexity of fundamental geometric problems that are standard in textbooks [10] for an introductory course on computational geometry: the problems we study are maxima, closest pair, convex hull, triangulation, and approximate Euclidean Minimum Spanning Tree (apx-EMST) problems. In most cases, existing algorithms for these problems have at least linear fragility. For example, the classical divide-and-conquer algorithm for closest pair compares a candidate closest-pair distance to a linear number of distances, forcing linear fragility. One could imagine needing to compute the closest pair of battery-powered sensors, where each operation involving a sensor, such as requesting its coordinates, uses up its battery, and no location information can be stored for later processing. In this setup, a fragility-sensitive algorithm would help control battery drainage for all sensors. The Euclidean MST has recently found numerous applications in clustering high-dimensional data [14], and one can imagine that finding algorithms for EMST with low fragility may offer privacy and fairness advantages.

A number of our conclusions are somewhat surprising: we argue, for example, that a triangulation of a point set, potentially containing linear-degree vertices, can be constructed with polylogarithmic fragility. We also argue that any closest-pair algorithm in an algebraic decision tree model has to operate on the pair of closest points at least Ω(logn) times.

2 Overview and Results

We first define the models in which we will derive our upper and lower bounds.

Computation model.

In this paper, every problem we consider takes as input an array or list of items, such as numbers, points, or lines, which have real-valued attributes such as coordinates. Unless otherwise stated, the algorithms use the real RAM model of computation (without floors or ceilings) where decisions are made based on the signs of bounded-degree polynomials in the input attributes. The lower bounds use algebraic decision trees; see [11] for an overview. For some problems, we use a more restricted model.

Fragile complexity model.

Fix a specific algorithm solving a given problem, which stays in the algebraic decision tree/real RAM model. Consider the tree representing all possible computation and decision paths of the execution of the algorithm. The fragility of an item along an execution path is the number of operations it is involved in. The worst-case fragility of an item is the maximum number of operations it is involved in, along all possible executions paths. The fragility of the algorithm is the maximum fragility of any of the input items.

As we are also interested in the total work (or “cost” or “running time”) of our algorithm, we additionally measure the total number of real RAM operations performed along a worst-case execution path. For a randomized algorithm, we also examine the expected cost and fragility. We summarize the prior work next, and then state our problems and results.

Prior Work.

Prior work on fragile complexity has focused on comparison-based algorithms [1] and adaptive algorithms [5]. We utilize the following results from [1] in our work:

Minimum: Given a list X=x1,x2,,xn of n numbers, find the smallest number, only allowing comparisons of the form xi<xj; more precisely, return argminixi. If numbers repeat, return the index of one smallest.

Theorem 2.1 (Afshani et al. [1]).

There is an algorithm that solves Minimum with O(logn) fragile complexity and O(n) runtime. Solving Minimum requires Ω(logn) fragile complexity. The minimum element itself requires Ω(logn) fragility.

The upper bound in Theorem 2.1 comes from computing the minimum via tournament tree.

Sorting: Given a list X=x1,x2,,xn of n numbers, find a permutation σ of the indices 1,,n so that xσ(1)xσ(2)xσ(n).

Theorem 2.2 (Ajtai et al. [3]).

The AKS sorting network solves Sorting with O(logn) fragile complexity. Sorting has Ω(logn) fragile complexity.

As a warmup for fragility, here is a proof of the Sorting fragility lower bound: Sorting has a lower bound of Ω(nlogn) comparisons in the algebraic decision tree model. By the pigeonhole principle, the fragility of some element must be Ω(logn).

Our results.

We obtain results on the following geometric problems on sets of points through the lens of fragile complexity. To our knowledge, this has not been done before.

Staircase: The staircase of a list of points P is the x-ordered sequence of points in P where no other point has both a larger x- and a larger y-coordinate. Given a list of P=p1,,pn points, output the sequence of indices of the staircase of P.

Closest Pair: Given a list P=p1,p2,,pn of n points in the plane, find the closest pair among them. More precisely, return a pair (i,j) of indices so that d(pi,pj)=minij{d(pi,pj)}.

Convex Hull: The convex hull is the smallest convex set enclosing a set of points. Given a list P=p1,,pn of points, produce the vertices of the convex hull of P in counterclockwise order.

Triangulation: A triangulation of a point set is a subdivision of its convex hull into triangles whose edges form a maximal set of non-crossing segments connecting pairs of points. Given a set P=p1,,pn of points, produce a triangulation of the point set.

Approximate Euclidean MST: The Euclidean Minimum Spanning Tree (EMST) of a point set P is a spanning tree of P whose edges have minimum total length among all spanning trees on P, where the length of an edge is the Euclidean (2) distance between its vertices. A c-approximate EMST (apx-EMST) is a spanning tree of P whose total length is at most c times the length of the EMST. Given a set P=p1,p2,,pn of n points in the plane, find an approximate Euclidean MST, for some c1.

Our results are given in the table below. Our bounds for staircase are tight; a logarithmic gap remains in the other problems.

Problem Upper Bound Lower Bound
Staircase O(logn) Ω(logn)
Closest Pair O(log2n) Ω(logn)
Convex Hull O(log2n) Ω(logn)
Triangulation O(log2n) Ω(logn)
Approximate Euclidean MST O(log2n) Ω(logn)

Note that the last lower bound is for the exact Euclidean MST. Observe that, somewhat surprisingly, we can achieve polylogarithmic fragility for computing a triangulation potentially containing high-degree vertices.

3 Maxima and staircases

Let P=p1,,pn be a list of n points in the plane. A point p=(x,y)P is dominant (or a maximum) if no other point of P has both a larger x- and a larger y-coordinate. We define lexicographical order on points in the plane as follows: p<q if x(p)<x(q), or x(p)=x(q) and y(p)<y(q). We consider Staircase and a related problem Maxima, the difference being in whether we insist on outputting the maxima in their lexicographic order:

Maxima: Given P as above identify all maxima, that is, compute the not necessarily ordered set of indices of the dominant elements of P.

We propose a divide-and-conquer algorithm that solves the potentially harder Staircase problem in O(nlogn) time with fragility O(logn) and argue below that this is the best one can do even for Maxima.

Algorithm.

  1. 1.

    Sort the points in P in lexicographic order.

  2. 2.

    We now proceed recursively.

    1. (a)

      Divide P at the median into Pleft and Pright.

    2. (b)

      Recursively find the staircase sleft of Pleft and the staircase sright of Pright.

    3. (c)

      Let pleft be the point of Pleft corresponding to the first index of sleft and pright the point of Pright corresponding to the first index of sright. If y(pleft)<y(pright), return sright.

    4. (d)

      Otherwise, binary search for y(pright) (the key) among the points corresponding to sleft. Return the section of sleft containing points with y-coordinate at least that of y(pright), followed by sright.

Lemma 3.1.

The above algorithm for Staircase achieves O(logn) fragility with O(nlogn) running time.

Proof.

Step 1, presorting, uses O(logn) fragility [3] and costs O(nlogn) running time (this step is the bottleneck).

We argue that each point of the set P is involved in a logarithmic number of comparisons over the entire runtime of the recursive algorithm. Each point of P participates in a logarithmic number of subproblems. Step 2(a) makes no comparisons. Step 2(c) involves one comparison between two points of the current subproblem and therefore causes at most logarithmic fragility.

It remains to bound the fragility arising from the binary search in Step 2(d). Each binary search comparison is between a key and an element of the current subproblem; the latter participates in one comparison per binary search and therefore a logarithmic number of comparisons overall. The key (y(pright)) is compared a logarithmic number of times in a fixed binary search. The binary search is only triggered once for each possible pright (when it is the topmost point of Pright, but not the topmost point in P). It will no longer be pright at higher levels of recursion. Hence it only participates in a logarithmic number of comparisons in its capacity as a key, completing the proof of logarithmic fragility.

In [17, Lemma 2.2] it was argued that a comparison-model decision tree for solving the Maxima problem must have at least n! leaves and therefore requires Ω(nlogn) comparisons. In the algebraic decision tree model, Kirkpatrick and Seidel give a lower bound of Ω(nlogh) [15] for Maxima, where h is the number of maxima. By the pigeonhole principle, and because h=Θ(n) in the worst case, we obtain a lower bound of Ω(logn) on fragility of Maxima.

4 Closest Pair

We describe a randomized algorithm with O(log2n) expected fragility to solve this problem. We also prove a lower bound on Ω(logn) fragility of any algorithm solving Closest Pair in a more restricted model of computation we call the CP-model, which only allows comparisons of the form xixj<d(pk,pl), d(pi,pj)<d(pk,pl), between x-coordinates of the input points, and between y-coordinates.

Note that we can as well assume points are distinct, since identifying repeated points requires Θ(nlogn) work (in all models we consider) and therefore Θ(logn) fragility in our model and can be run as a preprocessing step.

Closest Pair: Algorithm.

We will follow the O(nlogn)-time closest-pair divide-and-conquer algorithm from [8], with adjustments for fragility. Assume we are given an array P of points pi=(x,y). The following are the steps our algorithm takes.

  1. 0.

    Pre-sort the points of P, once by x-coordinate and once by y-coordinate, storing them in arrays X and Y, respectively. Each point “knows” its position in these two arrays. That is, X[i] not only stores the point of P with ith largest x-coordinate, but also its position in the Y array, and vice versa.

  2. 1.

    Divide the array X into two parts, XL and XR, of nearly equal size partitioned by the median x-coordinate xm. Let YL and YR denote the corresponding array of points, sorted by y-coordinate – they can be computed from Y in linear time using the cross links mentioned above.

  3. 2.

    Recursively solve Closest Pair (starting at step 1) on (XL,YL) and (XR,YR), which return closest pairs (pL,qL) and (pR,qR), respectively. Let (p,q) be the pair that defines the smaller distance between these two pairs and let δ=d(p,q).

  4. 3.

    Consider the strip of width 2δ centered at the line x=xm. We identify the points of P lying in this strip in the following fragility-sensitive manner (recall that we cannot store the value δ, but need to refer to p and q as necessary; we also need to watch the fragility of xm). Specifically, we find the smallest index iL in X so that xmxiL<δ (if it exists), by binary search. Similarly, we find the largest index iR in X so that xiRxm<δ. The portion X[iLiR] contains precisely the points of P in the desired strip.

  5. 4.

    We can extract the points of X[iL,,iR] into an array F ordered by y-coordinate by scanning through Y once and collecting points whose position in X lies in [iL,iR].

  6. 5.

    As discussed in [8], any pair of points at distance less than δ from each other will appear at most seven places apart in F. Therefore, we now collect the following list of point pairs: a point F[i] and a point F[j] at most 7 positions beyond it, i.e., with i<ji+7. This produces no more than 7n pairs of points. We can now apply SampleMinimum from [1] to this list of pairs, to find the smallest distance defined by one them.

  7. 6.

    We return the pair with smaller of two distances: δ=d(p,q) and the closest pair from step 5.

Lemma 4.1.

The algorithm above runs in O(nlogn) with O(log2n) expected fragile complexity.

Proof.

Step 0 (presorting) costs O(logn) fragility using the AKS sorting network [3].

The algorithm then proceeds by divide and conquer with O(logn) levels. Step 1 does not require access to point coordinates. We will show through analysis of the further steps that step 2 requires O(logn) fragility. Step 3 (or computing iL and iR) involves binary search, which costs O(logn) fragility for points p and q and coordinate xm; the other points potentially touched in binary search cost O(1) fragility per point. Step 4 (creating the array F) involves constant fragility per point. For step 5, each point in F participates in O(1) pair comparisons (by the geometric analysis in [8]). Utilizing the minimum algorithm from [1] in step 5 allows us to calculate the overall minimum with expected O(logn) fragile complexity – each value comparison in minimum computation translates to a comparison of two distances between points in P. Generating the solution pair in step 6 involves O(1) fragility.

Since we can guarantee O(logn) fragility at each level of recursion, and it is possible that the same pair of points is the closest at all logn levels of recursion, the overall fragile complexity is O(log2n).

Note that the fragility analysis of the above algorithm is tight in the worst case. Some points will participate in Ω(log2n) operations. Indeed, consider a point set whose size n is a power of 2, in which the leftmost two points (p1,p2) define the smallest distance d. Furthermore, make sure that that the x-separation between any other pair of points is larger than d. Then (p1,p2) will be the solution of the leftmost subproblem on all levels of recursion and will be involved in a logarithmic number of binary search comparisons at each level.

Closest Pair: Lower Bound.

We give a fragility-preserving reduction from Minimum to Closest Pair in the CP-model. This will show not only that Closest Pair has Ω(logn) fragile complexity, but also the closest pair of points experiences Ω(logn) fragility.

We start with an instance X of Minimum, which is a list consisting on n distinct numbers xi, satisfying two additional constraints. We assume that X[0,0.1] and that, for any two values, xi and xj (with ij), either xi>2xj or xj>2xi. Map each xi to two points p2i=(0,100i) and p2i+1=(xi,100i). This transforms an instance X of Minimum, with n numbers, to an instance P=P(X)=p0,,p2n1 of Closest Pair, with 2n points.

Consider any algorithm A that solves Closest Pair using only the comparisons mentioned. Note that we never need to actually compute the distance from a point to itself or compare the distance defined a pair of points to itself: the answer is known without performing the calculation. Consider an instance X to Minimum subject to the above constraints, transform it into an instance P=P(X) of Closest Pair according to the mapping above, and run A on P. We start with an immediate fact.

Fact 4.2.

Let d be the distance between two distinct points of P. Then, there exist integers st>0 such that:

  1. (a)

    d[100s100t,100s100t+0.1].

  2. (b)

    If s=t, d[0,0.1],

  3. (c)

    if s>t, d99, and

  4. (d)

    two such distances d, d defined by distinct pairs of exponents (s,t) and (s,t), with s>t and s>t, can be compared based solely on the values of the exponents s,t,s,t (the distances need not be computed nor compared).

Two points in P are twins if they come from the same number in X, i.e., they are points p2r and p2r+1 for some r, 0rn1.

Claim 4.3.

The closest pair of points in P=P(X) must be the closest pair of twins. In symbols, it is the pair (p2i,p2i+1) with i=argmin0i<nxi.

Proof.

By ˜4.2(b)&(c), the smallest distance must correspond to some pair (p2r,p2r+1) of twins. But d(p2r,p2r+1)=xr, for all r, and thus the smallest distance in P corresponds to the minimum in X, completing the proof.

Lemma 4.4.

Every comparison of the form xixj<d(pk,pl) among the points of P=P(X) can be resolved by examining the indices i,j,k,l, and by making at most two comparisons of two values from X.

Proof.

If k=l, pk and pl are the same point, and the comparison can be resolved by one comparison, xi<xj. If i=j, the comparison evaluates to true. If both k=l and i=j, the comparison evaluates to false. So we assume kl and ij below.

Case 1: 𝒑𝒌 and 𝒑𝒍 are twins.

In other words, i=2r and j=2r+1, or vice versa. Then d(pk,pl)=xr, and the comparison is equivalent to xi<xj+xr.

Recall that we assumed a “gap”: for any two numbers xa,xbX, if xb<xa, then xa>2xb; and if xa<xb, then xb>2xa; otherwise xa=xb.

Suppose xi>xj and therefore xi>2xj, is true. With one comparison of xi and xj exhausted, we compare xi and xr to check if xi>xr (and therefore xi>2xr). If this comparison returns true, adding the two inequalities gives us xi>xj+xr, implying that the original inequality of xi<xj+xr is false, so we are done in two comparisons. Otherwise, xr>2xi or xr=xi. In both cases, xi<xj+xr is true; two comparisons are enough.

If xi>xj is false, we check if xj>2xi by comparing xi and xj. Since xj+r>2xi+r, the original comparison evaluates to true. Otherwise xi=xj, which we don’t need to check – the original comparison evaluates to true.

Case 2: 𝒑𝒌 and 𝒑𝒍 are not twins.

Suppose pk and pl are not twins. Then, by (c) of ˜4.2, d99. Since xixj[0,0.1], the comparison evaluates to false.

Lemma 4.5.

Every distance comparison of the form d(pi,pj)<d(pk,pl) among the points of P=P(X) can be resolved by just examining the values of the indices i,j,k,l or is the result of making at most one comparison of two of the original numbers from X.

Proof.

˜4.2 implies that if pi,pj,pk,pl have three or four distinct y-coordinates among them, the comparison can be resolved by just examining the y-coordinates, which are determined by the indices i,j,k,l. So it remains to handle cases where only two distinct y-coordinates appear among these, not necessarily distinct points. Note that we do not need to address the case of one y-coordinate, as that means at most two distinct points are involved in the distance comparison, which can be resolved without examining x-coordinates. Additionally, if there are no twins and exactly two distinct y-coordinates, the two pairs of points in the comparison are the same. Below are the remaining cases.

Case 1: Two Pairs of Twins.

Suppose pi and pj are twins (i=2r and j=2r+1, or vice versa) and pk and pl are twins (k=2s and l=2s+1, or vice versa). Then d(pi,pj)=xr, d(pk,pl)=xs, so the comparison is equivalent to xr<xs, as claimed. Now suppose pi and pk are twins and pj and pl are twins. If pi and pj are even and pk and pl are odd, so that i=2r and k=2r+1 and j=2s and l=2s+1, then d(pk,pl) is greater than d(pi,pj) as it involves a positive x-coordinate difference, while d(pi,pj) does not, so d(pi,pj)<d(pk,pl) is true. Now suppose pi is even and pj is odd and pk is odd and pl is even. Then i=2r, j=2s+1, k=2r+1, l=2s and the distance comparison is equivalent to xs<xr. Similar reasoning applies if (i,j),(k,l) pairs are interchanged.

Case 2: One Pair of Twins.

If there is one pair of twins and two y-coordinates, then the comparison involves the same point, p, on both sides, and two other points. Suppose i=2s, k=j=2r+1, and l=2s+1: without loss of generality, pi and pl are twins, and p=pj=pk with an odd index. Then the y-coordinate differences cancel out on both sides, and the comparison of distances reduces to xr<|xsxr|, which can be resolved by comparing xr to xs, since by our assumption, either 2xr<xs or 2xs<xr. If j=k is even, we have i=2s, k=j=2r, and l=2s+1, which resolves to 0<xs, which is true.

We call a comparison of the two forms above on P(X) useful if it reduces to at most two comparisons of two elements in X; refer to the lemmas above. Any other comparison does not depend on the xi values; we refer to these as useless comparisons.

An execution of A for Closest Pair on P(X) can be used to solve Minimum on X by removing useless comparisons (i.e., resolving them without accessing X) and turning useful distance comparisons into comparisons between numbers of X. Note that the transformation preserves fragility as it does not require access to X – we do not explicitly construct P(X), but rather simulate each operation of A on its points by translating them to operations on point indices and comparisons of elements in X.

Theorem 4.6.

Closest Pair is at least as hard as Minimum and therefore has Ω(logn) fragile complexity in the CP-model. Additionally, the closest pair itself has a fragile complexity of Ω(logn).

Note that we could also obtain an Ω(logn) lower bound on fragility in the algebraic decision tree model (if we reduce, for example, from Element Uniqueness to Closest Pair in one dimension, to Closest Pair) [20], since this requires Ω(nlogn) operations and thus Ω(logn) fragility, by pigeonhole principle. However, such reasoning does not yield any information about the fragility of the closest pair itself, which is why we provided the alternate reduction above.

5 Convex hull

Computing the convex hull of a set P of points is one of the time-honored problems in computational geometry with many algorithms described in the literature. However, on even casual examination, the best-known algorithms do not guarantee reasonable fragility. We observe that many (if not all) of the existing convex hull algorithms have Ω(n) fragile complexity. For example, Graham’s scan [12] requires linear fragility due to one point possibly being involved in an orientation test a linear number of times. Jarvis’ march, also known as the gift-wrapping algorithm [13], requires linear fragility due to a linear scan it performs. The ultimate planar convex hull algorithm of Kirkpatrick and Seidel [16] requires linear fragility due to how their marriage-before-conquest bridge-finding routine is implemented.

Note that if P is a multiset, we can remove duplicates in O(nlogn) time with O(logn) fragility, and this does not affect the overall upper bounds. This preprocessing step allows us to assume that the points in P are distinct. To further simplify the description, we assume that the set is in general position: no three points are collinear and no two lie on the same vertical line. We will adapt the algorithm of Preparata and Hong for computing the convex hull [19]. The upper hull UCH(P) of a point set S is the set of points p on the boundary of its convex hull with the property that an open upward vertical ray emanating from p is disjoint from the convex hull. The upper convex hull of a finite point set can be conveniently represented as the sequence of its vertices, naturally ordered by the x-coordinate. The lower hull is defined symmetrically. We compute the convex hull by computing the upper and the lower hull of a point set separately and combining them. The last step takes O(1) time and does not affect fragility, if the hulls are represented by suitable linked lists of indices.

We now describe the upper hull computation. We proceed by divide-and-conquer, so the interesting step is merging two upper hulls. Consider two upper hulls UCH(Q) and UCH(R), comprising points qn,qn1,,q1 and r1,,rn, respectively, in this x-order. A point rj is a tangent point (of R) for qi if all points of R lie on or under the line qirj supporting the segment qirj. If qi is also a tangent point (of Q) for rj, qirj is the upper tangent of Q and R.

Bridge-Finding: Find the upper tangent to the two upper hulls UCH(Q) and UCH(R), given as arrays of points Q=qn,,q1 and R=r1,,rn, where Q is left of R and the points are sorted by the x-coordinate.

Algorithm for Bridge-Finding.

We follow the exponential-then-binary search approach for the merge portion of mergesort used in [1], adapted to the geometry of convex hulls. In the exponential portion, we start with the rightmost point q1 of UCH(Q) and the leftmost point r1 of UCH(R), q1r1 being a tentative bridge between the two upper hulls. The goal is to identify a tangent point rl for q1. In the exponential portion of the search, we fix q1 and then, starting with r1=r20, we examine points r2k, for k=0,1,2,, until we find k for which q1r2kr2k+1 is oriented clockwise. If q1r2k1r2k is also oriented clockwise, rl=r2k – we found the tangent for q1. Otherwise, the desired tangent point rl for q1 lies between r2k1 and r2k and we use a binary search to identify it.

Let rj be the current candidate in the binary search for the tangent point for q1. Geometrically, if the segment qirj goes through UCH(R), rj+1 (and also all points beyond it) lie below lqirj, and rj1 lies above lqirj, then rj overshot rl (i.e., j>l). Otherwise, r1,,rj1 lie below lqirj, rj+1 lies above lqirj, and the binary search continues in the opposite direction.

When we finally identify the tangent rl for q1, if q1rl is not an upper tangent (meaning rl is a tangent point for q1, but q1 is not the tangent for rl), we can discard q1 and the points r1,,rl1.

We continue the exponential and binary search on Q=rl,,rn and R=q2,,qn, swapping left and right and thus the roles of Q and R, starting with a tentative bridge of rlq2 (the details of undershooting, overshooting, and discarding are symmetric). The algorithm terminates when qirj is the upper tangent.

Lemma 5.1.

No point during the execution of the algorithm Bridge-Finding participates as a non-key in more than O(logn) exponential and/or binary searches.

Proof.

Suppose exponential search from qi begins at index r, and binary search proceeds in the vertices beginning at index r+2l and ending at index r+2l+1. Suppose the tangent to qi is r. Any point p touched during exponential search is either discarded or becomes part of binary search. If p is left of r, it is discarded after the binary search and not touched again. Otherwise, if p is right of r, we will show that the distance between p and r, the starting point of exponential search, is halved each time.

In particular, we prove that pr2(pr). Since rr+2l, 2r2r+2l+1. Subtracting r from both sides, we get 2rrr+2l+1. Since pr+2l+1, p2rr. Subtracting the right side, we get p2r+r0. Adding p to both sides, and rearanging, we obtain 2(pr)pr. Since the distance to r is at least halved at least in each step, this cannot happen more than a logarithmic number of times; thus p can only be involved in a logarithmic number of binary searches.

Lemma 5.2.

The algorithm Bridge-Finding as described above achieves O(logn) fragile complexity with O(n) runtime.

Proof.

Any point that acts as a key for exponential and/or binary search is touched O(logn) times and discarded. It could also be touched a constant number of times in a single exponential and/or binary search. By Lemma 5.1, no point is involved in more than O(logn) exponential and/or binary searches. The sidedness tests used to test the tangency and/or upper tangency condition can be implemented with O(1) fragility using orientation tests on triples of points. Each time an element is touched, the two elements next to it are touched, but this only increases the fragility by a factor of at most three.

As far as the runtime is concerned, the combination of exponential and binary searches are designed to cover (up to constant factors) the same region of the upper hull as the classical algorithm of Preparata and Hong [19] and therefore cannot be slower than their linear-scan procedure that takes total linear time.

We thank the anonymous reviewer for suggesting that the bridge-finding algorithm implemented by Overmars and van Leeuwen [18] also gives O(logn) fragility.

Algorithm for Convex Hulls.

Presort the points of P by x-coordinate. Divide P in half via the median x-coordinate. Recursively compute the upper hull of both halves. Use Bridge-Finding to compute the upper tangent; this algorithm also discards points that do not appear on UCH(P). Compute the lower hull separately using a symmetric process. Combine the upper and lower hulls to construct the entire convex hull.

Theorem 5.3.

The convex hull of a set of n points in the plane can be computed in O(nlogn) time with O(log2n) fragile complexity using the algorithms above.

Proof.

First, we address correctness. The algorithm is correct for the same reason as the classic divide and conquer algorithm, and the exponential and binary searches used in Bridge-Finding make upward progress for the same reason as this algorithm, which finds the bridge in linear time [19]. Now, we address fragility. Presorting uses O(logn) fragility [3]. By Lemma 5.2, Bridge-Finding requires O(logn) fragile complexity, and there are O(logn) rounds of the algorithm. The final combine step uses zero fragility, as it consists of listing point indices.

Lemma 5.4.

The algorithm above has a lower bound of Ω(log2n) fragility. In other words, the above fragility analysis is tight.

Proof.

In Figure 1, we give an example of an input that forces high fragility. The leftmost point (0,0) is part of the bridge at every level of recursion. At each level, it is touched a logarithmic number times in exponential search, and there are Θ(logn) recursion levels.

Figure 1: An adversarial input that forces Ω(log2n) fragility for our convex hull algorithm: place points at (i,i2) for i=0,,n1. Pictured for n=5.

In the algebraic decision tree model, Ben-Or [4] gave a lower bound of Ω(nlogn) for the problem of determining if n points in the plane are in convex position, that easily reduces to Convex Hull, which implies a lower bound of Ω(logn) fragility due to the pigeonhole principle.

Extension to triangulating a point set.

In this section, we show that minor modifications to the algorithms above allow us to produce a triangulation of a point set with polylogarithmic fragility. This result is surprising because we would expect a linear lower bound due to fact that the resulting triangulation may have arbitrarily-high-degree vertices.

Algorithm.

Sort the point set by x-coordinate and partition by the median x-coordinate. Now, divide and conquer. Recursively compute triangulations of each half.

We now describe how to complete a triangulation by triangulating the region delimited by the bridge and the two upper hulls (which are part of the triangulation of each half). Run Bridge-Finding from the previous section with the following modifications. After each round of exponential/binary search is complete, draw a chord between the key element qi (symmetrically, ri) and the tangent element of the other side rj (symmetrically, qj). Output the vertices that are discarded, as chords from these to qi (or ri) comprise a fan triangulation.

Continue exponential/binary search recursively as described in the previous section until qirj is the upper tangent, stopping to fill in chords as described.

Consider the path formed by traversing P in x-order. The final result of the above algorithm is a list of chords that, triangulates the region between this path and UCH(P). Run a symmetric process for the lower hull (which does not contain vertices of the upper hull except for the endpoints) to complete the triangulation of the convex hull of P.

Theorem 5.5.

The algorithm above triangulates a point set with fragility O(log2n) in time O(nlogn).

Proof.

The proof from the previous section applies, and the only extra operation(s) are outputting the fans before discarding the vertices. This is done by listing the generated chords using vertex indices – these operations do not affect the fragility. Since this modification only adds a constant amount of work for every discarded vertex and does not affect fragility, the runtime and fragility bounds follow.

Note that Triangulation has a fragility lower bound of Ω(logn) due to the pigeonhole principle and the application of the lower bound, [20, Theorem 5.2].

6 Approximate Euclidean minimum spanning tree

We describe an algorithm for computing a 1.0125-approximate EMST of a set of n points in the plane with O(log2n) fragility. Our algorithm will do O(nlog2n) total work, where the operations performed are (a) comparisons between x- or y-coordinates of two points pi and pj, (b) projecting a point pP on a fixed direction dS1, obtaining πd(p), and (c) performing comparisons between x- or y-coordinates of such projected points. However, if πd(p) is used for any future comparisons, we increment the fragility of p accordingly. Note that since the Euclidean MST contains the closest pair of points as an edge, a lower bound of Ω(logn) on the fragility follows.

We briefly recall some foundational papers on computing the EMST, and show why they are not immediately fragility-friendly. Our algorithm will not be an adaptation of a single known algorithm, but instead we will use ideas from two algorithms.

First, a classic result by Shamos and Hoey [21] states that the EMST is a subgraph of the Delaunay triangulation. Given that the Voronoi diagram can be computed in O(nlogn) time, one obtains the O(n)-sized Delaunay triangulation in the same time bound. We can then extract the EMST from the Delaunay triangulation by any MST algorithm, e.g., running Kruskal’s algorithm, in O(nlogn) time. However, the Voronoi diagram and the Delaunay triangulation may contain high-degree vertices,111It is not obvious whether these can be constructed in a manner avoiding linear fragility, such as a fan structure allowing for a compact representation as exploited by our triangulation algorithm. and furthermore such high-degree vertices will experience heavy fragility during Kruskal’s algorithm, even if we used a fragility-sensitive sorting algorithm.

A similar high-degree issue arises even if one considers the relative neighborhood graph [10], or the Yao graph [22]. If an approximation of the EMST is allowed, one can replace the Yao graph by the Theta graph, but the same high-degree problem persists, as can be seen by an instance of one point p opposing n1 points on a chain;222The chain can be made slightly convex or concave, to get a point set in general position. p has degree Ω(n) in both the Yao and Theta graphs.

Algorithm overview.

Our first building block will be the algorithm by Agarwal et al. [2], that is based on a reduction from EMST to a collection of bichromatic closest-pair problems (BCP). An instance of BCP is provided with a set R of red and B of blue points, and the goal is to find (r,b)R×B with minimum d(r,b). Agarwal et al. show that the EMST is contained in the graph formed by connecting all pairs (r,b) that are solutions to the obtained BCP instances. We will first show that this collection of BCP problems can be obtained in a fragility-sensitive manner, and that no point is involved in too many such subproblems. Another property of the BCP instances obtained after this reduction is that in each instance (R,B) of BCP, there is a double-wedge so that R is in one wedge and B in the antipodal one, and the angle of the wedge is small (at most π/10).

The obvious approach would be to next solve the BCP instances in a fragility-sensitive manner, perhaps like we did for closest pair in Section 4. While there are several O(nlogn) algorithms known for BCP, we again hit a block when trying to adapt them for fragility. As discussed earlier, we do not know how to build the Voronoi diagram in a fragility-sensitive way due to the potential for high-degree vertices. Hence we cannot adapt algorithms that start with a Voronoi diagram and find the closest red for a blue or vice-versa (in fact, there would be the additional task of making the associated point location or search data structures fragility-friendly). Given the instances produced by the reduction are separated by a line (a consequence of the double-wedge property mentioned above), one can consider an O(nlogn) randomized algorithm [6] that (assume R is left of the separating line and B to the right) picks a random rR, finds the closest blue b to r, and discards all points in R that are outside the left envelope of the disks of radii |rb| at points in B. We do not know how to adapt this algorithm either. Finally, we remark that there are reductions from BCP to Closest Pair [9], but these only work in high (ω(logn)) dimensions.

Instead of solving the BCP instances exactly, we will find an approximate bichromatic closest pair in each instance. We will then show that the graph formed by edges between such approximate bichromatic closest pairs (a) has degree O(logn) for every vertex, (b) is connected, and (c) contains an approximate EMST. We can then extract an approximate EMST from this graph by running Kruskal’s algorithm after a fragility-sensitive sorting of the edge lengths. To find an approximate bichromatic closest pair, our idea is inspired by the Theta graph: we take the direction d along the double-wedge (there will be O(1) many choices for d), project points in R and B on d, and return the red with the rightmost projection and the blue with the leftmost projection, for which we solve Minimum in one dimension, in a fragility-sensitive manner using [1].

Step 1: Forming the bichromatic closest pair instances.

The reduction from EMST to BCP instances in Agarwal et al. [2] proceeds as follows. Let α0=12arcsin(51)/219.08 be the largest angle satisfying tan2α<cos2α, and let α=π/10<α0. A unit vector dS1 with d2=1 will be called a direction. Define the cone Cone(d,α)2 to be the region that is the union of all rays going through the origin that form an angle at most α with d. An instance (R,B) of BCP is called α-separated in direction d if there exists a point z and a direction d such that Rz+Cone(d,α) and Bz+Cone(d,α). All instances of BCP returned after the reduction will be α-separated in some direction d, where there will be at most π/α=10 choices for d.

Define, for 0j19, the directions ej=(cosjα,sinjα). Note that for every j, the pair (ej,ej+1) forms a basis of 2, and these 20 basis pairs further define 20 directions dj that are the bisector directions for each basis pair. The algorithm will successively consider the basis (ej,ej+1) and for each j, return a collection of α-separated BCP instances in direction dj, with the pairs (R,B) lying in the double wedge formed by (ej,ej+1) and (ej,ej+1), with R in one wedge of angle α and B in the antipodal wedge. In the following, we assume j to be fixed, and express a point p2 as p=p1ej+p2ej+1 in the basis (ej,ej+1). The algorithm takes as input two sets R and B (both initialized to P originally), the dimensionality k (initialized to two), and in calls itself recursively at most three times, where each recursive call either reduces the dimensionality, or halves the size of |RB| in the recursion.

The algorithm in [2] is as follows, and we present it with the needed twists for fragility. As a preprocessing step, we sort (using O(log(|RB|)) fragility) the points in R by both coordinates, points in B by both coordinates, and RB in both coordinates. Every point in R and B will know its position in the other lists where it resides, similar to our algorithm for closest pair in Section 4. If k=0 then output (R,B) as an α-separated pair. Otherwise if k1, we extract the median xk of the kth coordinate of the points in RB (this is readily available as RB is already sorted in both coordinates). We then partition R into R and Rr where R contains points in R whose kth coordinate is at most xk, and Rr contains those whose kth coordinate is larger than xk. We similarly partition B into B and Br. Note that this partitioning can be performed without comparisons as in Section 4, since the lists are already sorted. Finally, we make at most three recursive calls: (1) if R and Br, we recurse with dimensionality k1, R and Br, (2) if R and B, we recurse with dimensionality k, R and B, and (3) if Rr and Br, we recurse with dimensionality k, Rr and Br. Note that in (1) the dimensionality is reduced by one, and in (2) and (3) the size of the union is halved.

Lemma 6.1.

There exists an algorithm that, given P2 with |P|=n returns a collection of O(nlogn) α-separated BCP instances (R,B)P×P, such that

  1. (a)

    each instance (R,B) is α-separated in one of the directions dj for 0j19,

  2. (b)

    every point in P occurs in O(logn) many instances of BCP,

  3. (c)

    every point in P has O(log2n) fragility,

  4. (d)

    each edge in the EMST on P is the solution to one of the returned BCP instances.

Proof.

The bound on the number of instances follows from a standard recursion, since either the dimensionality is reduced or the problem size is halved. This also proves assertion (b) in the lemma above, since each point participates in at most two recursive calls of type (1) and O(logn) many recursive calls of type (2) or (3).

The algorithm outputs a pair only when dimensionality 0 is reached, which means that the algorithm has succeeded in finding a double wedge such that R and Br are in the two opposing wedges of angle α. This double wedge is in the direction dj, and this implies assertion (a). To prove assertion (c), note that the sorting performed as preprocessing in each call induces O(logn) fragility, and since each point is in O(logn) recursive calls, we get a fragility bound of O(log2n). Note that the sizes of the recursive problems decreases, but this only reduces the total fragility by a constant factor, hence we ignore this effect. Finally, assertion (d) follows from [2, Lemma 4].

Step 2: Approximate bichromatic closest pair and apx-EMST.

Consider an instance (R,B) of BCP that is α-separated in direction dj, for some 0j19. Without loss of generality, assume that dj=(1,0) and that R lies in the left wedge of angle α and B lies in the right wedge of angle α. We project R and B on direction dj (in this case the x-axis), and run a fragility-sensitive Maximum algorithm for π(R) and a fragility-sensitive Minimum algorithm for π(B), as in [1]. Let the point in R achieving the maximum be r~ and the minimum in B be b~. For every returned BCP instance, we add the corresponding edge (r~,b~) to form a graph G on P. This pair may be different from the bichromatic closest pair for this instance, which we will denote by (r,b).

Because each point is involved in at most O(logn) BCP instances (assertion (b) in Lemma 6.1), and it experiences O(logn) fragility during the projection and min/max algorithms in each instance, the total fragility of any point is bounded by O(log2n). More importantly, the degree of any vertex in G is again O(logn), since at worst it could be the endpoint of an added edge of the type (r~,b~) in all O(logn) instances it belongs to. Thus G has O(nlogn) many edges, and sorting all edges in G by their lengths takes O(nlog2n) time. Let us consider the fragile complexity of this step. Each vertex in G (that is, each point in P) experiences a fragility of at most O(log2n), since each of its O(logn) many incident edges experiences O(logn) fragility during sorting.

The above considerations imply that if the following lemma is true, then running Kruskal’s algorithm on G after sorting the costs gives us an approximate EMST.

Lemma 6.2.

Consider the graph G formed by adding edges between the pair of vertices (r~,b~) as described above, and let (r,b) be the bichromatic closest pair in the corresponding instance. Then

  1. (a)

    d(r~,r)<d(r,b) and d(b~,b)<d(r,b),

  2. (b)

    G is connected,

  3. (c)

    d(r~,b~)d(r,b)sec(α/2)=sec(π/20)<1.0125, and

  4. (d)

    the edges of G contain a 1.0125-approximate EMST.

Proof.

Clearly, (d) follows from (b) and (c), since every edge of the EMST is of the form (r,b) for some instance, we replace it with an edge of approximate length, and G is connected. In the remainder, we prove (a)–(c).

Refer to caption
Figure 2: The situation in Lemma 6.2.

For this, we will first make the simplifying assumption that no two points in P share a coordinate in any of the bases (ej,ej+1), and that no two points have the same projection in any of the directions dj, for any 0j19. It is not hard to remove this assumption by randomly perturbing the basis vectors above, as the argument does not hinge on them being uniformly distributed; it just relies on all angles being at most α0 and on the union of the double wedges covering 2.

Refer to Figure 2. Since r~ is the red point with maximum projection on the direction d (without loss of generality considered here to be horizontal), r must lie to the left of the line segment xy. Similarly b must lie to the right of the line segment vw. Let the horizontal distance between the projections of r~ and b~ be δ, and we break this up into δ1+δ2, with δ1 being the portion of it in the left wedge and δ2 being the portion of it in the right wedge. Also note that since the direction d is the bisector of the wedge, the interior angles between the direction of the x-axis and either of the lines defining the wedge, are α/2.

We first prove (c). Since r~ is constrained to lie on the line xy and b~ on vw, the maximum distance between them is obtained when r~=x and b~=w. This distance is δ1sec(α/2)+δ2sec(α/2)=δsec(α/2). Thus d(r~,b~)δsec(α/2). On the other hand, d(r,b) is at least δ, as otherwise either r is to the right of xy or b is to the left of vw, contradicting that r~ and b~ were the points with the extremal projections. Therefore, d(r~,b~)d(r,b)δsec(α/2)δ=sec(α/2). Recall that α=π/10, plus some minor perturbation to make the above assumption hold, if necessary, which proves (c).

Next we prove (a). Assume the wedge is centered at the origin, so that r has x-coordinate equal to (δ1+ϵ1) and b has x-coordinate δ2+ϵ2, for some ϵ1>0, ϵ2>0. We claim that ϵ1δ(sec(α/2)1). To see this, assume the contrary. Then the distance d(r,b) is at least δ1+δ2+ϵ1+ϵ2, which is larger than δ+ϵ1, and therefore by the assumption is larger than δsec(α/2). However, we just showed that d(r~,b~)δsec(α/2), and this contradicts that (r,b) is the exact solution to the BCP instance.

Next, let us assume that the y-coordinate of r is t and that of r~ is t~. Thus r=(δ1ϵ1,t) and r~=(δ1,t~). Note that |t~|δ1tan(α/2), since that is the y-coordinate of x and r~ must lie on xy. Similarly, we get that |t|(δ1+ϵ1)tan(α/2), since r is constrained to lie in the left wedge.

We obtain that the distance d(r~,r)ϵ1+|t~|+|t|. Using the bounds on ϵ1, |t~| and |t|, this is at least

d(r~,r) ϵ1+|t~|+|t|
δ(sec(α/2)1)+δ1tan(α/2)+(δ1+ϵ1)tan(α/2)
<δ(sec(α/2)1)+δtan(α/2)+(δ+δ)tan(α/2)
=δ(3tan(α/2)+sec(α/2)1)
<δ/2<d(r,b).

In the above we have used that δ1δ, ϵ1<δ, and that for α=π/10, 3tan(α/2)+sec(α/2)10.48<1/2. Finally, we use that d(r,b)>δ. A similar argument can be used to prove that d(b~,b)<d(r,b) and this finishes the proof of (a).

Finally, we prove (b). Our proof is inspired by an argument by Callahan [7]. Consider any pair of points p,qP. We want to show that there is a path between them in G. Let T denote the Euclidean MST. We will show that G contains such a path by using induction on the length of the longest edge in the path connecting p to q in T. Let e be the longest edge in the path in T connecting p to q, and because e is an MST edge, it must be of the type e=(r,b) for some bichromatic closest pair in one of the instances. Assume that r is encountered first on this path when walking from p to q. This edge e=(r,b) is replaced by the approximate edge (r~,b~) in G. We claim that there is a path connecting p to r~ in T that only uses edges cheaper than e – one goes from p to r in T using edges cheaper than e, and by (a), d(r,r~)<d(r,b)=|e|. Applying the induction hypothesis we get that there is such a path from p to r~ in G too. Similarly there is path in G from q to b~ such that all edges have length at most |e|. Since the edge (r~,b~) is in G, this implies that there is path from p to q in G, and hence G is connected. This finishes the proof of correctness and the approximation guarantee of our algorithm, summarized as follows.

Theorem 6.3.

Given a set P of n points in 2, there exists an O(nlog2n) time algorithm with O(log2n) fragility that returns a tree whose total length is at most sec(π/20)(<1.0125) times that of the EMST.

Open Problems.

Several open problems emerged as a result of this research and at the suggestion of the anonymous referees. Is it possible to solve Convex Hull in O(lognlogh) fragility, where h is the number of hull vertices? Does there exist an algorithm to compute a Voronoi Diagram or Delaunay Triangulation in sublinear fragility? Is it possible to obtain a Ω(log2n) lower bound on any problem addressed in this paper?

References

  • [1] Peyman Afshani, Rolf Fagerberg, David Hammer, Riko Jacob, Irina Kostitsyna, Ulrich Meyer, Manuel Penschuck, and Nodari Sitchinava. Fragile Complexity of Comparison-Based Algorithms. In 27th Annual European Symposium on Algorithms (ESA 2019), volume 144 of Leibniz International Proceedings in Informatics (LIPIcs), pages 2:1–2:19, Dagstuhl, Germany, 2019. Schloss Dagstuhl – Leibniz-Zentrum für Informatik. doi:10.4230/LIPIcs.ESA.2019.2.
  • [2] Pankaj K Agarwal, Herbert Edelsbrunner, Otfried Schwarzkopf, and Emo Welzl. Euclidean minimum spanning trees and bichromatic closest pairs. In Proceedings of the Sixth Annual Symposium on Computational Geometry, pages 203–210, 1990. doi:10.1145/98524.98567.
  • [3] Miklós Ajtai, János Komlós, and Endre Szemerédi. An O(n log n) sorting network. In Proceedings of the 15th Annual ACM Symposium on Theory of Computing, 25-27 April, 1983, Boston, Massachusetts, USA, pages 1–9. ACM, 1983. doi:10.1145/800061.808726.
  • [4] Michael Ben-Or. Lower bounds for algebraic computation trees. In Proceedings of the Fifteenth Annual ACM Symposium on Theory of Computing, pages 80–86, 1983.
  • [5] Prosenjit Bose, Pilar Cano, Rolf Fagerberg, John Iacono, Riko Jacob, and Stefan Langerman. Fragile complexity of adaptive algorithms. In International Conference on Algorithms and Complexity, pages 144–157. Springer, 2021. doi:10.1007/978-3-030-75242-2_10.
  • [6] Prosenjit Bose, Anil Maheshwari, Pat Morin, Jason Morrison, Michiel Smid, and Jan Vahrenhold. Space-efficient geometric divide-and-conquer algorithms. Computational Geometry, 37(3):209–227, 2007. doi:10.1016/J.COMGEO.2006.03.006.
  • [7] Paul B Callahan. Dealing with higher dimensions: the well-separated pair decomposition and its applications. The Johns Hopkins University, 1995.
  • [8] Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, and Clifford Stein. Introduction to algorithms. MIT press, 2022.
  • [9] Karthik C.S. and Pasin Manurangsi. On closest pair in Euclidean metric: Monochromatic is as hard as bichromatic. Combinatorica, 40(4):539–573, 2020. doi:10.1007/S00493-019-4113-1.
  • [10] Mark De Berg, Otfried Cheong, Marc Van Kreveld, and Mark Overmars. Computational Geometry: Algorithms and Applications. Springer, 2008.
  • [11] Jeff Erickson. Lecture notes for cs 497: Concrete models of computation, spring 2003.
  • [12] Ronald L. Graham. An efficient algorithm for determining the convex hull of a finite planar set. Info. Proc. Lett., 1:132–133, 1972. doi:10.1016/0020-0190(72)90045-2.
  • [13] Ray A Jarvis. On the identification of the convex hull of a finite set of points in the plane. Information Processing Letters, 2(1):18–21, 1973. doi:10.1016/0020-0190(73)90020-3.
  • [14] Rajesh Jayaram, Vahab Mirrokni, Shyam Narayanan, and Peilin Zhong. Massively parallel algorithms for high-dimensional euclidean minimum spanning tree. In Proceedings of the 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 3960–3996. SIAM, 2024. doi:10.1137/1.9781611977912.139.
  • [15] David G Kirkpatrick and Raimund Seidel. Output-size sensitive algorithms for finding maximal vectors. In Proceedings of the First Annual Symposium on Computational Geometry, pages 89–96, 1985. doi:10.1145/323233.323246.
  • [16] David G Kirkpatrick and Raimund Seidel. The ultimate planar convex hull algorithm? SIAM Journal on Computing, 15(1):287–299, 1986. doi:10.1137/0215021.
  • [17] H. T. Kung, Fabrizio Luccio, and Franco P. Preparata. On finding the maxima of a set of vectors. J. ACM, 22(4):469–476, 1975. doi:10.1145/321906.321910.
  • [18] Mark H Overmars and Jan Van Leeuwen. Maintenance of configurations in the plane. Journal of computer and System Sciences, 23(2):166–204, 1981. doi:10.1016/0022-0000(81)90012-X.
  • [19] Franco P. Preparata and Se June Hong. Convex hulls of finite sets of points in two and three dimensions. Communications of the ACM, 20(2):87–93, 1977. doi:10.1145/359423.359430.
  • [20] Franco P Preparata and Michael I Shamos. Computational Geometry: An Introduction. Springer Science & Business Media, 2012.
  • [21] Michael Ian Shamos and Dan Hoey. Closest-point problems. In 16th Annual Symposium on Foundations of Computer Science (sfcs 1975), pages 151–162. IEEE, 1975. doi:10.1109/SFCS.1975.8.
  • [22] Andrew Chi-Chih Yao. On constructing minimum spanning trees in k-dimensional spaces and related problems. SIAM Journal on Computing, 11(4):721–736, 1982. doi:10.1137/0211059.