Final Review
Pre-midterm material
Theoretical questions (~ 15%): Examples
- Formulate a specified problem, such as the Vertex Cover problem, as an integer linear program. Give its relaxation.
- Prove approximation factors or correctness of new algorithms that are presented.
- Given a problem and an approximation factor, give an algorithm with the specified approximation factor, prove its correctness and approximation factor, and give a tight example.
- Disprove statements, using counter-examples.
Post-midterm material
Applying algorithms (~ 60%): Examples
- Given a matrix, a vector, the number of processors, and the type of decomposition (1-D or 2-D), show the steps in parallel matrix-vector multiplication.
- Given a graph, write its Laplacian. Given a few eigenvectors for the Laplacian, choose the correct one and use it to partition the graph.
- Given two matrices, show the steps in the cache-aware matrix multiplication algorithm.
- Given a sequence of integers and a sequence of random numbers in
(0, 1)
, demonstrate the steps in the randomized quicksort algorithmRandQS
.- Given a sequence of integers and a sequence of random numbers in
(0, 1)
, demonstrate the steps in the randomized selection algorithmFind
.- Given a set of data and an orthogonal range query, give a range tree or layered range tree that represents it, and show the steps involved in searching that tree for the specified range query.
- Given a text, a pattern, and a modulus, show the steps taken by the Rabin-Karp algorithm in finding all the valid shifts.
- Given a text, a pattern, construct a DFA and show the steps taken by the finite-automaton based algorithm in finding all the valid shifts. Show the
sigma
function too.- Given a text, a pattern, construct the prefix function and show the steps taken by the KMP algorithm in finding all valid shifts.
- Given a flow network, show all the steps in computing the max-flow using the Ford-Fulkerson method, with breadth-first search used to find augmenting paths.
Theoretical questions (~ 25%)
- Given a parallel algorithm, analyze its time complexity, and give its speedup and efficiency.
- Given an problem and cache complexity, give an algorithm that solves the problem with the specified cache complexity under the ideal cache model. For example, matrix-vector multiplication with
O(n2/L)
cache complexity.- Analyze the time complexity of modifications to the randomized sorting and selection algorithms discussed in class.
- Given a modified version of the string-matching problem, such as a 2-D search, give modifications to the Rabin-Karp or other algorithms to solve the modified problem.
- Prove or disprove statements about properties of strings, such as lemma 32.1.
Notes:
- You should show steps in questions that ask you to use an algorithm.
- You should justify answers to theoretical questions.
- You may use facts that we have discussed in class, such as lemma 32.1, unless the question forbids it.
- The exam is closed book and closed notes.
- You may not use calculators, laptops, cell phones, etc. during the exam.
Weights
- Use algorithms: ~ 60 %
- Theoretical questions: ~ 40 %
Last modified: 5 Dec 2008