Advanced Topics in Algorithms (6 weeks) Algorithmic paradigms with applications: greedy algorithms with applications to scheduling and dynamic programming with applications to matrix-chain multiplication and the longest-common subsequence problem. Pattern-matching algorithms including the Knuth-Morris-Pratt algorithm. String algorithms. Text compression including Huffman coding and Lempel-Ziv Welch compression. NP-Completeness (1 week) NP-completeness including a detailed look at polynomial-time reductions, showing that several problems are NP-complete: 3-Conjuctive Normal Form Satisfiability, Clique, Vertex Cover, and Subset Sum. Approximation Algorithms and Complexity (2 weeks) Optimisation problems. The complexity class NPO. Methods for designing efficient approximation algorithms, and for showing that some problems do not have efficient approximation algorithms (assuming P is not NP). The design of absolute approximation algorithms. The study of some problems (for ex
ample, planar graph colouring and edge colouring) for which there are absolute approximation algorithms. Showing that Maximum Clique does not have an absolute approximation algorithm. Constant-factor approximation algorithms. Sequential vs. parallel algorithms (1 week) Introduction to parallel algorithmics and its relations to sequential computations. The complexity classes NC and P. How to compute things faster in parallel and solve larger problems without resorting to larger computers; what kind of parallel speedup is required and whether a problem is amenable at all to a parallel attack. Selected Further Topics: Selected topics may vary from year to year, drawn from (for example): Algorithms for finding maximum matchings in bipartite graphs, Algorithms for finding maximum matchings in general graphs, the proof of the Cook-Levin Theorem, Randomised Algorithms, advanced topics in complexity theory, number-theoretic algorithms and computational geometry. The complexit
y class APX. The study of several problems (Multiprocessor Scheduling, Minimum Vertex Cover and Maximum Satisfiability) in APX. How to show that a problem is not in APX,assuming P is not NP. The complexity class PTAS. The design of a PTAS for MultiProcessor Scheduling and Knapsack. How to show that a problem does not have a PTAS, assuming P is not NP. Hardness of approximation for Maximum Clique.
|