Fusion Trees
Fusion Trees
MICHAEL DAN
FREDMAN WILLARD
FUSION TREES WAS MADE IN 1990
WHAT IS FUSION TREE?
• A fusion tree is a data structure that is used to store and retrieve data in a fast and efficient way.
• Fusion trees are used in database systems, network routing, and other applications where efficient
associative arrays are needed.
• A fusion tree is a self-balancing binary search tree that uses a unique branching factor to achieve optimal
performance.
• Fusion trees have the same time complexity as other self-balancing binary search trees, but they use less
space.
• Fusion trees are also much faster than other self-balancing binary search trees.
• Fusion trees are very reliable and can handle a large amount of data.
EXAMPLE 1:
In the example, the “keys” are the value of each node. bit
string is the one that connects to another node.
Keys are the Xi or X0, X1, X2.. Sketches is based in the Branching nodes:
X0 is the “10000’’ Sketch of X0 is “000”
X1 is the ‘10100’’ Sketch of X1 is “010”
X2 is the ‘’10101'’ Sketch of X2 is “011“
X3 is the ‘’11101" Sketch of X3 is “111”
Consider the tree given above representing numbers 17,
21, 23. Let this be the fusion tree. Then the sketch
operation would give the bits only at branching
EXAMPLE 2: positions, which are labeled as b0 and b1 in above
figure. In above figure, bit positions 1 and 2 (0 indexed)
are the branching levels. So, sketch will give bits at
these position compressed into a single integer.
• They are often used in database systems and other applications where efficient associative arrays are
needed.
• Fusion trees are self-balancing binary search trees, which means that they automatically maintain a
balanced structure, even after insertions and deletions.
• This makes them very efficient for performing queries, as the search time is always O(log n), where n is the
number of elements in the tree.
In Query fusion tree, we had a lot of data that we can input then we sketch it, that can lead to confusion for the computer.
For 1 and 0 when we sketch there will be the same, so the computer might take the value of the tree instead of the Query.
To avoid this scenario, we will use the formula of y = LCP(Xi or Xi + 1), LCP means longest common prefix of Xi(keys).
• The hashing technique used in fusion trees is based on the principle of locality-sensitive hashing. Locality-sensitive hashing is
a type of hashing that maps similar keys to the same bucket. This allows the tree to quickly locate the bucket that contains the
desired key, even if the key is not identical to any of the keys in the bucket.
• The specific hashing technique used in fusion trees is a variant of universal hashing. Universal hashing is a type of hashing that
maps any input to a random output. This makes it very unlikely that two different keys will be hashed to the same bucket, even
if the keys are very similar.
• Fusion trees use universal hashing in conjunction with a technique called dynamic perfect hashing. Dynamic perfect hashing is
a type of hashing that can be used to efficiently hash a set of keys to a set of buckets, even if the number of keys is not known
in advance.
PARTS OF HASHING TECHNIQUE
Element or Keys
Index
Element or Keys
Index
In hashing, Whatever the value of the key is,
Hashing technique it will be placed in the index that matches it
Key Space = contains the keys or value hash table = our index that will put our keys
Collision In this scenario we have 3 and 13,
hash table
13 goes to index 3 because the size of the
Key Space index is only 10,
size of the index so, the value 13 will be input in index 3 ,
which is 13 first digit is 3
That is where the Collision starts
• Closed Hashing
- Linear
- Quadratic
Chaining hash table
In chaining, if collision happens
if will create like a linkedlist in a chain form
Key Space
same process
Linear Probing ;