This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Local Routing in a Tree Metric 1-Spanner

Milutin Brankovic    Joachim Gudmundsson    André van Renssen
Abstract

Solomon and Elkin [14] constructed a shortcutting scheme for weighted trees which results in a 1-spanner for the tree metric induced by the input tree. The spanner has logarithmic lightness, logarithmic diameter, a linear number of edges and bounded degree (provided the input tree has bounded degree). This spanner has been applied in a series of papers devoted to designing bounded degree, low-diameter, low-weight (1+ϵ)(1+\epsilon)-spanners in Euclidean and doubling metrics. In this paper, we present a simple local routing algorithm for this tree metric spanner. The algorithm has a routing ratio of 1, is guaranteed to terminate after O(logn)O(\log n) hops and requires O(Δlogn)O(\Delta\log n) bits of storage per vertex where Δ\Delta is the maximum degree of the tree on which the spanner is constructed. This local routing algorithm can be adapted to a local routing algorithm for a doubling metric spanner which makes use of the shortcutting scheme. A preliminary version of this paper appeared in the proceedings of COCOON’20 [6].

1 Introduction

Let TT be a weighted tree. The tree metric induced by TT, denoted MTM_{T}, is the complete graph on the vertices of TT where the weight of each edge (u,v)(u,v) is the weight of the path connecting uu and vv in TT. For t1t\geq 1, a tt-spanner for a metric (V,d)(V,d) is a subgraph HH of the complete graph on VV such that every pair of distinct points u,vVu,v\in V is connected by a path in HH of total weight at most td(u,v)t\cdot d(u,v). We refer to such paths as tt-spanner paths. A tt-spanner has diameter Λ\Lambda if every pair of points is connected by a tt-spanner path consisting of at most Λ\Lambda edges. Typically, tt-spanners are designed to be sparse, often with a linear number of edges. The lightness of a graph is the ratio of its weight to the weight of its minimum spanning tree. Solomon and Elkin [14] define a 1-spanner for tree metrics. Given an nn vertex weighted tree of maximum degree Δ\Delta, the 1-spanner has O(n)O(n) edges, O(logn)O(\log n) diameter, O(logn)O(\log n) lightness and maximum degree bounded by Δ+O(1)\Delta+O(1). While being an interesting construction in its own right, this tree metric 1-spanner has been used in a series of papers as a tool for reducing the diameter of various Euclidean and doubling metric spanner constructions [2, 7, 9, 14, 15].

Once a spanner has been constructed, it becomes important to find these short paths efficiently. A local routing algorithm for a weighted graph GG is a method by which a message can be sent from any vertex in GG to a given destination vertex. The successor to each vertex uu on the path traversed by the routing algorithm must be determined using only knowledge of the destination vertex, the neighbourhood of uu and possibly some extra information stored at uu. The efficiency of a routing algorithm is measured by the distance a message needs to travel through a network before reaching its destination as well as by the storage requirements for each vertex. There is a great deal of work on local routing algorithms in the literature. The difficulty of designing a good local routing algorithm clearly depends on the properties of the underlying network. Some authors have designed algorithms for very general classes of networks. For example, the algorithm of Chan et al. [8] works in any network although its quality depends on the induced doubling dimension. Many authors have focused on highly efficient algorithms for specific classes of networks. For example, there has been a line of research into routing algorithms for various classes of planar graphs [4, 5]. Support for efficient local routing algorithms is a desirable feature in a spanner and in some recent papers, researchers have designed spanners which simultaneously achieve support for efficient local routing with other properties. See, for example, the work of Ashvinkumar et al. [3].

There appears to be little work in the literature in designing spanners which achieve both support for local routing as well as low diameter. Given a spanner with diameter Λ\Lambda, it is natural to require that a local routing algorithm on this spanner match this diameter, i.e., the algorithm should be guaranteed to terminate after at most Λ\Lambda hops. Abraham and Malkhi [1] give a construction, for any ϵ>0\epsilon>0, of a (1+ϵ)(1+\epsilon)-spanner for points in two dimensional Euclidean space with an accompanying routing algorithm. The diameter of the routing algorithm is O(logD)O(\log D) with high probability where DD is the quotient of the largest and smallest inter-point distances. The routing algorithm has routing ratio O(logn)O(\log n), with high probability, for nn points on a uniform grid.

In this paper, we demonstrate that the 1-spanner construction of Solomon and Elkin [14] supports a local routing algorithm with O(logn)O(\log n) diameter in the worst case. In Section 4, we show that this routing algorithm can be adapted to a class of doubling metric (1+ϵ)(1+\epsilon)-spanners which employ the 1-spanner construction to achieve low diameter while retaining low weight and low degree.

2 The Model

A local routing algorithm for a weighted graph GG is a distributed algorithm in which each vertex is an independent processor. At the beginning of a round, a node may find that it has received a message. If a message is received, the algorithm decides to which neighbour the message should be forwarded. The following information is available to each vertex vv in GG:

  1. 1.

    A header contained in the message.

  2. 2.

    The label of vv as well as labels of neighbouring vertices.

The message header stores the label of the destination vertex as well as other information if required by the routing algorithm. The labels are used not only as unique identifiers of vertices but may also store additional information if required. The labels of vertices are computed in a pre-processing step before the algorithm is run. Our model does not consider the running time of computation performed at each vertex in each round and so we do not specify the type of data structure used for headers and labels. The routing decision made at each vertex is deterministic. A routing algorithm is evaluated on the basis of the following quality measures.

  • Routing Ratio. Given two vertices uu, vv of GG, let dG(u,v)d_{G}(u,v) denote the shortest path distance from uu to vv and let droute(u,v)d_{route}(u,v) denote the total length of the path traversed by the routing algorithm when routing from uu to vv. The routing ratio is defined to be maxu,vV{droute(u,v)dG(u,v)}\max_{u,v\in V}\left\{\frac{d_{route}(u,v)}{d_{G}(u,v)}\right\}.

  • Diameter. A routing algorithm is said to have diameter Λ\Lambda if a message is guaranteed to reach its destination after traversing at most Λ\Lambda edges.

  • Storage. A bound on the number of bits stored at vertices and in message headers.

3 Local Routing in Tree Metrics

In this section we present a slightly modified version of the tree metric 1-spanner of Solomon and Elkin [14]. We then present our routing algorithm for this spanner and show that it has a routing ratio of 1.

3.1 The Spanner

In this section we describe the tree metric 1-spanner construction of Solomon and Elkin [14].

We first define some notation used in this section. TT will denote a weighted, rooted tree and wt(T)wt(T) will denote its weight. Given a graph GG, V(G)V(G) and E(G)E(G) denote its vertex and edge sets respectively. The root of TT is denoted rt(T)rt(T) and ch(v)ch(v) denotes the number of children of vv. As in the notation of [14], the children of a vertex vv are denoted c1(v),,cch(v)(v)c_{1}(v),...,c_{ch(v)}(v) and p(v)p(v) denotes the parent of a vertex vv. The lowest common ancestor of two vertices u,vV(T)u,v\in V(T) will be denoted by lca(u,v)lca(u,v). Given u,vV(T)u,v\in V(T), P(u,v)P(u,v) denotes the unique path from uu to vv in TT. Given vV(T)v\in V(T), TvT_{v} will denote the subtree of TT rooted at vv.

The shortcutting procedure selects a constant number of cut vertices in the tree whose removal results in a forest of trees which are at most a constant fraction of the size of the input tree. The spanner is obtained by building the complete graph on these cut vertices and recursively applying the procedure to all subtrees obtained by removing the cut vertices. We note that the original construction appearing due to Solomon and Elkin [14] actually builds a low diameter spanner on the cut vertices rather than the complete graph.

