Computer Science 284/484
Advanced Algorithms
Spring 2016
Instructor: Daniel Stefankovic
Class: Tuesday, Thursday 12:30pm-13:45pm, Wilmot 116.
Instructor office hours (CSB 620): Tuesday, Thursday 2pm-3pm, CSB 620, or by appointment.
TAs:
Zahra Razavi (srazavi@cs.rochester.edu) and
Hassler Thurston (jthurst3@u.rochester.edu)
TA office hours (CSB 631): Monday 5pm-6pm, Wednesday 5pm-6pm, or by appointment.
Textbooks: there is no required textbook; see each section for the recommended reading (mostly online; I will also supply handouts).
Other resources/recommended reading (most on a 2 hour reserve in the library):
- [CLRS09] Introduction to Algorithms (3rd edition), T. Cormen, C. Leiserson, R. Rivest, and C. Stein, 2009.
- [K91] The Design and Analysis of Algorithms, D. Kozen, 1991.
- [KT05] Algorithm Design, J. Kleinberg and E. Tardos, 2005.
- [AHU74] The Design and Analysis of Computer Algorithms, A. Aho, J. Hopcroft, J. Ulman, 1974.
- [MU05] Probability and Computing: Randomized Algorithms and Probabilistic Analysis, M. Mitzenmacher, E. Upfal, 2005.
- [MR95] Randomized Algorithms, R. Motwani, P. Raghavan, 1995.
- [H02] Finite Markov chains and algorithmic applications, O. Häggström, 2002.
- [G97] Counting, sampling and integrating: algorithms and complexity, M. Jerrum, 2003.
- [WS11] The Design of Approximation Algorithms, D.Williamson, D. Shmoys, 2011
- [V04] Approximation Algorithms, V. Vazirani, 2004.
- [BE98] Online Computation and Competitive Analysis, A. Borodin, R. El-Yaniv, 1998.
- [M05] Data Streams: Algorithms and Applications, S. Muthukrishnan, 2005.
- [BCKO08] Computational Geometry: Algorithms and Applications, M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, 2008.
- [G97] Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology, D. Gusfield, 1997.
Prerequisites: CSC282.
Schedule
TOPIC 1: Randomized algorithms introduction
Jan. 14 Th - Basics of probability theory I.
Jan. 19 Tu - Basics of probability theory II.
Jan. 21 Th - Monte Carlo
TOPIC 2: Streaming algorithms
Jan. 26 Tu - Distinct elements.
Jan. 28 Th - Sketching.
Feb. 2 Tu - Frequency moments.
TOPIC 3: Markov Chains
Feb. 4 Th - Random walks, cover time, hitting time.
Feb. 9 Tu - Markov chains I (basics: stationary distribution, detailed balance condition, ergodicity)
Feb. 11 Th - Markov chains II (mixing time)
Feb. 16 Tu - Markov chains III (bounds on mixing time)
Feb. 18 Th - Markov chains IV (coupling from the past)
Feb. 23 Tu - MIDTERM I (covering topics 1,2,3)
TOPIC 4: Geometric algorithms
Feb. 25 Th - Sweep method; line-segment intersections.
Mar. 1 Tu - Convex hulls I.
Mar. 3 Th - Convex hulls II.
Mar. 8 Tu - SPRING BREAK
Mar. 10 Th - SPRING BREAK
TOPIC 5: String Algorithms
Mar. 15 Tu - String algorithms - introduction.
Mar. 17 Th - Suffix trees I.
Mar. 22 Tu - Suffix trees II.
Mar. 24 Th - Suffix arrays.
TOPIC 6: Optimization
reading: chapter 29 in [CLRS09], chapters 21 and 26 in [V04].
Mar. 29 Tu - Linear Programming.
Mar. 31 Th - Semidefinite programming (Max Cut).
Apr. 5 Tu - Metric Embeddings.
Apr. 7 Th - Sparsest Cut.
Apr. 12 Tu - MIDTERM II (covering topics 4,5,6)
TOPIC 7: Fun (not covered on exams)
Apr. 14 Th - TBD
Apr. 19 Tu - TBD
Apr. 21 Th - TBD
Apr. 26 Tu - TBD
Grading
The
grade for the course is the combination of the
exam grade (two midterms; no final) and the
homework grade (theoretical
and applied).
Homework Rules
- Theoretical homework is collected on the due date, before class.
- Applied (implementation) homework should be emailed to both TA and the instructor by the deadline (specific for each assignment).
- No late homework will be accepted without instructor's
permission (a permission must be requested at least 24 hours
before the due date).
- You may work with other people on the theoretical
homework, but you must each write up your solutions separately
(without any written aid). If you work with other people, indicate
who you worked with on your solution.
- You must work alone on the applied (implementation) homework. Do not discuss the problem
with anybody (except me), do not search for a solution online, do not use any written material
when writing any part of the code (for example, no copy-paste, no open textbook
when writing code, no reediting of an old source file from an old project, etc).
Test Rules
- All tests are closed book. No text
or notes, no scratch paper allowed.
This course follows
The University Policy on Academic Honesty .