Combinatorial Algorithms and Data Structures
Spring 2004
Announcements
Sample Final Questions are up!
Kamalika's Office Hours this week are from 1-2, Tuesday.
Final has been postponed to Thursday, 5/13 at 310/320 Soda.
Final is closed-notes, but you are allowed to bring at most three sheets of notes with you, written on both sides.
Sample Final Questions will be up on Saturday, May 8
Homework 2 solutions are up! Please pick up graded homeworks from TA's office (581 Soda)
Kamalika's Office Hours this week have been moved to Monday, 4-6.
The Final is on May 11, 6:00-8:30pm
Project Reports are due on April 27th. Each project report should be 5-10 pages, and each project should involve at least 20-40 hours of work. If you have more questions about the report, please consult the professor or the TA.
Please pick up graded Homework 1 from TA's office (581 Soda), if you haven't done so already.
Homework 2 is due on TUESDAY, Apr 13
Homework 2: Problem 7 (c) is OPTIONAL.
Clarification on Homework 2: In Problem 7 (c), assume both \alpha and x are members of the finite field GF(2^m). \alpha x means multiplying the two field elements \alpha and x.
Homework 2 Updated. Problem 5 (a) should say H(p)n, not log H(p) n.
Homework Updated. 1/11, 10:25, get new copy, now. Problem 3(b)
should ask about iterations not "time."
Please use this template for writing scribe notes.
Homework
1
Homework
2
Sample Final Questions
Course Staff
Satish Rao (satishr@cs.berkeley.edu)
Office Hours: 11-12 MW.
Kamalika Chaudhuri (kamalika@cs.berkeley.edu)
Office Hours: 4-6 T (581 Soda).
Scheduling
The class will meet on Tuesdays and Thursdays 11:00-12:30 in
Soda 306.
Assessment
Your grade will be based 40% on homework (perhaps sampled when graded), 25% on the project, 25%
on the final, and 10% on lecture notes.
Homeworks
Homework
1 (due Thursday, Feb 19)
Homework 2
Sample Final Questions
Notes
For now please goto the previous version of this course. We
are following that outline pretty close up to this point.
The previous sites are here. Spring 2003, Fall 2001 .
Refences
For notes on the coding theory lectures, please refer to the notes
here .
You can also look at the notes for a
class taught by
Daniel Spielman at MIT. Look at the notes for 10/20 to 10/27 for this section.
For notes on PCP, please refer (for now) to the notes for a class taught by Madhu Sudan at MIT, and lectures on PCP by Luca Trevisan (starting on Page 117).
Scribe Notes
Lecture 1 (Jan 20, SAT)
Lecture 2 (Jan 22, 2-SAT, DFS and Strong Connectivity)
Lecture 3 (Jan 27, BFS and Shortest Paths)
Lecture 4 (Jan 29, Max Flows and Min Cut, Blocking Flows)
Lecture 5 (Notes 1) (Feb 3, Max flows)
Lecture 6 (Feb 5, Linear Programming, Simplex Algorithm)
Lecture 7 (Feb 10, LP formulation of max-flow, LP Duality and Game Theory)
Lecture 8 (Feb 12, More on max-flows)
Lecture 9 (Feb 17, Seidel's Algorithm, Recurrences, FFT)
Lecture 10 (Feb 22, FFT)
Lecture 11 (Feb 24, Balls and Bins Analysis)
Lecture 12 (Feb 26, Dynamic Programming)
Lecture 13 (draft) (Mar 2, More on Dynamic Programming)
Lecture 14 (draft) (Mar 4, Introduction to Error correction Codes)
Lectures 15, 16 (More on Coding Theory)
Old scribe notes for these lectures are here. ( Coding Theory 1 )
( Coding Theory 2)
Lecture 17 (Mar 16, Coding Theory - Linear Codes)
Lecture 18 (Mar 18, High Dimensional Geometry)
Lecture 19 (Mar 30, Introduction to NP)
Lecture 20 (Apr 1, NP-Completeness)
Lecture 21 (Apr 6, More NP-Completeness Reductions)
Lecture 22 (draft) (Apr 8, Approximation Algorithms)
Lecture 23 (Apr 13, More on Approximation Algorithms)
Lecture 24 (draft) (Apr 15, PCP)
Lecture 25 (draft) (Apr 20, More on PCPs)
Lecture 26 (draft) (Apr 22, More on PCPs)
Lecture 27 (draft) (Apr 27, More on PCPs)
Lecture 28 (Apr 29, Approximation Algorithms using LP)
Lecture 29 (May 4, Digital Cash)
Lecture 30 ( Notes 1 )
( Notes 2 )
(May 6, Bloom Filters)
Course Outline
There is a significant dynamic component to the course, as
topics drop in and out, or get longer or shorter treatment,
depending on audience interest/reaction/resistence. We consider
this a feature. Given this, here is a
rough outline (notice how detailed and accurate it is for the first
ten lectures!-):
Lectures 1-2: Introduction and SAT,
depth-first search, strongly connected componnents, graph
structure. References: Any algorithms book like [CLR].
Lectures 3-4-5 :
Shortest paths (Dijkstra, negative edges,
transitive closure) and maximum flows (max-flow min-cut, duality and
linear programming, preflow-push algorithm). Reference: [CLR],
book by [Papadimitriou and Steiglitz], book (and handout) by
[Ahuja, Magnanti, and Orlin].
Lectures 6-7-8 : Linear Programming. Algorithms;
simplex, Seidel's, interior point.
Lectures 9-10 : Randomized algorithms for min cuts,
fingerprinting, polynomial equivalence. Reference: Book (and handout)
by [Motwani and Raghavan].
Lectures 11-12-13 :
Divide-and-conquer, mostly with geometric applications, but also
sorting, selection, duplicate detection. Reference: [CLR].
Lectures 14-15-16 Dynamic programming.
Reference: [CLR].
Lectures 17-18 NP-completeness.
Reference: [CLR].
Lectures 19-20-21
Heuristics (Approximation algorithms, branch-and-bound and backtracking, local search and
simulated annealing, etc.). Reference: [CLR], book by
[Hochbaum], book (and handout) by [Lewis and Papadimitriou]
Lectures 22 PCP Application and Theorem.
Lectures 23-24-25-26-27 Other topics. Possiblities
include coding theory, chernoff bounds, balls in bins anaylsis, fft.
Project
presentations. During the last weeks of the class we shall present a
selection of the projects, and lead the class in addressing questions related to
them.