A Linear Space Algorithm for Computing Maximal - CSIE -NCKU

Efficient Trie Braiding in Scalable
Virtual Routers
Author:
Haoyu Song, Murali Kodialam, Fang Hao, T.V. Lakshman
Publisher:
IEEE/ACM TRANSACTIONS ON NETWORKING
Presenter:
Zi-Yang Ou
Date:
2012/10/17
1
Introduction





This paper proposes a mechanism called trie braiding that can be used
to combine tries from different virtual routers into just one trie.
Trie braiding enables each trie node to swap its left child node and
right child node freely.
The changed shape is memorized by a single bit at each trie node.
Two optimal dynamic programming algorithms and a faster heuristic
algorithm are presented.
Trie braiding leads to significant savings in high-speed memory, and
hence improves scalability.
2
3
Trie Braiding

In Fig. b, we swap node a’s child nodes and node c’s child nodes.
a
a
c
b
c
d
e
4
d
f
e
f
b
Problem Formulation

Definition 1: A mapping M of T2 to T1

Definition 2: A permissible mapping
5

Definition 3:

Definition 4: Distance

6
7
Braid : A DP Algorithm


Input : T1 and T2
Output :
8

Step1: Compute Leaf Weights

Step2: Distance Computation

Step3: It starts from r2 and uses S( , ) to obtain the optimal mapping
and braiding bit for each node v2.
9
10
11
FAST-BRAID: Braiding With
Isomorphism Detection

The motivation is the result in Lemma 1.






If we can identify the fact that
, then we need
to compute the value of
only once.
Using the technique developed by [26] in linear time algorithm for tree
isomorphism to keep track of the nodes with isomorphic subtrees.
We first process each tree separately.
Two nodes will be given the same label if and only if the subtrees
rooted at those two nodes are isomorphic.
In the FAST-BRAID algorithm, we have to compute the value of
for two labels, each from a different tree.
12
k-Braid: A k-Step Lookahead
Heuristic for Braiding

This heuristic algorithm determines the mapping from root to leaves.

13
Combining Multiple Trees



So far, we have dealt with the problem of combining two trees.
If we want to combine more than two trees, then the running time of
the optimal algorithm grows exponentially with the number of trees.
We use an incremental approach where we first merge T1 and T2 and
then merge Ti (i >= 3) onto combined tree.
14
Algorithm Evaluation
15
16
17
18
19
20