- 97 Views
- Uploaded on
- Presentation posted in: General

CSCE 411 Design and Analysis of Algorithms

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

CSCE 411Design and Analysis of Algorithms

Set 13: Link Reversal Routing

Prof. Jennifer Welch

Spring 2012

CSCE 411, Spring 2012: Set 13

- Undirected connected graph represents communication topology of a distributed system
- computing nodes = graph vertices
- message channels = graph edges

- Unique destination node in the system
- Assign virtual directions to the graph edges (links) s.t.
- if nodes forward messages over the links, they reach the destination

- Directed version of the graph must
- be acyclic
- have destination as only sink
Thus every node has a path to destination.

CSCE 411, Spring 2012: Set 13

D

3

1

2

4

5

6

4 wants to

send a msg

to D

CSCE 411, Spring 2012: Set 13

- What happens if some edges go away?
- Might need to change the virtual directions on some remaining edges (reverse some links)

- More generally, starting with an arbitrary directed graph, each vertex should decide independently which of its incident links to reverse

CSCE 411, Spring 2012: Set 13

D

3

1

2

4

5

6

CSCE 411, Spring 2012: Set 13

- A vertex with no outgoing links is a sink.
- The property of being a sink can be detected locally.
- A sink can then reverse some incident links
- Basis of several algorithms…

sink

CSCE 411, Spring 2012: Set 13

- Input: directed graph G with destination vertex D
- Let S(G) be set of sinks in G other than D
- while S(G) is nonempty do
- reverse every link incident on a vertex in S(G)
- G now refers to resulting directed graph

CSCE 411, Spring 2012: Set 13

D

D

D

3

1

2

2

1

3

3

2

1

4

5

4

6

5

6

5

4

6

D

D

D

3

2

1

3

2

1

1

2

3

4

5

6

4

5

6

4

5

6

CSCE 411, Spring 2012: Set 13

- Suppose it does not.
- Let W be vertices that take infinitely many steps.
- Let X be vertices that take finitely many steps; includes D.
- Consider neighboring vertices w in W, x in X.
- Consider first step by w after last step by x: link is w g x and stays that way forever.
- Then w cannot take any more steps, contradiction.

CSCE 411, Spring 2012: Set 13

- Assume input graph is acyclic.
- Acyclicity is preserved at each iteration:
- Any new cycle introduced must include a vertex that just took a step, but such a vertex is now a source (has no incoming links)

- When FR terminates, no vertex, except possibly D, is a sink.
- A DAG must have at least one sink:
- if no sink, then a cycle can be constructed

- Thus output graph is acyclic and D is the unique sink.

CSCE 411, Spring 2012: Set 13

- Can implement FR by having each vertex v keep an ordered pair (c,v), the height (or vertex label) of vertex v
- c is an integer counter that can be incremented
- v is the id of vertex v

- View link between v and u as being directed from vertex with larger height to vertex with smaller height (compare pairs lexicographically)
- If v is a sink then v sets c to be 1 larger than maximum counter of all v’s neighbors

CSCE 411, Spring 2012: Set 13

(1,0)

0

3

1

2

(0,1)

(0,2)

(2,3)

(2,1)

CSCE 411, Spring 2012: Set 13

(1,0)

0

3

1

2

(0,1)

(0,2)

(2,3)

(2,1)

(3,2)

CSCE 411, Spring 2012: Set 13

(1,0)

0

3

1

2

(0,1)

(0,2)

(2,3)

(2,1)

(3,2)

CSCE 411, Spring 2012: Set 13

- Try to avoid repeated reversals of the same link.
- Vertices keep track of which incident links have been reversed recently.
- Link (u,v) is reversed by v iff the link has not been reversed by u since the last iteration in which v took a step.

CSCE 411, Spring 2012: Set 13

D

D

D

3

1

2

2

1

3

3

2

1

4

5

4

6

5

6

5

4

6

D

D

D

3

2

1

3

2

1

1

2

3

4

5

6

4

5

6

4

5

6

CSCE 411, Spring 2012: Set 13

- Termination can be proved similarly as for FR: difference is that it might take two steps by w after last step by x until link is w g x .
- Preservation of acyclicity is more involved, deferred to later.

CSCE 411, Spring 2012: Set 13

- Can implement PR by having each vertex v keep an ordered triple (a,b,v), the height (or vertex label) of vertex v
- a and b are integer counters
- v is the id of vertex v

- View link between v and u as being directed from vertex with larger height to vertex with smaller height (compare triples lexicographically)
- If v is a sink then v
- sets a to be 1 greater than smallest a of all its neighbors
- sets b to be 1 less than smallest b of all its neighbors with new value of a (if none, then leave b alone)

CSCE 411, Spring 2012: Set 13

