Abstract
We show how to construct a \((1+\varepsilon )\)spanner over a set \({P}\) of n points in \({\mathbb {R}}^d\) that is resilient to a catastrophic failure of nodes. Specifically, for prescribed parameters \({\vartheta },\varepsilon \in (0,1)\), the computed spanner \({G}\) has
edges. Furthermore, for any k, and any deleted set \({{B}}\subseteq {P}\) of k points, the residual graph \({G}\setminus {{B}}\) is a \((1+\varepsilon )\)spanner for all the points of \({P}\) except for \((1+{\vartheta })k\) of them. No previous constructions, beyond the trivial clique with \({{\mathcal {O}}}(n^2)\) edges, were known with this resilience property (i.e., only a tiny additional fraction of vertices, \(\vartheta B\), lose their distance preserving connectivity). Our construction works by first solving the exact problem in one dimension, and then showing a surprisingly simple and elegant construction in higher dimensions, that uses the onedimensional construction in a blackbox fashion.
Introduction
Spanners The vertices of a Euclidean graph are points in \({\mathbb {R}}^d\), and the edges are weighted by the (Euclidean) distance between their endpoints. Let \({G}=({P},{E})\) be a Euclidean graph and \({p},{q}\in {P}\) be two vertices of \({G}\). For a parameter \(t \ge 1\), a path between \({p}\) and \({q}\) in \({G}\) is a tpath if the length of the path is at most \(t\Vert {p}{q}\Vert \), where \(\Vert {p}{q}\Vert \) is the Euclidean distance between \({p}\) and \({q}\). The graph \({G}\) is a tspanner of \({P}\) if there is a tpath between any pair of points \({p},{q}\in {P}\). Throughout the paper, n denotes the cardinality of the point set \({P}\), unless stated otherwise. We denote the length of the shortest path between \({p},{q}\in {P}\) in the graph \({G}\) by \({{\textsf {d}}}\left( {{p},{q}}\right) \).
Spanners have been studied extensively. The main goal in spanner constructions is to have small size, that is, to use as few edges as possible. Other desirable properties are low degrees [4, 13, 24], low weight [8, 16], low diameter [5, 6], or to be resistant to failures. The book by Narasimhan and Smid [22] gives a comprehensive overview of geometric spanners.
Robustness Here, our goal is to construct spanners that are robust according to the notion introduced by Bose et al. [9]. Intuitively, a spanner is robust if the deletion of k vertices only harms a few other vertices. Formally, a graph \({G}\) is an f(k)robust tspanner, for some positive monotone function f, if for any set \({{B}}\) of k vertices deleted in the graph, the remaining graph \({G}\setminus B\) is still a tspanner for at least \(nf(k)\) of the vertices. Note that the graph \({G}\setminus B\) has \(nk\) vertices—namely, there are at most \({{\mathcal {L}}}\left( {k}\right) = f(k)k\) additional vertices that no longer have good connectivity to the remaining graph. The quantity \({{\mathcal {L}}}\left( {k}\right) \) is the loss. We are interested in minimizing the loss.
The natural question is how many edges are needed to achieve a certain robustness (since the clique has the desired property). That is, for a given parameter t and function f, what is the minimal size that is needed to obtain an f(k)robust tspanner on any set of n points.
A priori it is not clear that such a sparse graph should exist (for t a constant) for a point set in \({\mathbb {R}}^d\), since the robustness property looks quite strong. Surprisingly, Bose et al. [9] showed that one can construct a \({{\mathcal {O}}}(k^2)\)robust \({{\mathcal {O}}}(1)\)spanner with \({{\mathcal {O}}}(n \log n)\) edges. Bose et al. [9] proved various other bounds in the same vein on the size of onedimensional and higherdimensional point sets. Their most closely related result is that for the onedimensional point set, \({P}=\{1,2,\dots ,n\}\), and for any \(t \ge 1\), at least \(\varOmega (n\log {n})\) edges are needed to construct an \({{\mathcal {O}}}(k)\)robust tspanner.
An open problem left by Bose et al. [9] is the construction of \({{\mathcal {O}}}(k)\)robust spanners—they only provide the easy upper bound of \({{\mathcal {O}}}(n^2)\) for this case. In this paper, we present several constructions for this case with optimal or nearoptimal size. These results even hold for a stronger requirement on the spanners, defined next.
\({\vartheta }\)Reliable spanners We are interested in building spanners where the loss is only fractional. Specifically, given a parameter \({\vartheta }\), we consider the function \(f(k) = (1+{\vartheta })k\). The loss in this case is \({{\mathcal {L}}}\left( {k}\right) = f(k)k = {\vartheta }k\). A \((1+{\vartheta })k\)robust tspanner is a \({\vartheta }\)reliable tspanner.
Exact reliable spanners If the input point set is in one dimension, then one can easily construct a 1spanner for the points, which means that the exact distances between points on the line are preserved by the spanner—indeed, simply connect the points from left to right. It becomes significantly more challenging to construct such an exact spanner that is reliable. In case of robust spanners, for a function f under some general conditions, Bose et al. [9] gave a construction of exact f(k)robust spanners. In particular, their result implies that one can construct \({{\mathcal {O}}}(k \log k)\)robust 1spanners of size \({{\mathcal {O}}}(n \log n)\) and, for any \(\varepsilon >0\), \({{\mathcal {O}}}(k^{1+\varepsilon })\)robust 1spanners of size \({{\mathcal {O}}}(n \log \log n)\), for onedimensional point sets.
Fault tolerant spanners Robustness is not the only definition that captures the resistance of a spanner network against vertex failures. A closely related notion is fault tolerance [18,19,20]. A graph \({G}=({P},{E})\) is an rfault tolerant tspanner if for any set \({{B}}\) of failed vertices with \({{B}}\le r\), the graph \({G}\setminus {{B}}\) is still a tspanner. The disadvantage of rfault tolerance is that each vertex must have degree at least \(r+1\), otherwise the vertex can be isolated by deleting its neighbors. Therefore, the graph has size at least \(\varOmega (rn)\). There are constructions that show \({{\mathcal {O}}}(rn)\) edges are enough to build rfault tolerant spanners. However, depending on the chosen value r the size can be too large.
In particular, fault tolerant spanners cannot have a nearlinear number of edges, and still withstand a widespread failure of nodes. Specifically, if a fault tolerant spanner has m edges, then it can withstand a failure of at most 2m/n vertices. In sharp contrast, \({\vartheta }\)reliable spanners can withstand a widespread failure. Indeed, a \({\vartheta }\)reliable spanner can withstand a failure of close to \(n/(1+{\vartheta })\) of its vertices, and still have some vertices that are connected by short paths in the remaining graph.
Region fault tolerant spanners In a surprising result, Abam et al. [1] showed that one can build a geometric spanner with near linear number of edges, so that if the deleted set are all the points belonging to a convex region (they also delete the edges intersecting this region), then the residual graph is still a spanner for the remaining points.
Our Results
We investigate how to construct reliable spanners with very small loss, that is, \({\vartheta }\)reliable spanners. To the best of our knowledge nothing was known on this case before this work.
Exact \({{\mathcal {O}}}(1)\)reliable spanner in one dimension Inspired by the reliability of constant degree expanders, we show how to construct an \({{\mathcal {O}}}(1)\)reliable exact spanner on any onedimensional set of n points with at most \({{\mathcal {O}}}(n \log {n})\) edges.^{Footnote 1} The idea of the construction is to build a binary tree over the points, and to build bipartite expanders between certain subsets of nodes in the same layer. One can think of this construction as building different layers of expanders for different resolutions. The construction is described in Sect. 3.2. See Theorem 3.6 for the result.
Exact \({\vartheta }\)reliable spanner in one dimension One can get added redundancy by systematically shifting the layers. Done carefully, this results in a \({\vartheta }\)reliable exact spanner with \({{\mathcal {O}}}({\vartheta }^{6} n \log n)\) edges. The construction is described in Sect. 3.3. See Theorem 3.11 for the result.
\({\vartheta }\)Reliable \((1+\varepsilon )\)spanners in higher dimensions We next show a simple construction of \({\vartheta }\)reliable spanners in \({\mathbb {R}}^d\), for d being constant, using a recent result of Chan et al. [14], which shows that one needs to maintain only a “few” linear orders. This immediately reduces the ddimensional problem to maintaining a reliable spanner for each of these orderings, which is the problem we already solved. By applying a recursive scheme, using the same idea, we obtain the desired spanner of size \({{\mathcal {O}}}\left( {\varepsilon ^{O(d)} {\vartheta }^{6} n \log n (\log \log n)^{6}}\right) \). See Sect. 4 for details.
\({\vartheta }\)Reliable \((1+\varepsilon \))spanner with bounded spread Since the general construction in \({\mathbb {R}}^d\) has some additional factors that seem unnecessary, we present an optimal construction for the case when the point set has bounded spread, that is, the ratio of the largest and the smallest distance of point pairs is bounded by a polynomial of n. Specifically, for points with spread \({\varPhi }\) in \({\mathbb {R}}^d\), for d being constant, and for any \(\varepsilon >0\), we construct a \({\vartheta }\)reliable \((1+\varepsilon )\)spanner with \({{\mathcal {O}}}\bigl ( \varepsilon ^{d} {\vartheta }^{2} n \log {\varPhi }\bigr )\) edges. The basic idea is to construct a wellseparated pair decomposition (WSPD) directly on the quadtree of the point set, and convert every pair in the WSPD into a reliable graph using a bipartite expander. The union of these graphs is the required reliable spanner. See Sect. 5 and Lemma 5.10 for details.
Shadow Underlying our construction is the notion of identifying the points that lose connectivity when the failure set is removed. Intuitively, a point is in the shadow if it is surrounded by failed points. We believe that this concept is of independent interest—see Sect. 3.1 for details and relevant results in one dimension.
The competition Independently of this work, Bose et al. [7] also obtained an upper bound on the size of reliable spanners in \({\mathbb {R}}^d\). Their construction has \({{\mathcal {O}}}(n \log ^2n \log \log n)\) edges, which is close, but worse, than our bound of \({{\mathcal {O}}}(n \log n (\log \log n)^6)\) edges. For both constructions, the fundamental building blocks are expander graphs. However, the construction in [7] does not use the onedimensional construction directly, but uses wellseparated pair decomposition, centroid decomposition, and ideas for maintaining orders. In particular, inspired by the preliminary work of Buchin et al. [11], in October 2018, Bose et al.^{Footnote 2} achieved independently essentially the same onedimensional results by using expanders. Our own improved onedimensional results were announced earlier in a public talk on June 12, 2018 (this was a YRF talk in SoCG 2018). To keep things in perspective, the results of Bose et al. [7] are equivalent to our results (up to a log factor), while being technically quite different (in two and higher dimensions). In particular, their onedimensional construction has better dependency on the reliability parameter. The main advantage of our result, beyond the aforementioned (allimportant) log factor, is that it is (conceptually) simpler—the use of locality sensitive orderings [14] makes all the difference.
Preliminaries
Problem Definition and Notations
Let \(\left[ n \right] \) denote the set \(\{1,2,\dots ,n\}\) and let \([ i\,{:}\,j]=\{i,i+1,\dots ,j\}\).
Definition 2.1
(Robust spanner) Assume that we are given

