NP Reductions, Conp 1 More NP Reductions
Total Page:16
File Type:pdf, Size:1020Kb
Notes on Computer Theory Last updated: September, 2015 More NP reductions, coNP Dov Gordon, taken from Sipser [1], and Jonathan Katz 1 More NP reductions 1.1 SAT ≤p 3SAT We know that we can convert any formula φ into conjunctive normal form by using basic laws of Boolean algebra. However, we have to ensure that there is an efficient reduction, and, in general, the trivial mapping might blow up the number of clauses at an exponential rate. For example, consider (x1 ^ y1) _ (x2 ^ y2) _···_ (xn ^ yn). It is easy to see that this is equivalent to (x1 _ x2 _···_ xn) ^ (y1 _ x2 _···_ xn) ^ (x1 _ y2 _···_ xn) ^ (y1 _ y2 _ x3 _···_ xn) ^ · · · . This will have 2n clauses, though, so it is not a valid Karp reduction! Instead, we give a good Karp reduction, which can be found in pages 2-4 of these lecture notes. 1.2 3SAT ≤p SUBSET -SUM (Sipser, Chapter 7 [1]) The language SUBSET -SUM = f(S; t) j t 2 N ;S ⊆ N is a multi-set; 9Y ⊂ S; s.t. P y = tg yi2Y i We show a reduction from 3SAT by constructing the set S and the number t based on the formula φ over variables x1; : : : ; x` and clauses c1; : : : ; cn. For each variable xi 2 φ, we create two numbers (1) (2) yi ; yi 2 S, each with 2 parts: the left part (more significant digits) are identical, having a single (1) 1, followed by ` − i 0s. The right hand side of yi is n digits long, and has a 1 in the jth place (2) iff xi is found in clause cj. yi is defined similarly, but has a 1 in the jth place iff xi is found in clause cj. Every other digit is set to 0. In addition, for each clause cj, we add two more numbers (3) (4) to S: yj ; yi , each identical to one another, and each containing a 1, followed by n − j 0s. As an example, imagine we have φ = (x1 _ x2 _ x3) ^ (x2 _ x3 _··· ) ^ · · · ^ (x3 _···_··· ) Then we add the following set of numbers to our set S (see the table below). 1 1 2 3 4 ··· ` c1 c2 ··· cn (1) y1 1 0 0 0 ··· 0 1 0 ··· 0 (2) y1 1 0 0 0 ··· 0 0 0 ··· 0 (1) y2 1 0 0 ··· 0 0 1 ··· 0 (2) y2 1 0 0 ··· 0 1 0 ··· 0 (1) y3 1 0 ··· 0 1 1 ··· 0 (2) y3 1 0 ··· 0 0 0 ··· 1 . .. ··· . (3) y1 1 0 ··· 0 (4) y1 1 0 ··· 0 (3) y2 1 ··· 0 (4) y2 1 ··· 0 . .. (3) yn 1 (4) yn 1 t 1 1 1 1 ··· 1 3 3 ··· 3 We must prove two things: (1) (1) (2) (2) (3) (3) (4) (4) If φ 2 3-SAT, then (fy1 ; : : : ; y` ; y1 ; : : : y` ; y1 ; : : : ; yn ; y1 ; : : : ; yn g; t) 2 SUBSET-SUM (where t = 1`3n). Suppose we have some satisfying assignment to the variables of φ. We con- struct Y , a subset of S that adds up to t, as follows. For each i 2 f1; : : : ; `g, if xi is True in the (1) (2) satisfying assignment, then place yi in Y , and otherwise place yi in Y . Notice that we include exactly one of each, and so the sum of our elements in Y thus far is 1`, followed by some other values in the n least significant digits. Furthermore, because we know that we started with a satisfying assignment, every clause has at least one true literal in it, so we know that for each j 2 f1; : : : ng, the set Y includes at least one number with a 1 in the column labeled cj. On the other hand, the set Y will never include more than 3 numbers containing a 1 in column cj, because there are (1) (2) only 3 literals in each clause, and thus only 3 values among yi and yi containing a 1 in the jth column. We now add a few more numbers to our set Y : if we have exactly a single 1 above the (3) (4) line in column cj, we include both yj and yj in our subset. If we have two values of 1 above the (3) (3) horizontal line, we include only yj in our subset. If we have three values, we include neither yj (4) nor yj . The resulting subset adds up to exactly t. It remains to show that if there is some subset Y of S that adds up to t, then φ has a satisfying (1) assignment. For each i 2 f1; : : : ; `g, if yi 2 Y , set xi to True, and if not, set it to False. We claim that this constitute a valid assignment, and a satisfying assignment. To see that this is a (1) (2) valid assignment, note that for every i 2 f1; : : : `g, exactly one of yi and yi must appear in Y , or else the numbers cannot sum up to t (specifically, the first ` digits of the sum cannot possibly 2 ` be 1 ). Therefore, exactly one of xi andx ¯i will be set to True. To see that this is a satisfying assignment, note that for every j 2 f1; : : : ; ng, the subset Y must include at least one number (1) (1) (2) (2) among fy1 : : : ; y` ; y1 ; : : : ; y` g that has a 1 in the column labeled cj (or else that column could not add up to 3). Since this value appears in Y , its corresponding variable is assigned True, and jth clause is satisfied. 2 The Class coNP (Jonathan Katz) For any class C, we define the class coC as coC def= L j L¯ 2 C , where L¯ def= f0; 1g∗ n L is the complement of L. Applied to the class NP, we get the class coNP of languages where non- membership can be efficiently verified. In other words, L 2 coNP if there exists a Turing machine 1 ML and a polynomial p such that (1) ML(x; w) runs in time p(jxj), and (2) x 2 L iff for all w we have ML(x; w) = 1. Note why this (only) implies efficiently verifiable proofs of non-membership: a single w where ML(x; w) = 0 is enough to convince someone that x 62 L, but a single w where ML(x; w) = 1 means nothing. A coNP language is easily obtained by taking the complement of any language in NP. So, for example, the complement of IndSet is the language 8 9 < G does not have = NoIndSet = (G; k): : : an independent set of size k ; Let us double-check that this is in coNP: we can prove that (G; k) 62 NoIndSet by giving a set of k vertices that do form an independent set in G (this assumes the obvious verification algorithm); note that (assuming we use the obvious verification algorithm) we can never be \fooled" into believing that (G; k) is not in NoIndSet when it actually is. As another example, we have SAT 2 N P and SAT 2 coNP. Or, consider the language TAUT of tautologies: TAUT = fφ : φ is satisfied by every assignmentg: TAUT is also in coNP. The class coNP can also be defined in terms of non-deterministic Turing machines. This is left as an exercise. Note that P ⊆ N P \ coNP. (Why?) Could it be that NP = coNP? Once again, we don't know the answer but it would be surprising if this were the case. In particular, there does not seem to be any way to give an efficiently verifiable proof that, e.g., a boolean formula does not have any satisfying assignment (which is what would be implied by SAT 2 N P). Conjecture 1 N P 6= coNP. 3 Self-Reducibility and Search vs. Decision (Jonathan Katz) We have so far been talking mainly about decision problems, which can be viewed as asking whether a solution exists. But one often wants to solve the corresponding search problem, namely to find a solution (if one exists). For many problems, the two have equivalent complexity. 1See footnote ??. 3 Let us define things more formally. Say L 2 N P. Then there is some polynomial-time Turing machine M such that x 2 L iff 9w : M(x; w) = 1. The decision problem for L is: given x, determine if x 2 L. The search problem for L is: given x 2 L, find w such that M(x; w) = 1. (Note that we should technically speak of the search problem for L relative to M since there can be multiple non-deterministic Turing machines deciding L, and each such machine will define its own set of \solutions". Nevertheless, we stick with the inaccurate terminology and hope things will be clear from the context.) The notion of reducibility we want in this setting is Cook-Turing reducibility. We define it for decision problems, but can apply it to search problems via the natural generalization. Definition 1 Language L is Cook-Turing reducible to L0 if there is a poly-time Turing machine M such that for any oracle O0 deciding L0, machine M O0(·) decides L. (I.e., M O0(·)(x) = 1 iff x 2 L.) Note that if L is Karp-reducible to L0, then there is also a Cook-Turing reduction from L to L0. In general, however, the converse is not believed to hold.