We first outline the method by which the cut vertices are selected. We assume that among all subtrees rooted at children of a vertex vv, the subtree rooted at the leftmost vertex is the largest. That is, |Tc1(v)||Tci(v)||T_{c_{1}(v)}|\geq|T_{c_{i}(v)}|, for all i>1i>1.

For an integer dd, we call a vertex vv dd-balanced if |Tc1(v)||T|d|T_{c_{1}(v)}|\leq|T|-d. We label an edge (u,v)(u,v) of TT as leftmost if u=c1(v)u=c_{1}(v) or v=c1(u)v=c_{1}(u). Let P(v)P(v) denote the path of maximum length from vv to some descendant of vv which includes only leftmost edges. We say the last vertex on P(v)P(v) is the leftmost vertex in TvT_{v} and we denote it by l(v)l(v). We define l(T):=l(rt(T))l(T):=l(rt(T)). The construction we describe involves taking subtrees of an input tree. These subtrees inherit the ‘leftmost’ labelling of the input tree so it may be the case that l(T)=rt(T)l(T)=rt(T). If there is a dd-balanced vertex along P(v)P(v), we denote the first such vertex by bd(v)b_{d}(v). Otherwise, bd(v)=NULLb_{d}(v)=NULL.

Given a rooted tree TT and a positive integer dd, we define a set of vertices CV(T,d)CV(T,d) as follows. Set v:=rt(T)v:=rt(T). If bd(v)=NULLb_{d}(v)=NULL, CV(T,d)CV(T,d) is defined to be \emptyset. Otherwise,

CV(T,d):={bd(v)}(i=1ch(bd(v))CV(Tci(bd(v)),d)).CV(T,d):=\{b_{d}(v)\}\cup\left(\bigcup_{i=1}^{ch(b_{d}(v))}CV(T_{c_{i}(b_{d}(v))},d)\right).

Let kk be a positive integer. We define a set of vertices

