 # Fault-Tolerant Additive Weighted Geometric Spanners

Let S be a set of n points and let w be a function that assigns non-negative weights to points in S. The additive weighted distance d_w(p, q) between two points p,q belonging to S is defined as w(p) + d(p, q) + w(q) if p q and it is zero if p = q. Here, d(p, q) denotes the (geodesic) Euclidean distance between p and q. A graph G(S, E) is called a t-spanner for the additive weighted set S of points if for any two points p and q in S the distance between p and q in graph G is at most t.d_w(p, q) for a real number t > 1. Here, d_w(p,q) is the additive weighted distance between p and q. For some integer k ≥ 1, a t-spanner G for the set S is a (k, t)-vertex fault-tolerant additive weighted spanner, denoted with (k, t)-VFTAWS, if for any set S' ⊂ S with cardinality at most k, the graph G S' is a t-spanner for the points in S S'. For any given real number ϵ > 0, we obtain the following results: - When the points in S belong to Euclidean space R^d, an algorithm to compute a (k,(2 + ϵ))-VFTAWS with O(kn) edges for the metric space (S, d_w). Here, for any two points p, q ∈ S, d(p, q) is the Euclidean distance between p and q in R^d. - When the points in S belong to a simple polygon P, for the metric space (S, d_w), one algorithm to compute a geodesic (k, (2 + ϵ))-VFTAWS with O(k n/ϵ^2n) edges and another algorithm to compute a geodesic (k, (√(10) + ϵ))-VFTAWS with O(kn(n)^2) edges. Here, for any two points p, q ∈ S, d(p, q) is the geodesic Euclidean distance along the shortest path between p and q in P. - When the points in S lie on a terrain T, an algorithm to compute a geodesic (k, (2 + ϵ))-VFTAWS with O(k n/ϵ^2n) edges.

## Authors

##### This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

## 1 Introduction

When designing geometric networks on a given set of points located in a metric space, it is desirable for the network to have short paths between any pair of nodes while being sparse with respect to number of edges. Let be an edge-weighted geometric graph on a set of points in . The weight of any edge is the Euclidean distance between and . The distance in between any two nodes and , denoted by , is defined as the length of a shortest (that is, minimum-weighted) path between and in . The graph is called a -spanner for some if for any two points we have . The smallest for which is a -spanner is called the stretch factor of and the number of edges of is called its size. Althöfer et al.  first attempted to study sparse spanners on edge-weighted graphs that have the triangle-inequality property. Narasimhan and Smid  gives a detailed account of geometric spanners, including a -spanner for the set of points in with only edges for any .

