- 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/n^{2}. 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