CT:={V(T) if kn/21,CV(T,d){l(T),rt(T)} otherwise.C_{T}:=\begin{cases}V(T)\mbox{ if }k\geq n/2-1,\\ CV(T,d)\cup\{l(T),rt(T)\}\mbox{ otherwise.}\end{cases}

where d:=n/kd:=n/k. (See Figure 1 for an example.) The spanner is constructed via the following recursive procedure which takes as input a tree TT and an integer parameter k4k\geq 4. Initialize the spanner as G=TG=T. Compute the set CTC_{T}, with respect to kk, and add the edges of the complete graph on CTC_{T} to GG. Denote by TCTT\setminus C_{T} the forest obtained by removing the vertices in CTC_{T}, along with all incident edges, from TT. Recursively run the algorithm on all trees in the forest TCTT\setminus C_{T} and add the resulting edges to GG. Note that the parameter kk is passed down to recursive calls of the algorithm while the parameter dd is recomputed based on the size of the subtree on which the algorithm is called. The following lemmas are established by Solomon and Elkin [14]:

Lemma 3.1.

For k2k\geq 2, the set CTC_{T} contains at most k+1k+1 vertices.

Lemma 3.2.

Each tree in the forest TCTT\setminus C_{T} has size at most 2n/k2n/k.

In particular, Lemma 3.2 implies that the recursion depth of the spanner construction algorithm is O(logn)O(\log n) for k4k\geq 4.

Refer to caption
Figure 1: A depiction of the set CTC_{T} for a tree with n=17n=17 vertices and the parameter kk set to k=5k=5. The vertices of CTC_{T} are inside the dashed circles. The vertices and edges of the forest TCTT\setminus C_{T} are shown in bold.

Solomon and Elkin [14] show that the graph resulting from a slightly more elaborate version of this shortcutting scheme has weight O(logn)wt(T)O(\log n)\cdot wt(T). Their scheme differs from what we have presented in that instead of building the complete graph on the set of cut vertices CTC_{T}, they build a certain 1-spanner with O(k)O(k) edges and diameter O(α(k))O(\alpha(k)) where α\alpha is the inverse Ackermann function. Since we consider the parameter kk to be constant, this modification does not affect the weight bound of the construction.

Theorem 3.1 ([14]).

Let TT be a weighted rooted tree and let kk be a positive integer, 4kn/214\leq k\leq n/2-1. The graph GG obtained by applying the algorithm described above to TT using the parameter kk is a 1-spanner for the tree metric induced by TT. Moreover, GG has diameter bounded by O(logkn)O(\log_{k}n), weight bounded by O(k2logkn)wt(T)O(k^{2}\cdot\log_{k}n)\cdot wt(T) and maximum degree bounded by Δ+O(k)\Delta+O(k) where Δ\Delta is the maximum degree of TT.

Let GG be the spanner resulting from running the algorithm described above on some tree TT with respect to the parameter kk. We define canonical subtrees of TT with respect to kk to be the subtrees computed during the course of the construction of GG. Canonical subtrees are defined recursively as follows. As a base for the recursive definition, the input tree TT is considered to be a canonical subtree with respect to TT and kk. Suppose TT^{\prime} is a canonical subtree with respect to TT and kk. Then each tree in the forest TCTT^{\prime}\setminus C_{T^{\prime}} is a canonical subtree with respect to TT and kk. We speak of canonical subtrees without reference to the parameters TT and kk when they are clear from the context. Given a vertex vv of TT, we denote by TvT^{v} the canonical subtree for which vCTvv\in C_{T^{v}}. When a canonical subtree TT^{\prime} is small enough, CT=V(T)C_{T^{\prime}}=V(T^{\prime}) and so it is clear that CTvC_{T^{v}} is well defined for each vV(T)v\in V(T). We say that TvT^{v} is the canonical subtree of vv and that vv is a cut vertex of TvT^{v}.

We establish some technical properties of canonical subtrees which will be of use in the following section. We reword statement 4 in Corollary 2.17 from the paper of Solomon and Elkin [14] in Lemma 3.3 and prove it using our terminology for completeness.

Lemma 3.3.

Let TT^{\prime} be a canonical subtree of TT and let T′′T^{\prime\prime} be the canonical subtree such that TT′′CT′′T^{\prime}\in T^{\prime\prime}\setminus C_{T^{\prime\prime}}. There are at most two edges in TT with one endpoint in TT^{\prime} and the other outside TT^{\prime}. Moreover, any vertex of TT^{\prime} incident to a vertex outside TT^{\prime} must be rt(T)rt(T^{\prime}) or l(T)l(T^{\prime}).

Proof.

We first need to establish the following claim.

Claim: Let u,vCTu,v\in C_{T^{\prime}} for some canonical subtree TT^{\prime}. Suppose vv is a descendant of uu^{\prime} where uu^{\prime} is some child of uu. If ww is the first dd-balanced vertex on the path from uu^{\prime} to the left most vertex in TuT^{\prime}_{u^{\prime}}, then v=wv=w or vv is a descendant of ww.

Proof of claim: By definition of the cut vertex procedure, vv is a member of the set CV(Tu,d)CV(T^{\prime}_{u^{\prime}},d). If v=wv=w, we are done so suppose vwv\neq w. Every cut vertex in CV(Tu,d)CV(T^{\prime}_{u^{\prime}},d) other than ww is contained in some TwT^{\prime}_{w^{\prime}} for some child ww^{\prime} of ww. The claim follows.

We note that any edge with one endpoint in TT^{\prime} and the other outside TT^{\prime} must have its other endpoint in CT′′C_{T^{\prime\prime}}. In particular, the parent of x:=rt(T)x:=rt(T^{\prime}) must be an element of CT′′C_{T^{\prime\prime}}. Let v1v_{1} be the parent of xx. Suppose there is a second edge from a vertex v2CT′′v_{2}\in C_{T^{\prime\prime}} to a vertex ww in V(T)V(T^{\prime}). Note that v2v_{2} must be a child of ww for otherwise TT would contain a cycle. Then v2v_{2} is a descendant of xx. Let xx^{\prime} be the first dd-balanced vertex on the path from xx to the left most vertex in Tx′′T^{\prime\prime}_{x}. Note that xCT′′x^{\prime}\in C_{T^{\prime\prime}}. By the claim, v2v_{2} either coincides with, or is a descendant of, xx^{\prime}. If the latter holds, the parent of v2v_{2} cannot be a vertex in TT^{\prime} and so v2=xv_{2}=x^{\prime}. Suppose there exists a third vertex v3CT′′v_{3}\in C_{T^{\prime\prime}} which has a parent in TT^{\prime}. Then v3v_{3} is a member of CT′′C_{T^{\prime\prime}} which is a descendant of xx and neither equal to, nor a descendant of, the vertex xx^{\prime} which is impossible given the claim. Since v2v_{2} is the first dd-balanced vertex on the path from xx to the left most vertex in Tx′′T^{\prime\prime}_{x}, v2v_{2} must be the leftmost child of its parent. It follows that the parent of v2v_{2} is l(T)l(T^{\prime}). ∎

Lemma 3.4.

Let TT^{\prime} and T′′T^{\prime\prime} be canonical subtrees such that T′′TCTT^{\prime\prime}\in T^{\prime}\setminus C_{T^{\prime}} and let vv be some vertex of T′′T^{\prime\prime}. Let XX be the set of vertices in CTC_{T^{\prime}} which are ancestors of vv. Let xx be the element of XX deepest in TT and let xx^{\prime} be the child of xx which is an ancestor of vv. Then x=rt(T′′)x^{\prime}=rt(T^{\prime\prime}). (See Figure 2.)

Proof.

Consider the path P(rt(T),v)P(rt(T^{\prime}),v). Note that all vertices in XX lie on this path. It is easy to see that this path enters T′′T^{\prime\prime} through rt(T′′)rt(T^{\prime\prime}). The vertex on this path preceding rt(T′′)rt(T^{\prime\prime}) is a member of CTC_{T^{\prime}}, and an ancestor of vv and therefore a member of XX. Since the predecessor of rt(T′′)rt(T^{\prime\prime}) is clearly deeper than all other vertices in XX, the lemma follows. ∎

Refer to caption
Figure 2: Lemma 3.4. The set XX consists of the red vertices.

In the spanner, a vertex uu is connected to all vertices in CTuC_{T^{u}}. The following lemma ensures that in the routing algorithm described in the next section, under certain conditions, it is safe to make a ‘greedy’ choice from a subset of vertices in CTuC_{T^{u}}.

Lemma 3.5.

Let uu and vv be vertices in GG such that vv is not a vertex of TuT^{u}. Let XX be the set of vertices in CTuC_{T^{u}} which are ancestors of vv. Suppose XX\neq\emptyset and let xx be the last vertex on the path from uu to vv which is contained in TuT^{u}. Then xXx\in X. Moreover, xx is the deepest vertex in XX. (See Figure 3.)

Proof.

By Lemma 3.3, xx is either rt(Tu)rt(T^{u}) or l(Tu)l(T^{u}). Since XX\neq\emptyset, rt(Tu)rt(T^{u}) is an ancestor vv which also implies l(Tu)l(T^{u}) is an ancestor of vv. Then xx is an ancestor of vv and it remains to be shown that xx is the deepest vertex in XX. Let xx^{*} be the deepest vertex in XX and suppose xxx^{*}\neq x. The path from xx^{*} to vv must leave TuT^{u} through either rt(Tu)rt(T^{u}) or l(Tu)l(T^{u}). Since we also have that x{rt(Tu),l(Tu)}x\in\{rt(T^{u}),l(T^{u})\} and since xxx^{*}\neq x, we must have x=rt(Tu)x=rt(T^{u}) and x=l(Tu)x^{*}=l(T^{u}). Then there would be two distinct paths from rt(Tu)rt(T^{u}) to vv, a contradiction since TT is a tree. The lemma follows. ∎

Refer to caption
Figure 3: Lemma 3.5. The set XX consists of the red vertices.
Lemma 3.6.

Let uu and vv be vertices of TT such that uu is a descendant of vv and TvT^{v} is contained in TuT^{u}. Let TT^{\prime} be the canonical subtree in the forest TuCTuT^{u}\setminus C_{T^{u}} which contains vv and let XX be the set of vertices in CTuC_{T^{u}} which are descendants of vv and ancestors of uu. Let xx be the element of XX which is highest in TT. Then either rt(T)rt(T^{\prime}) or l(T)l(T^{\prime}) is the parent of xx. (See Figure 4.)

Proof.

Note that X=P(u,v)CTuX=P(u,v)\cap C_{T^{u}}. Let ww be the first vertex on P(u,v)P(u,v) which is contained in TT^{\prime}. By Lemma 3.3, w{rt(T),l(T)}w\in\{rt(T^{\prime}),l(T^{\prime})\}. Let xx^{\prime} be the predecessor of ww on P(u,v)P(u,v). Since vv is an ancestor of uu, xx^{\prime} is a child of ww. Since xx^{\prime} is a vertex outside TT^{\prime} connected to a vertex in TT^{\prime}, xCTux^{\prime}\in C_{T^{u}} and hence xXx^{\prime}\in X. Clearly xx^{\prime} is also the highest vertex in XX and so x=xx^{\prime}=x and the lemma follows. ∎

Refer to caption
Figure 4: Lemma 3.6. The set XX consists of the red vertices.

3.2 Routing Algorithm

In this section, we describe a local routing algorithm for the spanner defined above. Throughout what follows, let GG denote the graph obtained when the algorithm of the previous section is applied to a weighted, rooted tree TT using a parameter k4k\geq 4. We first define the labels label(v)label(v) for vertices vV(G)v\in V(G). We make use of the interval labelling scheme of Santaro and Khatib [13]. Let rank(v)rank(v) denote the rank of vv in a post-order traversal of TT. We define

L(v):=min{rank(w):wV(Tv)}.L(v):=\min\{rank(w):w\in V(T_{v})\}.

We define the label of vv to be label(v)=[L(v),rank(v)]label(v)=[L(v),rank(v)]. The observation used in the routing algorithm of Santaro and Khatib [13] is that a vertex ww is a descendant of vv if and only if rank(w)[L(v),rank(v)]rank(w)\in[L(v),rank(v)]. Note that the label of each vertex can be computed in linear time in a single traversal of the tree.

Lemma 3.7.

In the labelling scheme outlined above, each vertex of GG stores O((Δ+k)logn)O((\Delta+k)\log n) bits of information.

Proof.

Since GG has nn vertices, for each vV(G)v\in V(G), rank(v)rank(v) and L(v)L(v) are both integers in the interval [1,,n][1,...,n] and therefore require O(logn)O(\log n) bits to be represented. By Theorem 3.1, each vertex of GG has at most Δ+O(1)\Delta+O(1) neighbours in GG. Then, for any vV(G)v\in V(G), we require O((Δ+k)logn)O((\Delta+k)\log n) bits to store rank(w)rank(w) and L(w)L(w) for each neighbour ww of vv. ∎

For our routing algorithm, no auxiliary data structure is required at each vertex and so the total storage requirement per vertex is O((Δ+k)logn)O((\Delta+k)\log n) bits. Our routing algorithm considers a number of cases depending on the labels of the current vertex uu and destination vertex vv. For convenience of analysis, in each case we specify two routing steps. For ease of exposition, we consider a vertex to be both a descendant and ancestor of itself.

Case 0: If vv is a neighbour of uu, route to vv.

Case 1: uu is an ancestor of vv in TT. Let XX be the set of vertices in CTuC_{T^{u}} which are ancestors of vv. Let xx be the deepest element of XX. Route first to xx and then to the child of xx which is an ancestor of uu.

Case 2: uu is a descendant of vv in TT. Let XX be the set of vertices in CTuC_{T^{u}} which are descendants of vv and ancestors of uu. Let xx be the highest vertex in XX. Route first to XX and then to its parent.

Case 3: uu is not an ancestor or descendant of vv. Let XX be the set of vertices in CTuC_{T^{u}} which are ancestors of vv and not ancestors of uu. If XX\neq\emptyset, we define xx to be the deepest vertex in XX and define xx^{\prime} to be the child of xx which is an ancestor of vv. Let YY be the set of vertices in CTuC_{T^{u}} which are ancestors of uu but not ancestors of vv. We define yy to be the highest vertex in YY.

Case 3 a): XX is empty. Route first to yy and then to the parent of yy.

