1. 2 Lecture outline Basic definitions: Basic definitions: P, NP complexity classes P, NP complexity classes the notion of a certificate. the notion of.

Slides:



Advertisements
Similar presentations
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
Advertisements

Complexity Classes: P and NP
Department of Computer Science & Engineering
NP-complete and NP-hard problems Transitivity of polynomial-time many-one reductions Concept of Completeness and hardness for a complexity class Definition.
The Theory of NP-Completeness
Umans Complexity Theory Lectures Lecture 2a: Reductions & Completeness.
Complexity 25-1 Complexity Andrei Bulatov #P-Completeness.
Complexity 12-1 Complexity Andrei Bulatov Non-Deterministic Space.
Complexity 15-1 Complexity Andrei Bulatov Hierarchy Theorem.
Complexity 11-1 Complexity Andrei Bulatov Space Complexity.
Computability and Complexity 13-1 Computability and Complexity Andrei Bulatov The Class NP.
February 23, 2015CS21 Lecture 201 CS21 Decidability and Tractability Lecture 20 February 23, 2015.
NP-complete and NP-hard problems Transitivity of polynomial-time many-one reductions Definition of complexity class NP –Nondeterministic computation –Problems.
Graphs 4/16/2017 8:41 PM NP-Completeness.
1 Polynomial Church-Turing thesis A decision problem can be solved in polynomial time by using a reasonable sequential model of computation if and only.
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
NP-Completeness CS 51 Summer 2008 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A AA A A AAA.
NP-Complete Problems Problems in Computer Science are classified into
Submitted by : Estrella Eisenberg Yair Kaufman Ohad Lipsky Riva Gonen Shalom.
Computability and Complexity 20-1 Computability and Complexity Andrei Bulatov Class NL.
NP-complete and NP-hard problems
Analysis of Algorithms CS 477/677
NP-Completeness NP-Completeness Graphs 4/17/2017 4:10 AM x x x x x x x
Toward NP-Completeness: Introduction Almost all the algorithms we studies so far were bounded by some polynomial in the size of the input, so we call them.
February 20, 2015CS21 Lecture 191 CS21 Decidability and Tractability Lecture 19 February 20, 2015.
1 Slides by Asaf Shapira & Michael Lewin & Boaz Klartag & Oded Schwartz. Adapted from things beyond us.
Theory of Computing Lecture 19 MAS 714 Hartmut Klauck.
Machines with Memory Chapter 3 (Part B). Turing Machines  Introduced by Alan Turing in 1936 in his famous paper “On Computable Numbers with an Application.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
The Complexity of Optimization Problems. Summary -Complexity of algorithms and problems -Complexity classes: P and NP -Reducibility -Karp reducibility.
Computational Complexity Theory Lecture 2: Reductions, NP-completeness, Cook-Levin theorem Indian Institute of Science.
Theory of Computing Lecture 17 MAS 714 Hartmut Klauck.
NP Complexity By Mussie Araya. What is NP Complexity? Formal Definition: NP is the set of decision problems solvable in polynomial time by a non- deterministic.
TECH Computer Science NP-Complete Problems Problems  Abstract Problems  Decision Problem, Optimal value, Optimal solution  Encodings  //Data Structure.
CSCI 2670 Introduction to Theory of Computing November 29, 2005.
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
CSE 024: Design & Analysis of Algorithms Chapter 9: NP Completeness Sedgewick Chp:40 David Luebke’s Course Notes / University of Virginia, Computer Science.
Complexity 25-1 Complexity Andrei Bulatov Counting Problems.
CSC401 – Analysis of Algorithms Chapter 13 NP-Completeness Objectives: Introduce the definitions of P and NP problems Introduce the definitions of NP-hard.
CSCI 3160 Design and Analysis of Algorithms Tutorial 10 Chengyu Lin.
1 The Theory of NP-Completeness 2 Cook ’ s Theorem (1971) Prof. Cook Toronto U. Receiving Turing Award (1982) Discussing difficult problems: worst case.
1 P P := the class of decision problems (languages) decided by a Turing machine so that for some polynomial p and all x, the machine terminates after at.
Umans Complexity Theory Lectures Lecture 1a: Problems and Languages.
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
CSCI 3130: Formal languages and automata theory Andrej Bogdanov The Chinese University of Hong Kong The Cook-Levin.
NP-completeness Class of hard problems. Jaruloj ChongstitvatanaNP-complete Problems2 Outline  Introduction  Problems and Languages Turing machines and.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
NPC.
COMPLEXITY. Satisfiability(SAT) problem Conjunctive normal form(CNF): Let S be a Boolean expression in CNF. That is, S is the product(and) of several.
CSCI 2670 Introduction to Theory of Computing December 2, 2004.
CSCI 2670 Introduction to Theory of Computing December 7, 2005.
Given this 3-SAT problem: (x1 or x2 or x3) AND (¬x1 or ¬x2 or ¬x2) AND (¬x3 or ¬x1 or x2) 1. Draw the graph that you would use if you want to solve this.
1 The Theory of NP-Completeness 2 Review: Finding lower bound by problem transformation Problem X reduces to problem Y (X  Y ) iff X can be solved by.
The NP class. NP-completeness Lecture2. The NP-class The NP class is a class that contains all the problems that can be decided by a Non-Deterministic.
1 SAT SAT: Given a Boolean function in CNF representation, is there a way to assign truth values to the variables so that the function evaluates to true?
1 Design and Analysis of Algorithms Yoram Moses Lecture 13 June 17, 2010
Conceptual Foundations © 2008 Pearson Education Australia Lecture slides for this course are based on teaching materials provided/referred by: (1) Statistics.
The NP class. NP-completeness
P & NP.
Computational Complexity Theory
NP-Completeness NP-Completeness Graphs 5/7/ :49 PM x x x x x x x
NP-Completeness Yin Tat Lee
NP-Completeness NP-Completeness Graphs 11/16/2018 2:32 AM x x x x x x
NP-Completeness NP-Completeness Graphs 12/3/2018 2:46 AM x x x x x x x
Chapter 34: NP-Completeness
Our First NP-Complete Problem
CSE 589 Applied Algorithms Spring 1999
Instructor: Aaron Roth
Presentation transcript:

1

2 Lecture outline Basic definitions: Basic definitions: P, NP complexity classes P, NP complexity classes the notion of a certificate. the notion of a certificate. reductions, various types: reductions, various types: Karp, Cook and Levin. Karp, Cook and Levin. Search vs Decision problems Search vs Decision problems self-reducibility. self-reducibility. NP-Complete languages and relations NP-Complete languages and relations NP Complete relation and self-reducibility. NP Complete relation and self-reducibility. Introducing some NP-Complete problems. Introducing some NP-Complete problems. Showing R SAT is NP-hard. Showing R SAT is NP-hard.

3 The P, NP complexity classes Def: A Decision problem for a language L  {0,1} * is to decide whether a given string x belongs to the language L. Def: P is the class of languages (decision problems) that can be recognized by a deterministic polynomial time Turing machine. Def: NP is the class of languages that can be recognized by a non-deterministic polynomial- time Turing-machine.

4 Polynomially Verifiable Relations Def: A binary relation R is polynomially bounded if: (x,y)  R  |y|  |x| o(1) Def: R is polynomial-time-decidable if the corresponding language L R = { (x,y) : (x,y)  R } is in P. Def: A relation that is both polynomially- bounded & polynomial-time-decidable is polynomially-verifiable.

5 NP – Alternative Definition Def: L is an NP language if there is a polynomially-verifiable relation R L s.t. X  L   w for which (x,w)  R L Def: L is an NP language if there is a polynomially-verifiable relation R L s.t. X  L   w for which (x,w)  R L w is a witness or a certificate. w is a witness or a certificate. Given a witness, membership can be verified in polynomial time. P=NP implies:  witness  can be found efficiently

