Download presentation
Presentation is loading. Please wait.
1
Compact Routing Schemes
Mikkel Thorup Uri Zwick AT&T Labs – Research Tel Aviv University
2
Routing 3 2 v u 1 Packet: label(v) information
3
The same header is used for all messages sent from u to v
Handshaking u v header(u,v) Packet: header(u,v) information The same header is used for all messages sent from u to v
4
Routing in Trees Each vertex is assigned a (1+o(1))log2n – bit label.
Given label(u) and label(v), it is possible to find, in constant time, the right edge to take from u. Similar result by Fraigniaud and Gavoille [ICALP’01] u v
5
Routing in General Graphs
Handshaking? Table Size Stretch no n1/2 3 yes n1/3 5 7 n1/k 2k-1 4k-5
6
Previous Results n2/3 n1/2 n1/k 3 5 O(k2) Authors Table Size Stretch
Cowen ‘99 n2/3 3 Eilam, Gavoille Peleg ‘98 n1/2 5 Awerbuch Peleg ‘92 n1/k O(k2)
7
Our Results Are Essentially Optimal!
Labels must be at least log2n – bit long. In graphs, for stretch<3, the total size of the routing tables must be (n2). For stretch<5, the total size must be (n3/2). Conjecture: For stretch<2k+1, the total size of the tables must be (n1+1/k). (Equivalent to a well known girth conjecture of Erdös.)
8
Tree Routing – A Practical Scheme
O(log2n)-bit labels. Arbitrary port numbers. 1 10 7 2 10 12 DFS numbering: For every vertex u, let fu be the largest descendant of u. Then v is a descendant of u iff 3 11 13 14 4 5 6 7 A trivial solution with O(deg(v)) memory. 8 9
9
Tree Routing – A Practical Scheme (Cont.)
Let s(v) be the number of descendants of v. 14 8 2 1 7 4 3 Let pv be the parent of v. Then, vertex v is heavy if s(v)s(pv)/2, and light otherwise.
10
Tree Routing – A Practical Scheme (End)
The light-level lv of a vertex v is the number of light vertices on the path to it from the root. Claim: lv<log2n label(v)=(v,port(e1),port(e2),…) At v we store: v, fv, hv, lv, port(v,pv) and port(v,hv). e1 1 e2 2 2 e3 3 3 e4 4 v
11
Routing in Graphs
12
centA(v) = a center closest to v
Choose a Set of Centers centA(v) = a center closest to v
13
Construct Clusters cluster clusterA(v) = vertices that are closer to v than to all centers.
14
Keep Routing Info from v to AclusterA(v)
15
If vclusterA(u), Route Directly
w For any w on the shortest path we have vclusterA(w).
16
If vclusterA(u), Route through centA(v)
Label(v)= (v,centA(v),port(centA(v),v)) v
17
How do we choose centers?
We want A such that |A|=O(n1/2) clusterA(v)=O(n1/2), for every v [Cowen does this with O(n2/3)]
18
W{wV | clusterA(w)>4n1/2 }; Return A;
Algorithm center(G) A; WV; While W { AA choose(W,n1/2); W{wV | clusterA(w)>4n1/2 }; } Return A; The expected size of A is O(n1/2log n).
19
Smaller Tables, Larger stretch
Use a hierarchy of centers. Construct a tree cover of the graph. Identify an appropriate tree from the cover and route on it.
20
Each vertex contained in at most n1/k trees.
Tree Cover Each vertex contained in at most n1/k trees. For every u,v, there is a tree with a path of stretch at most 2k-1 between them.
21
Is there a routing scheme with:
Table size = O(n1/k) Label size = O(log n) No handshaking ???
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.