Improved Routing on the Delaunay Triangulation - Vincent DESPRÉ

routing we find a path through G from a source vertex s to a destination vertex t, using only ... each triple (p, q, r) of points in P, let C be the circle through p, q, and r. If there are no ...... To see how τ(α,β,γ∗) behaves as β changes, we calculate:.
1MB taille 8 téléchargements 41 vues
Improved Routing on the Delaunay Triangulation∗ † Nicolas Bonichon1 , Prosenjit Bose2 , Jean-Lou De Carufel3 , Vincent Despré4 , Darryl Hill2 , and Michiel Smid2 1 2 3 4

Université de Bordeaux, LaBRI, UMR 5800, F-33400 Talence, France Carleton University, 1125 Colonel By Dr, Ottawa, ON, Canada University of Ottawa, 800 King Edward Ave, Ottawa, ON, Canada Team Gamble, INRIA Nancy, Bureau B172, 615 Rue du Jardin Botanique, 54600 Villers-lès-Nancy, France

Abstract A geometric graph G = (P, E) is a set of points in the plane and edges between pairs of points, where the weight of the edge is equal to the Euclidean distance between the points. In k-local routing we find a path through G from a source vertex s to a destination vertex t, using only knowledge of the present location, the locations of s and t, and the k-neighbourhood of the current vertex. We present an algorithm for 1-local routing on the Delaunay triangulation, and show that it finds a path between a source vertex s and a target vertex t that is not longer than 3.56|st|, improving the previous bound of 5.9. 1998 ACM Subject Classification Dummy classification – please refer to http://www.acm.org/ about/class/ccs98-html Keywords and phrases Delaunay, local routing, geometric, graph Digital Object Identifier 10.4230/LIPIcs.SoCG.2018.

1

Introduction

A Euclidean geometric graph G = (P, E) is a set P of points embedded in the plane, and a set E of edges, where each e ∈ E is a pair of points (u, v) in P , and the weight of e is the Euclidean distance |uv|. A k-local routing algorithm A is an algorithm that routes a packet through the geometric graph G from a source vertex s to a target vertex t using only knowledge of the locations of s and t, as well as the location of the current vertex and its k-hop neighbours. In this paper we consider 1-local routing. Let PA hs, ti be the path found in G from s to t using A. Then the routing ratio of A for any two points s and t in the geometric graph G is the ratio of the length of PA hs, ti to the Euclidean distance from s to t. An algorithm A has a routing ratio c for a class of geometric graphs G, if, for any two vertices s and t in G ∈ G, |PA hs, ti|/|st| ≤ c. Observe that a lower bound on c is the ratio of the shortest path from s to t in G to the Euclidean distance |st|. A graph G = (P, E) is a c-spanner if there is a real number c such that for any pair of points u and v in V the shortest path in G not longer than c|uv|. The value c is referred to as the stretch factor or spanning ratio of G. The stretch factor of G is thus a lower bound on

∗ †

This work was partially supported by the National Sciences and Engineering Research Council of Canada (NSERC). This work was partially supported by the French ANR grant ASPAG (ANR-17-CE40-0017)

© Nicolas Bonichon, Prosenjit Bose, Jean-Lou De Carufel, Vincent Despré, Darryl Hill, Michiel Smid; licensed under Creative Commons License CC-BY The 34th International Symposium on Computational Geometry. Editors: John Q. Open and Joan R. Acces; Article No. ; pp. :1–:30 Leibniz International Proceedings in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany

XX:2

Improved Delaunay Routing

the routing ratio of G for any routing algorithm A, and the routing ratio is an upper bound on the spanning ratio of G. A notable and particularly useful geometric graph is the Delaunay triangulation. Given a set P of points in the plane, we construct the Delaunay triangulation of P as follows. For each triple (p, q, r) of points in P , let C be the circle through p, q, and r. If there are no points of P in the interior of C, then we connect p, q, and r by edges to form a triangle. If there are more than three vertices on a given circle, we break ties arbitrarily. We define circle according to the specific distance metric we use. The classical Delaunay triangulation uses the L2 distance metric to define a circle, but we are not limited to this metric. Any convex shape can define a distance metric, and in that metric a "circle" is defined as the set of points equidistant from the center point. Geometric spanners were first introduced by Chew [9]. He wanted to approximate the complete graph using a linear number of edges. He showed that between any pair of vertices there is a path in the L1 -Delaunay triangulation, which is√the Delaunay graph constructed using tipped squares rather than circles, that was at most 10 times the Euclidean distance. This is also the first local routing algorithm for Delaunay graphs, which Bonichon et al. later generalized to the standard L2 Delaunay triangulation [1]. Chew [8] also showed that TD-Delaunay triangulation, that is, Delaunay triangulations based on an equilateral triangle, are 2-spanners. There is a class of graphs called θ-graphs, and a member of that class is the half-θ6 graph. The TD-Delaunay triangulation was later shown to be identical to the half-θ6 graph by Bonichon et al. [2]. Bonichon et al. [3] showed the L1 and L∞ Delaunay (which are the same graph with the point set rotated p triangulations √ by π/4 radians) are 4 + 2 2 ≈ 2.61-spanners, and they showed that this bound was tight. The standard Delaunay triangulation was first proven to be a spanner by Dobkin et al. [10], who showed an upper bound of ≈ 5.08 on the spanning ratio. This was subsequently improved to 2.42 by Keil and Gutwin [11], and then to 1.998 by Xia [13]. Geometric spanners are described in detail in the book by Narasimhan and Smid [12]. √ In the process of showing that the L1 -Delaunay triangulation was a 10-spanner of the complete graph, Chew [9] also showed √ a 1-local routing algorithm for the Delaunay triangulation. Thus the spanning ratio of 10 on the L1 -Delaunay triangulation had a matching routing ratio. Bose and Morin [7] explored some of the theoretical limitations of routing, as well as providing some of the first deterministic routing algorithms with constant routing ratio on the L2 -Delaunay triangulation. They denoted the spanning ratio found by Dobkin et al. [10] as cdf s ≈ 5.08 (named after the authors of [10]). They then showed that it is possible to locally route on the L2 -Delaunay triangulation with a routing ratio of 9 · cdf s ≈ 45.749. Bose et al. [4] further improved this bound to ≈ 15.479. A paper by Bonichon et al. [1] showed that we could route on the Delaunay triangulation with a routing ratio of around 5.9, using a generalization of Chew’s [9] algorithm. Bose et al. [5] show that the√half-θ6 graph, which is identical to the TD-Delaunay triangulation, has a routing ratio of 5/ 3, and this is shown to be tight. Since the spanning ratio of this graph is 2, local routing cannot guarantee finding the shortest path, and we see a separation between routing and spanning ratios in this graph. Bose et al. [6] also showed that you could route on bounded √ degree plane 6-spanners, with a routing ratio of 95/ 3, but that if you √ store an extra O(1) of memory in every node you can get the routing ratio down to 15/ 3. Our contribution is a 1-local routing algorithm for the L2 -Delaunay triangulation, with a routing ratio of 3.56. This improves the current best routing ratio of 5.9 [1]. Table 1 shows our result in the context of spanning and routing ratios of other Delaunay triangulations. In Section 2 we define a 1-local algorithm that achieves this routing ratio. In Section 3

Bonichon et al.

XX:3

Table 1 Spanning and Routing Ratios of Delaunay Triangulations Graph L1 and L∞ Delaunay T D Delaunay L2 Delaunay

Spanning Ratio √ 4 + 2 2 ≈ 2.61 [3] 2 [8] 1.998 [13]

p

Routing Ratio √ 10 ≈ 3.16 [9] √ 5/ 3 ≈ 2.89 [5] 3.56 (this paper)