6 The NP game The notion of a certificate can be thought of a game between a prover and a verifier proverprover verifierverifier Given input X The all powerful prover sends a certificate for membership of X Which the verifier can validate efficiently

7 NDTM  PolyVerRel Assume M L is a non-deterministic TM that decides L within P L ( |x| ) steps Assume M L is a non-deterministic TM that decides L within P L ( |x| ) steps Let R L be the set of all pairs (x,y) s.t. Let R L be the set of all pairs (x,y) s.t. – x is an input to M L – Y is an accepting, legal computation of M L on x R L is polynomially-verifiable R L is polynomially-verifiable X  L   a computation y s.t. (x,y)  R L X  L   a computation y s.t. (x,y)  R L 1.2.1

8 PolyVerRel  NDTM Let R L be the relation for L, decided by a deterministic TM M * L Let R L be the relation for L, decided by a deterministic TM M * L Def a non-deterministic TM M L : Def a non-deterministic TM M L : – Guess y of proper polynomial size – Call M * L to check if (x,y)  R L – Accept x if M * L accepts (x,y) M L is a non-deterministic TM for L M L is a non-deterministic TM for L

9 Search Problems Def: A search problem over a binary relation R finds, given x, a string y s.t. (x,y)  R. Def: A search problem over a binary relation R finds, given x, a string y s.t. (x,y)  R. Given a polynomially - verifiable relation R, define: L(R) = { x :  y s.t. (x,y)  R } Given a polynomially - verifiable relation R, define: L(R) = { x :  y s.t. (x,y)  R } Clearly, finding a solution can only be harder than just deciding whether it exists. Note: NP = { L(R) : R is polynomially-verifiable }

10 Problem: 3-coloring graphs Instance: An undirected graph G=(V,E) Corresponding relation: R 3COL = { (G,  ) :  is a legal 3-coloring of G } Decision problem: decide the language L(R 3COL ), namely whether G is 3-colorable. Search problem: find a 3-coloring of G. Example

11 Reductions The purpose of a reduction is to show that some problem is at least as hard as some other problem. The purpose of a reduction is to show that some problem is at least as hard as some other problem. If problem A reduces to problem B, then solving B implies solving A. If problem A reduces to problem B, then solving B implies solving A. 2.1 B is at least as hard as A, denoted A  B

12 Cook Reduction Def: An oracle for a problem  is a magical apparatus that, given an input x to , returns  (x) in a single step. Def: A Cook reduction from problem  1 to problem  2 is a polynomial-time TM for solving  1 on input x utilizing an oracle for  2. Denoted  1  cook  2.

13 Karp Reduction Def: A Karp reduction of L 1 to L 2 is a polynomial-time--computable function f s.t. x  L 1  f(x)  L 2 f L2L2 f(x) L1L1 L2L2 x L1L1 L2L2

14 Karp vs. Cook reductions Cook reduction allows calling the oracle polynomially many times Karp reduction allows only one call to the oracle, and only at the end of the computation. Cook reduction is stronger: given Karp reduction f, Cook reduction is stronger: given Karp reduction f, – On input x compute the value f(x). – Present f(x) to the oracle, and output its answer. There are (few) examples where a Cook reduction is known, while a Karp reduction is unknown. There are (few) examples where a Cook reduction is known, while a Karp reduction is unknown. Solve  1  2 oracle I/o

15 Levin Reduction Def: a Levin reduction from R 1 to R 2 is 3 poly-time-computable functions f,g,h s.t. – x  L(R 1 )  f(x)  L(R 2 ) – (x,y)  R 1  ( f(x), g(x,y) )  R 2 – ( f(x),z )  R 2  ( x, h(x,z) )  R 1 f translates inputs of the first problem to inputs of the second problem, g & h transform certificates of one to the other. Note: A Levin reduction implies Cook / Karp reductions of the corresponding search / decision problems. 2.1

