UW Logo

CS 466/666, Spring 2009

Advanced Algorithms

(link to CS466/666, Fall 2008)


Instructor:

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

Meeting Time/Place:

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

TAs:

Sevag Gharibian (DC2115, x32444, sggharib "at" cs, office hrs: Wed 11:00-12:00)
Taylor Gordon (DC3511, 519-998-9149, tgordon "at" cs, office hrs: Mon 12:00-1:00)

Course Work:

Grading Scheme and University Policies
A1 (out May 14; due May 27 Wed 5pm)
A2 (out May 28; due June 10 Wed 5pm)
Midterm (June 17 Wed 7:00pm-9:00pm, MC2034)
A3 (out June 18; due July 2 Thu 5pm)
A4 (out July 2; due July 15 Wed 5pm)
A5 (out July 16; due July 28 Tue 5pm)
Final exam (August 7 Friday 7:30pm-10:00pm, RCH 211)
Project for CS666 students (due before August 14 Fri 5pm)

[Solutions to A1, A2, A3, A4, A5, and the midterm can be found on reserve in the DC library (UWD 1902)]

Announcements:

(Important announcements will be posted here.)

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

I'll continue to have office hours on 7/30 Thu (3:30-4:30), 8/4 Tue (2:30-3:30) and 8/6 Thu (3:30-4:30). Taylor will have an office hour on 8/6 Thu at 1:00-2:00 (instead of 8/3 Mon).

A5s have been marked and may be picked up, e.g., on Wednesday afternoon (between 2:30 and 5:30) or Thursday afternoon (between 2:00 and 5:30) outside my office.

7/29: A couple of clarifications on the A5 solutions:

7/16: Typo in the solutions to A4Q2: the parts are mislabelled because of an extra blank item ((c) -> (b), (d) -> (c), etc.) And in the A5 assignment sheet, "4" should of course be "5" in the heading! (Please note that the due date is a Tuesday.)

7/3: Typo in A4Q1: "S intersects both A_i and its complement" should be changed to "A_i intersects both S and its complement". (Also, in A4Q2(c,d,e): you can actually ignore all the |B_3^*| terms (why?).)

6/4: For A2Q2, you will still get full marks if the amortized time for initialize() is O(n log^c n) or the amortized time for x-partition() and y-partition() is O(log^c n) for any constant c.

6/4: Here's a sample past midterm exam.

5/31: In the solutions to A1Q2b, "leftmost point" should be "topmost point".

5/19: On the bonus question in A1Q3, for full marks, I still want top-k to take O(k) worst-case time (and insert to take O(1) worst-case time) and space to be O(k).

Newsgroup:

news:uw.cs.cs466 (for additional info, questions and replies from the TA, 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), if they are of any assistance.

Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms (2nd ed.), MIT Press, 2001 (QA76.6.C662) [CLRS]
Motwani and Raghavan, Randomized Algorithms, Cambridge University Press, 1995 (QA274.M68) [MR]
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 of course 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 (undergrad students: please ignore them, unless you have developed an intense passion for one of the problems :-). Note that these references are generally harder to read or go beyond the lecture materials.]

Problem of May 5: Finding triangles in graphs

Problem of May 7, 12: Convex hulls in 2D

Problem of May 14, 19, 21: Minimum (dynamically!)

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

Problem of June 2: Primality testing

Problem of June 4: String matching

Problem of June 9, 11: Median (by Prof. Biedl)

Problem of June 16: AND/OR tree evaluation

Problem of June 18: Smallest enclosing circle

Problem of June 23, 25: Minimum spanning trees

Problem of June 30, July 2: Satisfiability

Problem of July 2, 7: Vertex cover

Problem of July 7, 9: Traveling salesman (metric case)

Problem of July 9, 14: Disjoint unit squares

Problem of July 14, 16: Bin packing

Problem of July 21: MAX-SAT Problem of July 23: "Lost cow"

Problem of July 28: Paging


(Maintained by Timothy Chan)