Geometric Routing: Of Theory and Practice PODC 03 F. Kuhn, R. Wattenhofer, Y. Zhang, A. Zollinger [KWZ 02] [KWZ 03] [KK 00] Asymptotically Optimal Geometric Mobile Ad-Hoc Routing Worst-Case Optimal and Average-Case Efficient Geometric Ad-Hoc Routing GPSR: Greedy Perimeter Stateless Routing for Wireless Networks
Outline Context Model Algorithm Correctness Worst-case complexity Average-case efficiency Extensions
Context Routing Paradigm s If s and t are not connected, then report so? t
Context Routing Paradigm s If s and t are not connected, then report so Else, find a path p... p t
Context Routing Paradigm s If s and t are not connected, then report so p p Else, find a path p...... s.t. p / p is minimal t
Context Routing Paradigm s If s and t are not connected, then report so p p Else, find a path p...... s.t. p / p is minimal t Minimize amount of memory per node
(x, y) v Context Geometric Routing Each node v stores its own and its neighbors positions O(deg(v)) (= O(1) if deg(v) bounded) Each packet contains: the destination s position O(1) additional control info (e.g. estimated dist. to dest.) + No system state, no routing tables Requires an embedding of the nodes
Context Geometric Algorithms Greedy Routing + can be applied w. any embedding + very effective in practice
Context Geometric Algorithms? Greedy Routing + can be applied w. any embedding + very effective in practice can get stuck
Context Geometric Algorithms RH LH? RH LH LH RH RH Greedy Routing + can be applied w. any embedding + very effective in practice can get stuck Face Routing + certified + can be made asymptotically optimal AFR, OAFR [KWZ 02] requires a planar embedding not quite effective in practice
Context Geometric Algorithms RH LH? Solution: combine both techniques: Start by greedy routing When greedy routing gets stuck, toggle face routing GOAFR [KWZ 03], GPSR [KK00]
Context Geometric Algorithms RH LH? Solution: combine both techniques: Start by greedy routing When greedy routing gets stuck, toggle face routing GOAFR [KWZ 03], GPSR [KK00] fall back to greedy routing as soon as possible (>GPSR) bound the searchable area (>GOAFR) GOAFR+ (this paper)
Model input graph G = (V, E) is a PSLG nodes do not move nodes have same transmission range (say 1) G is a subgraph of the unit-disk graph G UDG (V ) each node has O(1) neighbors in G UDG (V ) G is a subgraph of the Gabriel graph G GG (V ) edges have various transmission costs increasing cost function c : ]0, 1] R + c l (x) = 1 x link distance c d (x) = x x Euclidean distance c α (x) = x α x (α 2) energy cost
Model Equivalence of metrics Lemma Assume the degrees of the vertices of G UDG (V ) are bounded by an absolute constant k. Then, for any cost functions c 1 (.) and c 2 (.), there exist four constants: α(k), β(k), α (k), β (k), such that for any cycle-free path p in G UDG (V ), α(k) c 1 (p) + β(k) c 2 (p) α (k) c 1 (p) + β (k)
Model Equivalence of metrics Lemma Assume the degrees of the vertices of G UDG (V ) are bounded by an absolute constant k. Then, for any cost functions c 1 (.) and c 2 (.), there exist four constants: α(k), β(k), α (k), β (k), such that for any cycle-free path p in G UDG (V ), α(k) c 1 (p) + β(k) c 2 (p) α (k) c 1 (p) + β (k) Proof. (with c 1 = c d and c 2 = c l ) Every edge of G has length at most 1 c d (p) c l (p). v, #(V D(v, 1)) k starting from v, p cannot travel more than k + 1 edges inside D(v, 1) without making a cycle c l (p) (k + 1) c d (p) (k + 1)(c d (p) + 1). D(v, 1) v
Model Equivalence of metrics Lemma Assume the degrees of the vertices of G UDG (V ) are bounded by an absolute constant k. Then, for any cost functions c 1 (.) and c 2 (.), there exist four constants: α(k), β(k), α (k), β (k), such that for any cycle-free path p in G UDG (V ), α(k) c 1 (p) + β(k) c 2 (p) α (k) c 1 (p) + β (k) In the sequel, wlog, we use the link distance metric c l
GOAFR+ Algorithm INPUT: G, s, t s t
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) s t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) s t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: s u min. F p = 0 q = 1 t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: s u F p = 0 q = 2 t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards hits C s u F p = 0 q = 2 t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s u F p = 0 q = 2 t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s u F p = 0 q = 3 t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 0 q = 3 t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t hits C C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 0 q = 4 t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 0 q = 5 t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 0 q = 6 t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 1 q = 6 t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 2 q = 6 w t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v 2c. p > σ q : restart 1. from node closest to t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 2 q = 6 w t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v 2c. p > σ q : restart 1. from node closest to t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 2 q = 6 w t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v 2c. p > σ q : restart 1. from node closest to t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 2 q = 6 w t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v 2c. p > σ q : restart 1. from node closest to t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 2 q = 6 w t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v 2c. p > σ q : restart 1. from node closest to t C
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 2 q = 6 w C t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v 2c. p > σ q : restart 1. from node closest to t
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 2 q = 6 w C t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v 2c. p > σ q : restart 1. from node closest to t
GOAFR+ Algorithm INPUT: G, s, t INIT: ρ ρ 0 > 1 σ > 0 C(t, ρ 0 d(s, t)) 1. Greedy Routing Mode - choose neighbor closest to t - reduce C s radius whenever possible (r C := r C/ρ) 2. Face Routing Mode Maintain: p = #{nodes closer than u} q = #{other nodes} Follow side of F (LH) until one of the following occurs: 2a. packet hits C once: go backwards s v u F p = 2 q = 6 w t 2b. packet hits C twice: if p > 0, then restart 1. from node closest to t else, set r C := ρ r c and continue 2. from v 2c. p > σ q : restart 1. from node closest to t 2d. F is entirely explored: let n F be closest to t: if n closer than u to t, then restart 1. from n else report graph disconnection to s (w. GOAFR+)
Definition a greedy step (1.) Correctness A round of the algorithm is either: a face routing phase terminated by early fallback (2b. or 2c.) a face routing phase terminated after complete exploration of the boundary of the current face (2d.)
Correctness Lemma (monotonicity) Consider a round of the algorithm. If t and the current node u are connected in G, then the packet gets closer to t during the round.
Correctness Lemma (monotonicity) Consider a round of the algorithm. If t and the current node u are connected in G, then the packet gets closer to t during the round. Proof. greedy step: the packet goes to a neighbor of u closer to t 2b. or 2c.: when fallback occurs, p 1 and the packet is sent to the previously visited node of F closest to t
Correctness Lemma (monotonicity) Consider a round of the algorithm. If t and the current node u are connected in G, then the packet gets closer to t during the round. Proof. greedy step: the packet goes to a neighbor of u closer to t 2b. or 2c.: when fallback occurs, p 1 and the packet is sent to the previously visited node of F closest to t 2d.: since u and t are connected, F contains a vertex closer than u to t. Indeed, if not, an edge e crosses the circle C(t, d(t, u)) between t and u. e cannot be a Gabriel edge. u e t
Worst-case complexity Upper bound Theorem The cost of routing a packet from s to t with GOAFR+ is O ( c l (p ) 2), where p is an optimal path from s to t.
Worst-case complexity Upper bound Theorem The cost of routing a packet from s to t with GOAFR+ is O ( c l (p ) 2), where p is an optimal path from s to t. Sketch of proof. Let C i = C(t, r max ρ i ), where r max is the radius of the biggest circle C used during the course of the algorithm. (1) r max ρ c l (p ) (radius update policy) p s t p C c d (p ) r c l (p ) r (G UDG ) r C
Worst-case complexity Upper bound Theorem The cost of routing a packet from s to t with GOAFR+ is O ( c l (p ) 2), where p is an optimal path from s to t. Sketch of proof. Let C i = C(t, r max ρ i ), where r max is the radius of the biggest circle C used during the course of the algorithm. (1) r max ρ c l (p ) (radius update policy) (2) inside C i, every edge of G is visited O(1) times by GOAFR+ (cf. monotonicity lemma). inside C i, the total cost of GOAFR+ is O( E i ) = O(rC 2 i )
Worst-case complexity Upper bound Theorem The cost of routing a packet from s to t with GOAFR+ is O ( c l (p ) 2), where p is an optimal path from s to t. Sketch of proof. Let C i = C(t, r max ρ i ), where r max is the radius of the biggest circle C used during the course of the algorithm. (1) r max ρ c l (p ) (radius update policy) (2) inside C i, every edge of G is visited O(1) times by GOAFR+ (cf. monotonicity lemma). inside C i, the total cost of GOAFR+ is O( E i ) = O(rC 2 i ) (3) sum up over all i s: O ( ( ) ) rc 2 i = r 2 max O ρ 2i = O ( ) ( rmax 2 = O cl (p ) 2) i i
Worst-case complexity Given n, distribute 2n nodes evenly along C r n /π Lower bound [KWZ 02] 1 C
Worst-case complexity Given n, distribute 2n nodes evenly along C r n /π radial chains stop at r /2 connected only by C n /2π nodes per radius Lower bound [KWZ 02] > 1 r 2 1 1 C
Worst-case complexity Given n, distribute 2n nodes evenly along C r n /π radial chains stop at r /2 connected only by C n /2π nodes per radius Lower bound [KWZ 02] s t C
Given n, distribute 2n nodes evenly along C r n /π radial chains stop at r /2 connected only by C n /2π nodes per radius s Worst-case complexity Lower bound t [KWZ 02] s, t disconnected any algo. A with no routing tables has to explore the whole graph before reporting a graph disconnection. C
Worst-case complexity Given n, distribute 2n nodes evenly along C r n /π radial chains stop at r /2 connected only by C n /2π nodes per radius Lower bound [KWZ 02] w s, t disconnected any algo. A with no routing tables has to explore the whole graph before reporting a graph disconnection. s t if A is deterministic, then its execution is the same on this new graph Ω(n 2 ) steps C
Average case efficiency randomly and uniformly generated nodes on a 20 20 field unit disk graph
Average case efficiency randomly and uniformly generated nodes on a 20 20 field unit disk graph intersection with Gabriel graph randomly chosen source and destination
Average case efficiency GPSR GOAFR GOAFR FC GOAFR+
Extensions Dropping the O(1)-neighbors hypothesis Without the O(1)-neighbors hypothesis, GOAFR+ is still certified, but no longer guaranteed to be worst-case optimal. if a node v knows all its neighbors, then the data stored at v is no longer O(1)
Extensions Dropping the O(1)-neighbors hypothesis
Extensions Dropping the O(1)-neighbors hypothesis Initial construction: routing backbone graph G BG G: - G BG is a bounded-degree UDG - v G, w G BG s.t. [v, w] E
Extensions Dropping the O(1)-neighbors hypothesis Initial construction: routing backbone graph G BG G: - G BG is a bounded-degree UDG - v G, w G BG s.t. [v, w] E clustered backbone graph G CBG
Extensions Dropping the O(1)-neighbors hypothesis Initial construction: routing backbone graph G BG G: - G BG is a bounded-degree UDG - v G, w G BG s.t. [v, w] E clustered backbone graph G CBG Routing: (1) reach G BG from s, using G CBG (2) apply GOAFR+ on G BG (3) reach t from G BG, using G CBG
Extensions Dropping the O(1)-neighbors hypothesis Definition A cost function c(.) is linearly bounded if there exists some constant m > 0 such that x ]0, 1], c(x) m x. A cost function that is not linearly bounded is said super-linear. 1 c l (.) c d (.) c α (.) 0 1
Extensions Dropping the O(1)-neighbors hypothesis Definition A cost function c(.) is linearly bounded if there exists some constant m > 0 such that x ]0, 1], c(x) m x. A cost function that is not linearly bounded is said super-linear. Theorem if c(.) is linearly bounded, then for any UDG G, for any s, t V, the routing algorithm finds a path p from s to t, with c(p) = O ( c(p ) 2). if c(.) is super-linear, then no geometric routing algorithm can find a path p s.t. c(p) = O ( c(p ) 2) for any pair of vertices of any UDG.
Conclusion Contributions: Yet another geometric routing algorithm (combines existing techniques). Extension of geometric routing to UDGs with unbounded-degree vertices. Open questions: Is the UDG hypothesis relevant in practice? What is the pracicality of the general cost model linearly bounded vs. super-linear? Can one get rid of the planar embedding?