we state three main lemmas, and use them to prove the bound on the routing ratio. We prove two of these lemmas in Section 3. The remaining lemma is technical in nature. We discuss some parts of its proof in Section 4, and the full proof can be found in the appendix. In Section 5 we present our conclusions and our ideas for future directions of this line of research.

2

Algorithm

Let P be a set of points in the plane, and let DT (P ) be the Delaunay triangulation of these points. We want to route a packet between two vertices of P along edges of DT (P ) using only local knowledge and knowledge of our start and destination vertices. To simplify our analysis, we assume that no three points lie on a line, and no four points lie on a circle. Let s and t be the start and terminal vertices respectively, and assume, without loss of generality, that s and t are on the x-axis with s left of t. We start by introducing some notation. Let C be a circle that intersects st. Let tC denote the rightmost point of C on st. Let u and v be arbitrary points on C. Then let AC (u, v) be the clockwise arc of C from u to v, and let BC (u, v) be the counter-clockwise arc of C from u to v. Consider two triangles T1 and T2 that have non-empty intersections with st. We say that T1 is left of T2 , and T2 is right of T1 if a walk from s to t along st intersects T1 before T2 . Let p be the vertex representing the current location of the packet; initially p = s. Let T be the triangle that has p as a vertex and is furthest right among all such triangles that have a non-empty intersection with st. Let q 6= p be the vertex of T that is below st, and let r be the third vertex of T . Let C be the circumcircle of T . First assume that p = s. If the center of C is on or below st, set p = r. Otherwise we set p = q. See Fig. 1a. If p 6= s, we repeat the following until p = t. Without loss of generality, assume that p is above st, and t is both above and below st. We use |p| to denote the length of a geometric structure p. 1. If |AC (p, tC )| ≤ |pq| + |BC (q, tC )|, set p = r 2. else set p = q. The possible choices are illustrated in Fig. 1. Let Phs, ti = {s = p0 , p1 , ..., pn = t} be the path chosen by the algorithm. In the rest of Pn the paper we will prove that |Phs, ti| = i=1 |pi−1 pi | ≤ 3.56|st|.

3

Bounding the Path Length

Let Ti be the rightmost triangle that has pi−1 and pi as vertices and a non-empty intersection with st. Let Ci be the circumcircle of Ti , with radius ri , and let C = {C1 , C2 , ..., Cn }. Let (ai−1 bi−1 ) be the leftmost edge of Ti that intersects st for 1 < i ≤ n, where ai−1 is above st and bi−1 is below st. Let s = p0 = a0 = b0 and let t = pn = an = bn . Instead of writing tCi

SoCG 2018

XX:4

Improved Delaunay Routing

C C

r

p

r tC

p=s

tC

q q (a) From p = s, the blue arc is shorter, so we forward to r.

(b) From p, the blue path is shorter, so we forward to r.

C r

p

tC q (c) From p, the blue path is shorter, so we forward to q. Figure 1 The algorithm choosing where to forward the packet.

Ci 00 Ci−1

s

ai−1

ti−1 b0i−1

00 Figure 2 Ci−1 and Ci .

ti bi

t

Bonichon et al.

XX:5 Ci = Ci00 ai−1

Ci0

Ci−1 00 Ci−1

ti−1 s

si

b0i−1 b00i−1

ti

δi

t

bi−1 = bi

Figure 3 In this case ri < ri0 , so Ci00 = Ci .

to represent the rightmost intersection of Ci with st, we will write ti . Likewise, instead of writing ACi (u, v) and BCi (u, v), we will write Ai (u, v) and Bi (u, v) to represent the clockwise and counter-clockwise arcs of Ci from u to v, respectively. To bound |Phs, ti| we define a new path P(s, t) in the following way. For each i, if both pi−1 and pi are above st (respectively below st), that is pi−1 = ai−1 and pi = ai (respectively pi−1 = bi−1 and pi = bi ), then we replace in Phs, ti the edge (ai−1 , ai ) with the arc Ai (ai−1 , ai ) (respectively replace (bi−1 , bi ) with Bi (bi−1 , bi )). Since |Phs, ti| ≤ |P(s, t)|, it is sufficient to bound |P(s, t)|. For an illustration of the following terms, see Figs. 2, 3, and 4. To help bound the length of P(s, t), we define points si on st, and two additional sequences of circles, 00 (C10 , C20 , ..., Cn0 ) and (C000 , C100 , ..., Cn−1 ). We define the additional circles in the following 00 0 00 0 00 0 00 order: C0 , C1 , C1 , C2 , C2 , ..., Cn−1 , Cn−1 , Cn0 . Let C000 be the circle with center s and ra00 00 dius r0 = 0. Now assume that we have defined the circle Ci−1 . We will use this circle to define Ci0 and Ci00 . Let A0 i (p, q) and B 0 i (p, q) be the clockwise and counter-clockwise arcs of Ci0 between points p and q. Let Ci0 be the circle through ai−1 and ti such that |A0 i (ai−1 , ti )| = |ai−1 b00i−1 | + |B 0 i (b00i−1 , ti )|, where b00i−1 is the bottommost intersection of Ci0 00 and Ci−1 . For instance, C10 is the circle with diameter s and t1 . Let ri0 be the radius of Ci0 . If i = n then Ci00 is undefined, otherwise let Ci00 be the circle through pi , where the rightmost intersection with st is ti , and with radius ri00 = min{ri , ri0 }. If pi = ai , then let δi = A00 i (ai , ti ), otherwise let δi = B 00 i (bi , ti ). Let Xp and Yp be the x and y-coordinate, respectively, of point p. Let s0 = s, and si be the point on st where Xsi = Xti − 2ri00 . Let δ0 consist of the source vertex s, and δn consist of the target vertex t, and thus |δ0 | = |δn | = 0. Let Pi be the path in P(s, t) from pi−1 to pi . Define the following function: Υ(Ci−1 , Ci ) = |A0 i (ai−1 , ti )| − |δi−1 | − λ|si−1 si | − (Φ − λ)|ti−1 ti |,

(1)

where λ = 0.42 and Φ = 3.56. The key to showing an upper bound on the routing ratio for P(s, t) is given in our main lemma: I Lemma 1. For all 1 ≤ i ≤ n, Υ(Ci−1 , Ci ) ≤ 0. This, along with two key lemmas, allow us to prove the main theorem of this section. I Lemma 2. For all 1 ≤ i ≤ n, |Pi | + |δi | ≤ |A0 i (ai−1 , ti )|.

SoCG 2018

XX:6

Improved Delaunay Routing Ci0 00 Ci−1

ai−1

Ci Ci00 ai δi

s

si

ti−1

ti

t

b00i−1 b0i−1

Figure 4 In this case ri0 < ri , so Ci00 is a circle through ai and ti with radius ri0 .

I Lemma 3.

Pn

i=1

|si−1 si | ≤ |st|, and

Pn

i=1

|ti−1 ti | = |st|.

Assuming these are true, we can prove the main theorem: I Theorem 4. Phs, ti ≤ Φ|st| for Φ = 3.56. Proof. Recall from the earlier discussion that |Phs, ti| ≤ |P(s, t)|, thus it is enough to bound |P(s, t)|. Lemma 1 and Lemma 2 imply that |Pi | + |δi | − |δi−1 | − λ|si−1 si | − (Φ − λ)|ti−1 ti | ≤ Υ(Ci−1 , Ci ) ≤ 0. Thus, summing over all indices i we get n X

(|Pi | + |δi | − |δi−1 | − λ|si−1 si | − (Φ − λ)|ti−1 ti |) ≤ 0

i=1 n X i=1

|Pi | + |δi | − |δi−1 | ≤

n X

(λ|si−1 si | + (Φ − λ)|ti−1 ti |)

i=1

|P(s, t)| − |δ0 | + |δn | ≤ (λ + Φ − λ)|st|

(2)

|P(s, t)| ≤ (λ + Φ − λ)|st|

(3)