16 Properties of Reductions Claim: All reductions are transitive: A reduces to B, B to C  A reduces to C Claim: Cook reduction preserves poly - time - computability Proof: assume  1 Cook-reduces to the poly- time-comp problem  2, and M is the reduction algorithm. –  2 -oracle can be simulated by a poly-time TM – Replacing oracle queries in M by the simulation - we get a poly-time TM that solves  1. So do Karp & Levin reductions 2.1

17 Search vs. Decision Problems Recall: for poly-time verifiable relation R, L(R) = { x :  y s.t. (x,y)  R } Def: A relation R is called self-reducible if solving the search problem for R is Cook-reducible to deciding the language L(R). 1.4 The search problem can be solved using the decision problem

18 Input: A CNF formula  with n variables. Task: find  : {1,..,N}  {0,1} such that  (  (1), …,  (n) ) = True Corresponding relation: R SAT = { ( ,  ) :  (  (1), …,  (n) ) = T } SAT = L(R SAT ) An Example: 3-SAT Note: Self-reducibility is a property of a relation, not a language. [There are many relations R for which SAT = L(R).]

19 R SAT Thm: R sat is Self-Reducible. Proof: Assuming an oracle O for the language SAT = L(R SAT ). solving the search problem: Query O whether   SAT. If not - stop. For k := 1 to n: For k := 1 to n: –  K (x k+1,.., x n ) :=  (  1,..,  k-1,1, x k+1,.., x n ) – If  k  SAT (Query O),  k = 1 else  k = 0.  (1)=  1, …,  (n)=  n satisfies  !  (1)=  1, …,  (n)=  n satisfies  ! formula obtained by replacing x 1,..,x k with  1,..,  k-1,1

20 y = 1: (  1   1)  (  1  z) Self-reducibility of SAT Given: (  x   y)  (  x  z) SAT oracle x = 1: (  1   y)  (  1  z) Yes y = 0: (  1   0)  (  1  z) z = 1: (  1   0)  (  1  1)  (  x   y)  (  x  z) No

21 Another Example: GI Graph Isomorphism: given two ( simple ) graphs, are they isomorphic? Natural relation: R GI contains all ( (G1,G2),  ) s.t.  is an isomorphism between G 1 and G 2. Unlike SAT, GI is not known to be NP-Complete in fact GI is unlikely to be NP-hard, as we’ll see later in the course

22 Thm: R GI is Self-Reducible. Proof: construct  piecemeal, 1 vertex at a time check if u  G 1 can be mapped by  to v  G 2 : Connect both v and u to new n leaf-vertices to obtain 2 new graphs, G’ 1 & G’ 2 Connect both v and u to new n leaf-vertices to obtain 2 new graphs, G’ 1 & G’ 2 If G’ 1 isomorphic to G’ 2 - u must be mapped to v If G’ 1 isomorphic to G’ 2 - u must be mapped to v Iterating this - deleting matching vertices - determines the isomorphism, a vertex at a time Iterating this - deleting matching vertices - determines the isomorphism, a vertex at a time R GI u and v are distinguished from other vertices so any isomorphism must map u to v

23 Graph Isomorphism

24 Non Self-Reducibility There are many non-self - reducible relations, but it is hard to find an NP language, whose “natural” relation is non-self-reducible. There are many non-self - reducible relations, but it is hard to find an NP language, whose “natural” relation is non-self-reducible. L COMP = { N : N = n1  n2 } is poly- time decidable via a randomized algorithm. L COMP = { N : N = n1  n2 } is poly- time decidable via a randomized algorithm. The natural choice is R COMP = { ( N, (n1,n2) ) : N = n1  n2 } The natural choice is R COMP = { ( N, (n1,n2) ) : N = n1  n2 } It is widely believed the search of R COMP is not poly-time-comp (factoring), which would imply it is not self-reducible (by a random algorithm) It is widely believed the search of R COMP is not poly-time-comp (factoring), which would imply it is not self-reducible (by a random algorithm) deterministic!