As mentioned in Abam et al. , the cost of traversing a path in a network is not only determined by the lengths of the edges on the path but also by the delays occurring at the nodes on the path. These delays are modeled in  with the additive weighted metric. Let be a set of points in . For every , let be the non-negative weight associated to . The following additive weighted distance function on defining the metric space is considered in : for any ,

 dw(p,q)={0if p=q,w(p)+|pq|+w(q)if p≠q.

For any fixed constant ,  devises an algorithm to compute a -spanner with a linear number of edges for . Recently, Abam et al.  showed that there exists a -spanner with a linear number of edges for the metric space that has bounded doubling dimension [8, 7]. And,  gives a lower bound on the stretch factor, showing that stretch is nearly optimal. Bose et al.  studied the problem of computing spanners for a weighted set of points. They considered the points lying on the plane to have positive weights associated with them; and defined the distance between any two distinct points as . Under the assumption that the distance between any pair of points is non-negative, they showed the existence of a -spanner with edges.

The free space of the given polygonal domain is defined as the region interior to but excludes the interior of all the holes of . Given a set of points in the free space defined by the polygonal domain , computing geodesic spanners is considered in Abam et al. . In computing paths in polygonal domains, interior of holes and the simple polygon that contains these holes are considered as obstacles. Moreover, for any two distinct points , the is defined as the geodesic Euclidean distance along a shortest path in between and . Abam et al.  showed that for the metric space , for any constant , there exists a -spanner of size . Further, for any constant ,  gave a -spanner with edges when i.e., the polygonal domain is a simple polygon with no holes. Given a set of points on a polyhedral terrain , the geodesic Euclidean distance between any two points is the length of a shortest path on between and . Abam et al.  showed that for a set of unweighted points on a polyhedral terrain, for any constant , there exists a -geodesic spanner with edges.

A network may need to be vertex fault-tolerant i.e., when a subset of nodes are removed, the induced network on the remaining nodes may require to be connected. Formally, a graph is a -vertex fault-tolerant -spanner, denoted by -VFTS, for a set of points in if for any subset of with size at most , the graph is a -spanner for the points of . [9, 10, 6] devised algorithms’ to compute a -VFTS for the set of points located in . These algorithms are presented in  as well.  devised an algorithm to compute a -VFTS of size in time and another algorithm to compute a -VFTS with edges in time.  gives an algorithm to compute a -VFTS of size in time. The algorithm given in  computes a -VFTS having edges in time with total weight of edges upper bounded by a multiplicative factor of the weight of MST of the given set of points.

Our results. The spanners computed in this paper are first of their kind as we combine fault-tolerance with the additive weighted set of points. We devise the following algorithms for computing the vertex fault-tolerant additive weighted geometric spanners (VFTAWS) for any and :

• Given a set of additive weighted points lying in , our first algorithm presented herewith computes a -VFTAWS having edges. We incorporate fault-tolerance to the recent results of Abam et al.  while retaining the same stretch factor and increasing the number of edges in the spanner by a multiplicative factor of .

• Given a set of additive weighted points in a simple polygon, we propose two algorithms: one computes a -VFTAWS with edges and the other computes a -VFTAWS with edges. For the first algorithm, we combine the clustering based algorithm from  and , and with the careful addition of more edges, we show that fault-tolerance is achieved. The second algorithm uses the semi-separated pair decomposition (SSPD) based algorithm from . As part of this, in computing clusters we use the result from .

• Given a set of additive weighted points lying on a terrain, we devise an algorithm to compute a -VFTAWS having edges. For achieving the fault-tolerance, our algorithm adds a minimal set of edges to the spanner constructed in .

Unless specified otherwise, the points are assumed to be in Euclidean space . The Euclidean distance between two points and is denoted by . The distance between two points in the metric space is denoted by . The length of the shortest path between and in a graph is denoted by .

Section 2 details the algorithm and its analysis to compute a -VFTAWS when the input additive weighted points are lying in . When the input additive weighted points are in a simple polygon, Subsections 3.1 and 3.2 of Section 3 respectively devise algorithms’ to compute a -VFTAWS and -VFTAWS. Section 4 devises an algorithm to compute a -VFTAWS when the input points are on a terrain. Conclusions are in Section 5.

## 2 Vertex fault-tolerant Spanner for additive weighted set of points

We devise an algorithm to compute a -VFTAWS for the set of additive weighted points, where and . Following the algorithm given in , we first partition all the points belonging to into at least clusters. For creating these clusters, the points in set are sorted in non-decreasing order of their weights. Then the first points in this sorted list are taken as the centres of distinct clusters. As the algorithm progress, more points are added to these clusters and more clusters (with cluster centers) may also be created. In any iteration of the algorithm, for any point in the remaining sorted list, among the current set of cluster centres, we determine the cluster centre nearest to . Let be the cluster to which is the center. It adds to the cluster if ; otherwise, a new cluster with as its centre is initiated. Let be the final set of cluster centers obtained through this procedure. For every , the cluster to which is the center is denoted by . Using the algorithm from , we compute a -VFTS for the set of cluster centers. We compute a new graph , which is initialized to unioned with points in as additional vertices. Our algorithm to compute a -VFTAWS differs from  with respect to both the algorithm used in computing and the set of edges added to . The latter part is described now. For any node of , let be the set comprising nearest neighbors of in . For every , let be the set comprising of least weighted points of cluster . For each point , if belongs to cluster , for each , our algorithm introduces an edge between and with weight to . In the following lemma, we prove that the graph is indeed a -VFTAWS with edges.

###### Theorem 2.1

Let be a set of additive weighted points in with non-negative weights associated to points with weight function . For any fixed constant , the graph is a -VFTAWS with edges for the metric space .

###### Proof

From , the number of edges in is , which is essentially . From each point in , we are adding at most edges. Hence, the number of edges in is .

For showing that is a -VFTAWS for the metric space , we show that for any set with and for any two points there exists a -spanner path between and in . Following are the possible cases based on the role and play with respect to clusters formed and their centers:

Case 1: Both and are cluster centres of two distinct clusters i.e., .

Since is a -VFTS for the set ,

 dG∖S′(p,q) =dB∖S′(p,q) ≤tB⋅dw(p,q)

Case 2: Both and are in the same cluster and one of them, say , is the centre of . Since is the least weighted point in , there exists an edge joining and in . Hence,

 dG∖S′(p,q) =dw(p,q)

Case 3: Both and are in the same cluster, say ; , ; and, .

 dG∖S′(p,q) =dw(p,ci)+dw(ci,q) =w(p)+|pci|+w(ci)+w(ci)+|ciq|+w(q) ≤w(p)+ϵ⋅w(p)+w(ci)+w(ci)+ϵ⋅w(q)+w(q) [since a point x is added to cluster Cl only if |xcl|≤ϵ⋅w(x)] ≤w(p)+ϵ⋅w(p)+w(p)+w(q)+ϵ⋅w(q)+w(q) [since the points are sorted in the non-decreasing order of% their weights and the first point added to any cluster is taken as its center] =(2+ϵ)⋅[w(p)+w(q)] <(2+ϵ)⋅[w(p)+|pq|+w(q)] =(2+ϵ)⋅dw(p,q)

Case 4: Both and are in the same cluster, say ; , ; and, .
In the case of , there exists an edge between and in . Hence, suppose that . Let be the set of least weighted points from . If then there exists an edge between and in . If and then as well there exists an edge between and . (Argument for the other case in which and is analogous.) Now consider the case in which both . Since and are connected to every point in and , there exists an such that and the edges and belong to .

 dG∖S′(p,q) =dw(p,r)+dw(r,q) =w(p)+|pr|+w(r)+w(r)+|rq|+w(q) ≤w(p)+|pci|+|cir|+w(r)+w(r)+|rci|+|ciq|+w(q) [by triangle inequality] ≤w(p)+ϵ⋅w(p)+ϵ⋅w(r)+w(r)+w(r)+ϵ⋅w(r)+ϵ⋅w(q)+w(q) [since a point x is added to cluster Cl only if |xcl|≤ϵ⋅w(x)] ≤w(p)+ϵ⋅w(p)+ϵ⋅w(p)+w(p)+w(q)+ϵ⋅w(q)+ϵ⋅w(q)+w(q) [since for any point the edges are added to the k+1 least weighted points of the cluster to which it belongs] =(2+2ϵ)⋅[w(p)+w(q)] <(2+2ϵ)⋅[w(p)+|pq|+w(q)] =(2+2ϵ)⋅dw(p,q)

Case 5: Points and belong to two distinct clusters, say and . In addition, and , and neither of the cluster centres belong to .

Then,

 dG∖S′(p,q) =dw(p,ci)+dB(ci,cj)+dw(cj,q) =w(p)+|pci|+w(ci)+dB(ci,cj)+w(cj)+|cjq|+w(q) ≤w(p)+ϵ⋅w(p)+w(ci)+dB(ci,cj)+w(cj)+ϵ⋅w(q)+w(q) [since a point x is added to cluster Cl only if |xcl|≤ϵ⋅w(x)] ≤(1+ϵ)⋅[w(p)+w(q)]+w(ci)+w(cj)+tB⋅dw(ci,cj) [since B is a (k,tB)%−vertexfault−tolerantspannerfortheset C⋅]
 ≤(1+ϵ)⋅[w(p)+w(q)]+w(p)+w(q)+tB⋅dw(ci,cj) [since the points are sorted in the non-decreasing order of their weights and the first point added to any cluster is taken as center of that cluster] =(2+ϵ)⋅[w(p)+w(q)]+tB⋅[w(ci)+|cicj|+w(cj)] ≤(2+ϵ)⋅[w(p)+w(q)]+tB⋅[w(p)+|cicj|+w(q)] [since the points are sorted in the non-decreasing order of their weights and the first point added to any cluster is taken as its center] ≤(2+ϵ)⋅[w(p)+w(q)]+tB⋅[w(p)+w(q)+|cip|+|pq|+|qcj|] [by triangle inequality] ≤(2+ϵ)⋅[w(p)+w(q)]+tB⋅[w(p)+w(q)+ϵ⋅w(p)+|pq|+ϵ⋅w(q)] [since a point x is added to cluster Cl only if |xcl|≤ϵ⋅w(x)] =(2+ϵ)⋅[w(p)+w(q)]+tB⋅[(1+ϵ)⋅[w(p)+w(q)]+|pq|] <(2+ϵ)⋅[w(p)+w(q)+|pq|]+tB⋅(1+ϵ)⋅[w(p)+w(q)+|pq|]

Case 6: Both the points and are in two distinct clusters, say and , one of them, say is the centre of (i.e., ), and .

Then,

 dG∖S′(p,q) =dB(ci,cj)+dw(cj,q) ≤tB⋅dw(ci,cj)+dw(cj,q) [since B is a (k,tB)%−vertexfault−tolerantspannerfortheset C] =tB⋅dw(ci,cj)+w(cj)+|cjq|+w(q) =tB⋅[w(ci)+|cicj|+w(cj)]+w(cj)+|cjq|+w(q) ≤tB⋅[w(p)+|cicj|+w(q)]+w(q)+|cjq|+w(q) [since the points are sorted in the non-decreasing order of their weights and the first point added to any cluster is taken as its center] ≤tB⋅[w(p)+|cicj|+w(q)]+w(q)+ϵ⋅w(q)+w(q) [since a point x is added to cluster Cl only if |xcl|≤ϵ⋅w(x)] ≤tB⋅[w(p)+|cip|+|pq|+|qcj|+w(q)]+w(q)+ϵ⋅w(q)+w(q) [by triangle inequality] ≤tB⋅[w(p)+ϵ⋅w(p)+|pq|+ϵ⋅w(q)+w(q)]+w(q)+ϵ⋅w(q)+w(q) [since a point x is added to cluster Cl only if |xcl|≤ϵ.w(x)] =tB⋅[(1+ϵ)⋅[w(p)+w(q)]+|pq|]+(2+ϵ)⋅w(q) ≤tB⋅[(1+ϵ)⋅[w(p)+w(q)]+|pq|]+(2+ϵ)⋅[w(p)+w(q)] [since each point has non-negative weight associated with it] ≤tB⋅(2+ϵ)⋅dw(p,q)

Case 7: Both the points and are in two distinct clusters, say and ; , ; and, one of these centers, say , belongs to and the other center .

Since is connected to nearest neighbor of in , there exists a such that and the edge belongs to . Therefore,

 dG∖S′(p,q) =dw(p,ci)+dB(ci,cr)+dw(cr,q) =w(p)+|pci|+w(ci)+dB(ci,cr)+w(cr)+|crq|+w(q) =≤w(p)+ϵ⋅w(p)+w(ci)+dB(ci,cr)+w(cr)+|crq|+w(q) [since a point x is added to cluster Cl% only if |xcl|≤ϵ⋅w(x)] ≤w(p)+ϵ⋅w(p)+w(ci)+dB(ci,cr)+w(cr)+|crcj|+|cjq|+w(q) [by triangle inequality] ≤w(p)+ϵ⋅w(p)+w(ci)+dB(ci,cr)+w(cr)+|crcj|+ϵ⋅w(q)+w(q) [since a point x is added to cluster Cl only if |xcl|≤ϵ⋅w(x)] ≤(1+ϵ)⋅[w(p)+w(q)]+w(ci)+dB(ci,cr)+w(cr)+|cjcr| (1)

Since is a -VFTS, there are at least vertex disjoint -spanner paths between and in . As is among the nearest neighbors of in , one of these paths from to must use .

 dB(ci,cr)+dw(cr,cj)

Substituting (2) in (1),

 dG∖S′(p,q) <(1+ϵ)⋅[w(p)+w(q)]+w(ci)+tB⋅dw(ci,cj)−w(cj) ≤(1+ϵ)⋅[w(p)+w(q)]+w(ci)+tB⋅dw(ci,cj) [since weight associated with any point is non-negative] =(1+ϵ)⋅[w(p)+w(q)]+w(ci)+tB⋅[w(ci)+|cicj|+w(cj)] ≤(1+ϵ)⋅[w(p)+w(q)]+w(p)+tB⋅[w(p)+|cicj|+w(q)] [since the points are sorted in the non-decreasing order of their weights and the first point added to any cluster is taken as its center] ≤(1+ϵ)⋅[w(p)+w(q)]+w(p)+tB⋅[w(p)+|cip|+|pq|+|qcj|+w(q)] [by triangle inequality] ≤(1+ϵ)⋅[w(p)+w(q)]+w(p)+tB⋅[w(p)+ϵ⋅w(p)+|pq|+ϵ⋅w(q)+w(q)] [since a point x is added to cluster Cl only if |xcl|≤ϵ⋅w(x)] ≤(2+ϵ)⋅[w(p)+w(q)]+tB⋅[(1+ϵ)⋅[w(p)+w(q)]+|pq|] ≤tB⋅[(2+ϵ)⋅[w(p)+w(q)]+|pq|] [since weight associated with any point is non-negative] ≤tB⋅(2+ϵ)⋅dw(p,q)

Case 8: Points and are in two distinct clusters, say and ; , ; and both .

Since (resp. ) is connected to nearest neighbor of (resp. ), there exists such that and the edges and belong to .

 dG∖S′(p,q) =dw(p,cr)+dB(cr,cl)+dw(cl,q) =w(p)+|pcr|+w(cr)+dB(cr,cl)+w(cl)+|clq|+w(q) ≤w(p)+|pci|+|cicr|+w(cr)+dB(cr,cl) +w(cl)+|cjcl|+|cjq|+w(q) (3) [by triangle inequality]

Since is a -VFTS, there are at least vertex disjoint -spanner paths between and in . As (resp. ) is among the nearest neighbors of (resp. ) in , one of these paths from to must use (resp. ).

 dw(ci,cr)+dB(cr,cl)+dw(cl,cj)

Substituting (4) in (3), we get

 dG∖S′(p,q)