≤ Φ|st|. Line 2 is due to Lemma 3 and line 3 is due the fact that δ0 = δn = 0.

J

It remains to prove Lemmas 1, 2, and 3. The proofs of Lemma 2 and Lemma 3 are presented Sections 3.1 and 3.2, respectively. The proof of Lemma 1 is technical in nature, and the proof is discussed in Section 4.

3.1

Proof of Lemma 2

Lemma 2 requires two supporting lemmas. Note that if Pi crosses st, then it is always the case that bi−1 = bi . For convenience we will continue to refer to Pi as (ai−1 , bi−1 ) when it crosses st. If Pi does not cross st, it may or may not be the case that bi−1 = bi . 00 Recall that bi−1 is the bottom most intersection of Ci and Ci−1 , and that Ci−1 is a circle 00 through ti−1 and pi−1 . Let b0i−1 be the bottommost intersection of Ci and Ci−1 . Then I Lemma 5. |ai−1 bi−1 | + |Bi (bi−1 , ti )| ≤ |ai−1 b0i−1 | + |Bi (b0i−1 , ti )|. 00 00 Proof. If ri−1 = ri−1 , then Ci−1 = Ci−1 and b0i−1 = bi−1 and we are done. If Pi crosses 00 st, then Ci−1 goes through pi = bi = bi−1 , since any time Pi crosses, bi−1 = bi , and thus b0i−1 = bi−1 and again we are done.

Bonichon et al.

XX:7

Cj Ci0

ai−1

ai

Ci

j0 k0

Ck

a0i ti

Ci00

Figure 5 Circles Ci , Ci0 , Ci00 , Cj and Ck in Lemma 2. 00 Otherwise it is the case that ri−1 < ri−1 and Pi does not cross st. In this case ai−1 and 00 00 ti−1 are on Ci−1 . Since ri−1 < ri−1 , the convex hull of A00 i−1 (ai−1 , ti−1 ) contains the convex 00 hull of Ai−1 (ai−1 , ti−1 ). That means to the left of ai−1 ti−1 , Ci−1 is contained in Ci−1 , which 0 0 means |ai−1 bi−1 | + |Bi (bi−1 , bi−1 )| > |ai−1 bi−1 |, since |ai−1 bi−1 | is the shortest path possible from ai−1 to bi−1 , which implies the lemma. J

I Lemma 6. If Pi crosses st, then |ai−1 bi−1 | + |Bi (bi−1 ti )| ≤ |A0 i (ai−1 , ti )|. Proof. Let ci be the center of Ci , and c0i be the center of Ci0 . It is possible to transform Ci into Ci0 by fixing ai−1 and ti moving ci along the perpendicular bisector of the line segment ai−1 ti until it reaches c0i . Recall that Ci0 is the circle where |A0 i (ai−1 , ti )| = |ai−1 b00i−1 |+|B 0 i (b00i−1 , ti )|. Thus if |ai−1 b0i−1 |+|Bi (b0i−1 ti )| > |Ai (ai−1 ti )|, ci moves to the right to c0i to obtain the equality |A0 i (ai−1 , ti )| = |ai−1 b00i−1 | + |B 0 i (b00i−1 , ti )|. This implies that |Ai (ai−1 ti )| < |A0 i (ai−1 ti )|, since the convex hull of Ai (ai−1 ti ) is contained in the convex hull of A0 i (ai−1 ti ). We have |ai−1 bi−1 | + |Bi (bi−1 ti )| < |Ai (ai−1 ti )| since the algorithm chose to cross st, thus |ai−1 bi−1 | + |Bi (bi−1 ti )| < |A0 i (ai−1 ti )| as required. Otherwise if |ai−1 b0i−1 | + |Bi (b0i−1 ti )| < |Ai (ai−1 ti )|, then ci must move to the left to c0i , which means that |ai−1 b0i−1 | + |Bi (b0i−1 ti )| < |ai−1 b00i−1 | + |B 0 i (b00i−1 ti )| by the same convex hull argument as above. Since |ai−1 b00i−1 | + |B 0 i (b00i−1 ti )| = |A0 i−1 (ai−1 , ti−1 )|, and |ai−1 bi−1 | + |Bi (bi−1 ti )| ≤ |ai−1 b0i−1 | + |Bi (b0i−1 ti )| by Lemma 5, |ai−1 bi−1 | + |Bi (bi−1 ti )| ≤ |A0 i (ai−1 , ti )| as required. J We can now prove Lemma 2: Proof of Lemma 2. We have two cases: 1. Pi = Ai (ai−1 , ai ) (Pi does not cross st).

SoCG 2018

XX:8

Improved Delaunay Routing

2. Pi = (ai−1 , bi−1 ) (Pi crosses st). In Case 1 we have that |Pi | + |δi | = |Ai (ai−1 , ai )| + |A00 i (ai , ti )|. We need to show that |A0 i (ai−1 , ti )| ≥ |Ai (ai−1 , ai )| + |A00 i (ai , ti )|. We introduce some notation that is illustrated in Fig. 5. Let Cj be the circle centered at ai−1 that passes through ai . Let Ck be the circle centered at ti that passes through ai . Let j 0 be the intersection of Cj and A0 i (ai−1 , ti ), and let k 0 be the intersection of Ck and A0 i (ai−1 , ti ). Since Cj and Ck intersect at ai and a point a0i that is ai mirrored with respect to the line through ai−1 and ti , we know that A0 i (ai−1 , j 0 ) and A0 i (k 0 , ti ) do not share any points, and thus |A0 i (ai−1 , ti )| > |A0 i (ai−1 , j 0 )| + |A0 i (k 0 , ti )|. Note that when Pi does not cross st, that ri0 < ri , and thus |A0 i (ai−1 , j 0 )| > |Ai (ai−1 , ai )|. That means ri00 = ri0 < ri , which implies the arc A0 i (k 0 , ti ) is simply a rotation of the arc A00 i (ai , ti ) around ti , hence |A0 i (k 0 , ti )| = |A00 i (ai , ti )|. Combining the above equality and inequalities we have |A0 i (ai−1 , ti )| > |Ai (ai−1 , ai )| + |A00 i (ai , ti )|, as required. For Case 2, Lemma 6 tells us that |ai−1 bi−1 | + |Bi (bi−1 , ti )| ≤ |A0 i (ai−1 , ti )|. Since |Pi | + |δi | = |ai−1 bi−1 | + |B 00 i (bi−1 , ti )|, we want to show that |A0 i (ai−1 , ti )| ≥ |ai−1 bi−1 | + |B 00 i (bi−1 , ti )|.

(4)

If ri00 = ri then |Bi (bi−1 , ti )| = |B 00 i (bi−1 , ti )| and we are done by Lemma 6. Otherwise ri00 = ri0 < ri , which implies that |B 00 i (bi−1 , ti )| > |Bi (bi−1 , ti )|. This also implies that |ai−1 b0i−1 | + |Bi (b0i−1 ti )| > |Ai (ai−1 , ti )|, and |Ai (ai−1 , ti )| < |A0 i (ai−1 , ti )|. Since |Ai (ai−1 , ti )| > |ai−1 bi | + |Bi (bi , ti )| initially, we can subtract |Ai (ai−1 , ti )| from the left hand side of (4), and subtract |ai−1 bi−1 | + |Bi (bi−1 , ti )| from the right hand side of (4), and if the resulting expression is true, then (4) is true. So it is sufficient to show that |A0 i (ai−1 , ti )| − |Ai (ai−1 , ti )| ≥ |B 00 i (bi−1 , ti )| − |Bi (bi−1 , ti )|.

(5)

which is true since ri00 = ri0 < ri and |ai−1 ti | ≥ |bi−1 ti |.

3.2

J

Proof of Lemma 3