25 NP-completeness Def: A language L is NP-Complete if: 1. L  NP. 2.  L’  NP: L’  Karp L. Def: A relation R is NP-Complete if: 1. L(R)  NP. 2.  R’ s.t. L(R’)  NP: R’  Levin R. Generalize: L’  Cook L

26 NP-completeness & Self-Reducibility Thm: For every relation R, R is NP-Complete  R is self-reducible. Proof : Let R be an NP-complete relation. Proof : Let R be an NP-complete relation. R SAT is NP-hard under Levin reduction (to be proven later), namely, there is a Levin reduction (f,g,h) from R to R SAT Since R is NP-complete, there exists a Karp reduction k from SAT to L(R). 2.2

27 Proof (continue): an algorithm that finds y s.t. (x,y)  R, using the Levin & karp reductions: 1. Query L(R)’s oracle whether x  L(R) 2. If “no”, announce: x  L(R) 3. If “yes”, translate x into a CNF formula  f(x) [using Levin’s f function] 4. Compute a satisfying assignment (  1,…,  n ) for  5. Translate (  1,…,  n ) to a witness y=h(x, (  1,…,  n )) [Using Levin’s h function] NP-completeness & Self-Reducibility f(x,z)  L(R SAT )  (x,h(x,z))  L(R) show later x  L(R)  f(x)  L(R SAT )

28 Proof (continue): given a partial assignment (  1,…,  i ), compute a satisfying assignment (  1,…,  n ) for , Trying to assign x i+1  : Trying to assign x i+1  : check L(R)’s oracle to see if  (  1,…,  i,1,x i+2,…, x n ) is satisfiable [By translating the CNF formula  (  1,…,  i,1,x i+2,…, x n ) to the language L(R), using the Karp function k] check L(R)’s oracle to see if  (  1,…,  i,1,x i+2,…, x n ) is satisfiable [By translating the CNF formula  (  1,…,  i,1,x i+2,…, x n ) to the language L(R), using the Karp function k] If the oracle answers “yes” assign  i+1 , otherwise assign  i+1  If the oracle answers “yes” assign  i+1 , otherwise assign  i+1  Iterate until i  n. Iterate until i  n. NP-completeness & Self-reducibility SAT  Karp L(R) and since L(R) is NP- complete  SAT  k(  )  L(R) same as in self- reducibility of SAT. instead of SAT’s oracle, use L(R)’s oracle

29 L oracleSAT  L NP-completeness & Self-reducibility y = 1: (  1   1)  (  1  z) Given: (  x   y)  (  x  z) x = 1: (  1   y)  (  1  z) Yes y = 0: (  1   0)  (  1  z) z = 1: (  1   0)  (  1  1)  (  x   y)  (  x  z) No

30 Bounded-Halting Two Equivalent Definitions: BH  { ,x,1 t  | is the description of a non-deterministic TM that accepts input x within t steps. } BH  { ,x,1 t  | is the description of a deterministic TM, and  y s.t. |y|  |x| O(1) and M accepts (x,y) within t steps } 2.3

31 Bounded-Halting Cont. Def: Bounded-Halting Relation R BH  { ( ,x,1 t , y)| is the description of a deterministic machine, which accepts input (x,y) within t steps } Note: The length of y is bounded by t, therefore it is polynomial in the length of therefore it is polynomial in the length of the input ,x,1 t . the input ,x,1 t .

32 Bounded-Halting is NP-Complete Claim: BH is NP-Complete. Proof: BH  NP (immediate from definition) BH  NP (immediate from definition) Any L in NP, Karp-reduces to BH: Let L be in NP, then: Any L in NP, Karp-reduces to BH: Let L be in NP, then: There exists a poly-time verifiable witness-relation R L, recognized by M L. There exists a poly-time verifiable witness-relation R L, recognized by M L. M L accepts every (x,y) in p(|x|) steps M L accepts every (x,y) in p(|x|) steps The reduction transforms x to  M L,x,1 p(|x|)  The reduction transforms x to  M L,x,1 p(|x|) 

