0% found this document useful (0 votes)
33 views19 pages

Fusion Trees

Fusion trees are a self-balancing binary search tree data structure used to store and retrieve data efficiently. They were created in 1990 by Michael Fredman and Dan Willard. Fusion trees use a unique branching factor to achieve optimal performance while using less space than other self-balancing trees. They provide fast search times of O(log n) and are efficient for storing and retrieving large amounts of data, though can be complex to understand and implement. Hashing techniques used in fusion trees are based on locality-sensitive hashing and dynamic perfect hashing to map similar keys to the same buckets while avoiding collisions.

Uploaded by

Orange Shelly
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views19 pages

Fusion Trees

Fusion trees are a self-balancing binary search tree data structure used to store and retrieve data efficiently. They were created in 1990 by Michael Fredman and Dan Willard. Fusion trees use a unique branching factor to achieve optimal performance while using less space than other self-balancing trees. They provide fast search times of O(log n) and are efficient for storing and retrieving large amounts of data, though can be complex to understand and implement. Hashing techniques used in fusion trees are based on locality-sensitive hashing and dynamic perfect hashing to map similar keys to the same buckets while avoiding collisions.

Uploaded by

Orange Shelly
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

FUSION TREES

THE CREATOR OF 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 is O(logw n)


HERE ARE SOME OF THE ADVANTAGES OF
USING FUSION TREES:
• Fusion trees are very efficient at storing and retrieving data.

• Fusion trees are very fast at performing searches.

• Fusion trees are very reliable and can handle a large amount of data.

• Fusion trees are easy to implement and maintain.


HERE ARE SOME OF THE DISADVANTAGES
OF USING FUSION TREES:

• Fusion trees can be complex to understand.

• Fusion trees can be memory-intensive.

• Fusion trees can be slow to insert and delete data.

• Fusion trees can be difficult to scale to large databases.


PART OF FUSION:
SKETCHING
W-bit integers make them less than W-bits, W-bits means Word Size also known as N-bit.
sketching we have keys, the variable for keys is Xi or X0,X1, X2 and so on, also for layer or
levels we have the variable of bi or B0, B1, B2 and so on

EXAMPLE 1:
In the example, the “keys” are the value of each node. bit
string is the one that connects to another node.

To determine the path of the tree, 1 means right and 0 means


left

In the example we it encircle the binary bits which is 1 and 0,


It is called the branching node

For identifying the layer starting to bottom to top which we


called Bi or B0, B1, B2 ...... and so on

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.

For identifying the layer starting to bottom to top which w


called Bi or B0, B1, B2 ...... and so on

other way to get sketch Using this Formula: sketch(Xi)


sketch(21) = sketch(10101) = 1 0 1 0 1 = 01
sketch(17) = sketch(10001) = 1 0 0 0 1 = 00
sketch(23) = sketch(10001) = 1 0 1 1 1 = 11
QUERYING FUSION TREE
• Fusion trees are a type of data structure that can be used to store and retrieve data in a fast and efficient
way.

• 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).

We take the common value of each keys just


WeR
EXAMPLE 1: like we do here, we will end if each value
doesn’t match
WeResource

So, the LCP of X0,X1 is “WeR”


EXAMPLE 2:
Same process, we will end if the value
of each other do not match

• So, that is the way if there is a same output


HASHING TECHNIQUE

• 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

Linear Search O(n) : Randomize

Element or Keys
Index

Binary Search O(log n) : In Order

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 hash table

To find the key,


use the function of h(x) = x

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

the answer is the index


TO AVOID THE COLLISION:
2 types of method to avoid collision
• Open Hashing
- Chaining

• Closed Hashing
- Linear
- Quadratic
Chaining hash table
In chaining, if collision happens
if will create like a linkedlist in a chain form
Key Space

as you can see 13 is now fit to the


index 3 because of the chain form

same process
Linear Probing ;

new formula: size of index


hash table In this method if the index have a value
it will not input itself unless the next index
Key Space have a free slot the
key will go automatically

As you can see, the index 3 has the key


element 3, therefore the element 13 will go to
the next index which is 4, which does not have
a key element.

This formula shows how does it works, and it


is just a proving that how did it put itself to
another index
Quadratic Probing
size of index
In this method, it is like
hash table linear probing but different approach

Key Space As you can see, our “ i ”is now in squared

Our element key 23


We use this formula to find an index
that is free to insert element key 23

In the equation we see that index 3 and 4


have a value already

did you notice that it skip two index


because to give a chance to another element
keys to insert itself

You might also like