Lemma 3 requires the following supporting results: I Lemma 7. Let ui be the point of Ci0 diametrically opposed to ti . If ui is on or at the left of ai−1 b00i−1 then Xsi−1 ≤ Xsi . 00 Proof. Observe that if ui is on or left of (ai−1 , b00i−1 ) then ui is on or inside Ci−1 . See Fig. 6. 0 0 Let Oi be the circle centered at ti with radius |ti ui | = 2ri . Thus Oi and Ci intersect at the point ui . Let s0i be the point on st where Xs0i = Xti − 2ri0 . Since ri00 ≤ ri , Xs0i ≤ Xsi . Thus it is enough to prove that Xsi−1 ≤ Xs0i . We argue by contradiction, thus assume that Xs0i < Xsi−1 . Since Xti > Xti−1 , it must be 00 that ri0 > ri−1 . Thus Oi−1 is completely contained in Oi , and they do not intersect. Since ui is inside Ci−1 , and Oi intersects ui , Oi must intersect Ci−1 . But Ci−1 is inside Oi−1 , and Oi−1 is inside Oi , and thus Oi cannot intersect Ci−1 , which is a contradiction. See Fig. 6. J

I Corollary 8. For all si , 1 ≤ i ≤ n, Xsi−1 ≤ Xsi , and for all ti , 1 ≤ i ≤ n, Xti−1 ≤ Xti .

Bonichon et al.

XX:9

ai−1

00 Ci−1

Ci0

ui

s

si−1

s0i

ti−1

ti

t

b00i−1 Figure 6

Proof. Recall that |A0 i (ai−1 , ti )| = |ai−1 b00i−1 |+|B 0 i (b00i−1 , ti )|, which implies that |A0 i (ai−1 , ti )| ≤ πri0 and |B 0 i (b00i−1 , ti )| ≤ πri0 . Since |A0 i (ui , ti )| = |B 0 i (ui , ti )| = πri0 , ui is either left of (ai−1 , b00i−1 ), or ui = ai−1 = b00i−1 , which implies that Xsi−1 ≤ Xsi by Lemma 7. See Fig. 6. Recall (ai−1 , bi−1 ) is the leftmost edge of Ti . Let w be the third vertex of Ti . Xti−1 ≤ Xti , otherwise Ci−1 would contain w, which cannot be the case in a Delaunay triangulation. J We can now prove Lemma 3: Proof of Lemma 3. Implied by Corollary 8 and the fact that Xs0 = Xs and Xsn < Xt .

4

J

Proof of Lemma 1

We can rewrite |si−1 si | as |si−1 si | = Xsi − Xsi−1 00 = Xti − 2ri00 − Xti−1 + 2ri−1 00 = |ti−1 ti | + 2(ri−1 − ri00 ).

In our formulation of Υ(Ci−1 , Ci ), we assume without loss of generality that the packet has been routed to ai−1 , thus δi−1 = A00 i−1 (ai−1 , ti−1 ). Thus we can write Υ(Ci−1 , Ci ) as 00 Υ(Ci−1 , Ci ) = |A0 i (ai−1 , ti )| − |A00 i−1 (ai−1 , ti−1 )| − 2λ(ri−1 − ri00 ) − Φ|ti−1 ti |.

Recall ri0 is the radius of Ci0 . Since ri00 ≤ ri0 , substituting ri0 for ri00 in Υ(Ci−1 , Ci ) can only increase Υ(Ci−1 , Ci ). We can therefore pose finding the value of Υ(Ci−1 , Ci ) as the following purely geometric problem. Let O1 and O2 be two fixed, intersecting circles with centers o1 and o2 , radii ρ1 and ρ2 , and where Yo1 = Yo2 = 0, and Xo1 > Xo2 . Let a be the topmost intersection of O1 and O2 , and let b be the bottommost intersection of O1 and O2 , and let Xa = Xb = 0. Let L be a line that intersects both O1 and O2 passing below a. Let g1 be the rightmost intersection of L and O1 and let g2 be the rightmost intersection of L and O2 . Let l1 and l2 be the leftmost intersections of L with O1 and O2 respectively. Let f1 be the point on L distance 2ρ1 left of g1 , and let f2 be the point on L distance 2ρ2 left of g2 . Let Γ1 (p, q) be the arc of O1 above

SoCG 2018

XX:10

Improved Delaunay Routing

O1

O2

a

L

o1

Γ2 ha, g2 i

Γ1 ha, g1 i o2

f1 f2 g1

g2

b Figure 7 Z(O1 , O2 ).

L between points p and q in the clockwise direction, and let Γ2 (p, q) be the arc of O2 above L between points p and q in the clockwise direction. Finally let Z(O1 , O2 ) = |Γ2 (a, g2 )| − |Γ1 (a, g1 )| − 2λ(ρ1 − ρ2 ) − Φ|g1 g2 |.

(6)

00 See Fig. 7. It is easy to see that if we arrange O1 , O2 , and L to correspond to Ci−1 , Ci0 and st that Υ(Ci−1 , Ci ) ≤ Z(O1 , O2 ). Therefore it is sufficient to analyze Z(O1 , O2 ). We prove the following two theorems:

I Theorem 9. If Yg1 ≤ 0, then Z(O1 , O2 ) ≤ 0. I Theorem 10. If Yg1 > 0, then Z(O1 , O2 ) ≤ 0. These two theorems then imply Lemma 1. The cornerstone of proving these two theorems is the following transformation: I Transformation 11. Fix a and b, and translate o2 left along the x-axis until o2 = o1 . After Transformation 11, O2 = O1 and thus Z(O1 , O2 ) = 0. If we can show that Z(O1 , O2 ) was increasing during this operation, then it must be that Z(O1 , O2 ) ≤ 0 before Transformation 11. Thus we wish to find the change in Z(O1 , O2 ) with respect to the change in Xo2 . The following lemma is one of the keys to proving that Z(O1 , O2 ) ≤ 0: I Lemma 12. Let O2 and O1 be intersecting circles both intersected by a line segment L. If dZ(O1 ,O2 ) ≤ 0 during Transformation 11, then Z(O1 , O2 ) ≤ 0. dXo 2

1 ,O2 ) Proof. At the end of Transformation 11 we have that Z(O1 , O2 ) = 0. If dZ(O ≤ 0 dXo2 then Z(O1 , O2 ) is not decreasing during Transformation 11, and thus Z(O1 , O2 ) ≤ 0 before Transformation 11. J 1 ,O2 ) In the appendix we formulate dZ(O into a three parameter function τ (α, β, γ). We dXo2 then reduce τ (α, β, γ) to a single parameter α for certain ranges and values of β and γ, and show that for these ranges and values, that τ (α, β, γ) ≤ 0. For negative values of β and α > π/2, it does not always hold that τ (α, β, γ) ≤ 0. However, for these cases we can use geometric proofs to show that Z(O1 , O2 ) ≤ 0.

Bonichon et al.

XX:11

We note that β becomes negative during Transformation 11 if and only if Yg1 > 0, as in Theorem 10. Hence Theorem 9 relies primarily on Lemma 12, while Theorem 10 uses a combination of Lemma 12 and geometric arguments. The formulation and analysis of τ (α, β, γ) begins in Appendix A, and Theorems 9 and 10 are proven in Appendixes A.3.1 and A.3.2 respectively.

5

Conclusion and Future Work

Consider the algorithm presented in Section 2, along with two variations. To keep the algorithms simple, assume we are at a vertex p 6= s. Otherwise all assumptions are the same as in Section 2. A) BestChord: B) MixedChordArc: C) MinArc:

If |pr| + |AC (r, tC )| ≤ |pq| + |BC (q, tC )| then p = r else p = q. If |AC (p, tC )| ≤ |pq| + |BC (q, tC )| then p = r else p = q. If |AC (p, tC )| Xo1 . Let α be the counter clockwise angle the line segment from o2 to a makes with the x-axis. Thus 0 ≤ α ≤ π. Let β be the clockwise angle of the line segment o2 g2 with the x-axis, and note that −α ≤ β ≤ α. Let γ be the clockwise angle of the line segment L with the x-axis. We have −π/2 < γ < π/2, since g2 is on or right of (a, bi−1 ) and s is left of (a, bi−1 ). Also note that −π/2 ≤ β − γ ≤ π/2, since g2 is the exit point of L on Ci . See Fig. 8. Note that Xo2 = −ρ2 cos α and Ya = ρ2 sin α. We calculate derivatives with respect to Xo2 .

SoCG 2018

XX:14

Improved Delaunay Routing

O1 a

L

o1

O2

α o2 β g1 b

g2

Figure 9 We fix a and b and translate o2 towards o1 .

p d Xo22 + Ya2 Xo2 dρ2 Xo = = =p 2 2 = − cos α dXo2 dXo2 ρ2 Xo2 + Ya2

(7)

X

d(π/2 + arctan( Yoa2 )) Ya dα Ya sin α = 2 = = = 2 dXo2 dXo2 Xo2 + Ya2 ρ2 ρ2 d(αρ2 ) dρ2 dα =α + ρ2 = sin α − α cos α dXo2 dXo2 dXo2

(8) (9)

dβ 1 g2 | To show d|g dXo2 and dXo2 requires us to use the total chain rule, or total derivative. We consider |g1 g2 | as a function of Xo2 and ρ2 . However, ρ2 is also a function of Xo2 . Thus we can express the change in |g1 g2 | with respect to the change in Xo2 as:

d|g1 g2 | ∂|g1 g2 | dXo2 ∂|g1 g2 | dρ2 = + dXo2 ∂Xo2 dXo2 ∂ρ2 dXo2 ∂|g1 g2 | ∂|g1 g2 | dρ2 = + ∂Xo2 ∂ρ2 dXo2

(10) (11)

Geometrically, ∂Xo2 represents translating o2 along the x-axis while fixing the radius ρ2 . ∂ρ2 represents changing the radius ρ2 of Ci , while keeping Xo2 fixed. See Fig. 10. However, dρ2 the change in ρ2 is dependent on Xo2 , hence we multiply by dX . o 2

∂|g1 g2 | ∂|g1 g2 | can be individually ∂Xo2 and ∂ρ2 dβ dXo2 using the same technique.

The partial derivatives geometry. We determine

A.1.1

determined using simple

d|g1 g2 | dXo2

In Fig. 12a we examine the geometry of

∂|g1 g2 | ∂Xo2 .

Applying the sine rule yields

Bonichon et al.

XX:15

O2 L γ

o2

o1

a

α β

g2 b

(a) Initial orientation of Ci−1 and Ci .

O2 L γ

o1

a

o2 α β

g2 b

(b) The change in Xo2 represents moving o2 while fixing a and b. Figure 10

SoCG 2018

XX:16

Improved Delaunay Routing

O2 L γ

o1

a

o2 α β

g2 b

(a) In this case,

∂|g1 g2 | ∂ρ2

is obtained by fixing Xo2 and decreasing ρ2 .

O2 L γ

o1

a

o2 α β

g2 b

(b)

∂|g1 g2 | ∂Xo2

is found by moving o2 while fixing ρ2 .

Bonichon et al.

XX:17

O2

∂|g1 g2 | β−γ

(a)

γ

∂ρ2

β

π/2−β +γ

g2

∂|g1 g2 | . ∂ρ2

O2

π/2 + β − γ

β π/2 − β

∂|g1 g2 | γ

g2

∂Xo2

(b)

∂|g1 g2 | . ∂Xo2

SoCG 2018

XX:18

Improved Delaunay Routing

sin(π/2 + β − γ) sin(π/2 − β) = ∂Xo2 ∂|g1 g2 | sin(π/2 − β) ∂|g1 g2 | = ∂Xo2 sin(π/2 + β − γ) ∂|g1 g2 | cos β = ∂Xo2 cos(β − γ) In Fig. 11b we examine the geometry of

(12) ∂|g1 g2 | ∂ρ2 .

Applying the sine rule yields

sin(π/2) sin(π/2 − β + γ) = ∂ρ2 ∂|g1 g2 | ∂|g1 g2 | 1 = ∂ρ2 sin(π/2 + β − γ) ∂|g1 g2 | 1 = ∂ρ2 cos(β − γ)

(13)

. We have that

dXo2 dXo2

= 1, and from Equation 7 we have

dρ2 dXo2

= − cos α. Thus

d|g1 g2 | ∂|g1 g2 | dXo2 ∂|g1 g2 | dρ2 = + dXo2 ∂Xo2 dXo2 ∂ρ2 dXo2 cos β 1 = 1− cos α cos(β − γ) cos(β − γ) cos β − cos α = . cos(β − γ)

A.1.2

(14)

dβ dXo2

The total derivative of

dβ dXo2

is

dβ ∂β dXo2 ∂β dρ2 = + . dXo2 ∂Xo2 dXo2 ∂ρ2 dXo2 Fig. 13a shows the geometry of

∂β ∂XCi

. Applying the sine rule yields

(∂β)ρ2 ∂Xo2 = sin γ sin(π/2 + β − γ) ∂β sin γ = . ∂Xo2 ρ2 cos(β − γ) Fig. 13b shows the geometry of

(15) (16) ∂β ∂Xρ2

. Applying the sine rule yields

sin(π/2 − β + γ) sin(β − γ) = ∂Xρ2 −(∂β)ρ2 (∂β)ρ2 sin(β − γ) =− ∂Xρ2 sin(π/2 + β − γ) ∂β sin(β − γ) =− . ∂Xρ2 cos(β − γ)ρ2

(17)

Bonichon et al.

XX:19

O2

γ

∂Xo2

β π/2 − β (∂β)ρ 2

g2 π/2 + β − γ

(a) The change in βρ2 with Xo2 . Note when γ < β, the change in βρ2 with respect to Xo2 is positive.

O2

π/2 − β

γ β−γ

∂ρ2

β

g2

π/2 − β + γ

−(∂β)ρ2

(b) The change in βρ2 with ρ2 . Note when γ < β, the change in βρ2 with respect to ρ2 is negative.

SoCG 2018

XX:20

Improved Delaunay Routing

Thus the total derivative is: dβ ∂β dXo2 ∂β dρ2 = + dXo2 ∂Xo2 dXo2 ∂Xρ2 dXo2 sin(β − γ) sin γ − (− cos α) = cos(β − γ)ρ2 cos(β − γ)ρ2 sin γ + cos α sin(β − γ) = cos(β − γ)ρ2 The change in βρ2 with Xo2 is

sin γ + cos α sin(β − γ) d(βρ2 ) = ρ2 − β cos α dXo2 cos(β − γ)ρ2 sin γ + cos α sin(β − γ) − β cos α. = cos(β − γ) Thus d|Γ2 (a, g2 )| d(α + β)ρ2 = dXo2 dXo2 cos α sin(β − γ) + sin γ − β cos α cos(β − γ) cos α sin(β − γ) + sin γ = sin α − (α + β) cos α + . cos(β − γ)

= sin α − α cos α +

The change in (ρ1 − ρ2 ) with respect to Xo2 is

d(ρ1 − ρ2 ) dρ1 dρ2 = − dXo2 dXo2 dXo2 = cos α. Thus the change in Z(O1 , O2 ) with respect to the change in Xo2 is given by

dZ(O1 , O2 ) d(|Γ2 (a, g2 )| − |Γ1 (a, g1 )| − 2λ(ρ1 − ρ2 ) − Φ|g1 g2 |) = dXo2 dXo2 d(α + β)ρ2 d2λ(ρ1 − ρ2 ) dΦ|g1 g2 | = − − dXo2 dXo2 dXo2 cos α sin(β − γ) + sin γ = sin α − (α + β) cos α + cos(β − γ)   cos β − cos α − 2λ cos α − Φ cos(β − γ) cos α sin(β − γ) + sin γ = sin α − (α + β + 2λ) cos α + cos(β − γ)   cos β − cos α −Φ cos(β − γ)