Case 3 b): XX is non-empty. Route first to xx and then to xx^{\prime}.

The routing algorithm uses a greedy strategy. Given the destination vertex and neighbours due to tree edges and shortcut edges, the algorithm simply selects the edge that appears to make the most progress. It is not obvious that this strategy gives the desired O(logn)O(\log n) diameter of the routing algorithm. Indeed, this bound would not hold if the shortcuts were arbitrary edges and hinges on the particular structure of the 1-spanner.

The arguments we make in our analysis will make use of certain integer sequences we assign to vertices of GG. Note that these sequences are used only for the analysis of the algorithm and are not part of the labelling scheme. We define a unique integer sequence for each canonical subtree computed during the course of the spanner construction. Each vertex vv will be assigned the sequence corresponding to the tree TvT^{v}.

The integer sequence for each canonical subtree is defined recursively as follows. The input tree TT is given the empty sequence. Suppose TT^{\prime} is a canonical subtree which has already been associated with some sequence SS. Consider the forest TCT={T1,,Tp}T^{\prime}\setminus C_{T^{\prime}}=\{T_{1},...,T_{p}\}. Each tree TjTCTT_{j}\in T^{\prime}\setminus C_{T^{\prime}} is associated with the sequence obtained by appending jj to SS. It is clear that every vertex of TT appears in CTC_{T^{\prime}} for exactly one canonical subtree TT^{\prime}. Let SvS_{v} denote the sequence assigned to the vertex vv. We refer to SvS_{v} as the canonical sequence of vv.

Observe that if for two vertices u,vV(G)u,v\in V(G) we have that Su=SvS_{u}=S_{v}, by definition of the spanner construction algorithm, uu and vv must be cut vertices of the same canonical subtree of TT and are therefore connected by an edge in GG. The routing algorithm works by choosing a successor vertex so as to incrementally transform the canonical sequence of the current vertex into the canonical sequence of the destination vertex.

Lemma 3.8.

Let uu and vv be vertices of GG such that uu is an ancestor of vv. Consider the two vertices visited after executing the routing steps of Case 1 when routing from uu to vv. These vertices are on the path from uu to vv in TT. Moreover, these vertices are visited in the order they appear on this path.

Lemma 3.9.

Let uu and vv be vertices of GG such that uu is a descendant of vv. Consider the two vertices visited after executing the routing steps of Case 2 when routing from uu to vv. These vertices are on the path from uu to vv in TT. Moreover, these vertices are visited in the order they appear on this path.

Lemma 3.8 and Lemma 3.9 are immediate from the definition of the routing steps.

Lemma 3.10.

Let uu and vv be vertices of GG such that uu is not an ancestor or a descendant of vv. Suppose the set XX, as defined in Case 3 of the routing algorithm, is empty. Consider the vertices visited after executing Case 3 a) of the routing algorithm. These vertices are on the path from uu to the vv. Moreover, these vertices are visited by the routing algorithm in the order they appear on this path.

Proof.

Let w1w_{1} be the first vertex visited in Case 3 a) and let w2w_{2} be the second. Then w1w_{1} is the vertex yy and w2w_{2} is its parent. Since yy is, by definition, not an ancestor of vv, it lies on the path from uu to lca(u,v)lca(u,v) and is not equal to lca(u,v)lca(u,v). Since w2w_{2} is the parent of yy, it is clearly the next vertex on P(u,lca(u,v))P(u,lca(u,v)). ∎

Lemma 3.11.

Let uu and vv be vertices of GG such that uu is not an ancestor or descendant of vv. Suppose the set XX, as defined in Case 3 of the routing algorithm, is non-empty. Consider the vertices visited after executing Case 3 b) of the routing algorithm. These vertices are on the path from lca(u,v)lca(u,v) to vv. Moreover, these vertices are visited in the order they appear on this path.

Proof.

Let w1w_{1} be the first vertex visited in Case 3 b) and let w2w_{2} be the second. w1w_{1} is an ancestor of vv which is not an ancestor of uu. It follows that w1w_{1} is a descendant of lca(u,v)lca(u,v). By definition of Case 3 b), w2w_{2} is the child of w1w_{1} which is an ancestor of vv. It is clear that w2w_{2} is the successor to w1w_{1} on the path P(lca(u,v),v)P(lca(u,v),v). The lemma follows. ∎

Lemmas 3.8, 3.9, 3.10 and 3.11 imply the following:

Lemma 3.12.

Let uu and vv be vertices of GG and let P(u,v)=(u=x1,,xp=v)P(u,v)=(u=x_{1},...,x_{p}=v). Suppose the routing steps of a single case of the routing algorithm are executed and vertices w1w_{1} and w2w_{2} are visited. Then there are indices 1i1i2p1\leq i_{1}\leq i_{2}\leq p such that w1=xi1w_{1}=x_{i_{1}} and w2=xi2w_{2}=x_{i_{2}}.

Using Lemma 3.12, we can show the routing algorithm has a routing ratio of 1.

Theorem 3.2.

Let uu and vv be vertices of GG. Let δT(u,v)\delta_{T}(u,v) denote the length of the path from uu to vv in TT. The routing algorithm described above is guaranteed to terminate after a finite number of steps and the length of the path traversed is exactly δT(u,v)\delta_{T}(u,v).

Proof.

Lemma 3.12 implies that the vertices visited when any case of the routing algorithm is executed are on the path from the current vertex to the destination and they are explored in the order they appear on the path. Each case leads to at least one new vertex being explored. If P=(u=x1,x2,,xp=v)P=(u=x_{1},x_{2},...,x_{p}=v) is the path from uu to vv in TT, the arguments made above imply that the path traversed by the routing algorithm is of the form P=(xi1,xi2,,xil)P^{\prime}=(x_{i_{1}},x_{i_{2}},...,x_{i_{l}}) where 1i1<i2<<ilp1\leq i_{1}<i_{2}<...<i_{l}\leq p, i.e., PP^{\prime} is a sub-sequence of PP. In the tree metric MTM_{T}, the weight of the edge (xij,xij+1)(x_{i_{j}},x_{i_{j+1}}) is by definition equal to the weight of the path (xij,xij+1,,xij+1)(x_{i_{j}},x_{i_{j}+1},...,x_{i_{j+1}}) and so the theorem follows. ∎

We now argue that the routing algorithm is guaranteed to terminate after traversing O(logn)O(\log n) edges. To this end, we first prove the following lemma.

Lemma 3.13.

