NPC More NP-Complete Problems Complexity ©D.Moshkovitz 1 Introduction • Objectives: – To introduce more NP-Complete problems. • Overview: – 3SAT – CLIQUE & INDEPENDENT-SET – SUBSET-SUM Complexity ©D.Moshkovitz 2 Method • How to show a problem is in NPC? – First show it’s in NP – Then show it is NP-hard by reducing some NP-Hard problem to it. Complexity ©D.Moshkovitz 3 New Base Problems • The only NP-Complete problem we currently know of is SAT. • Unfortunately, it’s not very comfortable to work with. • Thus we’ll start by introducing several useful variants of SAT. • We’ll use them as our base problems. Complexity ©D.Moshkovitz 4 3SAT Instance: a 3CNF formula Problem: To decide if the formula is satisfiable. A satifiable 3CNF formula (xyz)(xyz) An unsatifiable 3CNF formula (xxx)(xxx) Complexity ©D.Moshkovitz 5 SIP 259-260 3SAT is NP-Complete • 3SAT is a special case of SAT, and is therefore clearly in NP. • In order to show it’s also NP-Complete, we’ll alter the proof of SAT’s NPCompleteness, • so it produces 3CNF formulas. Why would that be enough? Complexity ©D.Moshkovitz 6 Revisiting SAT’s NPCompleteness Proof Given a TM and an input we’ve produced a conjunction of: φcell xi,j,s (xi,j,s xi,j,t ) s tC 1i,jnk sC φstart x1,1,# x1,2,q0 x1,3,w1 ... x1,n2,_ ... x1,nk 1,_ x1,nk ,# φmove k x 1i,jn legal a ,...,a 1 6 φaccept Complexity ©D.Moshkovitz i1,j,a1 1i,jn k ... xi1,j1,a6 xi,j,qaccept 7 Transforming the Formula into a CNF Formula • All the sub-formulas, but move, form a CNF formula. • Using the distributive law we can transform move into a conjunction of clauses. • The formula stays succinct (check!). Complexity ©D.Moshkovitz 8 CNF 3CNF (xy)(x1x2... xt)... clauses with 1 or 2 literals replication (xyx) Complexity ©D.Moshkovitz clauses with more than 3 literals split (x1 x2 c11)(c11 x3 c12)... (c1t-3 xt-1xt) 9 3SAT is NP-Complete • Since we’ve shown a reduction from any NP problem to 3SAT, • and 3SAT is in NP, • 3SAT is NP-Complete. Complexity ©D.Moshkovitz 10 CLIQUE Instance: A graph G=(V,E) and a threshold k. Problem: To decide if there is a set of nodes C={v1,...,vk}V, s.t for any u,vC: (u,v)E. Complexity ©D.Moshkovitz 11 CLIQUE is in NP On input G=(V,E),k: • Guess C={v1,...,vk}V • For any u,vC: verify (u,v)E • Reject if one of the tests fail, accept otherwise. The length of the certificate: O(n) (n=|V|) Time complexity: O(n2) Complexity ©D.Moshkovitz 12 SIP 251-253 CLIQUE is NP-Complete Proof: We’ll show 3SATpCLIQUE. (.. .. ..) ... (.. .. ..) Complexity ©D.Moshkovitz ≤p 13 The Reduction for any clause () |V| = formula’s length K= no. of clauses connected iff Complexity ©D.Moshkovitz 14 Proof of Correctness NOT connected! 1 . . . a clique of size k must contain one node from every layer. k Complexity ©D.Moshkovitz 15 Correctness given a k-clique, assign x TRUE or FALSE according to whether x or x is in the clique; this satisfies the formula (.. .. ..) ... (.. .. ..) . . . given a satisfying assignment, a set comprising of one satisfied literal of each clause forms a k-clique. Complexity ©D.Moshkovitz 16 INDEPENDENT-SET Instance: A graph G=(V,E) and a goal k. Problem: To decide if there is a set of nodes I={v1,...,vk}V, s.t for any u,vI: (u,v)E. Complexity ©D.Moshkovitz 17 INDEPENDENT-SET NP On input G=(V,E),k: • Guess I={v1,...,vk}V • For any u,vC: verify (u,v)E • Reject if one of the tests fail, accept otherwise. The length of the certificate: O(n) (n=|V|) Time complexity: O(n2) Complexity ©D.Moshkovitz 18 INDEPENDENT-SET is NPC Proof: By the previous claim and a trivial reduction from CLIQUE. there’s a clique of size k in a graph Complexity ©D.Moshkovitz there’s an IS of size k in its complement 19 SUBSET-SUM Instance: A multi-set of numbers denoted S and a target number t. Problem: To decide if there exists a subset YS, s.t yYy=t. Complexity ©D.Moshkovitz 20 SUBSET-SUM is in NP On input S,t: • Guess YS • Accept iff yYy=t. The length of the certificate: O(n) (n=|S|) Time complexity: O(n) Complexity ©D.Moshkovitz 21 SIP 269-271 SUBSET-SUM is NPComplete Proof: We’ll show 3SATpSUBSETSUM. (.. .. ..) ... (.. .. ..) Complexity ©D.Moshkovitz ≤p 22 Satisfying Clauses digit per clause c1 c2 …… ck number per variable xi assigned true: yi number per variable xi assigned false: zi 1 if xi is in cj 1 if xi is in cj 0 otherwise 0 otherwise Complexity ©D.Moshkovitz 23 Achieving Target digit per clause c1 c2 …… ck 0<d<4 target: Complexity ©D.Moshkovitz 24 Achieving Target digit per clause c1 c2 …… ck 1 target: Complexity ©D.Moshkovitz 1 3 25 Achieving Target c1 c2 … c k y1 1 0 0 z1 0 0 0 … ... Alas, a subset may contain both yi and zi Complexity ©D.Moshkovitz yl 1 0 1 zl 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 3 3 3 ... 26 Imposing Assignment Consistency c1 c2 … c k y1 1 0 0 z1 10 0 0 … ... yl 1 0 0 1 zl 1 0 0 1 10 1 0 0 1 0 0 0 0 1 0 0 1 3 3 3 ... Complexity ©D.Moshkovitz 1 1 1 27 Succinctness l k 2l 2k Complexity ©D.Moshkovitz 28 Completeness • If there is a satisfying assignment, a subset hitting the target is as follows: – If the i-th variable is assigned TRUE, take yi, else take zi. 1 in the leftmost l digits – Add as many auxiliary numbers as needed. Complexity ©D.Moshkovitz satisfiability 3 in the rightmost k digits 29 Soundness • If there is a subset that sums up to the target, construct an assignment as follows: – If yi is in the subset, assign TRUE to the i-th variable. – If zi is in the subset, assign FALSE to the i-th variable. Complexity ©D.Moshkovitz 30 Observation: No Carry • All digits are either 0 or 1. • Each column contains at most five 1’s. • Hence, a “carry” into the next column never occurs. Complexity ©D.Moshkovitz 1 0 1 0 c1 c2 … ck 0 1 0 0 y1 0 0 0 0 z1 … 0 0 1 1 0 1 0 0 1 1 1 1 0 0 z l 0 1 0 0 0 0 1 0 0 1 3 3 3 1 1 1 yl 31 Consistency • Thus, to get 1 in the leftmost l digits, our subset necessarily contains either yi or zi (Not both!). Complexity ©D.Moshkovitz 1 0 1 0 c1 c2 … ck 0 1 0 0 y1 0 0 0 0 z1 … 0 0 1 1 0 1 0 0 1 1 1 1 0 0 z l 0 1 0 0 0 0 1 0 0 1 3 3 3 1 1 1 yl 32 Satisfiablity • In each column, at most 2 can come from the auxiliary numbers, so all clauses are satisfied. Complexity ©D.Moshkovitz 1 0 1 0 c1 c2 … ck 0 1 0 0 y1 0 0 0 0 z1 … 0 0 1 1 0 1 0 0 1 1 1 1 0 0 z l 0 1 0 0 0 0 1 0 0 1 3 3 3 1 1 1 yl 33 Summing Up 1. SUBSET-SUM is in NP 2. 3SATpSUBSET-SUM 3. Thus SUBSET-SUM is NP-Complete Complexity ©D.Moshkovitz 34 Summary • In this lecture we’ve added many new problems to our NPC “bank”. • Interestingly, NPC contains over 1000 different problems ! Complexity ©D.Moshkovitz 35 Appendix Complexity ©D.Moshkovitz 36 Dictionary negation: not () conjunction: and () literal: (negated or not) Boolean variable disjunction: or () Examples: x, x clause: several literals connected with Example: (xyz) CNF (Conjunctive Normal Form): several clauses connected with Example: (x y)(xyz) 3CNF: a CNF formula with three literals in each clause. Example: (xyz)(xyz) Complexity ©D.Moshkovitz 37