Final Review
Pre-midterm material
Theoretical questions (~ 25%): Examples
- Formulate a specified problem, such as the Vertex Cover problem, as an integer linear program. Give its relaxation and its dual.
- Given a problem, give a good bound on an optimal solution.
- Prove approximation factors or correctness of new algorithms that are presented, such as problem 3 in HW 2 (HW2 does not ask you to prove these, but you should be able to).
- Give tight examples for new algorithms that you are given, such as problem 3 in HW 2.
- Prove any properties that you are asked to prove!
- Disprove statements, using counter-examples.
- Given a randomized algorithm, derandomize it to yield a deterministic algorithm that performs at least as well as the expected behavior of the randomized one.
Post-midterm material
Use algorithms (~ 50%): 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 algorithm RandQS.
- Given a sequence of integers and a sequence of random numbers in
(0, 1)
, demonstrate the steps in the randomized selection algorithm Find.
- Given a set of data and an orthogonal range query, determine a 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.
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 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.
Weights
- Use algorithms: ~ 50 %
- Theoretical questions: ~ 50 %
Last modified: 20 Feb 2005