Let uu and vv be vertices of TT such that uu is either an ancestor or a descendant of vv. Let uu^{\prime} be the vertex reached after executing the routing steps of either Case 1 or Case 2 when routing from uu to vv. Then the following statements hold:

  1. 1.

    If SuS_{u} is a prefix of SvS_{v}, then |Su|>|Su||S_{u^{\prime}}|>|S_{u}|. Moreover, either Su=SvS_{u^{\prime}}=S_{v} or SuS_{u}^{\prime} is a prefix of SvS_{v}.

  2. 2.

    If SvS_{v} is a prefix of SuS_{u}, then |Su|<|Su||S_{u^{\prime}}|<|S_{u}|. Moreover, either Su=SvS_{u^{\prime}}=S_{v} or SvS_{v} is a prefix of SuS_{u^{\prime}}.

  3. 3.

    Suppose SuS_{u} and SvS_{v} share a common prefix SS of length m<min{|Su|,|Sv|}m<\min\{|S_{u}|,|S_{v}|\}. Then |Su|<|Su||S_{u^{\prime}}|<|S_{u}|. Moreover, either Su=SS_{u^{\prime}}=S or SS is a prefix of SuS_{u^{\prime}}

Proof.

We begin with the first statement. Suppose SuS_{u} is a prefix of SvS_{v}. Then TuT^{u} contains TvT^{v}. Let TT^{\prime} be the canonical subtree in the forest TuCTuT^{u}\setminus C_{T^{u}} which contains TvT^{v}. By definition, the canonical sequence of any cut vertex of TT^{\prime} can be obtained by appending some integer to SuS_{u}. Since TvT^{v} is contained in TT^{\prime}, the canonical sequence associated to TT^{\prime} is a prefix of SvS_{v}. Then it is sufficient to show that uCTu^{\prime}\in C_{T^{\prime}}. Suppose uu is an ancestor of vv so that the algorithm executes the routing steps of Case 1. Recall that in Case 1 the set XX is defined as the set of vertices in CTuC_{T^{u}} which are ancestors of vv and the vertex xx is defined as the deepest vertex in XX. Then by definition of Case 1, uu^{\prime} is the child of xx which is an ancestor of vv. By Lemma 3.4, u=rt(T)u^{\prime}=rt(T^{\prime}). Since rt(T)CTrt(T^{\prime})\in C_{T^{\prime}}, the statement of the lemma follows in this case. Now suppose uu is a descendant of vv so that the algorithm executes the routing steps of Case 2. Recall that in Case 2, XX is defined to be the set of vertices in CTuC_{T^{u}} which are descendants of vv and ancestors of uu and xx is defined to be the highest vertex in XX. By definition of Case 2, the algorithm routes to xx and then to the parent of xx. Then uu^{\prime} is the parent of xx. By Lemma 3.6, u{l(T),rt(T)}u^{\prime}\in\{l(T^{\prime}),rt(T^{\prime})\}. Since {l(T),rt(T)}CT\{l(T^{\prime}),rt(T^{\prime})\}\subseteq C_{T^{\prime}}, the first statement of the lemma holds in this case.

We now address the second and third statements of the lemma. Suppose SuS_{u} is not a prefix of SvS_{v}. Let SS be the longest common prefix of SuS_{u} and SvS_{v}. Then either S=SvS=S_{v} or SS is a prefix of SvS_{v}. Let T′′T^{\prime\prime} be the canonical subtree corresponding to the canonical sequence SS. Observe that T′′T^{\prime\prime} contains TuT^{u}. Let TT^{\prime} be the canonical subtree such that TuTCTT^{u}\in T^{\prime}\setminus C_{T^{\prime}}. Then either T′′=TT^{\prime\prime}=T^{\prime} or T′′T^{\prime\prime} contains TT^{\prime}. Note that the canonical sequence of any cut vertex of TT^{\prime} is a prefix of SuS_{u}. Moreover, for any canonical sequence SS^{\prime} of a cut vertex in TT^{\prime}, either S=SS=S^{\prime} or SS is a prefix of SS^{\prime}. We claim that uCTu^{\prime}\in C_{T^{\prime}}. When SvS_{v} is a prefix of SuS_{u}, we see this implies the second statement. When SuS_{u} and SvS_{v} share a prefix of length m<min{|Su|,|Sv|}m<\min\{|S_{u}|,|S_{v}|\}, we see that our claim implies the third statement.

We now prove the claim. Suppose that uu is an ancestor of vv so that the algorithm executes the routing steps of Case 1. Let XX and xx be as defined in Case 1. Then uu^{\prime} is the child of xx which is an ancestor of vv. By Lemma 3.5, xx is the last vertex on the path from uu to vv which is contained in TT. Since xx is an ancestor of vv and uu^{\prime} is both a child of xx and ancestor of vv, it is clear that uu^{\prime} is the next vertex on P(u,v)P(u,v). Since uu is a vertex outside TT^{\prime} connected to a vertex in TuT^{u}, we see that uCTu^{\prime}\in C_{T^{\prime}} and so the claim holds in this case. Suppose now that uu is a descendant of vv so that the algorithm executes the routing steps of Case 2. Let XX and xx be as defined in Case 2. Note that since uu is a descendant of vv, rt(Tu)rt(T^{u}) must also be a descendant of vv. Then rt(Tu)Xrt(T^{u})\in X. Since rt(Tu)rt(T^{u}) must be the highest vertex in XX, we see that x=rt(Tu)x=rt(T^{u}). Since the parent of rt(Tu)rt(T^{u}) is clearly a member of CTC_{T^{\prime}}, the claim holds. This completes the proof of the lemma.

Note that if uu is an ancestor (resp. descendant) of vv, then by Lemma 3.12 the vertex reached after executing the steps of Case 1 (resp. Case 2) will also be an ancestor (resp. descendant) of vv.

Lemma 3.14.

Suppose uu and vv in GG are such that uu is an ancestor or descendant of vv in TT. Then, when routing from uu to vv, the routing algorithm reaches vv after traversing O(logn)O(\log n) edges.

Proof.

Suppose that uu is an ancestor of vv (the argument in the case where uu is a descendant of vv is symmetric) and let KK be the maximum length of the canonical sequence of any vertex of GG. Note that by Lemma 3.2, each canonical subtree is at most 2/k2/k times the size of its smallest containing canonical subtree and so the recursion depth is at most O(logn)O(\log n) which, by definition of canonical sequences, implies K=O(logn)K=O(\log n). If SuS_{u} is a prefix of SvS_{v}, by Lemma 3.13, the routing steps executed in a single iteration of Case 1 traverse at most two edges and lead to a vertex uu^{\prime} which is an ancestor of vv and for which SuS_{u^{\prime}} is a prefix of SvS_{v} strictly longer than SuS_{u}. Then after traversing at most 2K2\cdot K edges, the routing algorithm will reach vv. An analogous argument can be made in the case where SvS_{v} is a prefix of SuS_{u}.
Assume that SuS_{u} and SvS_{v} have a common prefix of length m<min{|Su|,|Sv|}m<\min\{|S_{u}|,|S_{v}|\}. By Lemma 3.13, after traversing at most 2K2\cdot K edges, the algorithm reaches a vertex uu^{\prime} which is an ancestor of vv and is such that SuS_{u^{\prime}} is a prefix of SvS_{v}. By the argument made above, after traversing at most another 2K2\cdot K edges, the routing algorithm reaches vv. Then in all cases, after traversing at most 4K4\cdot K edges, the algorithm reaches its destination. This completes the proof of the lemma. ∎

Consider the case where uu is neither an ancestor nor a descendant of vv. The following lemma shows that in this case, the algorithm either routes to a vertex on the path P(lca(u,v),v)P(lca(u,v),v) or it follows the routing steps that would be executed if the algorithm were routing from uu to lca(u,v)lca(u,v).

Lemma 3.15.

Let uu and vv be vertices of GG such that lca(u,v){u,v}lca(u,v)\notin\{u,v\}. Suppose that the set XX as defined in Case 3 is empty so that the algorithm executes the routing steps of Case 3 a) when routing from uu to vv. The same steps would be performed when routing from uu to lca(u,v)lca(u,v).