33 Proof (continue): X  L  Exists a polynomially bounded witness y such that (x,y)  R L y such that (x,y)  R L  Exists a polynomial time computation  Exists a polynomial time computation of M L accepting (x,y) of M L accepting (x,y)   M L,x,1 p(|x|)   BH   M L,x,1 p(|x|)   BH Bounded-Halting is NP-complete Note: The reduction can be transformed into Levin reduction of R L to R BH with the identity function supplying the two missing functions. (x,y)  (  M,x,1t ,y)

34Circuit-Satisfiability Def: a circuit is a directed acyclic graph G=(V,E) with vertices labeled output, , , ,x 1,…, x m,  s.t. A vertex labeled x i has in-degree 0 A vertex labeled x i has in-degree 0 A vertex labeled 0 (or 1) has in-degree 0 A vertex labeled 0 (or 1) has in-degree 0 The in-degree of vertices labeled ,  is 2 (bounded fan-in) The in-degree of vertices labeled ,  is 2 (bounded fan-in) A vertex labeled  has in-degree 1 A vertex labeled  has in-degree 1  a single sink (of out-degree 0), of in-degree 1, labeled “output”  a single sink (of out-degree 0), of in-degree 1, labeled “output” 2.4 XiXi 1  Out 

35 Circuit-Satisfiability Given an assignment  m to the variables x 1,…,x m, C(  ) will denote the value of the circuit’s output Def: Circuit-Satisfiabilty CS  {circuit C : exists  s.t. C(  )=1} R CS  {(C,  ) : C(  )=1} The value is defined by setting the value of each vertex to the natural value imposed by the Boolean operation it is labeled by

36 CS is NP-complete Claim: CS is NP-Complete. Proof: CS  NP CS  NP R CS is polynomialy-bounded: the witness  is an assignment - it has one bit for each x i R CS is polynomialy-bounded: the witness  is an assignment - it has one bit for each x i Given a pair (C,  ) evaluating one gate takes O(1) steps, therefore total evaluation time is polynomial in |C|. Given a pair (C,  ) evaluating one gate takes O(1) steps, therefore total evaluation time is polynomial in |C|. 2.4,2.6

37 Proof (continue): CS is NP-hard (show a reduction from BH): CS is NP-hard (show a reduction from BH): Given  M,x,1 t  the computation of M can be fully described by a t  t matrix in which entry (i,j) is: The content of cell j at time i (constant) The content of cell j at time i (constant) An indicator to whether the head is on cell j at time i (1 bit). An indicator to whether the head is on cell j at time i (1 bit). In case the head is indeed there: the state of the machine ( O(log |M|) ). In case the head is indeed there: the state of the machine ( O(log |M|) ). CS is NP-complete Each row of the matrix corresponds to a configuration of the machine

38 CS is NP-complete Proof (continue): The transition between following configurations can be simulated by a series of t circuits C t as shown later. The transition between following configurations can be simulated by a series of t circuits C t as shown later. The reduction constructs a circuit C’ from the t  t C t circuits, where the i th series is the input of the i+1 series. The reduction constructs a circuit C’ from the t  t C t circuits, where the i th series is the input of the i+1 series. The input to the circuit is built of |x| vertices corresponding to the input x, and t-|x| “variable vertices”. The input to the circuit is built of |x| vertices corresponding to the input x, and t-|x| “variable vertices”. Finally, we add to C’ the ability to identify that a certain configuration has reached accepting state, so that the circuit will output 1. Finally, we add to C’ the ability to identify that a certain configuration has reached accepting state, so that the circuit will output 1. It is shown that the whole circuit can be built using O(n 5 ) gates. It is shown that the whole circuit can be built using O(n 5 ) gates.