(18) (19)

Bonichon et al.

A.2

XX:21

Analysing

dZ(O1 ,O2 ) dXo2

Define a function: τ (α, β, γ) =

dZ(O1 , O2 ) cos α sin(β − γ) + sin γ = sin α − (α + β + 2λ) cos α + dXo2 cos(β − γ)   cos β − cos α −Φ cos(β − γ)

We find values of α, β, and γ for which τ (α, β, γ) ≤ 0.

A.2.1

Maximizing τ (α, β, γ) With Respect to γ.

To find the value of γ that maximizes τ (α, β, γ), we find

dτ (α,β,γ) . dγ

dτ (α, β, γ) − cos α + cos γ cos(β − γ) − sin γ sin(β − γ) + Φ sin(β − γ)(cos β − cos α) = dγ cos2 (β − γ) cos β − cos α + Φ sin(β − γ)(cos β − cos α) = cos2 (β − γ) (1 + Φ sin(β − γ))(cos β − cos α) = cos2 (β − γ)

We have that

cos β−cos α cos2 (β−γ)

≥ 0. To maximize τ (α, β, γ), let γ ∗ be the value for which

dρ (1 + Φ sin(β − γ ∗ )) = 0 . Thus γ ∗ = β − arcsin(−1/Φ), and dγ = 0 when γ = γ ∗ , and is ∗ ∗ positive when γ < γ and negative when γ > γ , and thus τ (α, β, γ) ≤ τ (α, β, γ ∗ ). We can rewrite τ (α, β, γ ∗ ) as:

τ (α, β, γ ∗ ) = cos(β − γ ∗ )(sin α − (α + β + 2λ) cos α) + cos α sin(β − γ ∗ )

(20)



+ sin γ − Φ(cos β − cos α) p cos α = 1 − (1/Φ)2 (sin α − (α + β + 2λ) cos α) − Φ    −1 + sin β − arcsin − Φ(cos β − cos α) Φ p = 1 − (1/Φ)2 (sin α − (α + β + 2λ) cos α) p cos α cos β − + sin β 1 − (1/Φ)2 + Φ Φ − Φ(cos β − cos α) p = 1 − (1/Φ)2 (sin α + sin β − (α + β + 2λ) cos α)   1 (cos β − cos α). − Φ− Φ   p 1 Let A = 1 − (1/Φ)2 and let B = Φ − . Then we have Φ

(21)

(22)

(23)

τ (α, β, γ ∗ ) =A(sin α + sin β − (α + β + 2λ) cos α) − B(cos β − cos α).

(24)

SoCG 2018

XX:22

Improved Delaunay Routing

A.2.2

Maximizing τ (α, β, γ ∗ ) With Respect to β.

To see how τ (α, β, γ ∗ ) behaves as β changes, we calculate: dτ (α, β, γ ∗ ) = A(cos β − cos α) + B(sin β). dβ

(25)

A(cos β − cos α) is always positive, since ||β|| ≤ α. B(sin β) is the same sign as β. Thus dτ (α, β, γ ∗ ) τ (α, β, γ ∗ ) is convex in β, which means it is maximized at the lowest and highest dβ values of β, i.e., τ (α, β, γ ∗ ) ≤ max{τ (α, βmax , γ ∗ ), τ (α, βmin , γ ∗ )}. The maximum value of β is α. However, we will show that τ (α, sin α, γ ∗ ) ≤ 0, that is, we assume that βmax = sin α.

A.2.3

Maximizing τ (α, sin α, γ ∗ ) With Respect to α.

At this point τ (α, sin α, γ ∗ ) is a function of a single variable α. We find the derivative of dτ (α, sin α, γ ∗ ) τ (α, sin α, γ ∗ ) with respect to α. Let η = . Then dα η=

d A(sin α + sin(sin α) − (α + sin α + 2λ) cos α) dα − B(cos(sin α) − cos α)

(26)

=A(cos α + cos(sin α) cos α − (1 + cos α) cos α + (α + sin α + 2λ) sin α) + B(sin(sin α) cos α − sin α)

(27)

2

=A(cos(sin α) cos α − cos α + (α + sin α + 2λ) sin α) + B(sin(sin α) cos α − sin α).

(28)

Let η1 = cos α(A(cos(sin α)−cos α)) and let η2 = A(α+sin α+2λ) sin α+B sin(sin α) cos α− B sin α. Thus η = η1 + η2 . Note that η1 is positive when 0 ≤ α < π/2, 0 when α = π/2, and negative when π/2 < α ≤ π. We wish to show that η2 exhibits the same behaviour. To this end, we define the function: η20 = A(α + sin α + 2λ) sin α + B sin(1) sin α cos α − B sin α.

(29)

I Lemma 14. The function η20 is positive for 0 ≤ α < π/2, 0 when α = π/2, and negative when π/2 < α ≤ π. η0 Proof. Let η3 = 2 = A(α+sin α+2λ)+B sin(1) cos α−B. We take the second derivative sin α of η3 with respect to α. d2 η3 d2 = A(α + sin α + 2λ) + B sin(1) cos α − B dα2 dα2 d A(1 + cos α) − B sin(1) sin α) = dα = −A sin α − B sin(1) cos α.

(30) (31) (32)

At α = 0 we have A(α + sin α + 2λ) + B sin(1) cos α − B = 2Aλ + B(sin(1) − 1) ≈ 0.29 which is positive. At α = π we have A(π + 2λ) − B(sin(1) + 1) ≈ −2.22 which is negative.

Bonichon et al.

XX:23

d2 η3 This, together with the fact that is concave followed by convex implies that η3 intersects dα2 the x-axis in only one place. We know sin α is equal to 0 when α = 0 and when α = π, and sin α is positive for 0 < α < π. Since η20 = η3 sin α, η20 = 0 when α = 0 or π. Thus η20 intersects the x-axis at 0, π, and one other place. When α = π/2, we have η20 = A(α + sin α + 2λ) sin α + B sin(1) sin α cos α − B sin α

(33)

= A(π/2 + 1 + 2λ) − B

(34)

= 0.

(35) J

The function η20 is η2 with the term cos α sin(sin α) replaced by the term cos α sin(1) sin α. To relate η20 to η2 we show the following: I Lemma 15. cos α sin(1) sin α ≤ cos α sin(sin α) for 0 ≤ α ≤ π/2, and cos α sin(1) sin α ≥ cos α sin(sin α) for π/2 < α ≤ π. Proof. To prove the claim, let θ = sin α. Since cos α is positive for 0 ≤ α < π/2, and negative for π/2 < α ≤ π, proving Lemma 15 is equivalent to proving θ sin(1) ≤ sin θ, 0 ≤ θ ≤ 1. We note that θ sin(1) is a linear function with a slope of sin(1), while sin θ is a convex function in the given interval. They intersect at θ = 0 and θ = 1, and sin θ contains θ sin(1) from 0 ≤ θ ≤ 1. Thus θ sin(1) ≤ sin θ, 0 ≤ θ ≤ 1. J As a consequence we get the following corollaries: I Corollary 16. η20 ≤ η2 for 0 ≤ α < π/2 and η20 ≥ η2 for π/2 < α ≤ π, and η20 = η2 for α = π/2 which leads to I Corollary 17. The function η2 is positive for 0 ≤ α < π/2, 0 when α = π/2, and negative when π/2 < α ≤ π. Note that η1 = 0 when α = 0 and π/2, is positive when 0 < α < π/2, and negative for π/2 < α ≤ π. This implies that η = 0 when α = 0 and π/2, is positive for 0 < α < π/2, and negative for π/2 < α ≤ π. This implies that τ (α, sin α, γ ∗ ) is maximized when α = π/2. Therefore we have τ (α, βmax , γ ∗ ) = τ (α, sin α, γ ∗ ) ≤ τ (π/2, 1, γ ∗ ) =   p 1 1 − (1/Φ)2 (1 + sin(1)) − Φ − cos(1) Φ