Proof.

Recall the set YY in Case 3 is defined as the set of ancestors of uu which are not ancestors of vv. Consider Case 2 when routing from uu to lca(u,v)lca(u,v). The set XX in Case 2 is defined as the set of ancestors of uu which are descendants of lca(u,v)lca(u,v). Since an ancestor of uu is a descendant of lca(u,v)lca(u,v) if and only if it is not an ancestor of vv, we see that X=YX=Y. In Case 3 a) the algorithm routes to the highest vertex in YY and then its parent. In Case 2 the algorithm routes to the highest vertex in XX and then its parent. We see the algorithm executes the same routing steps in both cases and so the lemma follows. ∎

Using Lemmas 3.14 and 3.15, we establish the main result of this section.

Theorem 3.3.

Let uu and vv be vertices in GG. The routing algorithm reaches vv when routing from uu after traversing at most O(logn)O(\log n) edges.

Proof.

Lemma 3.14 implies the theorem when uu is an ancestor or descendant of vv. Then we need only consider the case where uu is neither an ancestor nor descendant of vv. Suppose the algorithm executes the steps of Case 3 a) at some point when routing from uu to vv. Let uu^{\prime} be the current vertex after the steps of Case 3 a) are executed. Then uu^{\prime} is an ancestor of vv and so the algorithm will reach vv after traversing another O(logn)O(\log n) edges. It remains to argue that O(logn)O(\log n) edges are traversed before the current vertex is an ancestor of vv. By Lemma 3.15 and Lemma 3.14, the algorithm either executes the steps of Case 3 a) or reaches lca(u,v)lca(u,v) after traversing O(logn)O(\log n) edges. This completes the proof of the theorem. ∎

4 Routing in a Doubling Metric Spanner

The 1-spanner of the previous section was designed to be a tool for reducing the diameter of Euclidean spanners without compromising bounds on degree and weight. It has been applied in a series of papers on various constructions of spanners of doubling metrics. The doubling dimension of a metric (M,d)(M,d) is the smallest number λ\lambda such that, for any r>0r>0, any ball of radius rr can be covered by at most 2λ2^{\lambda} balls of radius r/2r/2. An nn-point metric is said to be doubling if the doubling dimension is constant in nn. The class of doubling metrics contains the class of Euclidean metrics as mm-dimensional Euclidean metrics can be shown to have doubling dimension Θ(m)\Theta(m). The spanners for doubling and Euclidean metrics to which the 1-spanner shortcutting scheme has been applied are all based on some variety of hierarchical decomposition of the input point set. In particular, spanners based on the dumbbell trees of Arya et al. [2] and the net tree approach [10, 12] have been proposed. We will show that the routing algorithm described in the previous section can be extended to a routing algorithm on a low diameter doubling metric (1+ϵ)(1+\epsilon)-spanner based on the net tree.

4.1 A net tree based spanner

The spanner we describe here is a simplified version of the spanner described by Chan et al. [7]. The starting point of their construction is based on the spanner of Gao et al. [10].

In this section, (M,d)(M,d) will denote an nn-point doubling metric. Let dim(M)\dim(M) denote the doubling dimension of MM. We assume without loss of generality that the distance between the closest pair of points in MM is 1.

Definition 4.1.

For r>0r>0, a subset NMN\subseteq M is said to be an rr-net for MM if

  • d(x1,x2)>rd(x_{1},x_{2})>r for all distinct pairs of points x1,x2Nx_{1},x_{2}\in N.

  • For all yMy\in M, there exists xNx\in N such that d(x,y)rd(x,y)\leq r.

The first step of the construction is to compute a certain sequence of nets. Specifically, we compute a nested sequence of sets M=N0N1NlogDM=N_{0}\supseteq N_{1}\supseteq...\supseteq N_{\log D} where NiN_{i} is a 2i2^{i}-net of Ni1N_{i-1} and DD is the largest inter-point distance among pairs of points in MM. Note that NlogDN_{\log D} consists of a single point. An efficient method for computing such a sequence of nets is given by Har-Peled and Mendel [12]. Next, we describe the so-called net tree which we denote 𝒯\mathcal{T}. The net tree has a node at level-ii for each point in the set NiN_{i}. If a level-ii node corresponds to a point pNip\in N_{i}, we say that pp is the representative of vv and write rep(v)=prep(v)=p. Note that a given point in pp can be the representative of multiple nodes in 𝒯\mathcal{T}. The root of the tree corresponds to the singleton set NlogDN_{\log D} and the leaves of 𝒯\mathcal{T} are in one-to-one correspondence with the points of MM. The parent of each node vv at level-ii is a node ww at level-(i+1i+1) for which d(rep(v),rep(w))2i+1d(rep(v),rep(w))\leq 2^{i+1}. The constant doubling dimension of MM immediately implies that nodes in 𝒯\mathcal{T} have a constant number of children. The tree induces a graph HH on MM in the natural way, i.e., each edge (u,v)E(𝒯)(u,v)\in E(\mathcal{T}) corresponds to the edge (rep(u),rep(v))E(H)(rep(u),rep(v))\in E(H). For a point pMp\in M, we also use pp to denote the leaf of 𝒯\mathcal{T} which has pp as its representative. Given a leaf pp, we denote by p(i)p^{(i)} the level-ii ancestor of pp in 𝒯\mathcal{T}. Given two nodes u,vV(𝒯)u,v\in V(\mathcal{T}), we define d(u,v):=d(rep(u),rep(v))d(u,v):=d(rep(u),rep(v)). The graph HH as currently defined is not a (1+ϵ)(1+\epsilon)-spanner for MM. To guarantee a 1+ϵ1+\epsilon spanning ratio, certain cross edges are added at each level. Fix a constant γ>4\gamma>4. For each pair of level-ii points u,vV(𝒯)u,v\in V(\mathcal{T}) for which d(rep(u),rep(v))γ2id(rep(u),rep(v))\leq\gamma\cdot 2^{i}, we add the cross edge (u,v)(u,v) to 𝒯\mathcal{T}. If we make a sufficiently large choice of γ=O(1/ϵ)\gamma=O(1/\epsilon), the graph HH resulting from the addition of these cross edges to 𝒯\mathcal{T} can be shown to be a (1+ϵ)(1+\epsilon)-spanner for MM. The following theorem is established in the proof of Theorem 3.2 in [10].

Theorem 4.1.

Let p,qp,q be points in MM and let ii be the smallest integer such that the level-ii ancestors of pp and qq are connected by a cross edge. Consider the path in 𝒯\mathcal{T} obtained by climbing from pp to its level-ii ancestor, taking the cross edge to the level-ii ancestor of qq and descending to qq. Then the path in HH corresponding to this path has total length (1+ϵ)d(p,q)(1+\epsilon)\cdot d(p,q).

The maximum degree of the spanner as described above is O(ϵdim(M)logD)O(\epsilon^{-\dim(M)}\log D) as some points in MM may represent many nodes in 𝒯\mathcal{T}. Gottlieb and Roddity [11] devised a technique to reduce the degree bound to O(ϵdim(M))O(\epsilon^{-dim(M)}) by carefully reassigning representatives.

The depth of the net tree is O(logD)O(\log D). In particular, if DD is not bounded by a polynomial in nn, the net tree may have linear depth and so the diameter of the spanner may be linear. We say a subtree of 𝒯\mathcal{T} is light if it has height log(Dn)\log(\frac{D}{n}). Chan et al. [7] show that by applying the tree metric construction of the previous section to all light subtrees of 𝒯\mathcal{T}, it is possible to reduce the diameter of the spanner to O(logn)O(\log n) without increasing the asymptotic bound on the weight. Chan et al. [7] show that the weight of the spanner, after shortcuts are added, is at most O(ϵdim(M)logn)wt(MST(M))O(\epsilon^{-dim(M)}\log n)\cdot wt(MST(M)), where MST(M)MST(M) is a minimum spanning tree of MM. Chan et al. [7] make additional modifications to ensure fault tolerance although we will not work with this version of the spanner.

