A little bit on Fibonacci heaps today at the beginning. We covered Cascading cuts in a Fibonacci tree.
The real meat of the lecture was supposed to be on Kruskal’s Algorithm and the Union-Find algorithm.
We described the Ackermann function, as well as the inverse Ackermann function, in motivation of deriving the run-time of Union-Find, which runs in O(n*a(n)). We didn’t get very far into describing Kruskal’s algorithm so we’ll the algorithm, as well as the analysis of Union-Find next time.
Please make sure to read over Kruskal’s Algorithm, as well as the Union-Find chapters in Kozen before the next lecture.
Another go at Fibonacci heaps today. We started with the invariants of a Binomial heap as a base to get us started on the invariants of a Fibonacci heap.
We discussed cuts in a Fibonacci heap, and the maximum number of nodes we could cut from a tree so that we don’t have to meld. This is important because we want exponential growth in the trees and we want to keep the rank of each root the same because otherwise we wouldn’t have at most one tree of every rank.
Shout out to Marla for providing us with colored chalk and an exam problem.
We have two new homework assignments for the next couple weeks and I’ll make separate posts for them.
Today we started with Dijkstra’s Algorithm for Single Source Shortest Paths. The reason being that it uses a heap structure to organize nodes that have some minimum distance from the source vertex. The difference is that we need to update (decrement) the value of a vertex in the heap. This is where Fibonacci heaps, which support everything that Binomial heaps do, with the addition of deleting an arbitrary vertex and decrementing the value of an arbitrary vertex.
delete(h, i): O(lg n) (worst case & amortized)
decrement(h, i, D): O(lg n) (worst case) O(1) (amortized)
We didn’t actually cover the structure of Fibonacci heaps, just how we need to modify Binomial heaps to get the bounds we want.
Hopefully, we’ll finish Fibonacci heaps on Wednesday. Don’t forget HW2 is due next lecture as well.
The midterm will be Wednesday, February 22, 2012.