Princeton University
Computer Science Department

Computer Science 521
Advanced Algorithm Design

Robert Tarjan

Fall 2009


Directory
Course News Section

Course Summary


Administrative Information

Lectures: MW 1330-1450, Room: 302

Professor: Robert Tarjan - 324 CS Building - 258-4797 ret@cs.princeton.edu Also: prof.tarjan@gmail.com

Graduate Coordinator: Melissa Lawson - 310 CS Building - 258-5387 mml@cs.princeton.edu

Course Secretary: Mitra Kelly -323 CS Building - 258-4562 mkelly@cs.princeton.edu

Useful Information

Related courses at other institutions:

Advanced Algorithms, MIT: Advanced Algorithms 6.854 Course Website
Advanced Data Structures, MIT: Advanced Data Structures 6.851 Course Website
Advanced Algorithms, CMU: Advanced Algorithms 15-859(E) Course Website
Algorithms in the Real World, CMU: Algorithms in the "Real World" Course Website



Assignments

Problem Set 1: Due Wed Sept. 30 for full credit, no collaboration Wed Oct. 7 for credit, collaboration allowed
Problem Set 2: Due Wed Oct. 19 Collaboration Allowed on 1 and 2, not on 3 (Note new Due Date)
Problem Set 2 Clarification
Problem Set 3: Due Wed Oct. 28th
Problem Set 4: Due Wed Dec 2nd
Final Project: Due Dates are as follows- Project Proposal, a 1/2-1 page summary of your topic, due on Monday, Dec. 14 Completed project, due on Dean's Date, Tuesday, January 12
Problem Set 5: Due Wed Dec 16th

Lecture Topics and Related Materials




Date
Topic
Readings
Monday 9/21
Balanced Binary Search Trees Rank-Balanced Trees
Link


Rank-Balanced Trees (powerpoint slides)
Link

Wednesday 9/23
Deletion Without Rebalancing? and Other Questions
Monday 9/28
Unequal access in search trees; fingers, bias, caching, self-adjustment For material on splay trees, see COS 423 Spring 2009 2/11 lecture
Link
Wednesday 9/30
Heaps (Priority Queues)
Monday 10/4
Pairing Heaps and Rank-Pairing Heaps The Pairing Heap: A New Form of Self-Adjusting Heap
link


Rank Pairing Heaps
Link

Wednesday 10/07
Directed Graphs: Cycle Detection, Topological Ordering, and Strong Components Path-based depth-first search for strong and biconnected components
link

Monday 10/12
Incremental Cycle Detection A New Approach to Incremental Cycle Detection
link
Wednesday 10/14
Incremental Cycle Detection/Dynamic Connected Components Poly Logarithmic Deterministic Fully-Dynamic Algorithms for Connectivity, Minimum Spanning Tree, 2-Edge, and Bioconnectivity
link
Monday 10/19
Dynamic Connected Components
Monday 10/26
Minimum Spanning Trees in Linear Time Notes On Minimum Spanning Trees
link


A Randomized Linear-Time Algorithm to Find Minimum Spanning Trees
Link

Wednesday 10/28
Verification of Minimum Spanning Trees A Simpler Minimum Spanning Tree Verification Algorithm
link


Linear Verification For Spanning Trees
Link

Monday 11/09
Hashing Cuckoo Hasing
link


Cuckoo Hashing for Undergraduates
Link


Storing A Sparse Table with 0(1) Worst Case Access Time
Link


Universal Classes of Hash Functions
Link


Wednesday 11/11
Hashing II Efficient Hashing with Lookups in two Memory Accesses
Link


Balanced allocation and dictionaries with tightly packed constant size bins
Link


Space Efficient Hash Tables with Worst Case Constant Access Time
Link


Monday 11/16
Network Routing Universal Schemes for Parallel Communication
link

Wednesday 11/18
Network Routing II Notes on Routing in Regular Networks
Link

Monday 11/23
Analysis of Randomized Routing Chernoff Bounds Lecture 10
Link


Chernoff: Probability and Computing
Link


Wikipedia: Chernoff Bound
Link


Wednesday 11/25
Graph Matching An n5/2 Algorithm for maximum Matchings in Bipartite Graphs
Link

Monday 11/30
Nonbipartite Matching, Vertex Covers, Linear Programming Notes on Edmonds' Incredible Shrinking Blossom Algorithm for General Matching
Link


Paths, Trees and Flowers
Link


Wednesday 12/2
Shortest Paths Scaling Algorithms for the Shortest Paths Problem
Link

Monday 12/7
The Assignment Problem and the Maximum Flow Problem Faster Scaling Algorithms for Network Problems
Link


Beyond the Flow Decomposition Barrier
Link


A Riff* on the Goldberg-Rao Maximum Flow Algorithm
Link