To summarise, the spanner we work with has (1+ϵ)(1+\epsilon)-stretch, O(ϵdim(M))O(\epsilon^{-\dim(M)}) degree, O(ϵdim(M)logn)wt(MST(M))O(\epsilon^{-dim(M)}\log n)\cdot wt(MST(M)) weight and O(logn)O(\log n) diameter.

For the remainder of this section, 𝒯\mathcal{T}^{*} will denote the net tree with cross edges and shortcuts. HH denotes the constant degree spanner of (M,d)(M,d) induced by 𝒯\mathcal{T}^{*}. Our routing algorithm will make use of the following property of the spanner HH.

Lemma 4.1.

For p,qMp,q\in M, the smallest integer ii such that the level-ii ancestors of pp and qq are guaranteed to be joined by a cross edge lies in the interval

[log(d(p,q)γ+4),log(d(p,q)γ4)].\left[\left\lfloor\log\left(\frac{d(p,q)}{\gamma+4}\right)\right\rfloor,\left\lceil\log\left(\frac{d(p,q)}{\gamma-4}\right)\right\rceil\right].
Proof.

Lemma 4.1 in the paper of Gao et al. [10] implies that if (p(i),q(i))(p^{(i)},q^{(i)}) is a cross edge, then (p(j),q(j))(p^{(j)},q^{(j)}) is a cross edge for all jij\geq i. Then ii is the unique integer for which (p(i),q(i))(p^{(i)},q^{(i)}) is a cross edge and (p(i1),q(i1))(p^{(i-1)},q^{(i-1)}) is not. Observe that for j<log(d(p,q)γ+4)j<\log\left(\frac{d(p,q)}{\gamma+4}\right), we have d(p,q)>(γ+4)2jd(p,q)>(\gamma+4)\cdot 2^{j}. By definition of the net tree, d(p(j),p)k=1j2k22jd(p^{(j)},p)\leq\sum_{k=1}^{j}2^{k}\leq 2\cdot 2^{j}. By the triangle inequality we have d(p,q)d(p(j),q(j))+d(p,p(j))+d(q,q(j))d(p(j),q(j))+42jd(p,q)\leq d(p^{(j)},q^{(j)})+d(p,p^{(j)})+d(q,q^{(j)})\leq d(p^{(j)},q^{(j)})+4\cdot 2^{j} and so d(p(j),q(j))d(p,q)42j>γ2j.d(p^{(j)},q^{(j)})\geq d(p,q)-4\cdot 2^{j}>\gamma\cdot 2^{j}. Then by the construction of the spanner, there is no cross edge between p(j)p^{(j)} and q(j)q^{(j)}. A similar argument shows that for j>log(d(p,q)γ4)j>\left\lceil\log\left(\frac{d(p,q)}{\gamma-4}\right)\right\rceil, d(p(j),q(j))γ2jd(p^{(j)},q^{(j)})\leq\gamma\cdot 2^{j} and so there is guaranteed to be a cross edge between p(j)p^{(j)} and q(j)q^{(j)}. Then since (p(j),q(j))(p^{(j)},q^{(j)}) is not a cross edge for j=log(d(p,q)γ+4)1j=\left\lfloor\log\left(\frac{d(p,q)}{\gamma+4}\right)\right\rfloor-1 and is guaranteed to be a cross edge for j=log(d(p,q)γ4)j=\left\lceil\log\left(\frac{d(p,q)}{\gamma-4}\right)\right\rceil, the lemma follows. ∎

Note that the length of the interval computed in Lemma 4.1 is log(γ+4γ4)=O(1)\log\left(\frac{\gamma+4}{\gamma-4}\right)=O(1). This fact is needed to establish a bound on the diameter of the routing algorithm we present in the next section.

4.2 Labelling Scheme and Routing Algorithm

Gottlieb and Roddity [11] show it is possible to route in the net tree in their construction while taking care to use the first available cross edge. This algorithm has a routing ratio of 1+ϵ1+\epsilon and the required labels are short as a result of the degree bound. We apply their method to the version of the spanner have described although we make use of our 1-spanner routing algorithm whenever the message passes through short subtrees so as to take advantage of the available shortcuts. We first describe the labels of 𝒯\mathcal{T}^{*}. Since each point in pMp\in M is the representative of multiple nodes in 𝒯\mathcal{T}^{*}, the label of pp will contain the labels of all nodes vV(𝒯)v\in V(\mathcal{T}^{*}) for which p=rep(v)p=rep(v). Note that there is a constant number of such nodes in 𝒯\mathcal{T}^{*} for each pMp\in M.

Initially, each node vV(𝒯)v\in V(\mathcal{T}^{*}) is labelled with the interval [L(v),rank(v)][L(v),rank(v)], the same labelling scheme used in our 1-spanner routing algorithm. Next, for each light subtree 𝒯\mathcal{T}^{\prime} of 𝒯\mathcal{T}, we label the vertices of 𝒯\mathcal{T}^{\prime} with the labels required for the 1-spanner routing algorithm on 𝒯\mathcal{T}^{\prime}.

When routing from a point pp to a point qq in MM, in order to obtain a (1+ϵ)(1+\epsilon) routing ratio, the algorithm must make use of the first cross edge connecting ancestors of pp and qq. Since we make use of shortcuts, there is a danger the algorithm may ‘overshoot’ the correct level. Therefore, the algorithm requires a means to estimate the level of the tree containing a viable cross edge, i.e., the algorithm should be able to locally compute the interval of Lemma 4.1. If MM is a Euclidean metric, the distance d(p,q)d(p,q) can be computed if the labels of the points store their coordinates. However, if MM is an arbitrary doubling metric, it is not obvious how to achieve this goal. For δ>0\delta>0, a (1+δ)(1+\delta)-ADLS is a labeling of points in a metric space that allows approximation of pairwise distances to within a factor of 1+δ1+\delta. That is, given the labels of points xx and yy in a (1+δ)(1+\delta)-ADLS, we are able to compute a value d~(x,y)\tilde{d}(x,y) such that

d(x,y)d~(x,y)(1+δ)d(x,y).d(x,y)\leq\tilde{d}(x,y)\leq(1+\delta)d(x,y).

Har-Peled and Mendel [12] give a (1+δ)(1+\delta)-ADLS for doubling metrics in which each label consists of at most min{δO(dim(M))logD,δO(dim(M))logn(logn+loglogD)}\min\{\delta^{-O(\dim(M))}\cdot\log D,\delta^{-O(\dim(M))}\cdot\log n(\log n+\log\log D)\} bits. If we work with a (1+δ)(1+\delta)-ADLS rather than exact distances, the interval of Lemma 4.1 becomes

[log(d~(p,q)(γ+4)(1+δ)),log(d~(p,q)(γ4))].\left[\left\lfloor\log\left(\frac{\tilde{d}(p,q)}{(\gamma+4)(1+\delta)}\right)\right\rfloor,\left\lceil\log\left(\frac{\tilde{d}(p,q)}{(\gamma-4)}\right)\right\rceil\right].

Note that the length of this interval is still O(1)O(1).

To summarize, the label of each point pMp\in M contains:

  • The label of pp in a (1+δ)(1+\delta)-ADLS for MM.

  • The label of each node vV(𝒯)v\in V(\mathcal{T}^{*}) for which p=rep(v)p=rep(v).

