Compact Routing Schemes Mikkel Thorup Uri Zwick AT&T Labs – Research Tel Aviv University
Routing u v Packet: label(v) information
Handshaking Packet: header(u,v) information uv header(u,v) The same header is used for all messages sent from u to v
Routing in Trees Each vertex is assigned a (1+o(1))log 2 n – 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
Routing in General Graphs Handshaking?Table SizeStretch no n 1/2 3 yes n 1/3 5 no 7 yes n 1/k 2k-1 no n 1/k 4k-5
Previous Results AuthorsTable SizeStretch Cowen Cowen ‘99 n 2/3 3 Eilam, Gavoille Peleg Eilam, Gavoille Peleg ‘98 n 1/2 5 Awerbuch Peleg Awerbuch Peleg ‘92 n 1/k O(k 2 )
Our Results Are Essentially Optimal! Labels must be at least log 2 n – bit long. In graphs, for stretch<3, the total size of the routing tables must be (n 2 ). For stretch<5, the total size must be (n 3/2 ). Erdös Conjecture: For stretch<2k+1, the total size of the tables must be (n 1+1/k ). (Equivalent to a well known girth conjecture of Erdös.)
Tree Routing – A Practical Scheme O(log 2 n)-bit labels. Arbitrary port numbers. DFS numbering: For every vertex u, let f u be the largest descendant of u. Then v is a descendant of u iff 10 7 A trivial solution with O(deg(v)) memory.
Tree Routing – A Practical Scheme (Cont.) Let s(v) be the number of descendants of v. Let p v be the parent of v. Then, vertex v is heavy if s(v) s(p v )/2, and light otherwise
Tree Routing – A Practical Scheme (End) The light-level l v of a vertex v is the number of light vertices on the path to it from the root. Claim: l v <log 2 n label(v)=(v,port(e 1 ),port(e 2 ),…) At v we store: v, f v, h v, l v, port(v,p v ) and port(v,h v ). e1e1 e2e2 e3e3 r v e4e4
Routing in Graphs
Choose a Set of Centers cent A (v) = a center closest to v
Construct Clusters cluster A (v) = vertices that are closer to v than to all centers. cluster
Keep Routing Info from v to A cluster A (v)
If v cluster A (u), Route Directly u v w For any w on the shortest path we have v cluster A (w).
If v cluster A (u), Route through cent A (v) u v cent A (v) Label(v)= (v,cent A (v),port(cent A (v),v))
How do we choose centers? We want A such that |A|=O(n 1/2 ) cluster A (v)=O(n 1/2 ), for every v [Cowen does this with O(n 2/3 )]
Algorithm center(G) A ; W V; While W { A A choose(W,n 1/2 ); W {w V | cluster A (w)>4n 1/2 }; } Return A; The expected size of A is O(n 1/2 log n).
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.
Tree Cover Each vertex contained in at most n 1/k trees. For every u,v, there is a tree with a path of stretch at most 2k-1 between them.
Is there a routing scheme with: Table size = O(n 1/k ) Label size = O(log n) No handshaking ???