Geometric Routing: Of Theory and Practice

61
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

Transcript of Geometric Routing: Of Theory and Practice

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

s

t

?

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

GOAFR+ Algorithm

INPUT: G, s, t

s t

C

GOAFR+ Algorithm

INPUT: G, s, t

INIT:ρ ≥ ρ0 > 1σ > 0C(t, ρ0 d(s, t))

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

Average case efficiency

• randomly and uniformlygenerated nodes on a 20 ×20 field

• unit disk graph

• intersection with Gabrielgraph

• randomly chosen sourceand destination

Average case efficiency

GPSRGOAFR

GOAFR+GOAFRFC

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

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?