Presentation is loading. Please wait.

Presentation is loading. Please wait.

L is in NP means: There is a language L’ in P and a polynomial p so that L1 ≤ L2 means: For some polynomial time computable map r :  x: x  L1 iff.

Similar presentations


Presentation on theme: "L is in NP means: There is a language L’ in P and a polynomial p so that L1 ≤ L2 means: For some polynomial time computable map r :  x: x  L1 iff."— Presentation transcript:

1 L is in NP means: There is a language L’ in P and a polynomial p so that L1 ≤ L2 means: For some polynomial time computable map r :  x: x  L1 iff r(x)  L2 L is NP-hard means:  L’  NP: L’ ≤ L L is in NPC means: L  NP and L is NP-hard

2 How to establish NP-hardness
Lemma: If L1 is NP-hard and L1 ≤ L then L2 is NP-hard.

3 Boolean functions f: {false, true}n  {false,true}
Example: XOR(x1, x2) = x1  x2 XOR(true , true) = false In this course 0=false, 1=true. XOR(1,1)=0

4 Two special classes of Boolean formulae
f(x1, x2) = x1  x2 DNF: f(x1, x2) = (x1 ∧ ¬x2) ∨ (x2 ∧ ¬x1) CNF: f(x1, x2) = (¬x1 ∨ ¬x2) ∧ (x1 ∨ x2) A CNF is any conjunction of clauses (disjunctions of literals). A DNF is any disjunction of terms (conjunctions of literals). Any function on n variables can be described by a CNF (DNF) formula containing at most 2n clauses (terms), each containing at most n literals.

5 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? SAT: Given a CNF, is it true that it does not represent the constant-0 function? Input: (¬x1 ∨ ¬x2) ∧ (x1 ∨ x2) Output: Yes. Input: (¬x1 ∨ ¬x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ ¬x2 ) ∧ (¬x1 ∨ x2) Output: No.

6 SAT SAT is in NP. Cook’s theorem (1972): SAT is NP-hard.

7 Circuits A circuit C is a directed acyclic graph.
Nodes in C are called gates. Types of gates: Variable (or input) gates of indegree 0, labeled X1, X2, …Xn Constant gates of indegree 0, labeled 0,1 AND-, OR-gates of indegree 2, NOT-, COPY-gates of indegree 1. m distinguished gates are output gates. The circuit C computes a Boolean function C: {0,1}n  {0,1}m

8 A formula can be viewed as a special kind of circuit
f(X1, X2, X3) = ¬X1 ∨(X1 ∧ X2 ∧ X3) X3 X1 X2

9 Are formulas and circuits in fact the same thing?
Not quite! Given a circuit, we can write down an equivalent formula, but in may become much bigger. A circuit is allowed to reuse the result of a sub-computation without doing the computation again!

10 Multi-output circuits
Any function f: {0,1}n  {0,1}m is represented by some circuit. Proof: Any function f: {0,1}n  {0,1} can be described by a Boolean formula. A formula can also be viewed as a circuit. Combine m such circuits.

11 Cooks’ theorem: SAT is NP-hard
Proof of Cook’s theorem: CIRCUIT SAT is NP-hard. CIRCUIT SAT reduces to SAT. Hence, SAT is NP-hard.

12 CIRCUIT SAT CIRCUIT SAT: Given a Boolean circuit, is there a way to assign truth values to the input gates, so that the output gate evaluates to true? Generalizes SAT, as CNFs are formulas and formulas are circuits.

13 Example Input: Output: Yes X3 X1 X2

14 Example Input: Output: No X3 X1 X2

15 Cooks’ theorem: SAT is NP-hard
Proof of Cook’s theorem: CIRCUIT SAT is NP-hard. CIRCUIT SAT reduces to SAT. Hence, SAT is NP-hard. We first prove CIRCUIT SAT reduces to SAT

16 Circuits vs. Turing Machines
We consider Circuits also as computational devices themselves. Like Turing Machines, circuits C: {0,1}n  {0,1} solve decision problems on {0,1}n. Unlike Turing machines, circuits takes inputs of a fixed input length n only.

17 Theorem Given Turing Machine M running in time at most p(n)≥n on inputs of length n, where p is a polynomial. For every n, there is a circuit Cn with at most O(p(n)2) gates so that ∀x ∈ {0,1}n: Cn(x)=1 iff M accepts x. The map 1n  Cn is polynomial time computable.

18 Intuition behind proof

19 Problem: Cycles! Flip-Flop, stores one bit.

20 The Tableau Method … Time t Time 1 Can be replaced by acyclic Boolean
circuit of size ≈ s s 2 1 Time 0

21 Cell state vectors Given a Turing Machine computation, an integer t and an integer i let cti  {0,1}s be a Boolean representation of the following information, a cell state vector: The symbol in cell i at time t Whether or not the head is pointing to cell i at time t If the head is pointing to cell i, what is the state of the finite control of the Turing machine at time t? The integer s depends only on the Turing machine (not the input to the computation, nor t,i). To make cti defined for all t, we let c(t+1)i = cti if the computation has already terminated at time t.

22 Crucial Observation If we know the Turing machine and
ct-1,i-1, ct-1,i, ct-1, i+1, we also can determine ct,i. In other words, there is a Boolean function h depending only on the Turing machine so that ct,i = h(ct-1,i-1, ct-1,i, ct-1,i+1). A circuit D for h is the central building block in a circuit computing all cell state vectors for all times for a given input.

23 t(n) x1 xn 2 t(n)

24 Cooks’ theorem: SAT is NP-hard
Proof of Cook’s theorem: CIRCUIT SAT is NP-hard. CIRCUIT SAT reduces to SAT. Hence, SAT is NP-hard.

25 CIRCUIT SAT is NP-hard Given an arbitrary language L in NP we must show that L reduces to CIRCUIT SAT. This means: We must construct a polynomial time computable map r mapping instances of L to circuits, so that ∀x: x ∈ L ⇔ r(x) ∈ CIRCUIT SAT The only thing we know about L is that there is a language L’ in P and a polynomial p, so that:


Download ppt "L is in NP means: There is a language L’ in P and a polynomial p so that L1 ≤ L2 means: For some polynomial time computable map r :  x: x  L1 iff."

Similar presentations


Ads by Google