UW Logo

CS 466/666, Spring 2011

Advanced Algorithms

(link to CS466/666, Fall 2010)


Instructor:

Timothy Chan (DC2107, x36941, tmchan "at" cs, office hrs: Mon 2:30-3:30 & Thu 11:30-12:30 or by appointment)

Meeting Time/Place:

Tue & Thu 10:00-11:20, MC4059

TAs:

Curtis Bright (DC2302C, cbright "at" cs, office hrs: Wed 10:30-11:30)
Ansis Rosmanis (DC2115, x32444, arosmani "at" cs, office hrs: Tue 3:00-4:00)

Course Work:

Grading Scheme and University Policies
A1 (out May 12; due May 25 Wed 5pm)
A2 (out May 26; due June 8 Wed 5pm)
Midterm (June 20 Mon, 7:00pm-9:00pm, MC2065)
A3 (out June 22; due July 6 Wed 5pm)
A4 (out July 7; due July 20 Wed 5pm)
Final exam (August 13 Saturday, 12:30pm-3:00pm, PAC 6)
Project for CS666 students (due before August 17 Wed 5pm)

Announcements:

(Important announcements will be posted here.)

I will hold an extra office hour on Friday (August 12) from 2:00 to 3:00.

My Monday (August 8) office hour will be moved to Tuesday (August 9) from 12:30 to 1:15. And A4s have been marked and are available for pick-up during my office hour on Tuesday.

Here's a sample past final exam (ignore Q1b and Q5).

Solutions to A1, A2, A3, A4, and the midterm (call number UWD 1104) are available in the DC library reserve.

7/5: Error in midterm model solutions on Q2e: we should return "prime" iff at least one run says "prime".

6/28: Note that in A3Q1a, the directed cycle does not have to be simple.

6/24: Project guidelines for grad students are now available.

Here's a sample past midterm exam.

6/9: Minor correction to the solution of A2Q3b: technically we need to assume in the algorithm that when A and B have the same number of blocks, the tie is resolved by insisting that the size of alpha is at least the size of beta.

6/5: Correction to the solution of A1Q3c (the direction of inequality is messed up): The change in potential is -2k/3 + |l-2k/3| - |l-k| <= -2k/3 + |(l-2k/3)-(l-k)| <= -2k/3+k/3 = -k/3. Hence the decrease is at least k/3.

5/15: For A1 Q1b, it is fine if your algorithm takes O(n(l'-l)^2 + n^2) time.

Newsgroup:

news:uw.cs.cs466 (for additional info, questions and replies from the TAs, etc.)

References:

There is no required textbook for this course. The following references have been placed on reserve in the DC library (for 3 hour loan).

Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms (3rd ed.), MIT Press, 2009 (QA76.6.C662) [CLRS] (chapter numbers below refer to the 2nd ed.)
Motwani and Raghavan, Randomized Algorithms, Cambridge University Press, 1995 (QA274.M68) [MR]
Mitzenmacher and Upfal, Probability and Computing, University Press, 2005 (QA274.M574)
Vazirani, Approximation Algorithms, Springer-Verlag, 2001 (QA76.9.A43 V39) [V]
Borodin and El-Yaniv, Online Computation and Competitive Analysis, Cambridge University Press, 1998 (QA76.9.A43 B67) [BE]

Lecture Topics:

The lectures are organized around problems instead of techniques, to motivate things better. We usually devote more than a lecture to each problem and then explore different ideas to devise an efficient algorithm. Along the way, we will indeed encounter new design techniques and variations on the analysis model (themes like amortization, randomization, approximation, online computation, etc., as promised in the handbook description), but the main emphasis is how to think about problems...

[You are responsible only for materials covered in the lectures (summarized below), but I have included below some extra references to papers and book chapters, mainly to introduce research issues to grad students.]

Problem of May 3: Finding triangles in graphs

Problem of May 5, 10: Convex hulls in 2D

Problem of May 12, 17, 19: Minimum (dynamically!)

Problem of May 24, 26: "Incremental" graph connectivity---or, in disguise, the union-find problem

Problem of May 31, June 2: Primality testing

Problem of June 7: String matching

Problem of June 9: AND/OR tree evaluation

Problem of June 17: Smallest enclosing circle

Problem of June 21, 23: Median

Problem of June 28: Satisfiability Problem of June 30: Vertex cover

Problem of July 5: Traveling salesman (metric version)

Problem of July 7: Disjoint unit squares

Problem of July 12, 14: Bin packing

Problem of July 19: Lost cow

Problem of July 21: Paging


(Maintained by Timothy Chan)