39 The circuit C t The j’th triple in the i’th configuration, is determined by the j-1, j, j+1 triples in the i-1 configuration. This can be described by boolean functions implemented by C t. The j’th triple in the i’th configuration, is determined by the j-1, j, j+1 triples in the i-1 configuration. This can be described by boolean functions implemented by C t. Log |M| state bits Symbol Head indicator Log |M| state bits Symbol Head indicator Log |M| state bits Symbol Head indicator J-1 J J+1 Log |M| state bits Symbol Head indicator CtCt I’th-1 configurtionI’th configuration It is shown that C t can be described in O(n 3 ) gates

40 CS is NP-complete Proof (continue): The accepting states can be encoded into a Boolean function, which will return 1, on input an accepting state. The output of the entire circuit is an OR over all the state outputs of all C t circuits. This can be described by O(n 2 log n) gates. The accepting states can be encoded into a Boolean function, which will return 1, on input an accepting state. The output of the entire circuit is an OR over all the state outputs of all C t circuits. This can be described by O(n 2 log n) gates.

41 R SAT is NP-hard Claim: R SAT is NP-hard under Levin reduction. Proof: Since Circuit-satisfiability is NP-Complete it suffices to show a reduction from R CS to R SAT : The reduction maps a circuit C to a CNF formula  C, and an input y for the circuit to an assignment y’*to the formula and vice versa. 2.5

42 R SAT is NP-hard Proof (continue): Mapping circuit C to CNF formula  C Every vertex of the circuit-graph is mapped into a variable. Every vertex of the circuit-graph is mapped into a variable. For every such variable V i we define a CNF formula  i that forces the variable to have the same value as the gate represented by V i For every such variable V i we define a CNF formula  i that forces the variable to have the same value as the gate represented by V i We define  c   1  …   n We define  c   1  …   n

43 R SAT is NP-hard Proof (continue): mapping a gate to a formula: For a  vertex v with an in-edge from u:  i (v, u)  (u  v)  (  u   v) For a  vertex v with an in-edge from u:  i (v, u)  (u  v)  (  u   v) For a  vertex v with in-edges from u, w:  i (v, u, w)  (u  w   v)  (u   w  v)  (  u  w  v)  (  u   w  v) For a  vertex v with in-edges from u, w:  i (v, u, w)  (u  w   v)  (u   w  v)  (  u  w  v)  (  u   w  v) For a  vertex v with in-edges from u, w:  i (v, u, w)  (u  w   v)  (u   w   v)  (  u  w   v)  (  u   w  v) For a  vertex v with in-edges from u, w:  i (v, u, w)  (u  w   v)  (u   w   v)  (  u  w   v)  (  u   w  v) For the vertex marked output with an in-edge from u:  output (u)  u For the vertex marked output with an in-edge from u:  output (u)  u

44 R SAT is NP-hard Proof (continue): C  CS   c  SAT: given an assignment to  c it’s easy to construct an assignment to C, and vice versa C  CS   c  SAT: given an assignment to  c it’s easy to construct an assignment to C, and vice versa Note: The reduction is poly-time - the size of the CNF formula  c is linear in the size of C, therefore, it can be constructed in polynomial time Note: The reduction is poly-time - the size of the CNF formula  c is linear in the size of C, therefore, it can be constructed in polynomial time

45 Bibliographic Notes Lecture notes for a course by Oded Goldreich. Lecture notes for a course by Oded Goldreich. M. Bellare and s. Goldwasser, “The Complexity of Decision vs Search” M. Bellare and s. Goldwasser, “The Complexity of Decision vs Search” M. Sipser, “The History and Status of the P vs NP Problems” M. Sipser, “The History and Status of the P vs NP Problems” M. Sipser, “Introduction to the Theory of Computation” M. Sipser, “Introduction to the Theory of Computation”