(36) (37)

which is ≤ 0 for λ = 0.42 and Φ = 3.56.

A.3

Proving Z(O1 , O2 ) ≤ 0

Recall that dτ (α, β, γ ∗ ) = A(cos β − cos α) + B(sin β). dβ

(38)

SoCG 2018

XX:24

Improved Delaunay Routing

O2 L

o1 γ

a

o2 g2 = e2 b

Figure 14 The gray dots represent the path of e2 .

dτ (α, β, γ ∗ ) is positive when β is positive. Thus if β stays positive throughout dβ Transformation 11, we have that τ (α, β, γ) ≤ τ (α, βmax , γ ∗ ). In this next section we will outline and prove under what arrangements of O2 , O1 , and L does 0 ≤ β ≤ sin α throughout Transformation 11. Since τ (α, sin α, γ ∗ ) ≤ 0, Lemma 12 tells us that Z(O1 , O2 ) ≤ 0 in these cases. Note that

A.3.1

When β Stays Positive

The main theorem of this section is: I Theorem 9. If Yg1 ≤ 0, then Z(O1 , O2 ) ≤ 0. Observe that Yg1 ≤ 0 if and only if β does not become negative during Transformation 11. 00 Recall that Ci−1 and Ci0 are defined such that |A0 i (ai−1 , ti )| = |ai−1 b00i−1 | + |B 0 i (b00i−1 , ti )|. This implies that in the corresponding arrangement of O1 , O2 , and L, that β = sin α. If L is below o1 , we can assume it goes through o1 , since this increases Z(O1 , O2 ) by Lemma 13.

I Lemma 18. Before Transformation 11 if α ≤ π/2, and β ≤ sin α, then β ≤ sin α during Transformation 11. Proof. We show that e2 does not go above L during Transformation 11, which implies the lemma. Since L is assumed to be on or above o1 , the slope of L is negative. During Transformation 11, e2 moves downwards, since βρ2 is constant, but ρ2 is increasing and β is decreasing. Since e2 is below o2 , e2 moves left as o2 moves left. Thus the path of e2 (from left to right) maintains a positive slope. Since L has a negative slope, and e2 intersects L initially, this implies that e2 cannot go above L during Transformation 11. See Fig. 14. J Thus we have that Z(O1 , O2 ) ≤ 0 by Lemma 12 when α ≤ π/2 initially. It remains to show that Z(O1 , O2 ) ≤ 0 when α > π/2.

Bonichon et al.

XX:25

O1 L

o1

O2 a

O4 o2

o4 g1

g4 g2 = e2

b

t

Figure 15 Lemma 20

I Lemma 19. If α > π/2 and o1 is on or inside O2 before Transformation 11, then β ≤ sin α during Transformation 11. Proof. Note that β = sin α if and only if βρ2 = ρ2 sin α = |ab|/2. Since |ab|/2 stays constant during Transformation 11, and βρ2 = ρ2 sin α = |ab|/2 before Transformation 11, it is enough to show that βρ2 is decreasing during Transformation 11 while α > π/2. If α ≤ π/2 during the transformation, we apply Lemma 18. Let O3 be any intermediate circle through a and b during Transformation 11. Fixing g2 , if we increase γ, β on O3 will decrease. Thus the greatest value for β on O3 is when γ is minimized. Since we assume that L is on or above o1 , it is enough to show that βρ2 is increasing during Transformation 11 when L is on o1 . Recall that dβρ2 cos α sin(β − γ) + sin γ = − β cos α. dXo2 cos(β − γ)

(39)

Let W2 be the leftmost (westmost) point of O2 . Since α > π/2 and β > 0, −β cos α is positive. Also recall that −π/2 ≤ β − γ ≤ π/2, thus cos(β − γ) is positive. Therefore to dβρ2 show that is non-negative, it is sufficient to show that sin γ ≥ sin(β − γ), or γ ≥ β/2 dXo2 (since γ ≤ π/2). This is true when L is on or above W2 . Since we assume L is on or above o1 , and o1 is within O2 , then it must be that L is on or above W2 as required. J It remains to prove that when α > π/2 and o1 is outside of O2 , that Z(O1 , O2 ) ≤ 0. We look at two cases: 1. α > π/2, o1 is outside of O2 and ρ2 ≥ ρ1 . 2. α > π/2, o1 is outside of O2 and ρ2 < ρ1 . I Lemma 20. If α > π/2, o1 is outside of O2 and ρ2 ≥ ρ1 , then Z(O1 , O2 ) ≤ 0

SoCG 2018

XX:26

Improved Delaunay Routing

Proof. See Fig. 15. Let O4 be a circle through a and b with radius ρ4 = |ab|/2. First we show that f4 is between f1 and f2 on L. Let ui be the intersection of O2 and the line through g2 and o2 , where ui = 6 g2 . Lemma 7 tells us that f4 is between f1 and f2 on L if uk and ui are left of (a, b), which is true if ||Yg4 || ≤ Ya and ||Yg2 || ≤ Ya . Since L is on or above o1 , the slope of L is negative, and since Yg1 ≤ 0, ||Yg4 || < ||Yg2 ||. We have Ya = ρ2 sin α, and ||Yg2 || = ρ2 sin(sin α) ≤ ρ2 sin α = Ya when α ≤ π/2, and thus f4 is between f1 and f2 on L. We have Z(O1 , O2 ) = Z(O1 , O4 ) + Z(O4 , O2 ), and thus it is sufficient to prove that Z(O1 , O4 ) ≤ 0 and Z(O4 , O2 ) ≤ 0. If L is below o4 , then Z(O4 , O2 ) is increased when L goes through o4 , so we assume that L is on or above o4 . We apply Transformation 11 to O2 and Ck . Since Yg1 ≤ 0, and Yg2 ≤ 0, we have Yg4 ≤ 0, and thus β ≥ 0 during Transformation 11. Since o4 is inside O2 , Lemma 19 tells us that β ≤ sin α during Transformation 11. This combined with the fact that τ (α, β, γ) ≤ 0 when 0 ≤ β ≤ sin α implies that Z(O4 , O2 ) ≤ 0 by Lemma 12. We now apply Transformation 11 to O1 and Ck . Since α = π/2 before Transformation 11, Lemma 18 tells us that β ≤ sin α during Transformation 11 if β ≤ sin α initially. Proving β ≤ sin α initially is equivalent to proving that g4 is above e4 , or equivalently, that e4 is below L. Let O3 be a circle through a and b such that g3 is between g1 and g2 . Informally, O3 is any intermediate circle of Transformation 11. Fixing g2 , β is maximized on O3 when γ is minimized. Since we assume L is on or above o1 , we conclude γ is minimized when L intersects o1 . To minimize γ further we move o1 is as far left as it can go, i.e., to the point where ρ2 = ρ1 . Thus it is sufficient to show e4 is below L when ρ2 = ρ1 . Let a0 and b0 be the points on O2 that mirror a and b in the vertical line through o2 . Note that the line segment o1 b0 is below the line segment o1 g2 , which is part of L. Thus, showing that e4 is below o1 b0 shows that e4 is below L. We begin by showing that if e4 is below o1 b0 when ρ2 = ρ1 and o1 intersects O2 , then e4 is below o1 b0 for any o1 outside of O2 where ρ2 = ρ1 . Note that 1/3 of o1 b0 is to the left of ab, while 2/3 is to the right. Since Yo1 and Yb0 are constant, this implies that as o1 b0 grows it pivots at the intersection of itself and (a, b). Thus e4 being under o1 b0 when o1 and O2 intersect implies that it is always under o1 b0 . Thus it is enough to show that e4 is under o1 b0 when o1 intersects O2 . See Figs. 17 and 18. Assume that ρ2 = ρ1 = 1, which implies that ρ4 = sin(π/3), and |o1 o4 | = 1/2. Note that α on O4 is π/2, thus we need to prove that β ≤ sin α = 1. Let g40 be the intersection of o1 b0 and O4 . Since o1 b0 lies under L, and ∠(g40 o4 o2 ) > β on O4 , it is sufficient to show that ∠(g40 o4 o2 ) < 1. Let θ = ∠(o4 , g40 , o1 ), and note that ∠(b0 , o1 , o4 ) = π/6. We can find θ using the sine sin(π/6) rule. Thus sin θ = , and θ < 0.3. We see that ∠(g40 o4 o2 ) = θ + π/6 < 0.82 < 1, as 2 sin(π/3) required. J

