Course Code: CS503
Course Name: Randomized Algorithms
Prerequisites: CS204, MA203
Syllabus: Random numbers: Properties of a random sequence. Generating uniform random numbers: the linear congruential method and others. Statistical tests for random numbers: Chi-square test, Kolmogorov-Smirnov test, empirical / theoretical / spectral tests. Non-uniform random sequences. Tools and techniques of randomized algorithmics: game theoretic techniques, moments and deviations, tail inequalities, the probabilistic method: Lovasz Local Lemma, Markov chains and random walks, algebraic techniques. Applications: Data structures, hashing, linear programming, computational geometry problems, graph problems, approximate algorithms, parallel and distributed algorithms, cryptography, online algorithms. Derandomization techniques.
References: 1. R. Motwani and P. Raghavan, Randomized Algorithms, Cambridge University Press, 1995.
2. D. E. Knuth, The Art of Computer Programming, 3rd Ed, Vol 2, Seminumerical Algorithms, Addison-Wesley, 1998.
3. W. Feller, An Introduction to Probability Theory and its Applications, Vol 1, Wiley Eastern, 1968.