(0,1,0)

0

3

1

2

(0,0,1)

(0,0,2)

(0,2,3)

(1,0,1)

CSCE 411, Spring 2012: Set 13

(0,1,0)

0

3

1

2

(0,0,1)

(0,0,2)

(0,2,3)

(1,0,1)

(1,-1,2)

CSCE 411, Spring 2012: Set 13

(0,1,0)

0

3

1

2

(0,0,1)

(0,0,2)

(0,2,3)

(1,0,1)

(1,-1,2)

CSCE 411, Spring 2012: Set 13

- Generalization of Pair and Triple algorithms
- Assign a label to each vertex s.t.
- labels are from a totally ordered, countably infinite set
- new label for a sink depends only on old labels for the sink and its neighbors
- sequence of labels taken on by a vertex increases without bound

- Can prove termination and acyclicity preservation, and thus correctness.

CSCE 411, Spring 2012: Set 13

- Alternate way to implement and generalize FR and PR
- Instead of unbounded vertex labels, apply binary link labels to input DAG
- link directions are independent of labels (in contrast to algorithms using vertex labels)

- Algorithm for a sink:
- if at least one incident link is labeled 0, then reverse all incident links labeled 0 and flip labels on all incident links
- if no incident link is labeled 0, then reverse all incident links but change no labels

CSCE 411, Spring 2012: Set 13

0

1

0

3

1

2

1

0

CSCE 411, Spring 2012: Set 13

0

1

0

3

1

2

1

0

CSCE 411, Spring 2012: Set 13

0

1

0

3

1

2

0

1

CSCE 411, Spring 2012: Set 13

- Termination can be proved very similarly to termination for PR.
- What about acyclicity preservation? Depends on initial labeling:

3

3

1

1

0

0

1

0

2

2

1

1

0

0

0

0

CSCE 411, Spring 2012: Set 13

- All labels are the same
- all 1’s => Full Reversal
- all 0’s => Partial Reversal

- Every vertex has all incoming links labeled the same (“uniform” labeling)
- Both of the above are special cases of a more general condition that is necessary and sufficient for preserving acyclicity

CSCE 411, Spring 2012: Set 13

- Busch et al. (2003,2005) initiated study of the performance of link reversal routing
- Work complexity of a vertex: number of steps taken by the vertex
- Global work complexity: sum of work complexity of all vertices
- Time complexity: number of iterations, assuming all sinks take a step in each iteration (“greedy” execution)

CSCE 411, Spring 2012: Set 13

- bad vertex: has no (directed) path to destination
- Pair algorithm (Full Reversal):
- for every input, global work complexity is O(n2), where n is number of initial bad vertices
- for every n, there exists an input with n bad vertices with global work complexity Ω(n2)

- Triple algorithm (Partial Reversal): same as Pair algorithm

CSCE 411, Spring 2012: Set 13

- A more fine-grained question: Given any input graph and any vertex in that graph, exactly how many steps does that vertex take?
- Busch et al. answered this question for FR.
- Charron-Bost et al. answered this question for BLL (as long as labeling satisfies Acyclicity Condition): includes FR and PR.

CSCE 411, Spring 2012: Set 13

- Let X = <v1, v2, …, vk> be a chain in the labeled input DAG (series of vertices s.t. either (vi,vi+1) or (vi+1,vi) is a link).
- r: number of links that are labeled 1 and rightway ((vi,vi+1) is a link)
- s: number of occurrences of vertices s.t. the two adjacent links are incoming and labeled 0
- Res: 1 if last link in X is labeled 0 and rightway,
else 0

CSCE 411, Spring 2012: Set 13

For chain <D,7,6,5>: r = 1, s = 0, Res = 1

For chain <D,1,2,3,4,5>: r = 2, s = 1, Res = 0

1

0

1

1

2

3

8

0

0

D

4

1

1

1

0

7

6

5

CSCE 411, Spring 2012: Set 13

- Theorem: Consider any vertex v.
Let ωmin be the minimum, over all chains from D to v, of 2(r+s)+Res.

Number of steps taken by v is

- (ωmin+1)/2 if initially v is a sink with all incoming links labeled 0
- ωmin/2 if initially v has all incoming links (if any) labeled 1
- ωmin otherwise

CSCE 411, Spring 2012: Set 13

- Corollary: For FR (all 1’s labeling), work complexity of vertex v is minimum, over all chains from D to v, of r, number of links in the chain that are rightway (directed away from D).
- Worst-case graph for global work complexity:
D 1 2 … n

- vertex i has work complexity i
- global work complexity then is Θ(n2)

CSCE 411, Spring 2012: Set 13