Since the degree of the spanner is bounded by O(ϵdim(M))O(\epsilon^{-dim(M)}), we obtain the following bound on the storage of our labelling scheme.

Lemma 4.2.

In the labelling scheme for the spanner HH defined above, each label requires at most O(ϵdim(M)logn)+ηO(\epsilon^{-dim(M)}\log n)+\eta bits of storage, where η=min{δO(dim(M))logD,δO(dim(M))logn(logn+loglogD)}\eta=\min\{\delta^{-O(dim(M))}\cdot\log D,\delta^{-O(dim(M))}\cdot\log n(\log n+\log\log D)\}.

We now describe the routing algorithm for the spanner HH. Let pp be the current vertex and qq be the destination. Since each point of HH is the representative of multiple vertices in 𝒯\mathcal{T}^{*}, the message header stores a O(logn)O(\log n) bit variable to keep track of the current position in 𝒯\mathcal{T}^{*}. Suppose the current position is a vertex v𝒯v\in\mathcal{T}^{*} with representative pp. When we say the algorithm routes to a neighbour ww of vv, we mean the message is forwarded to a neighbour pp^{\prime} of pp in HH such that rep(w)=prep(w)=p^{\prime}. Throughout the following, uu will denote the current position of the algorithm in 𝒯\mathcal{T}^{*} and vv will denote the leaf in 𝒯\mathcal{T}^{*} corresponding to the destination vertex in HH.
The algorithm operates in the following distinct states.

Initialization: Using the ADLS labels stored in the labels of pp and qq, a (1+δ)(1+\delta)-approximation of d(p,q)d(p,q) is computed. Let d~(p,q)\tilde{d}(p,q) denote this approximation. The integer i:=log(d~(p,q)(1+δ)(γ+4))i:=\left\lfloor\log\left(\frac{\tilde{d}(p,q)}{(1+\delta)(\gamma+4)}\right)\right\rfloor is stored in the message header as the cross edge target level.

Ascending: In this state, the current position uu of the message in 𝒯\mathcal{T}^{*} is at a level lower than ii. Suppose uu is in a light subtree. Then we use our 1-spanner routing algorithm to route towards the level-ii ancestor of uu. Otherwise, we simply route to the parent of uu.

Searching for a cross edge: In this state, uu is at level ii or higher in 𝒯\mathcal{T}^{*}. If uu is connected by a cross edge to an ancestor of vv, the algorithm routes to this ancestor. Otherwise, the algorithm routes to the parent of uu.

Descending: In this state, uu is an ancestor of vv in 𝒯\mathcal{T}^{*}. If uu is in a light subtree, the algorithm routes towards vv using our 1-spanner routing algorithm. Otherwise, the algorithm routes to the child of uu which is an ancestor of vv.

Theorem 4.2.

The routing ratio of the algorithm defined above has routing ratio 1+ϵ1+\epsilon and diameter O(logn)O(\log n).

Proof.

Observe that the path traversed when routing from pp to qq by the algorithm differs from the (1+ϵ)(1+\epsilon) spanning path described in Theorem 4.1 only by the shortcuts taken on sections of the path which pass through light subtrees. Since these shortcuts cannot increase the length of the path, the first statement of the theorem follows.

To prove the second statement, we bound the number of vertices visited in each state. In the ascending state, at most O(logn)O(\log n) vertices are visited in a light subtree since the 1-spanner routing algorithm has O(logn)O(\log n) diameter. Since there are at most O(logn)O(\log n) levels of the net tree higher than level log(Dn)\log(\frac{D}{n}), at most O(logn)O(\log n) vertices are visited by the algorithm outside a light subtree. The same arguments hold for the descending state. Note that the level at which to begin the search for a cross edge determined in the initialization state is at most a constant number of levels lower that the lower endpoint of the interval of Lemma 4.1. Since the length of the interval in Lemma 4.1 has constant length, the second statement of the theorem follows. ∎

5 Conclusion

We have shown that a simplified version of the logarithmic diameter tree metric 1-spanner of Solomon and Elkin [14] supports a local routing algorithm of routing ratio 1 and logarithmic diameter. We have also shown that this algorithm can be used to route in a spanner for doubling metrics which uses the shortcutting scheme to achieve a low diameter while maintaining low weight and low degree.

References

  • [1] Ittai Abraham and Dahlia Malkhi. Compact routing on Euclidian metrics. In Proceedings of the 23rd Annual ACM Symposium on Principles of Distributed Computing, pages 141–149, 2004.
  • [2] Sandeep Kumar Arya, Gautam Das, David M. Mount, Jeffrey S. Salowe, and Michiel H. M. Smid. Euclidean spanners: short, thin, and lanky. In Proceedings of the 27th Annual ACM Symposium on Theory of Computing, 1995.
  • [3] Vikrant Ashvinkumar, Joachim Gudmundsson, Christos Levcopoulos, Bengt J. Nilsson, and André van Renssen. Local routing in sparse and lightweight geometric graphs. In Proceedings of the 30th International Symposium on Algorithms and Computation, volume 149 of LIPIcs, pages 30:1–30:13, 2019.
  • [4] Prosenjit Bose, Andrej Brodnik, Svante Carlsson, Erik Demaine, Rudolf Fleischer, Alejandro López-Ortiz, Pat Morin, and J. Munro. Online routing in convex subdivisions. International Journal of Computational Geometry & Applications, 12(4):283–296, 2002.
  • [5] Prosenjit Bose, Rolf Fagerberg, André Renssen, and Sander Verdonschot. Optimal local routing on Delaunay triangulations defined by empty equilateral triangles. SIAM Journal on Computing, 44(6):1626–1649, 2015.
  • [6] Milutin Brankovic, Joachim Gudmundsson, and André van Renssen. Local routing in a tree metric 1-spanner. In Computing and Combinatorics. COCOON 2020. Lecture Notes in Computer Science, vol 12273., pages 174–185. Springer International Publishing, 2020.
  • [7] T. Chan, M. Li, L. Ning, and S. Solomon. New doubling spanners: Better and simpler. SIAM Journal on Computing, 44(1):37–53, 2015.
  • [8] T.-H. Hubert Chan, Anupam Gupta, Bruce M. Maggs, and Shuheng Zhou. On hierarchical routing in doubling metrics. ACM Transactions on Algorithms, 12(4):55:1–55:22, 2016.
  • [9] Michael Elkin and Shay Solomon. Optimal Euclidean spanners: Really short, thin and lanky. In Proceedings of the 45th Annual ACM Symposium on Theory of Computing, pages 645–654, 2013.
  • [10] Jie Gao, Leonidas J. Guibas, and An Nguyen. Deformable spanners and applications. Computational Geometry, 35(1):2–19, 2006.
  • [11] Lee-Ad Gottlieb and Liam Roditty. Improved algorithms for fully dynamic geometric spanners and geometric routing. In Proceedings of the 19th Annual ACM-SIAM Symposium on Discrete Algorithms, page 591–600, 2008.
  • [12] Sariel Har-Peled and Manor Mendel. Fast construction of nets in low-dimensional metrics and their applications. SIAM Journal on Computing, 35(5):1148––1184, 2006.
  • [13] N. Santoro and R. Khatib. Labelling and implicit routing in networks. The Computer Journal, 28(1):5–8, 1985.
  • [14] S. Solomon and M. Elkin. Balancing degree, diameter, and weight in Euclidean spanners. SIAM Journal on Discrete Mathematics, 28(3):1173–1198, 2014.
  • [15] Shay Solomon. From hierarchical partitions to hierarchical covers: Optimal fault-tolerant spanners for doubling metrics. In Proceedings of the 46th Annual ACM Symposium on Theory of Computing, page 363–372, 2014.