The reason Fibonacci numbers appear in the analysis of Fibonacci heaps is due to the structure of the trees within the heap.
Specifically, the maximum degree of any node in a Fibonacci heap with nodes is . Specifically:
Where is the golden ratio.
This bound follows from an important invariant maintained by Fibonacci heaps:
A node of degree must have at least descendants, where is the -th Fibonacci number.
As a result, to support nodes, no node can have degree above . Therefore the consolidate operation uses an auxiliary array of size , sufficient to index all possible degrees.
The Relationship Between Size & Degree
For a Fibonacci Heap, for any node , define:
size(x): The total number of nodes in the subtree rooted at node (including )degree(x): The number of children of node- : The -th Fibonacci number
Using the identity:
We will prove, by induction, that:
To establish that the invariant — “a node of degree has at least descendants”, hold true.
Base Case
If the subtree rooted at has no children (i.e., ), then it consists of only one node. Hence:
- and,
Therefore and so the inequality holds in the base case.
Inductive Step
Let have children () and let its children be , in the order they were added.
Then, the size of the subtree rooted at is:
Then by the inductive hypothesis, each child satisfies:
Therefore
To derive a meaningful lower bound, we must now find a lower bound on each .
Bounding The Degree & Size
Each child became a child of during a consolidate operation, which only merges trees of equal degree.
- Suppose was the -th child added, i.e. already had children
- Therefore, just before merging with , .
- At the time of merging,
However, due to decrease-key, might have lost at most one child (any more would cause it to be cut and moved to the root list). So we conservatively say:
This bound can be substituted back to bound the size of
We now use the identity:
So:
Thus, the subtree rooted at any node with degree contains at least nodes.
Maximum Degree And Efficiency
From above, for any node in a Fibonacci heap with degree ,
We also know that Fibonacci numbers grow exponentially with the golden ratio :
Now, suppose the Fibonacci heap has nodes total. Since , we get:
Taking logs:
This proves the maximum degree of any node in a Fibonacci heap is bounded by . This bound directly ensures efficient extract-min and consolidate operations by limiting the number of distinct degrees in the root list.