(i)
a parameter \(t \ge 1\),

(ii)
a graph \({G}=({P},{E})\) that is a tspanner,

(iii)
a function \(f:{\mathbb {N}} \rightarrow \mathbb {R_+}\), and

(iv)
two point sets \({P}_1, {P}_2 \subseteq {P}\).
The graph \({G}\) is an f(k)robust tspanner for \({P}_1 \times {P}_2\) if for any set of (failed) vertices \({{B}}\subseteq {P}\) there exists a set \({{B^+}}\supseteq {{B}}\) with \({{B^+}}\le f({{B}})\) such that the subgraph
induced by \({G}\) on \({P}\setminus {{B}}\) is a tspanner for \(({P}_1 \setminus {{B^+}}) \times ({P}_2 \setminus {{B^+}})\). That is, \({G}\setminus {{B}}\) has a tpath between all pairs of points \({p}\in {P}_1\setminus {{B^+}}\) and \({q}\in {P}_2 \setminus {{B^+}}\). If \({P}_1 = {P}_2 = {P}\), then \({G}\) is a f(k)robust tspanner. The vertices of \({{B^+}}\setminus {{B}}\) are the vertices harmed by \({{B}}\), and the quantity \({\mathcal {L}}{(k)} = f(k) k \ge {{B^+}}{{B}}\) is the loss.
Definition 2.2
For a parameter \({\vartheta }>0\), a graph \({G}\) that is a \((1+{\vartheta })k\)robust tspanner is a \({\vartheta }\)reliable tspanner.
Definition 2.3
For a number \(x > 0\), let \(\text {pow}_2\left( {x}\right) = 2^{\left\lceil {\log x} \right\rceil }\) be the smallest number that is a power of 2 and is at least as large as x.
Expanders
For a set X of vertices in a graph \({G}=({V},{E})\), let
be the neighbors of X in \({G}\). The following lemma, which is a standard expander construction, provides the main building block of our onedimensional construction. We provide the proof only for the sake of completeness, as this is well known. The survey by Hoory et al. [17] gives a comprehensive study of expanders.
Lemma 2.4
Let L, R be two disjoint sets, with a total of n elements, and let \({\xi }\in (0,1)\) be a parameter. One can build a bipartite graph \({G}= (L \cup R, E)\) with \({{\mathcal {O}}}(n/{\xi }^2)\) edges, such that

(I)
for any subset \(X \subseteq L\), with \(X\ge {\xi }L\), we have \({{\varGamma }}{(X)}> (1{\xi })R\), and

