1 Introduction
A routing strategy is an algorithm that that determines at a vertex to which of its neighbors to forward a message in order for the message to reach its destination. A routing strategy is local when that decision is based solely on knowledge of the location of the current vertex , the location of its neighbors and a constant amount of additional information (such as the location of the source vertex and destination vertex). A traditional approach to this routing problem is to build a routing table at each node, explicitly storing for each destination vertex, which neighbor of the current vertex to send the message. In this paper, we study routing algorithms on geometric graphs and try to circumvent the use of routing tables by leveraging geometric information. A routing algorithm is considered geometric when the graph that is routed on is embedded in the plane, with edges being straight line segments connecting pairs of vertices. Edges are usually weighted by the Euclidean distance between their endpoints. Geometric routing algorithms are particularly useful in wireless sensor networks (see [14] and [15] for surveys on the topic), since nodes often connect only to nearby nodes. Thus, by exploiting geometric properties (such as distance, or the coordinates of the vertices) we can devise algorithms to guide the search and remove the need for routing tables.
We consider the following setting: let be a set of points in the plane and let be a set of line segments whose endpoints are in , with no two line segments of properly intersecting (i.e., intersections only occur at endpoints). Two vertices and are visible if and only if either the line segment does not properly intersect any constraint or the segment is itself a constraint. If two vertices and are visible, then the line segment is a visibility edge. The visibility graph of with respect to a set of constraints , denoted , has as vertex set and all visibility edges as edge set. In other words, it is the complete graph on minus all edges that properly intersect one or more constraints in .
This model has been studied extensively in the context of motion planning. Clarkson [10] was one of the first to study this problem. He showed how to construct a spanner of with a linear number of edges. A subgraph of is called a spanner of (for ) if for each pair of vertices and , the shortest path in between and has length at most times the shortest path between and in . The smallest value for which is a spanner is the spanning ratio or stretch factor of . Following Clarkson’s result, Das [11] showed how to construct a spanner of with constant spanning ratio and constant degree. Bose and Keil [4] showed that the Constrained Delaunay Triangulation is a 2.42spanner of . Recently, the constrained halfgraph (which is identical to the constrained Delaunay graph whose empty visible region is an equilateral triangle) was shown to be a plane 2spanner of [2] and all constrained graphs with at least 6 cones were shown to be spanners as well [9].
Spanners of are desirable because they can be sparse and the bounded stretch factor certifies that paths do not make large detours compared to the shortest path in . Thus, by using a spanner we can compact a potentially large network using a small number of edges at the cost of a small detour when sending the messages. Unfortunately, little is known on how to route once the network has been built. Bose et al. [3] showed that it is possible to route locally and 2competitively between any two visible vertices in the constrained graph. Additionally, an 18competitive routing algorithm between any two visible vertices in the constrained halfgraph was provided (the definition of these two graphs as well as formal definitions of local and competitiveness ratio are given in Section 2). While it seems like a serious shortcoming that these routing algorithms only route between pairs of visible vertices, in the same paper the authors also showed that no deterministic local routing algorithm can be competitive between all pairs of vertices of the constrained graph, regardless of the amount of memory one is allowed to use. As such, the best one can hope for in this setting is an competitive routing ratio.
In this paper, we develop routing algorithms that work between any pair of vertices in the constrained setting. This is, to the best of our knowledge, the only deterministic 1local routing strategy that works for vertices that cannot see each other in the constrained setting. We provide a noncompetitive 1local routing algorithm on the visibility graph of with respect to a set of constraints . Our algorithm locally computes a sparse subgraph of the visibility graph and routes on it.^{1}^{1}1Parallel to this work, we designed a routing strategy that specifically works in the visibility graph directly (without having to compute a subgraph). The details of this routing strategy are quite lengthy, so they are given in a companion paper [6]. Similar to Theorem 3 presented in this paper, the algorithm is 1local and noncompetitive. We also show that when routing on any triangulation of such that , no competitive routing algorithm exists when only considering the triangles intersected by the line segment from the source to the target, a technique commonly used in the unconstrained setting. Finally, we provide an competitive 1local routing algorithm on , which is optimal in the worst case, given the lower bound.
2 Preliminaries
2.1 Routing Model
Given a graph , the neighborhood of a vertex is the set of vertices in the graph that can be reached from by following at most edges (and is denoted by ). We assume that the only information stored at each vertex of the graph is for some fixed constant . Since our graphs are geometric, vertices are points in the plane. We label each vertex by its coordinates in the plane.
We are interested in deterministic local, memory routing algorithms. That is, the vertex to which the message is forwarded is determined by a deterministic function that only depends on (the source vertex), (the current vertex), (the destination vertex), and a string of at most words. This string is stored within the message and can be modified before forwarding the message to the next node. For our purposes, we consider a word (or unit of memory) to consist of a bit integer or a point in .
We focus on algorithms that guarantee that the message will arrive at its destination (i.e., for any graph and source vertex , by repeatedly applying the routing strategy we will reach the destination vertex in a finite number of steps). We will focus on the case where and . Thus, for brevity, by local routing algorithm we mean the algorithm is 1local, uses a constant amount of memory, and arrival of the message at the destination is guaranteed.
2.2 Competitiveness
Intuitively speaking, we can evaluate how good a routing algorithm is by looking at the detour it makes (i.e., how long are the paths compared to the shortest possible). We say that a routing algorithm is competitive with respect to a graph if, for any pair of vertices , the total distance traveled by the message is not more than times the shortest path length between and in . The routing ratio of an algorithm is the smallest for which it is competitive.
2.3 Graph Definitions
In this section we introduce the graph, a graph that plays an important role in our routing strategy. We begin by defining this graph and some known variations. Define a cone to be the region in the plane between two rays originating from a vertex (the vertex itself is referred to as the apex of the cone). When constructing a (constrained) graph of a set of vertices we proceed as follows: for each vertex consider rays originating from so that the angle between two consecutive rays is . Each pair of consecutive rays defines a cone. We orient the rays in a way that the bisector of one of the cones is the vertical halfline through that lies above . Let this cone be of . We number the other cones in clockwise order around (see Fig. 2). We apply the same partition and numbering for the other vertices of . We write to indicate the th cone of a vertex , or if is clear from the context. For ease of exposition, we only consider point sets in general position: no two vertices lie on a line parallel to one of the rays that define the cones, no two vertices lie on a line perpendicular to the bisector of a cone, no three vertices are collinear, and no four vertices lie on the boundary of any circle. All these assumptions can be removed using classic symbolic perturbation techniques.
The graph is constructed by adding an edge from to the closest vertex in each cone of each vertex , where distance is measured along the bisector of the cone. More formally, we add an edge between two vertices and if for all vertices it holds that (where and denote the projection of and on the bisector of and denotes the length of the line segment between two points and ). Note that our general position assumption implies that each vertex adds at most one edge per cone.
The graph has been adapted to the case where constraints are present; for every constraint whose endpoint is , consider the ray from to the other endpoint of the constraint. These rays split the cones into several subcones (see Fig. 2). We use to denote the th subcone of (also numbered in clockwise order). Note that if some cone is not subdivided with this process, we simply have (i.e., is a single subcone). Further note that we treat the subcones as closed sets (i.e., contain their boundary). Thus, when a constraint splits a cone of into two subcones, vertex lies in both subcones. Due to the general position assumption, this is the only case where a vertex can be in two subcones of .
With the subcone partition we can define the constrained graph: for each subcone of each vertex , add an edge from to the closest vertex that is in that subcone and can see (if any exist). Note that distance is measured along the bisector of the original cone (not the subcone, see Fig. 4). More formally, we add an edge between two vertices and if can see , and for all vertices that can see it holds that (where and denote the projection of and on the bisector of and denotes the length of the line segment between two points and ). Note that our general position assumption implies that each vertex adds at most one edge per subcone.
Although constrained graphs are quite sparse, sometimes it is useful to have even fewer edges. Thus, we introduce the constrained halfgraph. This is the natural generalization of the halfgraph as described by Bonichon et al. [1], who considered the case where no constraints are present. This graph is defined for any even , but in this paper we will consider only the case where . Thus, for simplicity in notation we define only the constrained halfgraph.
The main change with respect to the constrained graph is that edges are added only in every second cone. More formally, we rename the cones of a vertex to (as usual, we use clockwise order starting from the cone containing the positive axis). The cones , , and are called positive cones and , , and are called negative cones.
We use and to denote cones and with apex . Note that, by the way the cones are labeled, for any two vertices and , it holds that if and only if . Analogous to the subcones defined for the constrained graph, constraints split cones into subcones. We call a subcone of a positive cone a positive subcone and a subcone of a negative cone a negative subcone (see Fig. 4).
In the constrained halfgraph we add edges like in the constrainedgraph, but only in the positive cones (and their subcones). We look at the undirected version of these graphs, i.e. when an edge is added, both vertices are allowed to use it. This is consistent with previous work on graphs.
Finally, we define the constrained Delaunay triangulation [4]. Given any two visible vertices and , the constrained Delaunay triangulation contains an edge between and if and only if is a constraint or there exists a circle with and on its boundary such that there is no vertex of in the interior of that is visible to both and .
3 Local Routing on the Visibility Graph
In the unconstrained setting there is a very simple simple local routing algorithm for graphs. The algorithm (often called routing) greedily follows the edge to the closest vertex in the cone that contains the destination. This strategy is guaranteed to work for , and is competitive when .
This strategy does not easily extend to the case where constraints are present: it is possible that the cone containing the destination does not have any visible vertices, since a constraint blocks its visibility (see Fig. 5). Having no edge in that cone, it is unclear how to reach the destination that lies beyond the constraint. In fact, given a set of vertices in the plane and a set of disjoint segments, no deterministic local routing algorithm is known for routing on that guarantees delivery of the message.
When the destination is visible to the source , it is possible to route locally by essentially “following the line segment ”, since no constraint can intersect . This approach was used to give a 2competitive 1local routing algorithm on the constrained halfgraph, provided that is in a positive cone of [3]. In the case where is in a negative cone of , the algorithm is much more involved and the competitive ratio jumps to 18.
The stumbling block of all known approaches is the presence of constraints. In a nutshell, the problem is to determine how to “go around” a constraint in such a way as to reach the destination and prevent cycling. This gives rise to the following question: does there exist a deterministic 1local routing algorithm that always reaches the destination when routing on the visibility graph? In this section, we answer this question in the affirmative. We provide a 1local algorithm that is guaranteed to route from a given source to a destination, in the presence of constraints. The main idea is to route on a planar subgraph of that can be computed locally.
In [13] it was shown how to route locally on a plane geometric graph. Subsequently, in [8], a modified algorithm was presented that seemed to work better in practice. Both algorithms are described in detail in [8], where the latter algorithm is called FACE2 and the former is called FACE1. Neither of the algorithms is competitive. FACE1 reaches the destination after traversing at most edges in the worst case and FACE2 traverses
edges in the worst case. Although FACE1 performs better in the worst case, FACE2 performs better on average in random graphs generated by vertices uniformly distributed in the unit square.
Coming back to our problem of routing locally from a source to a destination in , the main difficulty for using the above strategies is that the visibility graph is not plane. Its seems counterintuitive that having more edges makes the problem of finding a path more difficult. Indeed, almost all local routing algorithms in the literature that guarantee delivery do so by routing on a plane subgraph that is computed locally. For example, in [8], a local routing algorithm is presented for routing on a unit disk graph and the algorithm actually routes on a planar subgraph known as the Gabriel graph. However, none of these algorithms guarantee delivery in the presence of constraints. In this section, we adapt the approach from [8] by showing how to locally identify the edges of a planar spanning subgraph of , which then allows us to use FACE1 or FACE2 to route locally on .
Our aim is to route on the constrained halfgraph. This graph was shown to be a plane 2spanner of [2]. The authors also showed a partial routing result (only between visible vertices) on this graph [3].
Lemma 1
(Lemma 1 of [2]) Let , , and be three arbitrary points in the plane such that and are visibility edges and is not the endpoint of a constraint intersecting the interior of triangle . Then there exists a convex chain of visibility edges from to in triangle , such that the polygon defined by , and the convex chain does not contain any constraint or vertex of .
We now show how to locally identify the edges of the constrained halfgraph and distinguish them from other edges of .
Lemma 2
Let and be vertices such that . Then is an edge of the constrained halfgraph if and only if is the vertex whose projection on the bisector of is closest to , among all vertices in visible to and not blocked from by constraints incident on .
Proof. We will prove the claim by contradiction. First, suppose that is not closest to among the vertices in visible to and not blocked by constraints incident on (see Fig. 6a). Then there are one or more vertices whose projection on the bisector is closer to . Among those vertices, let be the one that minimizes the angle between and . Note that cannot be the endpoint of a constraint intersecting the interior of triangle , since the endpoint of that constraint would lie inside the triangle, contradicting our choice of . Since both and are visibility edges, Lemma 1 tells us that there is a convex chain of visibility edges connecting and inside triangle . In particular, the first vertex from on this chain is visible from both and and is closer to than is (in fact, must be by our choice of ). Moreover, must be in the same subcone of as , since the region between and the chain is completely empty of both vertices and constraints. Thus, cannot be an edge of the halfgraph.
Next, suppose that is closest to among the vertices visible to and not blocked by constraints incident on , but is not an edge of the halfgraph. Then there is a vertex in the same subcone as , who is visible to , but not to , and whose projection on the bisector is closer to (see Fig. 6b). Since and are in the same subcone, is not incident to any constraints that intersect the interior of triangle . We now apply Lemma 1 to the triangle formed by visibility edges and ; this gives us that there is a convex chain of visibility edges connecting and , inside triangle . In particular, the first vertex from on this chain must be visible to both and . And since lies in triangle , it lies in and its projection is closer to . But this contradicts our assumption that was the closest vertex. Thus, if is the closest vertex, and must be an edge of the halfgraph.
Lemma 2 allows us to compute 1locally which of the edges of incident on are also edges of the constrained halfgraph. Recall that this graph is plane [2], thus we can apply FACE1 or FACE2 to route on .
Theorem 3
For any set of vertices and set of constraints on , there exists a 1local noncompetitive routing algorithm on that visits only the edges of the constrained halfgraph.
This algorithm routes on a subgraph of the constrained graph, and in [3] it was shown that no deterministic local routing algorithm can be competitive on this graph. Even worse, the competitive ratio of our approach cannot be bounded by any function of . In fact, by applying FACE1, it is possible to visit almost every edge of the graph four times before reaching the destination. It is worse with FACE2, where almost every edge may be visited a linear number of times before reaching the destination. In the next section, we present a 1local routing algorithm that is competitive in the constrained setting and provide a matching worstcase lower bound.
4 Routing on Constrained Triangulations
In this section we look at routing on any constrained triangulation, i.e. a graph where all constraints are edges and all internal faces are triangles. Hence, we do not have to check while routing that the graph is a triangulation and we can focus our attention solely on the routing process.
4.1 Lower Bound
Given a triangulation and a source vertex and a destination vertex , let be the subgraph of that contains all edges of that are part of a triangle that is intersected by . It is very common for routing algorithms to restrict themselves to edges of . In the unconstrained setting, this does not affect the quality of the path too much. For example, in the unconstrained Delaunay triangulation, always contains a path between and of length at most [12]. However, we show that this is no longer true in the constrained setting.
In particular, we show that if is a constrained Delaunay triangulation or a constrained halfgraph, the shortest path in can be a factor of times longer than that in . This implies that any local routing algorithm that considers only the triangles intersected by cannot be competitive with respect to the shortest path in on every constrained Delaunay triangulation or constrained halfgraph on every pair of vertices. In the remainder of this paper, we use to denote the shortest path from to in a graph .
Lemma 4
There exists a constrained Delaunay triangulation with vertices and such that , where is the subgraph of consisting of all triangles intersected by the line segment .
Proof. We construct a constrained Delaunay graph with this property. For ease of description and calculation, we assume that the size of the point set is a multiple of 4. Note that we can remove this restriction by adding 1, 2, or 3 vertices “far enough away” from the construction so it does not influence the shortest path.
We start with two columns of vertices each, aligned on a grid. We add a constraint between every horizontal pair of vertices. Next, we shift every other row by slightly less than half a unit to the right (let be the small amount that we did not shift). We also add a vertex below the lowest row and a vertex above the highest row, centered between the two vertices on said row. Note that this placement implies that intersects every constraint. Finally, we stretch the point set by an arbitrary factor in the horizontal direction, for some arbitrarily large constant . When we construct the constrained Delaunay triangulation on this point set, we get the graph shown in Fig. 7.
In order to construct the graph , we note that all edges that are part of lie on a face that has a constraint as an edge. In particular, does not contain any of the vertical edges on the left and right boundary of . Hence, all that remains is to compare the length of the shortest path in to that in .
Ignoring the terms that depend on , the shortest path in uses edges of length , hence it has length . Graph on the other hand contains a path of length (again, ignoring small terms that depend on ), by following the path to the leftmost column and following the vertical path up. Hence, the ratio approaches , since
Note that the above construction is also the constrained halfgraph of the given vertices and constraints.
Corollary 5
There exist triangulations such that no local routing algorithm that considers only the triangles intersected by is competitive when routing from to .
In fact, the construction depicted in Fig. 7 shows that there exist point sets and constraints, such that the shortest path between and in every triangulation on this point set (subject to the constraints) has length a linear factor shorter than the shortest path in .
Lemma 6
There exist point sets (including vertices and ) and constraints such that in every constrained triangulation on subject to , the shortest path between and in is not an approximation of the shortest path in , where is the subgraph of consisting of all triangles intersected by the line segment .
Proof. Since any triangulation contains the edges of the convex hull of the point set, we observe that the shortest path in Fig. 7 remains part of any triangulation. Hence, for to contain a shortest path of length comparable to the shortest path in the full triangulation, it needs to contain some vertical edge on the left or right boundary of the graph. We show that can contain no such edge.
Consider an edge on the vertical boundary of the triangulation and let be the third vertex of this triangle. Since in the construction the shifted constraints are shifted less than half a unit, the only vertices visible to both and are endpoints of a constraint whose coordinate lies between those of and . Since is part of , it intersects , hence lies on the opposite side of compared to and . This implies that the other endpoint of the constraint with endpoint is contained in and thus is not a triangle of the triangulation.
4.2 Upper Bound
Next, we provide a simple local routing algorithm that is competitive. If we are only interested in routing on , Bose and Morin [7] introduced a routing algorithm for this setting. This routing algorithm, called the FindShortPath routing, is designed precisely to route on the graph created by the union of the triangles intersected by the line segment between the source and destination (i.e., graph ). The algorithm is 1local and 9competitive; that is, it reaches after having travelled at most 9 times the length of the shortest path from to in , while considering only the neighbors of the current vertex.
In the following, we show that this algorithm is also competitive in any triangulation.
Theorem 7
For any triangulation, there exists a 1local competitive routing algorithm that visits only triangles intersected by the line segment between the source and the destination.
The remainder of the section is dedicated to showing that in any triangulation the shortest path between and in is an approximation of the shortest path in . To make the analysis easier, we use an auxiliary graph defined as follows: let be the graph , augmented with the edges of the convex hull of and all visibility edges between vertices on the same internal face (after the addition of the convex hull edges). For these visibility edges, we only consider constraints with both endpoints in . The different graphs , , and are shown in Fig. 8. We emphasize that is an auxiliary graph that will only be used to bound the spanning ratio between the other two graphs.
We start by comparing the length of the shortest paths in and .
Lemma 8
Any triangulation satisfies .
Proof. First consider the case where every vertex along is part of . In this case, we claim that every edge of is also part of . Clearly, if an edge of is part of a triangle intersected by , then it is included in (and therefore in ). If is not part of a triangle intersected by , then and must lie on the same face of before we add the visibility edges (since otherwise the edge would violate the planarity of ). Since is an edge of , and can see each other. Hence, the edge is added to when the visibility edges are added. Therefore, every edge of is part of and thus .
In the general case not every vertex of is part of . In this case we partition into smaller subpaths so that each subpath satisfies either all vertices are in , or only the first and last vertex of the subpath are in . Using an argument analogous to the previous case, it can be shown that subpaths of that satisfy use only edges that are in .
To complete the proof, it remains to show that given a subpath that satisfies , there exists a different path in that connects the two endpoints of and has length at most . Let and be the first and last vertex of , and consider first the case where and lie on the same face of before the visibility edges are added (see Fig. 10). contains all visibility edges that are not blocked by constraints with both endpoints in . In particular, it will contain the geodesic (i.e., the shortest possible path that avoids these constraints) between and . On the other hand, path uses only edges of which by definition do not cross any constraints of . Hence, this implies in particular that does not cross any constraint that has both endpoints in and we conclude that the path cannot be shorter than .
Finally, it remains to consider the case where and do not lie on the same face before the visibility edges are added. Let and be the two vertices in the convex hull of the internal face containing . Consider the shortest path in connecting with and and virtually remove all edges from this face that do not belong to either path. Note that if lies on the convex hull, we have and no edges are removed. We apply the same procedure to . After this modification both and lie on the outer boundary of . We construct by walking from to along this outer boundary. Note that there are two possible paths, clockwise or counterclockwise along the boundary; the path we choose will depend on .
Without loss of generality, assume that is at the origin, , and lies to the right of and . We also assume that the clockwise path from to passes through (see Fig. 10). We observe that since is a shortest path in from to , is simple (i.e., no vertex is visited more than once).
Next, consider and recall that it satisfies and thus no vertex along other than and can be in . This implies that cannot contain any vertex of the outer boundary of . We count the number times crosses the downwards ray from
; if the number of crossings is odd, we construct
by walking clockwise from to . Otherwise, we walk counterclockwise instead. Since we assumed that the clockwise path from to passes through and is simple, both and must have the same homotopy (if we virtually consider the outer boundary of as an obstacle). Moreover, is the shortest possible path having the same homotopy as . We conclude that and thus that .Next, we show that the length of the shortest path in has length at most times the length of the shortest path in .
Lemma 9
Any triangulation satisfies .
Proof. It suffices to show that every edge on the shortest path in can be replaced by a path in whose length is at most . The claim trivially holds if is also an edge of , thus we focus on the case where is not an edge of . Note that this implies that is either an edge of the convex hull of or a visibility edge between two vertices of the same internal face. Instead of following , we simulate by following the path along the pocket of from to (the path along the boundary of that does not visit both sides of ; see Fig. 11).
We follow from to and consider the intersections between and the segment (they must cross at least twice: once at and once at ). Let be the last intersection before in and be the first intersection after . Let be the polygon determined by segment , and the portion of that lies between and . Since lies on the boundary of a pocket, it cannot cross and therefore it must be contained in . In particular, all edges of must lie inside . Since a line segment inside a polygon has length at most half the perimeter of that polygon, the length of each edge of is at most the length of from to , which is at most .
We concatenate all simulated paths and shortcut the resulting path from to such that every vertex is visited at most once. The result is a simple path which consists of at most edges, each one having length at most . This completes the proof.
Theorem 10
Any triangulation satisfies .
5 Conclusions
In this paper we presented two routing algorithms. The first one works in the natural visibility graph but its competitiveness is not bounded by any function of . The second algorithm is competitive (which is worstcase optimal), but it requires a triangulated subgraph of . This naturally leads to the following open problem: can one locally compute a triangulation of ? It is known that the constrained Delaunay triangulation cannot be computed locally (since it contains nonlocal information such as convex hull edges) and the constrained halfgraph is not necessarily a triangulation. Thus, we need to consider a different triangulation.
Acknowledgements
We thank Luis Barba, Sangsub Kim, and Maria Saumell for fruitful discussions.
References
 [1] Nicolas Bonichon, Cyril Gavoille, Nicolas Hanusse, and David Ilcinkas. Connections between thetagraphs, Delaunay triangulations, and orthogonal surfaces. In Proceedings of the 36th International Conference on Graph Theoretic Concepts in Computer Science (WG 2010), pages 266–278, 2010.
 [2] Prosenjit Bose, Rolf Fagerberg, André van Renssen, and Sander Verdonschot. On plane constrained boundeddegree spanners. In Proceedings of the 10th Latin American Symposium on Theoretical Informatics (LATIN 2012), volume 7256 of Lecture Notes in Computer Science, pages 85–96, 2012.
 [3] Prosenjit Bose, Rolf Fagerberg, André van Renssen, and Sander Verdonschot. Competitive local routing with constraints. Journal of Computational Geometry (JoCG), 8(1):125–152, 2017.
 [4] Prosenjit Bose and J. Mark Keil. On the stretch factor of the constrained Delaunay triangulation. In Proceedings of the 3rd International Symposium on Voronoi Diagrams in Science and Engineering (ISVD 2006), pages 25–31, 2006.
 [5] Prosenjit Bose, Matias Korman, André van Renssen, and Sander Verdonschot. Constrained routing between nonvisible vertices. In Proceedings of the 23rd Annual International Computing and Combinatorics Conference (COCOON 2017), volume 10392 of Lecture Notes in Computer Science, pages 62–74, 2017.
 [6] Prosenjit Bose, Matias Korman, André van Renssen, and Sander Verdonschot. Routing on the visibility graph. In To appear in the Proceedings of the 28th International Symposium on Algorithms and Computation (ISAAC 2017), 2017.
 [7] Prosenjit Bose and Pat Morin. Competitive online routing in geometric graphs. Theoretical Computer Science, 324(2):273–288, 2004.
 [8] Prosenjit Bose, Pat Morin, Ivan Stojmenovic, and Jorge Urrutia. Routing with guaranteed delivery in ad hoc wireless networks. Wireless Networks, 7(6):609–616, 2001.
 [9] Prosenjit Bose and André van Renssen. Upper bounds on the spanning ratio of constrained thetagraphs. In Proceedings of the 11th Latin American Symposium on Theoretical Informatics (LATIN 2014), volume 8392 of Lecture Notes in Computer Science, pages 108–119, 2014.

[10]
Ken Clarkson.
Approximation algorithms for shortest path motion planning.
In
Proceedings of the 19th Annual ACM Symposium on Theory of Computing (STOC 1987)
, pages 56–65, 1987.  [11] Gautam Das. The visibility graph contains a boundeddegree spanner. In Proceedings of the 9th Canadian Conference on Computational Geometry (CCCG 1997), pages 70–75, 1997.
 [12] J. Mark Keil and Carl A. Gutwin. Classes of graphs which approximate the complete euclidean graph. Discrete & Computational Geometry, 7:13–28, 1992.
 [13] Evangelos Kranakis, Harvinder Singh, and Jorge Urrutia. Compass routing on geometric networks. In Proceedings of the 11th Canadian Conference on Computational Geometry (CCCG 1999), pages 51–54, 1999.
 [14] Sudip Misra, Subhas Chandra Misra, and Isaac Woungang. Guide to Wireless Sensor Networks. Springer, 2009.
 [15] Harald Räcke. Survey on oblivious routing strategies. In Mathematical Theory and Computational Practice, volume 5635 of Lecture Notes in Computer Science, pages 419–429, 2009.