Practice Final Exam for CMPSCI 611, Fall 2005

# Practice Final Exam

### 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.)