CS218: Design and Analysis of Algorithms (2022-23 Sem II)

Course Contents:

Algorithms: Basic principles like induction/recursion. Basic paradigms like Divide and Conquer, Dynamic Programming, Greedy Algorithms. Beyond the basics: Network Flow and its applications. Reductions.

Complexity: Undecidability, Polynomial time and the Complexity classes NP, co-NP. NP-hardness and NP-completeness.

Advanced topics: Randomized algorithms, Approximation algorithms. E.g., approximate max-cut, load balancing, min-cut.

References:

Lectures

Basics

Exercises (Lectures 1-6)

Slides (Lectures 1-5)

Greedy algorithms and dynamic programming

Exercises (Lectures 7-11)

Slides

Network flow

Slides (Network flow)

Exercises (Lecture 16-19)

NP, Randomized algorithms, Approximation algorithms

Slides (NP, NP-complete, reductions)

Slides (LP and weighted vertex cover)

Exercises (lecture 20-24)