CSE 548-01 (#84542), AMS 542-01 (#84639): Analysis of Algorithms, Fall 2015

Lecture Time and Location. MoFr 1:00 pm - 2:20 pm, Earth & Space Sciences Building (069), West Campus

Instructor. Rezaul A. Chowdhury (rezaul{at}cs{dot}stonybrook{dot}edu)
Office Hours. Mo 11:00 am - 12:30 pm, Fr 3:00 pm - 4:30 pm, Room 239 (New Computer Science Building)

Grader. Srikant Aggarwal (sraggarwal{at}cs{dot}stonybrook{dot}edu)

Course Description. We will explore techniques for designing and analysing efficient algorithms, including recurrence relations and divide-and-conquer algorithms, dynamic programming, graph algorithms (e.g., network flow), amortized analysis, cache-efficient and external-memory algorithms, high probability bounds and randomized algorithms, parallel algorithms and multithreaded computations, NP-completeness and approximation algorithms, the alpha technique, and FFT ( Fast Fourier Transforms ).

Prerequisites. Some background in algorithms analysis (e.g., CSE 373) and programming languages (e.g., C/C++) is required (or consent of instructor).

Textbooks. Only the first one is required.

  1. Thomas Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein. Introduction to Algorithms (3rd Edition), MIT Press, 2009.
  2. Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani. Algorithms (1st Edition), McGraw-Hill, 2006.
  3. Jon Kleinberg and Éva Tardos. Algorithm Design (1st Edition), Addison Wesley, 2005.
  4. Rajeev Motwani and Prabhakar Raghavan. Randomized Algorithms (1st Edition), Cambridge University Press, 1995.
  5. Vijay Vazirani. Approximation Algorithms, Springer, 2010.
  6. Joseph JáJá. An Introduction to Parallel Algorithms (1st Edition), Addison Wesley, 1992.

Course Requirements. There will be 4 homework assignments (mainly theory problems, but may include some programming assignments, too) and two in-class exams (one midterm and one at the end; 75 minutes each). Each student will be responsible for scribing one lecture. The course grade will be based on the following.

Download the Latex template for scribe notes.

Blackboard. Some course documents (e.g., scribe notes, homework solutions, etc.) will be available through Blackboard.

Lecture Schedule.

Date Topic Notes / Reading Material
Mon, Aug 24 Introduction
  • Chapter 3 (Growth of Functions), Introduction to Algorithms (3rd Edition) by Cormen et al.
Fri, Aug 28 Introduction (continued)

Integer Multiplication & Karatsuba's Algorithm
  • Chapter 2 (Divide-and-Conquer Algorithms), Section 2.1 (Multiplication), Algorithms (1st Edition) by Dasgupta et al.
Mon, Aug 31 Integer Multiplication & Karatsuba's Algorithm (continued)

Matrix Multiplication & Strassen's Algorithm
  • [optional] Anatolii A. Karatsuba, “The Complexity of Computations”, Proceedings of the Steklov Institute of Mathematics, 211:169-183, 1995.
  • Chapter 4 (Divide-and-Conquer), Section 4.2 (Strassen’s Algorithm for Matrix Multiplication), Introduction to Algorithms (3rd Edition) by Cormen et al.
  • [optional] Chapter 9 (Algebraic and Numeric Algorithms), Section 9.5.2 (Strassen’s Algorithm), Introduction to Algorithms - A Creative Approach (1st Edition) by Udi Manber.
  • Volker Strassen, “Gaussian Elimination is not Optimal”, Numerische Mathematik, 13:354-356, 1969.
Fri, Sep 4 Polynomial Multiplication & the Fast Fourier Transform
  • Chapter 2 (Divide-and-Conquer Algorithms), Section 2.6 (The Fast Fourier Transform), Algorithms (1st Edition) by Dasgupta et al.
  • Chapter 30 (Polynomials and the FFT), Introduction to Algorithms (3rd Edition) by Cormen et al.
Mon, Sep 7 No Class (Labor Day) -
Fri, Sep 11 Polynomial Multiplication & the Fast Fourier Transform (continued)
Mon, Sep 14 The Master Theorem

Akra-Bazzi Recurrences
  • Chapter 4 (Divide-and-Conquer), Section 4.5 (The Master Method for Solving Recurrences) and Section 4.6 (Proof of the Master Method), Introduction to Algorithms (3rd Edition) by Cormen et al.
  • Chapter 9 (Medians and Order Statistics), Section 9.3 (Selection in Worst-case Linear Time), Introduction to Algorithms (3rd Edition) by Cormen et al.
Fri, Sep 18 Akra-Bazzi Recurrences (continued)
Mon, Sep 21 Akra-Bazzi Recurrences (continued)
Linear Recurrences with Constant Coefficients (self-study)
Generating Functions
  • Tom Leighton, “Notes on Better Master Theorems for Divide-and-Conquer Recurrences”, 1996.
  • [optional] Chapter 7 (Advanced Counting Techniques), Section 7.2 (Solving Linear Recurrence Relations), Discrete Mathematics and its Applications (6th Edition) by Kenneth Rosen.
  • [optional] Chapter 7 (Generating Functions), Concrete Mathematics (2nd Edition) by Ronald Graham, Donald Knuth, and Oren Patashnik.
Fri, Sep 25 Generating Functions (continued)
  • [optional] Chapter 10 (Ordinary Generating Functions), Section 10.3 (Manipulating Generating Functions), Example 10.12 (The Average Time for Quicksort), Foundations of Combinatorics with Applications by Edward A. Bender and S. Gill Williamson.
Mon, Sep 28 Amortized Analysis
  • Chapter 17 (Amortized Analysis), Introduction to Algorithms (3rd Edition) by Cormen et al.
Fri, Oct 2 Amortized Analysis (continued)
Binomial Heaps
Mon, Oct 5 Binomial Heaps (continued)
  • [optional] Chapter 8 (Binomial Heaps), The Design and Analysis of Algorithms (1992) by Dexter Kozen.
Fri, Oct 9 Binomial Heaps (continued)
  • [optional] Chapter 19 (Binomial Heaps), Introduction to Algorithms (2nd Edition) by Cormen et al.
Mon, Oct 12 In-class Exam 1 (Midterm) -
Fri, Oct 16 Binomial Heaps (continued)
Dijkstra's SSSP & Fibonacci Heaps
  • Chapter 19 (Fibonacci Heaps), Introduction to Algorithms (3rd Edition) by Cormen et al.
Mon, Oct 19 Dijkstra's SSSP & Fibonacci Heaps (continued)
Fri, Oct 23 Dijkstra's SSSP & Fibonacci Heaps (continued)
High Probability Bounds and Randomized Algorithms
  • [optional] Chapter 6 (Algorithms Involving Sequences and Sets), Section 6.9.2 (A Coloring Problem), Introduction to Algorithms - A Creative Approach (1st Edition) by Udi Manber.
Mon, Oct 26 High Probability Bounds and Randomized Algorithms (continued)
  • [optional] Chapter 1 (Introduction), Section 1.1 (A Min-Cut Algorithm), Randomized Algorithms (1st Edition) by Rajeev Motwani and Prabhakar Raghavan.
Fri, Oct 30 High Probability Bounds and Randomized Algorithms (continued)
Mon, Nov 2 High Probability Bounds and Randomized Algorithms (continued)
  • Chapter 7 (Quicksort), Section 7.4 (Analysis of Quicksort), Introduction to Algorithms (3rd Edition) by Cormen et al.
Fri, Nov 6 High Probability Bounds and Randomized Algorithms (continued)
Mon, Nov 9 Approximation Algorithms
  • Chapter 35 (Approximation Algorithms), Introduction to Algorithms (3rd Edition) by Cormen et al.
  • Chapter 35 (Approximation Algorithms), Section 35.1 (The Vertex-Cover Problem), Introduction to Algorithms (3rd Edition) by Cormen et al.
  • Chapter 35 (Approximation Algorithms), Section 35.2 (The Traveling-Salesman Problem), Introduction to Algorithms (3rd Edition) by Cormen et al.
Fri, Nov 13 Approximation Algorithms (continued)
  • Chapter 35 (Approximation Algorithms), Section 35.2.1 (The Traveling-Salesman Problem with the Triangle Inequality), Introduction to Algorithms (3rd Edition) by Cormen et al.
  • Chapter 35 (Approximation Algorithms), Section 35.2.1 (The General Traveling-Salesman Problem), Introduction to Algorithms (3rd Edition) by Cormen et al.
Mon, Nov 16 Approximation Algorithms (continued)
  • Chapter 35 (Approximation Algorithms), Section 35.3 (The Set-Covering Problem), Introduction to Algorithms (3rd Edition) by Cormen et al.
Fri, Nov 20 Approximation Algorithms (continued)
  • Chapter 35 (Approximation Algorithms), Section 35.5 (The Subset-Sum Problem), Introduction to Algorithms (3rd Edition) by Cormen et al.
Mon, Nov 23 Analyzing Parallel Algorithms
Fri, Nov 26 No Class (Thanksgiving Break) -
Mon, Nov 30 Analyzing I/O and Cache Performance
Fri, Dec 4 In-class Exam 2 -

Homeworks.

Old Homeworks.

Exams.

Old Exams.

Additional Resources in SBUCS.