Final Review

Pre-midterm material

  • Theoretical questions (~ 15%): Examples

    1. Formulate a specified problem, such as the Vertex Cover problem, as an integer linear program. Give its relaxation.
    2. Prove approximation factors or correctness of new algorithms that are presented.
    3. 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.
    4. Disprove statements, using counter-examples.

    Post-midterm material

    Applying algorithms (~ 60%): Examples

    1. 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.
    2. Given a graph, write its Laplacian. Given a few eigenvectors for the Laplacian, choose the correct one and use it to partition the graph.
    3. Given two matrices, show the steps in the cache-aware matrix multiplication algorithm.
    4. Given a sequence of integers and a sequence of random numbers in (0, 1), demonstrate the steps in the randomized quicksort algorithm RandQS.
    5. Given a sequence of integers and a sequence of random numbers in (0, 1), demonstrate the steps in the randomized selection algorithm Find.
    6. 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.
    7. Given a text, a pattern, and a modulus, show the steps taken by the Rabin-Karp algorithm in finding all the valid shifts.
    8. 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.
    9. Given a text, a pattern, construct the prefix function and show the steps taken by the KMP algorithm in finding all valid shifts.
    10. 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%)

    1. Given a parallel algorithm, analyze its time complexity, and give its speedup and efficiency.
    2. 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.
    3. Analyze the time complexity of modifications to the randomized sorting and selection algorithms discussed in class.
    4. 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.
    5. Prove or disprove statements about properties of strings, such as lemma 32.1.

    Notes:

    1. You should show steps in questions that ask you to use an algorithm.
    2. You should justify answers to theoretical questions.
    3. You may use facts that we have discussed in class, such as lemma 32.1, unless the question forbids it.
    4. The exam is closed book and closed notes.
    5. You may not use calculators, laptops, cell phones, etc. during the exam.

    Weights


    Last modified: 5 Dec 2008