- Corollary: for PR (all 0’s labeling), work complexity of vertex v is
- min, over all D-to-v chains, of s + Res if v is a sink or a source
- min, over all D-to-v chains, of 2s + Res if v is neither a sink nor a source

- Worst-case graph for global work complexity:
D 1 2 3 … n

- work complexity of vertex i is Θ(i)
- global work complexity is Θ(n2)

CSCE 411, Spring 2012: Set 13

- Looking at worst-case global work complexity shows no difference – both are quadratic in number of vertices
- Can use game theory to show some meaningful differences (Charron-Bost et al. ALGOSENSORS 2009):
- global work complexity of FR can be larger than optimal (w.r.t. all uniform labelings) by a factor of Θ(n)
- global work complexity of PR is never more than twice the optimal

- Another advantage of PR over FR:
- In PR, if k links are removed, each vertex takes at most 2k steps
- In FR, if 1 link is removed, a vertex might have to take n-1 steps

CSCE 411, Spring 2012: Set 13

- Time complexity is number of iterations in greedy execution
- Busch et al. observed that time complexity cannot exceed global work complexity
- Thus O(n2) iterations for both FR and PR

- Busch et al. also showed graphs on which FR and PR require Ω(n2) iterations
- Charron-Bost et al. (2011) derived an exact formula for the last iteration in which any vertex takes a step in any graph for BLL…

CSCE 411, Spring 2012: Set 13

- Theorem: For every (bad) vertex v, termination time of v is
1 + max{len(X): X is chain ending at v with r = σv – 1}

where σv is the work complexity of v

- Worst-case graph for global time complexity:

n

n-1

D

1

2

n/2

n/2+3

vertex n/2 has work complexity n/2;

consider chain that goes around the loop

counter-clockwise n/2-1 times starting and

ending at n/2: has r = n/2-1 and length Θ(n2)

n/2+1

n/2+2

CSCE 411, Spring 2012: Set 13

- What about other link labelings?
- Transform to FR!
- In more detail: for every labeled input graph G (satisfying the Acyclicity Condition), construct another graph T(G) s.t.
- for every execution of BLL on G, there is a “corresponding” execution of FR on T(G)
- time complexities of relevant vertices in the corresponding executions are the same

CSCE 411, Spring 2012: Set 13

- If a vertex v is initially a sink with some links labeled 0 and some labeled 1, or is not a sink with an incoming link labeled 0, then its incident links are partitioned into two sets:
- all links on one set reverse at odd-numbered steps by v
- all links in the other set reverse at even-numbered steps by v

- Transformation replaces each such vertexwith two vertices, one corresponding to odd steps by v and the other to even steps, and inserts appropriate links

CSCE 411, Spring 2012: Set 13

- Theorem: For every (bad) vertex v, termination time of v is
- 1 + max{len(X): X is a chain ending at v with s + Res = σv – 1} if v is a sink or a source initially
- 1 + max{len(X): X is a chain ending at v with 2s + Res = σv – 1} otherwise

- Worst-case graph for global time complexity:
D 1 2 3 … n/2 n/2+1 … n

Vertex n/2 has work complexity n/2. Consider chain that starts at n/2, ends at n/2, and goes back and forth between n/2 and n making (n-2)/4 round trips. 2s+Res for this chain is n/2-1, and length is Θ(n2).

CSCE 411, Spring 2012: Set 13

- On chain on previous slide, PR has quadratic time complexity.
- But FR on that chain has linear time complexity
- in fact, FR has linear time complexity on any tree

- On chain on previous slide, PR has slightly better global work complexity than FR.

CSCE 411, Spring 2012: Set 13

- Busch, Surapaneni and Tirthapura, “Analysis of Link Reversal Routing Algorithms for Mobile Ad Hoc Networks,” SPAA 2003.
- Busch and Tirthapura, “Analysis of Link Reversal Routing Algorithms,” SIAM JOC 2005.
- Charron-Bost, Fuegger, Welch and Widder, “Full Reversal Routing as a Linear Dynamical System,” SIROCCO 2011.
- Charron-Bost, Fuegger, Welch and Widder, “Partial is Full,” SIROCCO 2011.
- Charron-Bost, Gaillard, Welch and Widder, “Routing Without Ordering,” SPAA 2009.
- Charron-Bost, Welch and Widder, “Link Reversal: How to Play Better to Work Less,” ALGOSENSORS 2009.
- Gafni and Bertsekas, “Distributed Algorithms for Generating Loop-Free Routes in Networks with Frequently Changing Topology,” IEEE Trans. Comm. 1981.
- Welch and Walter, “Link Reversal Algorithms,” Synthesis Lectures on Distributed Computing Theory #8, Morgan & Claypool Publishers, 2012.

CSCE 411, Spring 2012: Set 13