- Meeting 18 : Fri, Sep 01, 03:30 pm-04:30 pm
References | |
Exercises | |
Reading | |
(Compensatory Class for Aug 14th)
Greedy Algorithms. Optimizations. Greedy Choice. Motivating questions for further discussion.
Minimum Spanning Tree Problem. Growing a Tree. Safe Edges. Finding a Safe Edge. Cuts, Cross Edges, Lightest Crossing Edge.
Lemma : From "respecting cuts" to "safe edges".
References | : | Section 23.1-23.2 in CLRS Textbook
|
- Meeting 19 : Tue, Sep 05, 10:00 am-10:50 am
References | |
Exercises | |
Reading | |
From "Respecting Cuts" to "Safe Edges". Kruskal's algorithm. Union-Find Data Structure. The naive implementation using arrays and analysis of O(m log m + n^2) algorithm. Optimizations for Array based implementations.
References | : | Section 23.1-23.2 in CLRS Textbook
|
- Meeting 20 : Wed, Sep 06, 09:00 am-09:50 am
References | |
Exercises | |
Reading | |
Various optimizations. Final array based implementation to give O(k log k) bound over first k union operations. Amortized O(log n) bound for each "union" operation.
- Meeting 21 : Thu, Sep 07, 12:00 pm-12:50 pm
References | |
Exercises | |
Reading | |
Rank-based Implementation of Union-Find. Worst case O(log n) time for FindSet and Union. The idea of path compression.
- Meeting 22 : Mon, Sep 11, 11:00 am-11:50 am
References | |
Exercises | |
Reading | |
Anlysing path compression. Typical situaions when Amortized analysis is useful. The binary counter example. Aggregate method and "Pocket money method" to analyse the binary counter. Analysing path compression. The overview of the strategy.
- Meeting 23 : Tue, Sep 12, 10:00 am-10:50 am
References | |
Exercises | |
Reading | |
Dividing the range of rank into buckets. log*(n) function. Assigning pocket money to non-root trees. Cost of each find operation as log*(n)+extra. Paying the extra from the pocket money. Argument that pocket money is sufficient for this pay off. Complete analysis.
- Meeting 24 : Wed, Sep 13, 09:00 am-09:50 am
References | |
Exercises | |
Reading | |
Set system based problems. Example of Maximum weight spanning tree. Equivalence with Minimum weight spanning trees (when weights are positive). Formulating MaxST as a set system problem. The formulation of the generic greedy algorithm for system problems.
Maximum Weight Matching problem. Formulation as a set system problem. Counter example to the greedy strategy. Question : What made the greedy strategy work in the case of MaxST and not in MaxMatch?
References | : | Combinatorial Optimization by Papadimitriou and Steiglitz Chapter 12, Section 4 for different problems discussed.
|
- Meeting 25 : Thu, Sep 14, 12:00 pm-12:50 pm
References | |
Exercises | |
Reading | |
What made the greedy choice work in the case MaxST and not in MaxMatch? Properties of the independent sets in the case of MaxST problem. Defining a matroid. Plan : to show that having a matroid property for the set system is enough for the generic greedy strategy to work.
References | : | CLRS Section 16.4.
|
- Meeting 26 : Fri, Sep 15, 03:30 pm-04:30 pm
References | |
Exercises | |
Reading | |
Being a matroid implies greedy choice is correct and an optimal substructure. Implications to the correctness of the generic algorithm.
References | : | CLRS Section 16.4
|
- Meeting 27 : Mon, Sep 18, 11:00 am-11:50 am
References | |
Exercises | |
Reading | |
Task scheduling problem as an example problem. Structure of solutions for Task Scheduling. Formulation of the set system problem equivalent to it.
References | : | CLRS Section 16.5
|
- Meeting 28 : Tue, Sep 19, 10:00 am-10:50 am
References | |
Exercises | |
Reading | |
Showing that the set system formulation of Task scheduling satisfies the three matroid properties. Characterization of independence of a set.
References | : | CLRS Section 16.5
|
- Meeting 29 : Wed, Sep 20, 09:00 am-09:50 am
References | |
Exercises | |
Reading | |
The single-source shortest path problem. Dijkstra's algorithm.
- Meeting 30 : Thu, Sep 21, 12:00 pm-12:50 pm
References | |
Exercises | |
Reading | |
Proof of correctness of Dijkstra's algorithm.
- Meeting 31 : Mon, Sep 25, 11:00 am-11:50 am
References | |
Exercises | |
Reading | |
Priority queues. Binary min-heaps. Implementation and analysis.
- Meeting 32 : Tue, Sep 26, 10:00 am-10:50 am
References | |
Exercises | |
Reading | |
Decrease key is invoked more often. We need to improve the cost. Discussion of ideas towards it. Mergeable heaps. Binomial trees and their properties.
- Meeting 33 : Wed, Sep 27, 09:00 am-09:50 am
References | |
Exercises | |
Reading | |
Fibonacci Heaps. Insert, Union, Extract-min - the algorithmic description and examples.
- Meeting 34 : Tue, Oct 03, 12:00 pm-12:50 pm
References | |
Exercises | |
Reading | |
Extract-min. Decrease key operations in Fib heaps. Cut and Cascade-cut operations.
- Meeting 35 : Wed, Oct 04, 09:00 am-09:50 am
References | |
Exercises | |
Reading | |
Proving the bound on the number of trees for Fibanocci heaps. Recall amortized analysis. Binary counter. Aggregate method. Pocket money method, Potential function method.
- Meeting 36 : Fri, Oct 06, 03:30 pm-04:30 pm
References | |
Exercises | |
Reading | |
Potential function method. En-queue-Dequeue problem using stacks. Charging method. Amortized analsysis of Fib heaps operations using potential function method. Completing the analysis of Dijskstra's algorithm.