(II)
for any subset \(Y \subseteq R\), with \(Y\ge {\xi }R\), we have \({{\varGamma }}{(Y)} > (1{\xi })L\).
Proof
This is a variant of an expander graph. See [21, Sect. 5.3] for a similar construction.
Let \(c=\lceil 3/{\xi }^2\rceil \). For every vertex in L, pick randomly and uniformly (with repetition) \(\ell = c \lceil n/L\rceil \) neighbors in R. Do the same for every vertex in R, picking \(c \lceil n/R\rceil \) neighbors at random from L. Let \({G}\) be the resulting graph, after removing redundant parallel edges. Clearly, the number of edges is as required.
As for the claimed properties, fix a subset \(X \subseteq L\) of size at least \({\xi }L\), and fix a subset on the right, \(Z \subseteq R\) of size \(\le (1{\xi })R\). Notice that there are at most \(2^n\) choices for both X and Z. The probability that all the edges we picked for the vertices of X stay inside Z, is at most
since \(c \ge 3/{\xi }^2\) and \(1{\xi }\le \exp ({\xi })\). In particular, for a given X the probability that this happens for any subset Z is less than \(2^n / 8^n = 1/4^n\). Thus, with probability less than \(2^n / 4^n = 1/2^n\) there is an \(X\subseteq L\) with \({{\varGamma }}{(X)} \le (1{\xi })n\). Using the same argument for \(Y\subseteq R\) we get that the random graph does not have the desired properties with probability \(2/2^n<1\) (for \(n>1\)). This implies that a graph with the desired properties exists. \(\square \)
Remark
The above construction is randomized, but simple algebraic deterministic constructions are known [3, 15, 23]. One can improve their expansion ratio by repeatedly squaring them. These constructions are implicit, and are easily constructed quickly on the fly. As such, in the following, we assume that the expanders of Lemma 2.4 are readily available for use in our constructions.
Remark
It is not hard to show that regular expanders (i.e., not bipartite, as constructed above) are reliable graphs. That is, deleting a set of vertices leaves almost all the remaining vertices in a single connected component.
Building Reliable Spanners in One Dimension
Bounding the Size of the Shadow
Our purpose is to build a reliable 1spanner in one dimension. Intuitively, a point in \(\left[ n \right] \) is in trouble, if many of its close by neighbors belong to the failure set \({{B}}\). Such an element is in the shadow of \({{B}}\), defined formally next.
Definition 3.1
Consider an arbitrary set \({{B}}\subseteq \left[ n \right] \) and a parameter \(\alpha \in (0,1)\). A number i is in the left \(\alpha \)shadow of \({{B}}\), if and only if there exists an integer \(j \ge i\), such that \([ i\,{:}\,j] \cap {{B}}\ge \alpha [ i\,{:}\,j]\). Similarly, i is in the right \(\alpha \)shadow of \({{B}}\), if and only if there exists an integer h, such that \(h \le i\) and \([ h\,{:}\,i] \cap {{B}} \ge \alpha [ h\,{:}\,i]\). The \(\alpha \)shadow of \({{B}}\), denoted by \({\mathcal {S}}({\alpha }, {{{B}}})\), is the union of the left \(\alpha \)shadow and the right \(\alpha \)shadow. See Fig. 1 for a visual interpretation of the shadow.
Lemma 3.2
For any \({{B}}\subseteq \left[ n \right] \) and \(\alpha \in (0,1)\), \({\mathcal {S}}({\alpha }, {{{B}}})\le (1 +2\lceil 1/\alpha \rceil ){{B}}\).
Proof
Fix a set \({{B}}= \left\{ {{q}_1< \cdots < {q}_b} \right\} \). Let \({P}_0 = \left\{ {{p}_1< \cdots < {p}_{nb}} \right\} \) be all the points of \(\left[ n \right] \setminus {{B}}\), where \(b= {{B}}\). Let the set H be initially empty. Consider the process where in the ith iteration, for \(i =1,\ldots , b\), \(L_i\) (resp. \(R_i\)) is the set of \(\lceil {1/\alpha }\rceil \) largest (resp. smallest) numbers of \({P}_{i1}\) that are smaller (resp. larger) than \({q}_i\). We set \(H = H \cup L_i \cup R_i \cup \left\{ {{q}_i} \right\} \), and \({P}_{i} = {P}_{i1} \setminus ( L_i \cup R_i)\).
The claim is that if \(k \in \left[ n \right] \) is in (say) the left \(\alpha \)shadow of \({{B}}\), then \(k \in H\). If \(k \in {{B}}\) then the claim is immediate, so assume that \(k \notin {{B}}\). Next, fix a witness interval \(J = [ k\,{:}\,k']\), such that \({J\cap {{B}}} \ge \alpha {J}\). Observe that the above process handles all the elements of \(J^* = {{B}}\cap J\) in turn. When handling an element \(q \in J^*\), as long as \(k \notin H\), the process either adds k to H, or adds at least \(1 + \left\lceil {1/\alpha } \right\rceil \) new points of J (that were not previously in H) to H—indeed, the last \(1 + \lceil {1/\alpha }\rceil \) “free” points in the interval \([ k\,{:}\,q]\) are added to H. Suppose that \(k \notin H\) at the end of the process. Then, we have
which is a contradiction.
Applying the above argument symmetrically implies that, at the end of the process, H contains all the points in the right and left shadows of \({{B}}\). \(\square \)
One can get a better bound if \(\alpha \) is close to one, as testified by the following. This is crucial to achieve \({\vartheta }\)reliability, since Lemma 3.2 is not sharp when \(\alpha \) is close to one.
Lemma 3.3
Fix a set \({{B}}\subseteq \left[ n \right] \), let \(\alpha \in (2/3,1)\) be a parameter, and let \({\mathcal {S}}({\alpha }, {{{B}}})\) be the set of elements in the \(\alpha \)shadow of \({{B}}\). We have that \({\mathcal {S}}({\alpha }, {{{B}}})\le {{{B}}} /(2\alpha 1)\).
Proof
Let \(c= 11/\alpha < 0\). For \(i=1,\ldots , n\), let \(x_i = c\) if \(i \in {{B}}\), and \(x_i=1\) otherwise. For any interval I of length \(\varDelta \), with \(\tau \varDelta \) elements in \({{B}}\), such that \(x(I) = \sum _{i \in I} x_i \le 0\), we have that
An element \(j \in \left[ n \right] \) is in the left \(\alpha \)shadow of \({{B}}\) if and only if there exists an integer \(j'\), such that \([ j\,{:}\,j'] \cap {{B}}\ge \alpha [ j\,{:}\,j']\) and, by the above, \(x([ j\,{:}\,j'])\le 0\). Namely, an integer j in the left \(\alpha \)shadow of \({{B}}\) corresponds to some prefix sum of the \(x_i\)s starting at j and adding up to some nonpositive sum. From this point on, we work with the sequence of numbers \(x_1, \ldots , x_n\), using the above summation criterion to detect the elements in the left \(\alpha \)shadow.
For a location \(j \in \left[ n \right] \) that is in the left \(\alpha \)shadow, let \(W_{j} = [ j\,{:}\,j']\) be the witness interval for j—this is the shortest interval that has a nonpositive sum that starts at j. Let \(I = W_{k} = [ k\,{:}\,k']\) be the shortest witness interval, for any number in \({\mathcal {S}}({\alpha }, {{{B}}}) \setminus {{B}}\). For any \(j \in [ k+1\,{:}\,k']\), we have \(x([ k\,{:}\,j1]) + x([ j\,{:}\,k'])=x([ k\,{:}\,k'])\le 0\). Thus, if \(x_j =1\), this implies that either j or k have shorter witness intervals than I, which is a contradiction to the choice of k. We conclude that \(x_j < 0\) for all \(j \in [ k+1\,{:}\,k']\), that is, \([ k+1\,{:}\,k'] \subseteq {{B}}\).
Letting \(\ell = {I} = k'k+1\), we have that
as \(\alpha \ge 2/3\). In particular, by the minimality of I, we have that \(\ell = \lceil {1/(1\alpha )}\rceil \).
Let \(J = [ k\,{:}\,k'1] \subset I\). We have that \(x(J) > 0\). For any \(j \in {\mathcal {S}}({\alpha }, {{{B}}}) \setminus {{B}}\) such that \(j \ne k\), consider the witness interval \(W_{j}\). If \(j >k\), then \(j > k'\), as all the elements of I, except k, are in \({{B}}\). If \(j < k\) and \(j' \in J\), then \(\tau = x( [ k\,{:}\,j']) > 0\), which implies that \(x([ j\,{:}\,k1]) = x(W_{j}) \tau < 0\), but this is a contradiction to the definition of \(W_{j}\). Namely, all the witness intervals either avoid J, or contain it in their interior. Given a witness interval \(W_{j}\) such that \(J \subset W_{j}\), we have \(x(W_{j} \setminus J) = x(W_{j})  x(J) < x(W_{j}) \le 0\), since \(x(J) > 0\).
So consider the new sequence of numbers \(x_{\left[ n \right] \setminus J} = x_1, \ldots , x_{k1}, x_{k'},\ldots x_n\) resulting from removing the elements that correspond to J from the sequence. Reclassify which elements are in the left shadow in the new sequence. By the above, any element that was in the shadow before, is going to be in the new shadow. As such, one can charge the element k, that is in the left shadow (but not in \({{B}}\)), to all the other elements of J (that are all in \({{B}}\)). Applying this charging scheme inductively, charges all the elements in the left shadow (that are not in \({{B}}\)) to elements in \({{B}}\). We conclude that the number of elements in the left shadow of \({{B}}\) that are not in \({{B}}\) is bounded by
The above argument can be applied symmetrically to the right shadow. We conclude that
\(\square \)
Construction of \({{\mathcal {O}}}(1)\)reliable Exact Spanners in One Dimension
Constructing the Graph \({{H}}\)
Assume n is a power of two, and consider building the natural full binary tree T with the numbers of \(\left[ n \right] \) as the leaves. Every node v of T corresponds to an interval of numbers of the form \([ i\,{:}\,j]\), which we refer to as the block of v, see Fig. 2. Let \({{\mathcal {I}}}\) be the resulting set of all blocks. On each level one can sort the blocks of the tree from left to right. Two adjacent blocks of the same level are neighbors. For a block \(I \in {{\mathcal {I}}}\), let \(\text {next}\left( {I}\right) \) and \(\text {prev}\left( {I}\right) \) be the blocks (on the same level) directly to the right and left of I, respectively.
We build the graph of Lemma 2.4 with \({\xi }={1}/{16}\) for any two neighboring blocks in \({{\mathcal {I}}}\). Let \({{H}}\) be the resulting graph when taking the union over all the sets of edges generated by the above.
Analysis
Here, we show that the resulting graph \({{H}}\) is an \({{\mathcal {O}}}(k)\)robust 1spanner with \({{\mathcal {O}}}(n\log n)\) edges.
Lemma 3.4
The graph \({{H}}\) has \({{\mathcal {O}}}(n\log {n})\) edges.
Proof
Let \(h=\log {n}\) be the depth of the tree T. For \(i=1,2,\dots ,h\), on the ith level of T there are \(2^{hi}\) nodes, and the blocks of these nodes have size \(2^i\). The number of pairs of adjacent blocks on level i is \(2^{hi}1\) and each pair contributes \({{\mathcal {O}}}(2^i)\) edges. Therefore, each level of T contributes \({{\mathcal {O}}}(n)\) edges. Summing this up for all levels implies the bound.\(\square \)
There is a natural path between two leaves in the tree T going through their lowest common ancestor. However, we need something somewhat different here, as the path has to move forward (from left to right) in the 1path.
Given two numbers i and j, where \(i<j\), consider the two blocks \(I, J \in {{\mathcal {I}}}\) that correspond to the two numbers at the bottom level. Set \(I_0 =I\) and \(J_0 = J\). We now describe a canonical walk from I to J, where initially \(\ell =0\). During the walk we have two active blocks \(I_\ell \) and \(J_\ell \), that are both on the same level. For any block \(I \in {{\mathcal {I}}}\) we denote its parent by p(I). At every iteration we bring the two active blocks closer to each other by moving up in the tree.
Specifically, repeatedly do the following:

(A)
If \(I_\ell \) and \(J_\ell \) are neighbors then the walk is done.

(B)
If \(I_\ell \) is the right child of \(p(I_\ell )\), then set \(I_{\ell +1} = \text {next}\left( {I_{\ell }}\right) \) and \(J_{\ell +1} = J_\ell \), and continue to the next iteration.

(C)
If \(J_\ell \) is the left child of \(p(J_\ell )\), then set \(I_{\ell +1} = {I_{\ell }}\) and \(J_{\ell +1} = \text {prev}\left( {J_\ell }\right) \), and continue to the next iteration.

(D)
Otherwise, algorithm ascends. It sets \(I_{\ell +1} = p(I_\ell )\) and \(I_{\ell +1} = p(J_\ell )\), and it continues to the next iteration.
It is easy to verify that this walk is well defined, and let
be the resulting walk on the blocks where we removed repeated blocks. Figure 3 illustrates the path of blocks between two vertices i and j.
In the following, consider a fixed set \({{B}}\subseteq \left[ n \right] \) of faulty nodes. A block \(I \in {{\mathcal {I}}}\) is \(\alpha \)contaminated, for some \(\alpha \in (0,1)\), if \(I \cap {{B}}\ge \alpha I\).
Lemma 3.5
Consider two nodes \(i,j \in \left[ n \right] \), with \(i<j\), and let \(\pi (i,j)\) be the canonical path between i and j. If any block of \(\pi = \pi (i,j)\) is \(\alpha \)contaminated, then i or j are in the \(\alpha /3\)shadow of \({{B}}\).
Proof
Assume the contamination happens in the left half of the path, i.e., at some block \(I_t\), during the ascent from i to the connecting block to the descent path into j, see Fig. 4. By construction, there could be only one block before \(I_t\) on the path of the same level, and all previous blocks are smaller, and there are at most two blocks at each level. Furthermore, for two consecutive \(I_j, I_{j+1}\) that are blocks of different levels, \(I_j \subseteq I_{j+1}\). Thus we have that either \(i \in I_t\), or \(i \in \text {prev}\left( {I_t}\right) \), or \(i \in {\text {prev}}({\text {prev}}(I_t))\), since there are at most \(I_t+ I_t/2+ \dots +2+1 = 2I_t1\) vertices that are contained in the path before the block \(I_t\). Notice that if \(i \in I_t\), then it is the leftmost point of \(I_t\).
So, let r be the maximum number in \(I_t\), and observe that \([ i\,{:}\,r]\le 3I_t\). Furthermore, since \(I_t\) is \(\alpha \)contaminated, we have
Thus, the number i is the \(\alpha /3\)shadow, as claimed. The other case, when the contamination happens in the right part during the descent, is handled symmetrically.\(\square \)
Theorem 3.6
The graph \({{H}}\), constructed above, on the set \(\left[ n \right] \) is an \({{\mathcal {O}}}(1)\)reliable exact spanner and has \({{\mathcal {O}}}(n\log {n})\) edges.
Proof
The size is proven in Lemma 3.4. Let \(\alpha =1/32\). Let \({{B^+}}\) be the set of vertices that are in the \(\alpha /3\)shadow of \({{B}}\), that is, \({{B^+}}= {\mathcal {S}}({\alpha /3}, {{{B}}})\). By Lemma 3.2 we have that \({{B^+}}\le (1+2\lceil {3/\alpha }\rceil ){{B}}\le 200 {{{B}}}\).
Consider any two vertices \(i,j \in \left[ n \right] \setminus {{B^+}}\). Let \(\pi (i,j)\) be the canonical path between i and j. None of the blocks in this path are \(\alpha \)contaminated, by Lemma 3.5. Let \({\mathcal {S}}\) be the set of all vertices that have a 1path from i to them (after removing the vertices of \({{B}}\)). Consider the ascent part of the path \(\pi (i,j):I_0 \rightarrow I_1 \rightarrow \cdots \rightarrow I_\ell \). The claim is that for every block \(I_t\) in this path, we have that at least 3/4 of the vertices have 1paths from i (i.e., \(I_t \cap {\mathcal {S}}\ge 3I_t/4\)).
This claim is proven by induction. The claim trivially holds for \(I_0\). Now, consider two consecutive blocks \(I_t \rightarrow I_{t+1}\). There are two cases:

(i)
\(I_{t+1} = \text {next}\left( {I_t}\right) \). Then, the graph \({{H}}\) includes the expander graph on \(I_t, I_{t+1}\) described in Lemma 2.4. At least \(3I_t/4\) vertices of \(I_t\) are in \({\mathcal {S}}\). As such, at least \(15I_{t+1}/16\) vertices of \(I_{t+1}\) are reachable from the vertices of \(I_t\). Since \(I_{t+1}\) is not \(\alpha \)contaminated, at most an \(\alpha \)fraction of vertices of \(I_{t+1}\) are in \({{B}}\), and it follows that \(I_{t+1} \cap {\mathcal {S}}\ge (15/16\alpha )I_{t+1}\ge 3I_{t+1}/4\), as claimed.

(ii)
\(I_{t+1}\) is the parent of \(I_t\). In this case, \(I_t\) is the left child of \(I_{t+1}\). Let \(I_t'\) be the right child of \(I_{t+1}\). Since \(I_{t+1}\) is not \(\alpha \)contaminated, we have that \(I_{t+1} \cap {{B}}\le \alpha I_{t+1}\). As such,
$$\begin{aligned} I_{t}' \cap {{B}}\le I_{t+1} \cap {{B}}\le 2\alpha I_{t}'. \end{aligned}$$Now, by the expander construction on \((I_t,I_t')\), and arguing as above, we have
$$\begin{aligned} I_{t}' \cap {\mathcal {S}}\ge \biggl ( \frac{15}{16} 2\alpha \biggr )I_t'\ge \frac{3}{4}I_{t}'. \end{aligned}$$which implies that \(I_{t+1} \cap {\mathcal {S}}\ge 3I_{t+1}/4\).
The symmetric claim for the descent part of the path is handled in a similar fashion. Therefore, at least 3/4 of the points in \(J_\ell \) can reach j with a 1path. Using these and the expander construction between \(I_\ell \) and \(J_\ell \), we conclude that there is a 1path from i to j in \({{H}}\setminus {{B}}\), as claimed. \(\square \)
Note that it is easy to generalize the construction for arbitrary n. Let h be the integer such that \(2^{h1}< n < 2^h\) and build the graph \({{H}}\) on \(\{1,2,3,\dots ,2^h\}\). Since \({{H}}\) is a 1spanner, the 1paths between any pair of vertices of \(\left[ n \right] \) do not use any vertices from \(\{n+1,\dots ,2^h\}\). Therefore, we can simply delete the part of \({{H}}\) that is beyond n to obtain an \({{\mathcal {O}}}(1)\)reliable 1spanner on \(\left[ n \right] \). Since we defined \({{B^+}}\) to be the shadow of \({{B}}\), the \({{\mathcal {O}}}(1)\)reliability is inherited automatically.
We also note that no effort was made to optimize the constants in the above construction.
Construction of \({\vartheta }\)reliable Exact Spanners in One Dimension
Here, we show how to extend Theorem 3.6, to build a 1spanner on \(\left[ n \right] \), such that for any fixed \({\vartheta }\in (0,1)\) and any set \({{B}}\) of k deleted vertices, at most \((1+{\vartheta })k\) vertices are no longer connected (by a 1path) after the removal of \({{B}}\). The basic idea is to retrace the construction of Theorem 3.6, and extend it to this more challenging case. There are two main new ingredients: (i) a shifting scheme, and (ii) using much larger intervals when ascending from a level upward. Unfortunately, the details are somewhat tedious.
The Construction
Let \(\left[ n \right] \) be the ground set, assume that n is a power of two, and let \(h = \log n\). Let
where c is a sufficiently large constant (e.g., \(c\ge 512\)). We first connect any \(i \in \left[ n \right] \) to all the vertices that are within distance at most 3N from it, by adding an edge between the two vertices. Let \({G}_0\) be the resulting graph.
Let \(i_0 = \log N\). For \(i=i_0, \ldots , h1\) and \(j=1,\ldots , N\), let
For a fixed i, the \({\varDelta }(i,j)\)’s are N equally spaced numbers in the interval \([ 12^{i}\,{:}\,12^i/N]\), starting at its left endpoint. Here, i is the resolution of \({\varDelta }(i,j)\), the shift corresponding to resolution i is \(2^i / N\), and the number of different shifts is N. For \(k=0,\ldots , n/2^i\), and i, j as above, the corresponding block is
Such a block is an interval of length \(2^i\) that starts at \({\varDelta }(i,j)+k2^i\), see Fig. 5. The set of all intervals/blocks of interest is
Constructing the graph \({{H}_{{\vartheta }}}\). Let \({\mathrm {G_E}}\left( {i,j,k}\right) \) denote the expander graph of Lemma 2.4, constructed over \({\texttt {I}}\left( {i, j, k}\right) \) and \({\texttt {I}}\left( {i, j, k+1}\right) \), with the value of the parameter \({\xi }\) as specified in (3.1). We define \({{H}_{{\vartheta }}}\) to be the union of all the graphs \({\text {G}_{{\mathrm{E}}}}\) over all choices of i, j, k, also including the graph \({G}_0\) (described above). The last step is to delete vertices from \({{H}_{{\vartheta }}}\) that are outside the range of interest \(\left[ n \right] \).
Remark
As before, if n is not a power of two, repeat the construction on \(\left[ \text {pow}_2\left( {n}\right) \right] \), and remove redundant vertices.
Analysis of \({{H}_{{\vartheta }}}\)
Lemma 3.7
The graph \({{H}_{{\vartheta }}}\) has \({{\mathcal {O}}}( {\vartheta }^{6} n \log n)\) edges.
Proof
There are \({{\mathcal {O}}}(\log n)\) resolutions. For every such resolution the number of different shifts is \({N}= {{\mathcal {O}}}( 1/{\vartheta }^2) \). For every shift, the number of edges created is bounded by \({{\mathcal {O}}}(n {\xi }^{2}) = {{\mathcal {O}}}(n /{\vartheta }^4)\), by Lemma 2.4. Thus, \({{H}_{{\vartheta }}}\) has \({{\mathcal {O}}}( {\vartheta }^{6} n \log n)\) edges.\(\square \)
In the following, let \(\llbracket s, \ell \rrbracket = [ s\,{:}\,s + \ell 1]\) be the set of consecutive integers starting at s and containing \(\ell \) numbers.
Definition 3.8
For two vertices \(x,y \in \left[ n \right] \), y is a descendant of x (and x is an ancestor of y) in \({{H}_{{\vartheta }}}\), if \(x < y\) and there is a 1path between x and y in \({{H}_{{\vartheta }}}\). For a set \({{B}}\subseteq \left[ n \right] \), and a vertex s, let \({\mathcal {D}}= {\mathcal {D}}({{H}_{{\vartheta }}},s,{{B}})\) be the set of all descendants of s in the graph \({{H}_{{\vartheta }}}\setminus {{B}}\). Similarly, for a vertex t, let \({\mathcal {A}}= {\mathcal {A}}({{H}_{{\vartheta }}},t,{{B}})\) be the set of ancestors of t in \({{H}_{{\vartheta }}}\setminus {{B}}\). For an interval \(I\subseteq \left[ n \right] \), the set \(I\cap {\mathcal {D}}\) is the set of all nodes in I that are descendants of s in the graph \({{H}_{{\vartheta }}}\setminus {{B}}\). In a symmetric fashion, the set of ancestors in I that can reach a node t is denoted by \(I\cap {\mathcal {A}}\).
Now, we show that if a point outside of the shadow has a reasonably large fraction of descendants in an interval, then, one can find an extended interval, which is \(\varTheta (1/{\vartheta })\) times longer and has the same property. The crucial part is to carefully choose two consecutive blocks of \({{\mathcal {I}}}\), so that the expander between them can be used to extend the set of descendants.
Lemma 3.9
Let \({{B}}\subseteq \left[ n \right] \) be the set of deleted locations, \(\alpha = 1{\vartheta }/4\), and \({s}\) be a location in \(\left[ n \right] \) that is not in the \(\alpha \)shadow of \({{B}}\). Let \({h}\ge {N}\) be an integer number, and let \(c\ge 512\) be the constant from the construction. Let \({\mathcal {D}}= {\mathcal {D}}({{H}_{{\vartheta }}},{s},{{B}})\), and assume that \(\llbracket {s}, {h}\rrbracket \cap {{\mathcal {D}}}\ge {\vartheta }{h}/32\). Then, for some number \({\ell }\), \(8{h}/{\vartheta }\le {\ell }\le c{h}/(8{\vartheta })\), we have \( \llbracket {s}, {\ell }\rrbracket \cap {{\mathcal {D}}}\ge {\vartheta }{\ell }/32\).
Proof
The idea is to choose the right resolution in the construction of \({{H}_{{\vartheta }}}\). As a first step, let
be the desired shift. We pick the resolution i such that the shift used, \(2^i/{N}\), is equal to \({\varDelta }\) (i.e., \({\varDelta }= 2^i/{N}\)). This implies that \(i = \log ({N}{\varDelta })\). There is a choice of j and k, such that the right endpoint of \({{\textsf {L}}}= {\texttt {I}}\left( {i, j, k}\right) \) lies in the interval \(\llbracket {s}+h, {\varDelta }\rrbracket \). Notice that \(\llbracket {s}, {h}\rrbracket \subseteq {{\textsf {L}}}\), since
holds. Let \({{\textsf {R}}}= {\texttt {I}}\left( {i, j, k+1}\right) \) and \({\ell }= {\text {right}}\left( {{{\textsf {R}}}}\right)  {s}+1\), where \({\text {right}}\left( {{{\textsf {R}}}}\right) \) is the right endpoint of the interval \({{\textsf {R}}}\), see Fig. 6. Observe that \({\vartheta }h /64 \le {\varDelta }\le {\vartheta }h/32\) and
since \(c\ge 512\). Similarly,
Let \(U = \llbracket {s}, {h}\rrbracket \cap {\mathcal {D}}\). By assumption, \({U}\ge {\vartheta }h/32\). Since the interval \({{\textsf {L}}}\) is of length \(2^i\), we have
Since \({s}\) is not in the \(\alpha \)shadow of \({{B}}\), it follows that the interval \(\llbracket {s}, {\ell }\rrbracket \) contains at least \({\vartheta }{\ell }/4\) elements that are not in \({{B}}\). Let \(\tau \) be the fraction of elements of \({{\textsf {R}}}\) that are not in \({{B}}\). We have that
Let \(U' \subseteq {{\textsf {R}}}\) be the set of all nodes that are connected by an edge of \({{H}_{{\vartheta }}}\) to U. Note that all the nodes of \(U'\) are descendants of s. The graph \({\mathrm {G_E}}\left( {i,j,k}\right) \) guarantees that \(U' \ge (1{\xi }){{{\textsf {R}}}}\), where \({\mathrm {G_E}}\left( {i,j,k}\right) \) is the expander graph built over \({{\textsf {L}}}\) and \({{\textsf {R}}}\). We have that
Since \({\xi }\le {\vartheta }/16\), we have
\(\square \)
Remark
One can state a symmetric version of Lemma 3.9 about the number of ancestors that can reach a target node \({t}\).
Lemma 3.10
Let \({{B}}\subseteq \left[ n \right] \) be the set of faulty vertices, and let \({\mathcal {S}}({\alpha }, {{{B}}})\) be its \(\alpha \)shadow with \(\alpha = 1{\vartheta }/4\). Let \({s}, {t}\) be two vertices in \(\left[ n \right] \setminus {\mathcal {S}}({\alpha }, {{{B}}})\) such that \({s}< {t}\). Then, there is a 1path between \({s}\) and \({t}\) in \({{H}_{{\vartheta }}}\setminus {{B}}\). Further, this path between \({s}\) and \({t}\) uses at most \(2\log {n}\) edges.
Proof
If \({s} {t}\le 3N\), then the two vertices are connected by an edge in \({{H}_{{\vartheta }}}\) by construction, and the claim holds.
Let \({{\textsf {L}}}\) and \({{\textsf {R}}}\) be two adjacent consecutive blocks of the same size in \({{\mathcal {I}}}\) (see (3.2)) such that \({s}\in {{\textsf {L}}}\) and \({t}\in {{\textsf {R}}}\), and these are the smallest blocks for which this property holds. If there are several pairs of intervals of the same size that have the desired property, we pick the pair such that \(\min {({\text {right}}\left( {{{\textsf {L}}}}\right)  {s}, {t} {\text {left}}\left( {{{\textsf {R}}}}\right) )}\) is maximized (i.e., the common boundary between the two intervals is as close to the middle \(({s}+{t})/2\) as possible). Let \(2^i ={{\textsf {R}}} ={{\textsf {L}}}\). It is easy to verify that \(2^i/2 \le [ {s}\,{:}\,{t}] \le 2\cdot 2^i\). Indeed, the lower bound holds by the minimality of \({{\textsf {L}}}\) and \({{\textsf {R}}}\). Otherwise, the right half of \({{\textsf {L}}}\) and the left half of \({{\textsf {R}}}\) would also be a valid choice and would have smaller size. The upper bound follows from the fact that \({{\textsf {L}}}+{{\textsf {R}}}= 2\cdot 2^i\).
Set \(L_0 = \llbracket {s}, {N}\rrbracket \) and \(R_0 = [ {t} {N}+1\,{:}\,{t}]\). Since \({s}\) and \({t}\) are not in the \(\alpha \)shadow, we have that \({L_0 \setminus {{B}}} \ge {\vartheta }{L_0}/4\) and \({R_0 \setminus {{B}}} \ge {\vartheta }{R_0}/4\). For \(i > 0\), in the ith iteration, let \(L_i\) be the interval starting at s of length \(\varTheta ( L_{i1} /{\vartheta })\) such that a fraction of at least \({\vartheta }/32\) of its elements are descendants of s that are not in \({{B}}\). The existence of such an interval is guaranteed by Lemma 3.9. Similarly, we expand the right interval \(R_{i1}\) in a symmetric way.
Let j be the first iteration such that \(L_{j+1} \not \subseteq {{\textsf {L}}}\). By the choice of \({{\textsf {L}}}\) and \({{\textsf {R}}}\) and by Lemma 3.9, we have
This implies that
Applying the same argumentation, using Lemma 3.9 for the reachable ancestors, we have that
(i.e., there are at least \({\xi }{{{\textsf {R}}}}\) elements in \({{\textsf {R}}}\) that have a 1path to \({t}\) in \({{H}_{{\vartheta }}}\setminus {{B}}\)). The graph \({{H}_{{\vartheta }}}\) contains an expander \({\mathrm {G_E}}\left( {i,j,k}\right) \) built over \({{\textsf {L}}}\) and \({{\textsf {R}}}\). By the pigeonhole principle and the properties of the expander between \({{\textsf {L}}}\) and \({{\textsf {R}}}\), there is an edge between a vertex of \({{\textsf {L}}}\cap {\mathcal {D}}\) and a vertex of \({{\textsf {R}}}\cap {\mathcal {A}}\). That is, there is a 1path between s and t in \({{H}_{{\vartheta }}}\setminus {{B}}\), as desired.
By Lemma 3.9 we have \(8{L_{i}} \le 8{L_{i}}/{{\vartheta }} \le {L_{i+1}}\) for \(i=0,\dots ,j\). Therefore, the number of iterations we do to expand \(L_0\) is less than \(\log {n}\). The same is true for \(R_0\). Thus, the number of edges that we used for the 1path is bounded by \(2\log {n}\). \(\square \)
Theorem 3.11
For parameters n and \({\vartheta }>0\), the graph \({{H}_{{\vartheta }}}\) constructed over \(\left[ n \right] \), is a \({\vartheta }\)reliable exact spanner. Furthermore, \({{H}_{{\vartheta }}}\) has \({{\mathcal {O}}}({\vartheta }^{6} n \log n)\) edges.
Proof
The bound on the number of edges is from Lemma 3.7. Next, fix the set \({{B}}\). Define the set \({{B^+}}\) to be the \((1{\vartheta }/4)\)shadow of \({{B}}\). By Lemma 3.3 we have that \({{{B^+}}}\le {{{B}}}/(2(1{\vartheta }/4)1)={{{B}}}/(1  {\vartheta }/2 )\le (1+{\vartheta }){{{B}}}\). A 1path in \({{H}_{{\vartheta }}}\setminus {{B}}\) between any two vertices in \(\left[ n \right] \setminus {{B^+}}\) exists by Lemma 3.10. \(\square \)
Building a Reliable Spanner in \({\mathbb {R}}^d\)
First Construction
In the following, we assume that \({P}\subseteq [0,1)^d\)—this can be done by an appropriate scaling and translation of space. We use a recent result of Chan et al. [14], which introduced localitysensitive orderings. These orderings (which are the same as total orders and are extensions of the \({\mathcal {Z}}\)order) can be thought as an alternative to quadtrees and related structures. For an ordering \(\sigma \) of \([0,1)^d\), and two points \({p},{q}\in [0,1)^d\) such that \({p}\prec _\sigma {q}\), let
be the open interval between \({p}\) and \({q}\) in the order \(\sigma \). Further, let \(\text {ball}\left( {{p}, r}\right) = \{{z}\in [0,1)^d\mid \Vert {p}{z}\Vert \le r\}\) denote the ball centered at \({p}\) with radius r.
Theorem 4.1
[14] For \(\delta \in (0,1)\), there is a set \(\varPi ^{+}(\delta )\) of at most \(M(\delta ) = {{\mathcal {O}}}( \delta ^{d} \log \delta ^{1} )\) orderings of \([0,1)^d\), such that for any two (distinct) points \({p}, {q}\in [0,1)^d\), with \(\ell = \Vert {p}{q}\Vert \), there is an ordering \(\sigma \in \varPi ^{+}\), and a point \({z}\in [0,1)^d\), such that

\({p}\prec _\sigma {q}\),

\(({p},{z})_\sigma \subseteq {\text {ball}}{({p},\delta \ell )}\),

\(({z},{q})_\sigma \subseteq {\text {ball}}{({q},\delta \ell )}\), and

\({z}\in {\text {ball}}{({p},\delta \ell )}\) or \({z}\in {\text {ball}}{({q},\delta \ell )}\).
Furthermore, given such an ordering \(\sigma \), and two points \({p},{q}\), one can compute their ordering, according to \(\sigma \), using \({{\mathcal {O}}}(d\log \delta ^{1})\) arithmetic and bitwiselogical operations.
First, we give a very simple construction and analysis, for building reliable spanners, using the theorem above and the onedimensional construction. We present it to convey the basic principle of this technique. Then, by tuning the parameters, we repeat the construction to obtain a reliable spanner of size \({{\mathcal {O}}}\left( {n \log n (\log \log n)^{6}}\right) \). This construction has a more elaborate analysis, with similar ideas but used in an iterative manner.
Construction in Detail
Given a set \({P}\) of n points in \([0,1)^d\), and parameters \(\varepsilon , {\vartheta }\in (0,1)\), let \(\delta = \varepsilon / ({c}\log n)\),
and \({c}\) be some sufficiently large constant. Next, let \({\vartheta }' = {\vartheta }/ M\) and \(\varPi ^{+}= \varPi ^{+}(\delta )\) be the set of orderings from Theorem 4.1. For each ordering \(\sigma \in \varPi ^{+}\), compute the \({\vartheta }'\)reliable exact spanner \({G}_\sigma \) of \({P}\), see Theorem 3.11, according to \(\sigma \). Let \({G}\) be the graph resulting from taking the union of \({G}_\sigma \) for all \(\sigma \in \varPi ^{+}\).
Analysis
Lemma 4.2
The graph \({G}\), constructed above, is a \({\vartheta }\)reliable \((1+\varepsilon )\)spanner and has size
Proof
Given a (failure) set \({{B}}\subseteq {P}\), let \({{B^+}}\) be the union of all the harmed sets resulting from \({{B}}\) in \({G}_{\sigma }\), for all \(\sigma \in \varPi ^{+}\). We have \({{B^+}}\le (1 + M \cdot {\vartheta }'){{B}} = (1 + {\vartheta }) {{B}}\).
Consider any two points \({p}, {q}\in {P}\setminus {{B^+}}\). By Theorem 4.1, for \(\ell = \Vert {p}{q}\Vert \), there exists an ordering \(\sigma \in \varPi ^{+}\), and a point \({z}\in [0,1)^d\), such that \(({p},{z})_\sigma \subseteq {\text {ball}}{({p},\delta \ell )}\) and \(({z},{q})_\sigma \subseteq {\text {ball}}{({q},\delta \ell )}\) (and \({z}\) is in one of these balls).
By Lemma 3.10, the graph \({G}_\sigma \setminus {{B}}\subseteq {G}\setminus {{B}}\) contains a monotone path \(\pi \), according to \(\sigma \), with \(h = {{\mathcal {O}}}( \log n)\) hops, connecting \({p}\) to \({q}\). Let \({p}= {p}_1, \ldots ,{p}_{h+1} = {q}\) be this path. Observe that there is a unique index i such that \({z}\in ({p}_i,{p}_{i+1})\). We have the following:

For all \(j \ne i\), \(\Vert {p}_j{p}_{j+1}\Vert \le 2\delta \ell \), since \({p}_j\) and \({p}_{j+1}\) are contained in a ball of radius \(\delta \ell \).

\(\Vert {p}_i{p}_{i+1}\Vert \le \Vert {p}_i{p}\Vert + \Vert {p}{q}\Vert +\Vert {q}{p}_{i+1}\Vert \le \ell + 2\delta \ell \).
As such, the total length of \(\pi \) is \(\sum _{j=1}^h \Vert {p}_j{p}_{j+1}\Vert \,{\le }\, (1+ 2\delta h)\ell \le (1+\varepsilon )\ell \), as desired, if \({c}\) is sufficiently large. Namely, \({G}\) is the desired reliable spanner. The number of edges of \({G}\) is
\(\square \)
An Improved Construction
Given a set \({P}\) of n points in \([0,1)^d\), and parameters \(\varepsilon , {\vartheta }\in (0,1)\), let \(\delta = \varepsilon / {c}\),
and \({c}\) be some sufficiently large constant. Next, let \({\vartheta }' = {\vartheta }/ (3NM)\) where \(N=\lceil {\log \log n}\rceil +1\) and \(\varPi ^{+}= \varPi ^{+}(\delta )\) be the set of orderings from Theorem 4.1. For each ordering \(\sigma \in \varPi ^{+}\), compute the \({\vartheta }'\)reliable exact spanner \({G}_\sigma \) of \({P}\), see Theorem 3.11, according to \(\sigma \). Let \({G}\) be the graph resulting from taking the union of \({G}_\sigma \) for all \(\sigma \in \varPi ^{+}\).
Theorem 4.3
The graph \({G}\), constructed above, is a \({\vartheta }\)reliable \((1+\varepsilon )\)spanner and has size
Proof
First, we show the bound on the size. There are M different orderings for which we build the graph of Theorem 3.11. Each of these graphs has \({{\mathcal {O}}}\left( { ({\vartheta }')^{6} n \log n}\right) \) edges. Therefore, the size of \({G}\) is
Next, we identify the set of harmed vertices \({{B^+}}\) given a set of failed vertices \({{B}}\subseteq {P}\). First, let \({{B}}_1\) be the union of all the \((1{\vartheta }'/4)\)shadows resulting from \({{B}}\) in \({G}_{\sigma }\), for all \(\sigma \in \varPi ^{+}\). Then, for \(i = 2,\dots ,N\), we define \({{B}}_i\) in a recursive manner to be the union of all the \((1{\vartheta }'/4)\)shadows resulting from \({{B}}_{i1}\) in \({G}_{\sigma }\), for all \(\sigma \in \varPi ^{+}\). We set \({{B^+}}= {{B}}_N\).
By the recursion and Lemma 3.3 we have that
Therefore, we obtain
using \(1+x \le e^x \le 1+3x\), for \(x\in [0,1]\).
The claim is that there is a \((1+\varepsilon )\)path \({\hat{\pi }}\) between any pair of vertices \({p},{q}\in {P}\setminus {{B^+}}\equiv {P}\setminus {{B}}_N\) such that the path \({\hat{\pi }}\) does not use any vertices of \({{B}}\). By Theorem 3.11, for the right choice of \(\sigma \), the graph \({G}_\sigma \setminus {{B}}_{N1} \subseteq {G}\setminus {{B}}_{N1}\) contains a monotone path connecting \({p}\) to \({q}\), according to \(\sigma \). Observe that there is a unique edge \(({p}',{q}')\) on this path that “jumps” from the locality of \({p}\) to the locality of \({q}\). Formally, we have the following:

\(\Vert {p}'{q}'\Vert \le \Vert {p}{q}\Vert + 2\delta \Vert {p}{q}\Vert =(1 + 2 \varepsilon /{c})\Vert {p}{q}\Vert \).

\(\Vert {p}{p}'\Vert \le 2\delta \Vert {p}{q}\Vert = 2\varepsilon \Vert {p}{q}\Vert /{c}\), and similarly \(\Vert {q}{q}'\Vert \le 2\varepsilon \Vert {p}{q}\Vert /{c}\).

\({p}',{q}'\in {P}\setminus {{B}}_{N1}\).
We fix the edge \(({p}',{q}')\) to be used in the computed path \({\hat{\pi }}\) connecting \({p}\) to \({q}\). We still need to build the two parts of the path \({\hat{\pi }}\) between \({p},{p}'\) and \({q},{q}'\).
This procedure reduced the problem of computing a reliable path between two points \({p},{q}\in {P}\setminus {{B}}_N\), to computing two such paths between two points of \({P}\setminus {{B}}_{N1}\) (i.e., \({p}, {p}'\) and \({q}, {q}'\)). The benefit here is that both \(\Vert {p}{p}'\Vert \) and \(\Vert {q}{q}'\Vert \) are much smaller than \(\Vert {p}{q}\Vert \). We now repeat this refinement process \(N1\) times.
To this end, let \(Q_i\) be the set of active pairs that needs to be connected on the ith level of the recursion. Thus, we have that \(Q_0 = \{({p},{q}) \}\), \(Q_1=\{({p},{p}'), ({q},{q}')\}\), and so on. We repeat this \(N1\) times. On the ith level there are \(Q_i=2^i\) active pairs. Let \((x,y)\in Q_i\) be such a pair. Then, there is an edge \((x',y')\) in the graph \({G}\setminus {{B}}_{N(i+1)}\), such that

\(\Vert x'y'\Vert \le \Vert xy\Vert (1 + 2 \varepsilon /{c}) \le (2\varepsilon /{c})^i (1 + 2 \varepsilon /{c}) \Vert {p}{q}\Vert \);

\(\Vert xx'\Vert \le 2\varepsilon \Vert xy\Vert /{c}\le (2\varepsilon /{c})^{i+1}\Vert {p}{q}\Vert \) and \(\Vert yy'\Vert \le (2\varepsilon /{c})^{i+1}\Vert {p}{q}\Vert \);

\(x',y'\in {P}\setminus {{B}}_{N(i+1)}\).
The edge \((x',y')\) is added to the path \({\hat{\pi }}\). After \(N1\) iterations the set of active pairs is \(Q_{N1}\) and for each pair \((x,y)\in Q_{N1}\) we have that \(x,y\in {P}\setminus {{B}}_1\). For each of these pairs \((x,y)\in Q_{N1}\) we apply Theorems 4.1 and 3.11 to obtain a path of length at most \(2\Vert xy\Vert \log n\) between x and y (and this subpath of course does not contain any vertex in \({{B}}\)). We add all these subpaths to connect the active pairs in the path \({\hat{\pi }}\), which completes \({\hat{\pi }}\) into a path.
Now, we bound the length of path \({\hat{\pi }}\). Since, for all \((x,y)\in Q_{N1}\), we have \(\Vert xy\Vert \le \Vert pq\Vert \cdot (2\varepsilon /{c})^{N1}\) and \(Q_{N1}=2^{N1}\), the total length of the subpaths calculated, in the last step, is
for large enough n and \({c}\ge 8\). The total length of the long edges added to \({\hat{\pi }}\) in the recursion is bounded by
which holds for \({c}\ge 16\). Therefore, the computed path \({\hat{\pi }}\) between \({p}\) and \({q}\) is a \((1+\varepsilon )\)path in \({G}\setminus {{B}}\), which concludes the proof of the theorem. \(\square \)
Construction for Points with Bounded Spread in \({\mathbb {R}}^d\)
The input is again a set \({P}\subset {\mathbb {R}}^d\) of n points, and parameters \({\vartheta }\in (0,1/2)\) and \(\varepsilon \in (0,1)\). The goal is to build a \({\vartheta }\)reliable \((1+\varepsilon )\)spanner on \({P}\) that has optimal size under the condition that the spread \(\varPhi ({P})\) is bounded by a polynomial of n.
Preliminaries
Definition 5.1
For a point set \({P}\subseteq {\mathbb {R}}^d\), let \({\text {diam}}({P})= \max _{{p},{q}\in {P}} \Vert {p}{q}\Vert \) denote the diameter of \({P}\). Let \({\text {c{}p}}\left( {{P}}\right) =\min _{{p},{q}\in {P}, {p}\ne {q}} \Vert {p}{q}\Vert \) denote the closest pair distance in \({P}\). Furthermore, let \({\varPhi }({P}) = \text {diam}\left( {{P}}\right) /{\text {c{}p}}\left( {{P}}\right) \) be the spread of \({P}\).
Definition 5.2
Let \(s>0\) be a real number and let \({B}\) and \({C}\) be sets of points in \({\mathbb {R}}^d\). The sets \({B}\) and \({C}\) are sseparated if \({{\textsf {d}}}\left( {{B},{C}}\right) \ge s\cdot \max {(\text {diam}\left( {{B}}\right) ,\text {diam}\left( {{C}}\right) )}\), where \({{\textsf {d}}}\left( {{B},{C}}\right) = \min _{{p}\in {B}, {q}\in {C}}\Vert {p}{q}\Vert \).
Definition 5.3
Let \({P}\) be a set of n points in the plane and let \(s>0\) be a real number. An swellseparated pair decomposition (sWSPD) of \({P}\) is a collection \({{\mathcal {W}}}= \{({B}_i,{C}_i)\}_{i=1}^m\) of pairs of subsets of \({P}\), such that

the sets \({B}_i\) and \({C}_i\) are sseparated, for all \(i=1,2,\dots ,m\); and

for any \({p},{q}\in {P}\) (\({p}\ne {q}\)) there exists a unique pair \(({B}_i,{C}_i) \in {{\mathcal {W}}}\), such that \({p}\in {B}_i\) and \({q}\in {C}_i\) (or \({q}\in {B}_i\) and \({p}\in {C}_i\)).
The wellseparated pair decomposition was introduced by Callahan and Kosaraju [12]. The size of a WSPD is the number of pairs m, and the weight of a pair decomposition \({\mathcal {W}}\) is defined as \(\omega ({\mathcal {W}}) = \sum _{i=1}^m({B}_i + {C}_i)\). There are several ways to compute an sWSPD. Here, we use a quadtreebased approach, which has important properties that we can exploit. More precisely, we use the following result of Abam and HarPeled [2, Lemma 2.8] for computing a WSPD.
Lemma 5.4
Let \({P}\) be a set of n points in \({\mathbb {R}}^d\), with spread \(\varPhi =\varPhi ({P})\), and let \(\varepsilon >0\) be a parameter. Then, one can compute an \(\varepsilon ^{1}\)WSPD for \({P}\) of total weight \({{\mathcal {O}}}(n\varepsilon ^{d} \log {\varPhi })\). Furthermore, any point of \({P}\) participates in at most \({{\mathcal {O}}}(\varepsilon ^{d} \log {\varPhi })\) pairs.
The Construction of \({{G}_{{\varPhi }}}\)
First, compute a quadtree \({T}\) for the point set \({P}\). For any node \(v\in {T}\), let \(\Box _{v}\) denote the cell (i.e., square or cube, depending on the dimension) represented by v. Let \({P}_{v} = \Box _{v} \cap {P}\) be the point set stored in the subtree of v. Compute a \(({6}/{\varepsilon })\)WSPD \({{\mathcal {W}}}\) of \({P}\), such that each pair consists of two cells of \({T}\), using Lemma 5.4. The pairs in \({{\mathcal {W}}}\) can be represented by pairs of nodes \(\{u,v\}\) of the quadtree \({T}\). Note that the algorithm of Lemma 5.4 uses the diameters and distances of the cells of the quadtree, that is, for a pair \(\{u,v\}\in {{\mathcal {W}}}\), we have
For any pair \(\{u,v\}\in {{\mathcal {W}}}\), we build the bipartite expander of Lemma 2.4 on the sets \({P}_{u}\) and \({P}_{v}\) so that the expander property holds with \({\xi }={\vartheta }/8\). Furthermore, for every two nodes u and v that have the same parent in the quadtree \({T}\) we add the edges of the bipartite expander of Lemma 2.4 between \({P}_{u}\) and \({P}_{v}\). Let \({{G}_{{\varPhi }}}\) be the resulting graph when taking the union over all the sets of edges generated by the above.
Analysis
Lemma 5.5
The graph \({{G}_{{\varPhi }}}\) has \({{\mathcal {O}}}({\xi }^{2} \varepsilon ^{d}n\log {\varPhi ({P})} )\) edges.
Proof
By Lemma 5.4, every point participates in \({{\mathcal {O}}}(\varepsilon ^{d}\log {\varPhi ({P})})\) WSPD pairs. By Lemma 2.4 the average degree in all the expanders is at most \({{\mathcal {O}}}(1/{\xi }^2 )\), resulting in the given bound on the number of edges. There are also additional pairs between a node in \({T}\) and its parent, but since every point participates in only \({{\mathcal {O}}}(\log {\varPhi ({P})})\) such pairs, the number of edges is dominated by the expanders on the WSPD pairs. It follows that the number of edges in the resulting graph is \({{\mathcal {O}}}({\xi }^{2} \varepsilon ^{d}n\log {\varPhi ({P})})\). \(\square \)
We note that there are point sets, with unbounded spread, such that any WSPD on them has weight \(\varOmega (n^2)\). A simple example is a sequence of points along a line with exponentially increasing distances. Thus, requiring the bounded spread on the point set is unavoidable to achieve optimal size by using the above construction.
Definition 5.6
For a number \(\gamma \in (0,1)\), and failed set of vertices \({{B}}\subseteq {P}\), a node v of the quadtree \({T}\) is in the \(\gamma \)shadow if \({{B}}\cap {P}_{v}\ge \gamma {P}_{v}\). Naturally, if v is in the \(\gamma \)shadow, then the points of \({P}_{v}\) are also in the shadow. As such, the \(\gamma \)shadow of \({{B}}\) is the set of all the points in the shadow—formally, \({{{\mathcal {S}}}}\left( {\gamma ,{{B}}}\right) =\bigcup _{v\in T,\,{{B}}\cap {P}_{v}\ge \gamma {P}_{v}}{P}_{v}\).
Let \(\gamma = 1{\vartheta }/2\). Note that \({{B}}\subseteq {{{\mathcal {S}}}}\left( {\gamma ,{{B}}}\right) \), since every point of \({{B}}\) is stored as a singleton in a leaf of \({T}\).
Definition 5.7
For a node x in \({T}\), let \(n(x) = {{P}_{x}}\), and \(b(x) = {{P}_{x} \cap {{B}}}\).
Lemma 5.8
Let \(\gamma = 1{\vartheta }/2\) and \({{B}}\subseteq {P}\) be fixed. Then, the size of the \(\gamma \)shadow of \({{B}}\) is at most \((1+{\vartheta }){{{B}}}\).
Proof
Let H be the set of nodes of \({T}\) that are in the \(\gamma \)shadow of \({{B}}\). A node \( u \in H\) is maximal if none of its ancestors is in H. Let \(H' = \left\{ {u_1,\ldots , u_m} \right\} \) be the set of all maximal nodes in H, and observe that \(\bigcup _{u\in H'} {P}_{u} = \bigcup _{v\in H} {P}_{v} = {\mathcal {S}}({\gamma }, {{{B}}})\). For any two nodes \(x,y\in H'\), we have \({P}_{x} \cap {P}_{y} = \varnothing \). Therefore,
Dividing both sides by \(\gamma \) implies the claim, since \(1/\gamma = 1 / (1{\vartheta }/2) \le 1+{\vartheta }\). \(\square \)
Lemma 5.9
Let \(\gamma = 1{\vartheta }/2\). Fix a node \(u \in {T}\) of the quadtree, the failure set \({{B}}\subseteq {P}\), its shadow \({{B^+}}= {{{\mathcal {S}}}}\left( {\gamma ,{{B}}}\right) \), and the residual graph \({H}= {{G}_{{\varPhi }}}\setminus {{B}}\). For a point \({p}\in {P}_{u} \setminus {{B^+}}\), we define the set
Then, \({R_{u}(p)}\ge 3{\xi }{{P}_{u}}\).
Proof
Let \(u_1,u_2,\dots ,u_j=u\) be the sequence of nodes in the quadtree, from the leaf \(u_1\) that contains (only) \({p}\) to the node u. A level of a point \({q}\in {P}_{u}\), denoted by \({\ell }\left( {{q}}\right) \), is the first index i, such that \({q}\in {P}_{u_i}\). A skipping path in \({{G}_{{\varPhi }}}\) is a sequence of edges \({p}{q}_1, {q}_1 {q}_2, \ldots {q}_{m1} {q}_{m}\) such that \({\ell }\left( {{q}_i}\right) < {\ell }\left( {{q}_{i+1}}\right) \), for all i.
Let \({Q}_{i}\) be the set of all points in \({P}_{u_i} \setminus {{B}}\) that are reachable by a skipping path in \({H}\) from \({p}\). We claim, for \(i=1,\ldots , j\), that
since \({\xi }= {\vartheta }/8\) and \({p}\) is not in the \(\gamma \)shadow. The claim clearly holds for \(u_1\). So, assume inductively that the claim holds for \(u_1,\ldots ,u_{j1}\). Let \(v_1, \ldots , v_m\) be the children of \(u_j\) that have points stored in them (excluding \(u_{j1}\)). There is an expander between \({P}_{u_{j1}}\) and \({P}_{v_i}\), for all i, as a subgraph of \({{G}_{{\varPhi }}}\). It follows, by induction, that
Observe that a skipping path from \({p}\) to \({q}\in {P}_{u_j}\) has length at most
Thus, \( {Q}_{j} \subseteq R_{u}(p)\), and the claim follows. \(\square \)
Now we are ready to prove that \({{G}_{{\varPhi }}}\) is a reliable spanner.
Lemma 5.10
For a set \({P}\subseteq {\mathbb {R}}^d\) of n points, parameters \(\varepsilon \in (0,1)\) and \({\vartheta }\in (0,1/2)\), the graph \({{G}_{{\varPhi }}}\) is a \({\vartheta }\)reliable \((1+\varepsilon )\)spanner with \({{\mathcal {O}}}( \varepsilon ^{d} {\vartheta }^{2} n \log {\varPhi }({P}))\) edges, where \( {\varPhi }({P})\) is the spread of \({P}\).
Proof
Let \({\xi }={\vartheta }/8\) and \(\gamma = 1  {\vartheta }/2\). The bound on the number of edges follows by Lemma 5.5.
Let \({{B}}\) be a set of faulty vertices of \({{G}_{{\varPhi }}}\), and let \({H}= {{G}_{{\varPhi }}}\setminus {{B}}\) be the residual graph. We define \({{B^+}}\) to contain the vertices that are in the \(\gamma \)shadow of \({{B}}\). Then, we have \({{B}}\subseteq {{B^+}}\) and \({{B^+}}\le (1+{\vartheta }) {{{B}}}\) by Lemma 5.8. Finally, we need to show that there exists a \((1+\varepsilon )\)path between any \({p},{q}\in {P}\setminus {{B^+}}\).
Let \(\{u,v\}\in {{\mathcal {W}}}\) be the pair that separates \({p}\) and \({q}\) with \({p}\in {P}_{u}\) and \({q}\in {P}_{v}\), see Fig. 7. Let \(R_{u}(p)\) (resp. \(R_{v}(q)\)) be the set of points in \({P}_{u}\) (resp. \({P}_{v}\)) that are reachable in \({H}\) from \({p}\) (resp. \({q}\)) with paths that have lengths at most \(2 \cdot \text {diam}\left( {\Box _{u}}\right) \) (resp. \(2 \cdot \text {diam}\left( {\Box _{v}}\right) \)). By Lemma 5.9, \(\left {R_{u}(p)} \right \ge 3 {\xi }n(u) \ge {\xi }n(u)\) and \({R_{v}(q)} \ge 3 {\xi }n(v)\).
Since there is a bipartite expander between \({P}_{u}\) and \({P}_{v}\) with parameter \({\xi }\), by Lemma 2.4, the neighborhood Y of \({R}_{u\!\!}\left( {{p}}\right) \) in \({P}_{v}\) has size at least \((1\xi ) {n}{(v)}\). Observe that \(Y \cap {R}_{v\!}\left( {{q}}\right) ={R}_{v\!}\left( {{q}}\right) \setminus ({P}_{v} \setminus Y)\ge {R}_{v\!}\left( {{q}}\right)   {{P}_{v} \setminus Y}\ge 3 {\xi }{n}{(v)} {\xi }{n}{(v)} > 0\). Therefore, there is a point \({q}'\in Y \cap {R}_{v\!}\left( {{q}}\right) \), and a point \({p}'\in {R}_{u\!\!}\left( {{p}}\right) \), such that \({p}'{q}' \in {E}\left( {{{G}_{{\varPhi }}}}\right) \). We have
\(\square \)
Conclusions
A natural open question is whether \({\vartheta }\)reliable spanners can be constructed with \({{\mathcal {O}}}(n\log n)\) edges for general point sets. There are different approaches that lead to near optimal bounds. While we use the onedimensional construction with a careful application of localitysensitive orderings, Bose et al. [7] uses WSPD, centroid decomposition and an idea of Willard [25] for order maintenance. Another natural open question is how to construct reliable spanners that are required to be subgraphs of a given graph.
Notes
This also improves an earlier preliminary construction by (some of) the authors [11].
Available online here: http://cglab.ca/~morin/publications/drafts/robust2/robust220181029.pdf.
References
Abam, M.A., de Berg, M., Farshi, M., Gudmundsson, J.: Regionfault tolerant geometric spanners. Discrete Comput. Geom. 41(4), 556–582 (2009)
Abam, M.A., HarPeled, S.: New constructions of SSPDs and their applications. Comput. Geom. 45(5–6), 200–214 (2012)
Alon, N., Schwartz, O., Shapira, A.: An elementary construction of constantdegree expanders. Comb. Probab. Comput. 17(3), 319–327 (2008)
Aronov, B., de Berg, M., Cheong, O., Gudmundsson, J., Haverkort, H., Smid, M., Vigneron, A.: Sparse geometric graphs with small dilation. Comput. Geom. 40(3), 207–219 (2008)
Arya, S., Mount, D.M., Smid, M.: Randomized and deterministic algorithms for geometric spanners of small diameter. In: 35th Annual Symposium on Foundations of Computer Science (Santa Fe 1994), pp. 703–712. IEEE, Los Alamitos (1994)
Arya, S., Mount, D.M., Smid, M.: Dynamic algorithms for geometric spanners of small diameter: randomized solutions. Comput. Geom. 13(2), 91–107 (1999)
Bose, P., Carmi, P., Dujmović, V., Morin, P.: Nearoptimal \(O(k)\)robust geometric spanners (2018). arXiv:1812.09913
Bose, P., Carmi, P., Farshi, M., Maheshwari, A., Smid, M.: Computing the greedy spanner in nearquadratic time. Algorithmica 58(3), 711–729 (2010)
Bose, P., Dujmović, V., Morin, P., Smid, M.: Robust geometric spanners. SIAM J. Comput. 42(4), 1720–1736 (2013)
Buchin, K., HarPeled, S., Oláh, D.: A spanner for the day after. In: 35th International Symposium on Computational Geometry. Leibniz Int. Proc. Inform., vol. 129, # 19. LeibnizZent. Inform., Wadern (2019)
Buchin, K., Hulshof, T., Oláh, D.: \({\cal{O}}(k)\)robust spanners in one dimension (2018). arXiv:1803.08719
Callahan, P.B., Kosaraju, S.R.: A decomposition of multidimensional point sets with applications to \(k\)nearestneighbors and \(n\)body potential fields. J. ACM 42(1), 67–90 (1995)
Carmi, P., Chaitman, L.: Stable roommates and geometric spanners. In: Canadian Conference on Computational Geometry (Winnipeg 2010), pp. 31–34 (2010)
Chan, T.M., HarPeled, S., Jones, M.: On localitysensitive orderings and their applications. In: 10th Innovations in Theoretical Computer Science. Leibniz Int. Proc. Inform., vol. 124, # 21. LeibnizZent. Inform., Wadern (2019)
Gabber, O., Galil, Z.: Explicit constructions of linearsized superconcentrators. J. Comput. Syst. Sci. 22(3), 407–420 (1981)
Gudmundsson, J., Levcopoulos, Ch., Narasimhan, G.: Fast greedy algorithms for constructing sparse geometric spanners. SIAM J. Comput. 31(5), 1479–1500 (2002)
Hoory, S., Linial, N., Wigderson, A.: Expander graphs and their applications. Bull. Am. Math. Soc. 43(4), 439–561 (2006)
Levcopoulos, Ch., Narasimhan, G., Smid, M.: Efficient algorithms for constructing faulttolerant geometric spanners. In: 30th Annual ACM Symposium on Theory of Computing (Dallas 1998), pp. 186–195. ACM, New York (1999)
Levcopoulos, Ch., Narasimhan, G., Smid, M.: Improved algorithms for constructing faulttolerant spanners. Algorithmica 32(1), 144–156 (2002)
Lukovszki, T.: New results of fault tolerant geometric spanners. In: Workshop on Algorithms and Data Structures (Vancouver 1999). Lecture Notes in Computer Science, vol. 1663, pp. 193–204. Springer, Berlin (1999)
Motwani, R., Raghavan, P.: Randomized Algorithms. Cambridge University Press, Cambridge (1995)
Narasimhan, G., Smid, M.: Geometric Spanner Networks. Cambridge University Press, Cambridge (2007)
Reingold, O., Vadhan, S., Wigderson, A.: Entropy waves, the zig–zag graph product, and new constantdegree expanders. Ann. Math. 155(1), 157–187 (2002)
Smid, M.H.M.: Geometric spanners with few edges and degree five. In: Theory of Computing 2006 (Hobart), pp. 7–9. Australian Computer Society, Darlinghurst (2006)
Willard, D.E.: Maintaining dense sequential files in a dynamic environment (extended abstract). In: 14th Annual ACM Symposium on Theory of Computing (San Francisco 1982), pp. 114–121. ACM, New York (1982)
Acknowledgements
The authors thank Pat Morin for his useful comments on this manuscript, and keeping us updated about his own work [7]. The authors also thank the anonymous referees for the detailed and useful comments.
Author information
Authors and Affiliations
Corresponding author
Additional information
Editor in Charge Kenneth Clarkson
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
A preliminary version of the paper appeared in SoCG 2019 [10]. Sariel HarPeled was partially supported by NSF AF awards CCF1421231 and CCF1907400. Dániel Oláh was supported by the Netherlands Organisation for Scientific Research (NWO) through Gravitationgrant NETWORKS024.002.003.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Buchin, K., HarPeled, S. & Oláh, D. A Spanner for the Day After. Discrete Comput Geom 64, 1167–1191 (2020). https://doi.org/10.1007/s00454020002286
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00454020002286
Keywords
 Geometric spanners
 Reliable spanners
 Robust spanners
 Vertex failures
Mathematics Subject Classification
 65D18
 68R01