Algorithms

Winter Quarter 2018

Instructor: Yury Makarychev
TAs: Haris Angelidakis and David Kim
 
Course: TTIC 31010 and CMSC 37000-1
Lectures: Tuesdays & Thursdays, 9:30am-10:50am, TTIC, room 526
Tutorials: Wednesdays, 3:30pm-4:20pm, TTIC, room 530
Canvas course site: canvas.uchicago.edu/courses/13223
Textbook: Algorithm Design by Kleinberg and Tardos
 
Office hours:
  • Yury: Tuesdays, 10:55–11:55am at TTIC 437, or by appointment
  • Haris Angelidakis: Thursdays, 11am–12pm at TTIC 405
  • David Kim: Wednesdays, 4:30pm–5:30pm at TTIC 435 (TTIC Library)
Requirements: There will be 3 homework assignments, 2-3 short in-class quizzes, a midterm and final exam.
Grading: homeworks 45%, quizzes 5%, midterm 20%, final 30%; extra credit for class participation
Description: This is a graduate-level course on algorithms, with an emphasis on computational problems that are central to both theory and practice. The course focuses on developing techniques for the design and rigorous analysis of algorithms and data structures for such problems.
W. Kandinsky, Squares with Concentric Circles, 1913
W. Kandinsky, Squares with Concentric Circles, 1913.
A dynamic programming algorithm solves sub-problems
of the original problem and stores solutions to the
sub-problems in a table.

Homework Assignments

Tentative Schedule

  1. January 4: Greedy Algorithms (Chapter 4)
    greedy algorithms, interval scheduling problem, minimum weighted completion time
  2. January 9: Greedy Algorithms, Huffman coding
    minimum cost spanning trees, Prim's algorithm, Huffman coding
  3. January 11: Huffman coding
    Huffman coding, a greedy algorithm for Max Cut
  4. January 16: Dynamic Programming (Chapter 6)
    weighted interval scheduling, typesetting problem
  5. January 18: Quiz #1, Dynamic Programming
    typesetting problem, knapsack problem
  6. January 23: Dynamic Programming
    minimum tree bisection, the longest common subsequence problem
  7. January 25: Dynamic Programming
    the Bellman-Ford algorithm
  8. January 30: Maximum Flow and Minimum Cut
    definitions, the Ford—Fulkerson algorithm
  9. February 1: Max Flow and Min Cut, Maximum Matching
    the Ford—Fulkerson algorithm (continued), matchings, Hall's theorem
  10. February 6: Quiz #2, Applications of Max Flow and Min Cut
    matchings, multi–source/multi–sink single–commodity flow, edge disjoint paths, Menger's theorem, and other examples
  11. February 8: Linear Programming (LP)
    linear programming, feasible solution, optimal solution, bounded/unbounded linear programs, feasible polytope, vertices, canonical (standard) form, LP duality
  12. February 13: LP Duality
    the dual LP, the dual of the dual, weak duality, strong duality
  13. February 15: Midterm Exam
  14. February 20: LP Duality. Polynomial-time reductions.
    the LP for Max Flow, its dual, polynomial-time reductions
  15. February 22: Polynomial-time reductions. Classes P and NP.
  16. February 27: NP, NP complete, and NP hard problems. Approximation algorithms.
  17. March 1: Quiz 3, Approximation algorithms.
  18. March 6: Randomized algorithms.