UW Logo

CS 466/666, Spring 2007

Advanced Algorithms

(link to CS466/666, Fall 2006)


Instructor:

Timothy Chan (DC2107, x36941, tmchan "at" cs, office hrs: MF 3:35-4:30)

Meeting Time/Place:

MWF 12:30-1:20, MC4042

TAs:

Peyman Afshani (DC3550, x37528, pafshani "at" cs, office hrs: Tues 12:00-1:30)

References:

There is no required textbook for this course. The following references have been placed on reserve in DC (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]

Course Work:

General Policies
A1 (out May 9; due May 23 Wed noon)
A2 (out May 23; due June 6 Wed noon)
Midterm (June 12 Tue 7:00pm-9:00pm, MC4063)
A3 (out June 13; due June 27 Wed noon)
A4 (out June 27; due July 11 Wed noon) [PDF file]
A5 (out July 11; due July 25 Wed noon) [PDF]
Final exam (August 15 Wed 9:00am-11:30am, RCH 204)
Project for CS666 students (due August 15 Wed 5pm)

[Solutions will be made available in the DC library (UWD 1898)]

Announcements:

(Important announcements will be posted here.)

6/15: CS666 project guidelines are now available---see the link above.

Alex Lopez-Ortiz will be giving the lecture on 6/22 (new topic: approximation algorithms), as I'll be away (in particular, my Friday office hour on that day will be cancelled).

6/24: In A3 Q1a, the last sentence should read: "Prove that if L_1 and L_2 are not identical up to reordering, then the probability that F_x(L_1) = F_x(L_2) is at most (n-1)/p."

7/2: In A4 Q1, the definition of splitters is messed up: the subset S should instead satisfy the property that each A_i intersects both S and the complement of S. In other words, S \setminus A_i should be A_i \setminus S. Similarly, P \setminus A_i should be A_i \setminus P.

7/17: In A5 Q2c, line 3 should read "if Z >= X and Z >= Y". Similar changes for line 8 as well.

8/9: A5s have been marked. They can be picked up during my office hours (Friday 3:30-4:30 and Monday 3:30-4:30).

Newsgroup:

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

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 2, 4: Finding triangles in graphs

Problem of May 4, 7, 9, 11: Convex hulls in 2D

Problem of May 14, 16, 18: Minimum (dynamically!)

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

Problem of May 30: Primality testing

Problem of June 1: String matching

Problem of June 4, 6: AND/OR tree evaluation

Problem of June 8: Median

Problem of June 15: Smallest enclosing circle

Problem of June 18, 20: Satisfiability

Problem of June 22: Vertex cover (by Prof. Lopez-Ortiz)

Problem of June 25, 27: Traveling salesman (metric case)

Problem of June 29: Disjoint unit squares

Problem of July 4, 6: Bin packing

Problem of July 9, 11, 13: Maximum cut

Problem of July 16, 18: "Lost cow"

Problem of July 18, 20, 23: Paging

Problem of July 25, 27: List update


(Maintained by Timothy Chan)