There are three questions for 100 total points. They are based on lectures 16-18, and thus on Chapter 7 of the Adler notes.
Students are responsible for understanding and following the academic honesty policies indicated on the course main page.
Problem numbers corrected 10 Nov 2005.
Edits in purple made 15 Nov 2005.
Problem 4.1 (20): A boolean circuit may alternatively be defined as a straight-line program, a sequence of assignment statements s1,..., st where each si assigns the variable yi to the AND or OR of two variables, or the NOT of a variable. These variables must be either input variables or variables yj with j < i. A straight-line program computes a boolean function of its n boolean inputs, given by the last variable yt.
A straight-line program is defined to be satisfiable if there is at least one setting of the input variables making it return "true". The language CIRCUIT-SAT is the set of straight-line programs that are satisfiable. One version of the Cook-Levin Theorem says that CIRCUIT-SAT is NP-complete. Using this version only, prove that 3-SAT is NP-complete. Briefly explain why 3-SAT is in NP, then construct a poly-time reduction from CIRCUIT-SAT (as defined here) to 3-SAT.
Problem 4.2 (35): Recall that the MAX-CUT problem takes an undirected graph G and a number k as input, and returns whether there is a cut in G of size at least k.
Problem 4.3 (45): Let A be a problem in NP, defined so that for any string x, x is in A iff ∃y:(x,y)∈B, where B is poly-time decidable. Furthermore, B has the property that (x,y) can be in B only if |y| = f(|x|), where f is a poly-time computable function.
Define the language C to be the set of all pairs (x,y) such that there exists a string z such that (x,yz) is in B. That is, C contains x and a partial witness for x, a string that can be extended to prove that x is in A.
(This problem originally incorrectly talked about reductions to B. Since B is in P, such reductions don't exist unless P = NP.
Last modified 15 November 2005