geometric routing: of theory and practice
TRANSCRIPT
F. Kuhn, R. Wattenhofer, Y. Zhang, A. Zollinger
Geometric Routing: Of Theory and Practice
[KWZ 02] Asymptotically Optimal Geometric Mobile Ad-Hoc Routing
[KWZ 03] Worst-Case Optimal and Average-Case Efficient Geometric Ad-Hoc Routing
PODC’03
[KK 00] GPSR: Greedy Perimeter Stateless Routing for Wireless Networks
Outline
• Context
• Model
• Algorithm
• Correctness
• Worst-case complexity
• Average-case efficiency
• Extensions
Context
Routing Paradigm
• If s and t are not con-nected, then report so
• Else, find a path p ...
s
t
p
Context
Routing Paradigm
• If s and t are not con-nected, then report so
• Else, find a path p ...
s
t
... s.t. |p|/|p∗| is minimal
p
p∗
Context
Routing Paradigm
• If s and t are not con-nected, then report so
• Else, find a path p ...
s
t
... s.t. |p|/|p∗| is minimal
p
p∗
• Minimize amount of mem-ory per node
Context
Geometric Routing
(x, y)
• 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
v
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
− can get stuck
?
+ very effective in practice
Context
Geometric Algorithms
Greedy Routing
+ can be applied w. any embedding
− can get stuck
?
Face Routing
+ certified
RH LH
LH
− requires a planar embedding
+ can be made asymptotically optimal
RHRH
RHLH
+ very effective in practiceAFR, OAFR [KWZ 02]
− 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 routingGOAFR [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
• fall back to greedy routing as soon as possible (>GPSR)
GOAFR [KWZ 03], GPSR [KK00]
GOAFR+ (this paper)• bound the searchable area (>GOAFR)
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 GUDG(V )
• each node has O(1) neighbors in GUDG(V )
• G is a subgraph of the Gabriel graph GGG(V )
• edges have various transmission costs⇒ increasing cost function c : ]0, 1]→ R+
cl(x) = 1 ∀x ← link distancecd(x) = x ∀x ← Euclidean distancecα(x) = xα ∀x (α ≥ 2) ← energy cost
Equivalence of metrics
Lemma Assume the degrees of the vertices of GUDG(V ) arebounded by an absolute constant k. Then, for any cost functionsc1(.) and c2(.), there exist four constants: α(k), β(k), α′(k), β′(k),such that for any cycle-free path p in GUDG(V ),
α(k) c1(p) + β(k) ≤ c2(p) ≤ α′(k) c1(p) + β′(k)
Model
Equivalence of metrics
Lemma Assume the degrees of the vertices of GUDG(V ) arebounded by an absolute constant k. Then, for any cost functionsc1(.) and c2(.), there exist four constants: α(k), β(k), α′(k), β′(k),such that for any cycle-free path p in GUDG(V ),
α(k) c1(p) + β(k) ≤ c2(p) ≤ α′(k) c1(p) + β′(k)
Proof. (with c1 = cd and c2 = cl)• Every edge of G has length at most 1⇒ cd(p) ≤ cl(p).• ∀v, #(V ∩D(v, 1)) ≤ k
⇒ starting from v, p cannot travel more thank +1 edges inside D(v, 1) without making a cycle⇒ cl(p) ≤ (k + 1)dcd(p)e ≤ (k + 1)(cd(p) + 1).
v
D(v, 1)
Model
Equivalence of metrics
Lemma Assume the degrees of the vertices of GUDG(V ) arebounded by an absolute constant k. Then, for any cost functionsc1(.) and c2(.), there exist four constants: α(k), β(k), α′(k), β′(k),such that for any cycle-free path p in GUDG(V ),
α(k) c1(p) + β(k) ≤ c2(p) ≤ α′(k) c1(p) + β′(k)
In the sequel, wlog, we use the link distance metric cl
Model
s t
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
s t
F
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
min.
up = 0q = 1
s t
F
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
up = 0q = 2
s t
F
C
hits C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
up = 0q = 2
s t
F
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
up = 0q = 2
s t
F
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
up = 0q = 3
s t
F
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
hits C
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t
v
up = 0q = 3
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv
C
up = 0q = 4
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv
C
up = 0q = 5
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv
C
up = 0q = 6
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv
C
up = 1q = 6
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
w
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv
C
2c. p > σ q :→ restart 1. from node
closest to t
up = 2q = 6
s t
F
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
w
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv2c. p > σ q :→ restart 1. from node
closest to t
up = 2q = 6
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
w
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv2c. p > σ q :→ restart 1. from node
closest to t
C
up = 2q = 6
s t
F
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
w
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv2c. p > σ q :→ restart 1. from node
closest to t
up = 2q = 6
s t
F
C
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
w
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv2c. p > σ q :→ restart 1. from node
closest to t
up = 2q = 6
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
w
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv2c. p > σ q :→ restart 1. from node
closest to tC
up = 2q = 6
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
w
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv2c. p > σ q :→ restart 1. from node
closest to tC
up = 2q = 6
s t
F
GOAFR+ Algorithm
INPUT: G, s, t
INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))
1. Greedy Routing Mode- choose neighbor closest to t- reduce C’s radius wheneverpossible (rC := rC/ρ)
2. Face Routing Mode• Maintain:
p = #nodes closer than uq = #other nodes
• Follow side of F (LH) untilone of the following occurs:
2a. packet hits C once:→ go backwards
w
2b. packet hits C twice:→ if p > 0, then restart 1.
from node closest to t→ else, set rC := ρ rc and
continue 2. from v
vv2c. p > σ q :→ restart 1. from node
closest to t
up = 2q = 6
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 discon-nection to s (w. GOAFR+)
Correctness
Definition A round of the algorithm is either:
• a greedy step (1.)
• a face routing phase terminated by early fallback (2b. or 2c.)
• a face routing phase terminated after complete exploration ofthe boundary of the current face (2d.)
Correctness
Lemma (monotonicity) Consider a round of the algorithm. Ift and the current node u are connected in G, then the packet getscloser to t during the round.
Correctness
Lemma (monotonicity) Consider a round of the algorithm. Ift and the current node u are connected in G, then the packet getscloser 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 tothe previously visited node of ∂F closest to t
Correctness
Lemma (monotonicity) Consider a round of the algorithm. Ift and the current node u are connected in G, then the packet getscloser 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 tothe previously visited node of ∂F closest to t
• 2d.: since u and t are connected,∂F contains a vertex closer thanu to t. Indeed, if not, an edgee crosses the circle C(t, d(t, u))between t and u.→ e cannot be a Gabriel edge.
t
eu
Upper bound
Theorem The cost of routing a packet from s to t with GOAFR+is O
(cl(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
(cl(p
∗)2), where p∗ is an optimal path from s to t.
Sketch of proof. Let Ci = C(t, rmax ρ−i), where rmax is the radiusof the biggest circle C used during the course of the algorithm.
(1) rmax ≤ ρ cl(p∗) (radius update policy)
Worst-case complexity
C
p∗
ts
r
p∗ * C ⇒ cd(p∗) ≥ r
⇒ cl(p∗) ≥ r
(GUDG)
Upper bound
Theorem The cost of routing a packet from s to t with GOAFR+is O
(cl(p
∗)2), where p∗ is an optimal path from s to t.
Sketch of proof. Let Ci = C(t, rmax ρ−i), where rmax is the radiusof the biggest circle C used during the course of the algorithm.
(1) rmax ≤ ρ cl(p∗) (radius update policy)
Worst-case complexity
(2) inside Ci, every edge of G is visited O(1) times by GOAFR+(cf. monotonicity lemma).⇒ inside Ci, the total cost of GOAFR+ is O(|Ei|) = O(r2
Ci)
Upper bound
Theorem The cost of routing a packet from s to t with GOAFR+is O
(cl(p
∗)2), where p∗ is an optimal path from s to t.
Sketch of proof. Let Ci = C(t, rmax ρ−i), where rmax is the radiusof the biggest circle C used during the course of the algorithm.
(1) rmax ≤ ρ cl(p∗) (radius update policy)
Worst-case complexity
(2) inside Ci, every edge of G is visited O(1) times by GOAFR+(cf. monotonicity lemma).⇒ inside Ci, the total cost of GOAFR+ is O(|Ei|) = O(r2
Ci)
(3) sum up over all i’s:∑i
O(r2Ci
)= r2
max O
(∑i
ρ−2i
)= O
(r2max)
= O(cl(p
∗)2)
Worst-case complexity
Lower bound
C
• Given n, distribute 2nnodes evenly along C⇒ r ≈ n/π
1
[KWZ 02]
Worst-case complexity
Lower bound
d r2e
C
> 1
• radial chains stop at dr/2e⇒ connected only by C⇒ ≈ n/2π nodes per radius
• Given n, distribute 2nnodes evenly along C⇒ r ≈ n/π
1
1
[KWZ 02]
Worst-case complexity
Lower bound
C
• radial chains stop at dr/2e⇒ connected only by C⇒ ≈ n/2π nodes per radius
• Given n, distribute 2nnodes evenly along C⇒ r ≈ n/π
t
s
[KWZ 02]
Worst-case complexity
Lower bound
C
• s, t disconnected⇒ any algo. A withno routing tableshas to explore thewhole graph beforereporting a graphdisconnection.
• radial chains stop at dr/2e⇒ connected only by C⇒ ≈ n/2π nodes per radius
• Given n, distribute 2nnodes evenly along C⇒ r ≈ n/π
t
s
[KWZ 02]
Worst-case complexity
Lower bound
w
C
• s, t disconnected⇒ any algo. A withno routing tableshas to explore thewhole graph beforereporting a graphdisconnection.
• radial chains stop at dr/2e⇒ connected only by C⇒ ≈ n/2π nodes per radius
• if A is determinis-tic, then its execu-tion is the same onthis new graph⇒ Ω(n2) steps
• Given n, distribute 2nnodes evenly along C⇒ r ≈ n/π
t
s
[KWZ 02]
Average case efficiency
• randomly and uniformlygenerated nodes on a 20 ×20 field
• unit disk graph
• intersection with Gabrielgraph
• randomly chosen sourceand destination
ExtensionsDropping the O(1)-neighbors hypothesis
• if a node v knows all its neighbors, thenthe data stored at v is no longer O(1)
• Without the O(1)-neighbors hypothesis,GOAFR+ is still certified, but no longerguaranteed to be worst-case optimal.
ExtensionsDropping the O(1)-neighbors hypothesis
Initial construction:
• routing backbone graph GBG ⊂ G:- GBG is a bounded-degree UDG- ∀v ∈ G, ∃w ∈ GBG s.t. [v, w] ∈ E
ExtensionsDropping the O(1)-neighbors hypothesis
Initial construction:
• routing backbone graph GBG ⊂ G:- GBG is a bounded-degree UDG- ∀v ∈ G, ∃w ∈ GBG s.t. [v, w] ∈ E
• clustered backbone graph GCBG
ExtensionsDropping the O(1)-neighbors hypothesis
Initial construction:
• routing backbone graph GBG ⊂ G:- GBG is a bounded-degree UDG- ∀v ∈ G, ∃w ∈ GBG s.t. [v, w] ∈ E
• clustered backbone graph GCBG
Routing:
(1) reach GBG from s, using GCBG
(2) apply GOAFR+ on GBG
(3) reach t from GBG, using GCBG
ExtensionsDropping the O(1)-neighbors hypothesis
Definition A cost function c(.) is linearly bounded if there existssome constant m > 0 such that ∀x ∈]0, 1], c(x) ≥ m x. A costfunction that is not linearly bounded is said super-linear.
0 1
1
cd(.)
cl(.)
cα(.)
ExtensionsDropping the O(1)-neighbors hypothesis
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 canfind a path p s.t. c(p) = O
(c(p∗)2
)for any pair of vertices of
any UDG.
Definition A cost function c(.) is linearly bounded if there existssome constant m > 0 such that ∀x ∈]0, 1], c(x) ≥ m x. A costfunction that is not linearly bounded is said super-linear.
Conclusion
Contributions:
• Yet another geometric routing algorithm (combines existingtechniques).
• Extension of geometric routing to UDGs with unbounded-degreevertices.
Open questions:
• Is the UDG hypothesis relevant in practice?
• What is the pracicality of the general cost model linearly boundedvs. super-linear?
• Can one get rid of the planar embedding?