I Lemma 21. If ρ2 < ρ1 , α > π/2 and o1 is outside of O2 , then Z(O1 , O2 ) ≤ 0. 6 O2 . Thus, Proof. Let O3 be the circle with radius ρ2 through a and b such that O3 = informally, O3 is the intermediate circle of Transformation 11 with radius ρ2 . See Fig. 19. We have Z(O1 , O2 ) = Z(O1 , O3 ) + Z(O3 , O2 ), and thus it is sufficient to prove that Z(O1 , O3 ) ≤ 0 and Z(O3 , O2 ) ≤ 0. We do this by applying Transformation 11 to O2 and O20 , and then to O2 and O1 .

Bonichon et al.

XX:27

o1

o1

o1

o2 o2

o2

b0

b

b0

b0

Figure 16 Line segment o1 b0 as we increase ρ2 and ρ1 .

π 6

+ θ < 1 = sin α

O4 o1

o4

1/2

o2

π 6

θ

sin

g40

π 3

 b0

b

e2

Figure 17 Computing an upper bound on β on O4 .

β
π/2 and ρ1 > ρ2 .

Since ρ3 = ρ2 , we have Z(O3 , O2 ) ≤ 0 by Lemma 20. Since we assume L is not below o1 , we know that L has a negative slope. Thus Yg3 > Yg2 , and which implies that β on O2 is less than β on O2 . Thus when applying Transformation 11 to O3 and O1 , we know that 0 ≤ β < sin α by Lemma 18, and thus Z(O1 , O2 ) ≤ 0 by Lemma 12. J Proof of Theorem 9. Implied by Lemmas 18, 19, 20, and 21.

A.3.2

J

β Becomes Negative

The main theorem of this section is as follows: I Theorem 10. If Yg1 > 0, then Z(O1 , O2 ) ≤ 0. Note that Yg1 > 0 if and only if β becomes negative during Transformation 11. We start with the following supporting lemmas: I Lemma 22. If Yg1 > 0 and α ≤ π/2, then Z(O1 , O2 ) ≤ 0. Proof. The first thing to note is that when α ≤ π/2, τ (α, βmin , γ ∗ ) = τ (α, −α, γ ∗ ) = A(sin α + sin(−α) − (α − α + 2λ) cos α) − B(cos(−α) − cos α) = −2λ cos α ≤0 Lemma 18 tells us that β ≤ sin α during Transformation 11, and thus τ (α, β, γ) ≤ max{τ (α, βmin , γ ∗ ), τ (α, βmax , γ ∗ )} ≤ max{τ (α, −α, γ ∗ ), τ (α, sin α, γ ∗ )} ≤0

Bonichon et al.

XX:29

L l2

W2

a

o2 o1

g1

b

E2

g2

Figure 20 Z(O1 , O2 ) ≤ 0 when β becomes negative.

and thus Υ(O1 , O2 ) ≤ 0 by Lemma 12.

J

It remains to show that Z(O1 , O2 ) ≤ 0 when Yg1 > 0 and α > π/2. I Lemma 23. If Yg1 > 0 and α > π/2, then Z(O1 , O2 ) ≤ 0. Proof. If o1 is left of (a, b), then let O4 be a circle through a and b with diameter |ab|. Otherwise let O4 = O1 . We will show that Z(O1 , O2 ) ≤ Z(O1 , O4 ) + Z(O4 , O2 ) ≤ 0. Since we know Z(O1 , O4 ) ≤ 0 by Lemma 22, we need only show that Z(O4 , O2 ) ≤ 0. Note that if Yg4 ≤ 0, then Z(O4 , O2 ) ≤ 0 by Theorem 9. Thus we assume that Yg4 > 0. To show Z(O4 , O2 ) ≤ 0 in this case we will show three things: 1. |Γ2 (a, g2 )| ≤ π/2|ag2 |. sin(1)+1 |ag2 |. 2. Φ|g4 g2 | + Γ4 (a, g4 ) ≥ Φsin(1)+1 3. 2λ(ρ4 − ρ2 ) ≥ λ|ag2 |. See Fig. 20. Assuming all that is true, we substitute then factor |ag2 | out of Z(O4 , O2 ) and get:

Z(O4 , O2 ) ≤π/2 + λ −

Φ sin(1) + 1 sin(1) + 1

(40)

≤2 − 2.17

(41)

≤0

(42)

Number 1 is true whenever |Γ2 (a, g2 )| = |ab| + |Γ2 (b, g2 )|, which is always the case initially. For Number 2, note that |Γ4 (a, g4 )| ≥ |ag4 |, and |ag4 | + |g4 g2 | ≥ |ag2 | by the triangle sin(1) inequality. Thus it remains to show that |g4 g2 | ≥ |ag2 | sin(1)+1 .

SoCG 2018

XX:30

Improved Delaunay Routing

Since we are only concerned with the cases where β can become negative, we only care about the cases where Yg4 > 0. Since as Yg4 increases, so does |g4 g2 |, for the smallest value of |g4 g2 |, we will assume that Yg4 = 0. sin(1) If ||Yg2 || ≥ ||Yl2 ||, then Yg4 = 0 implies that |g4 g2 | ≥ ρ2 ≥ |ag2 |/2 ≥ |ag2 | sin(1)+1 as required. So assume that ||Yg2 || < ||Yl2 ||. This implies that |l2 g2 | ≥ |ag2 |, since l2 g2 is above sin(1) o2 but still below ag2 , which means that it is sufficient to prove |g4 g2 | ≥ |l2 g2 | sin(1)+1 . Note that |g4 g2 |/|l2 g2 | = ||Yg2 ||/(||Yl2 || + ||Yg2 ||) when Yg4 = 0. For α ≥ π/2, e2 is y-monotone in the negative (downward) direction as Xo2 increases. Since our initial position is g2 = e2 , ||Yg2 || and thus ||Yg2 ||/(||Yl2 || + ||Yg2 ||) is minimized when Xo2 is minimized, which is when α = π/2, which means ||Yg2 ||/(||Yl2 || + ||Yg2 ||) ≥ sin(1)/(sin(π/2) + sin(1)) = sin(1)/(sin(1) + 1). Thus sin(1) sin(1) |g4 g2 | ≥ |l2 g2 | sin(1)+1 ≥ |ag2 | sin(1)+1 as required. Number 3 is true if 2(ρ2 − ρ4 ) ≤ |aE2 | ≤ |ag2 |.

2ρ2 ≤ |aE2 | + |aW2 |

(43)

≤ |aE2 | + |ab|

(44)

≤ |ag2 | + 2ρ4

(45)

as required. Line 43 is true by the triangle inequality, since |W2 E2 | = 2ρ2 . Line 44 is true because |aW2 | < |ab| when α ≤ π/2. Line 45 is true because |ab| ≤ 2ρ4 , since a and b both intersect O4 . J Proof of Theorem 10. Implied by Lemmas 22 and 23.

J