Practice Final Exam for CMPSCI 611, Fall 2005
CMPSCI 611: Graduate Theory of Algorithms
Practice Final Exam
David Mix Barrington
13 December 2005
Directions:
- Answer the problems on the exam pages.
- There are seven problems for 100 total points.
Probable scale is A=90, B=60.
- Problems 1-4 are true/false with justification.
Five points for the correct boolean answer, up to five for
justification. The truth of the answer should not depend
on unproved assumptions such as P ≠ NP, except as
explicitly specified in the statement.
- If you need extra space use the back of a page.
- No books, notes, calculators, or collaboration.
Q1: 10 points
Q2: 10 points
Q3: 10 points
Q4: 10 points
Q5: 15 points
Q6: 25 points
Q7: 20 points
- Question 1 (10):
(True or False with Justification) If any integer programming optimization
problem can be converted in polynomial time
to an equivalent linear programming problem, then
P = NP.
- Question 2 (10):
(True or False with Justification)
There is a polynomial-time randomized
algorithm for the CLIQUE decision problem that is always correct if there
is no clique and has a positive probability of being correct if there is
a clique.
- Question 3 (10):
(True or False with Justification)
Suppose that A is a polynomial-time randomized algorithm for Problem X,
whose "yes" answers are always correct, and that on any member of X, A
answers "yes" with probability at least 1/n2. Then there is
a polynomial-time randomized decision procedure B for X that is correct
with probability at least 3/4 on any input, and B may be built from A without
any unproven assumptions.
- Question 4 (10):
(True or False with Justification) If P ≠ NP, then the general
optimization problem TRAVELING-SALESPERSON has a poly-time approximation
algorithm with approximation factor 1.5.
- Question 5 (15):
We argued in lecture that the simplex algorithm takes only polynomial time
to move from one vertex to a neighboring vertex with a higher value of the
objective function. But we did not consider how many neighboring
vertices there might be for any given vertex. If there were very many,
there could be a problem as the algorithm might have to look at them all.
State and justify a polynomial upper bound on the number of neighbors a
vertex might have.
- Question 6 (25):
In this problem we consider the special case of BIN-PACKING where the bin
size is 1 and each item has weight greater than 1/3. Remember that
the BIN-PACKING problem is to input a set of items with weights and determine
a packing of them into the minimum possible number of bins.
- (a,5) Give a 3-approximation algorithm for this special case, and
argue that the bound holds for your algorithm.
- (b,10) Show how you can reduce this special case to the
MAXIMUM-MATCHING problem, where the input is an undirected graph and the
output is a matching with a maximum possible number of edges. Indicate how
you will deal with items in the BIN-PACKING problem that have size ≥ 2/3.
- (c,10) Give an O(n log n) time algorithm that solves this special case
exactly.
- Question 7 (20):
A set X of vertices in an undirected graph G is called a dominating set
if every vertex of G is either in X or at distance one from a vertex in X.
The DOMINATING-SET problem is the decision problem for the language
{(G,k): G is an undirected graph that has a dominating set of size k}.
Prove that DOMINATING-SET is NP-complete. (Hint: Reduce from VERTEX-COVER.)
Last modified 13 December 2005