Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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 most p(|x|) steps on input x.

2 2 NP L is in NP iff there is a language L’ in P and a polynomial p so that:

3 3 Reductions A reduction r of L 1 to L 2 is a polynomial time computable map so that  x : x ∈ L 1 iff r(x) ∈ L 2 We write L 1 ≤ L 2 if L 1 reduces to L 2. Intuition: Efficient software for L 2 can also be used to efficiently solve L 1.

4 4 Properties of reductions Transitivity: L 1 ≤ L 2 ∧ L 2 ≤ L 3 ⇒ L 1 ≤ L 3 Downward closure of P: L 1 ≤ L 2 ∧ L 2 ∈ P ⇒ L 1 ∈ P. Follows from Polynomial Church-Turing thesis.

5 5 NP-hardness A language L is called NP-hard iff  L’ ∈ NP: L’ ≤ L Intuition: Software for L is strong enough to be used to solve any simple search problem. Proposition: If some NP-hard language is in P, then P=NP.

6 6 NPC A language L ∈ NP that is NP-hard is called NP-complete. NPC := the class of NP-complete problems. Proposition: L ∈ NPC ⇒ [L ∈ P iff P=NP].

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

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

9 9 Boolean functions f: {false, true} n  {false,true} Example: XOR(x 1, x 2 ) = x 1  x 2 XOR(true, true) = false In this course 0=false, 1=true. XOR(1,1)=0

10 10 How to represent Boolean functions on a computer Tables. Formulae.

11 11 Tables More compact representation as Boolean String: “0110”. A function f: {0,1} n  {0,1} can be represented as a table using … ……..2 n bits

12 12 Boolean Formulae X 1, X 2, …, X n are formulae. If f is a formula then  f is a formula. If f 1 and f 2 are formulae then (f 1 ) ∧ (f 2 ) and (f 1 ) ∨ (f 2 ) are formulae. Sometimes we leave out parentheses….

13 13 Formulae represent Boolean functions “(x 1 ∧ x 2 ) ∨ (x 2 ∧ x 1 )” represents the function XOR. Sometimes formula-representation is much more compact than table representation. Sometimes not. It’s never much less compact.

14 14 Two special classes of Boolean formulae f(x 1, x 2 ) = x 1  x 2 DNF: f(x 1, x 2 ) = (x 1 ∧ ¬ x 2 ) ∨ (x 2 ∧ ¬ x 1 ) CNF: f(x 1, x 2 ) = ( ¬ x 1 ∨ ¬ x 2 ) ∧ (x 1 ∨ x 2 ) 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 2 n clauses (terms), each containing at most n literals.

15 15 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: ( ¬ x 1 ∨ ¬ x 2 ) ∧ (x 1 ∨ x 2 ) Output: Yes. Input: ( ¬ x 1 ∨ ¬ x 2 ) ∧ (x 1 ∨ x 2 ) ∧ (x 1 ∨ ¬ x 2 ) ∧ ( ¬ x 1 ∨ x 2 ) Output: No.

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

17 17 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 X 1, X 2, …X n –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

18 18 A formula can be viewed as a special kind of circuit f(X 1, X 2, X 3 ) = ¬ X 1 ∨ (X 1 ∧ X 2 ∧ X 3 ) ⋀ ⋁ ¬ X1X1 X2X2 X3X3 ⋀ X1X1

19 19 A formula can be viewed as a special kind of circuit f(X 1, X 2, X 3 ) = ¬ X 1 ∨ (X 1 ∧ X 2 ∧ X 3 ) ⋀ ⋁ ¬ X1X1 X2X2 X3X3 ⋀ Convention: For each j, at most gate is labeled X j

20 20 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!

21 21 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.

22 22 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.

23 23 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.

24 24 Example ⋀ ⋁ X1X1 X2X2 X3X3 ⋀ Input: Output: Yes ¬

25 25 Example Output: No ⋀ ⋀ X1X1 X2X2 X3X3 ⋀ Input: ¬

26 26 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

27 27 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.

28 28 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 C n with at most O(p(n) 2 ) gates so that ∀ x ∈ {0,1} n : C n (x)=1 iff M accepts x. The map 1 n  C n is polynomial time computable.

29 29 Intuition behind proof

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

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

32 32 Cell state vectors Given a Turing Machine computation, an integer t and an integer i let c ti  {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 c ti defined for all t, we let c (t+1)i = c ti if the computation has already terminated at time t.

33 33 Crucial Observation If we know the Turing machine and c t-1,i-1, c t-1,i, c t-1, i+1, we also can determine c t,i. In other words, there is a Boolean function h depending only on the Turing machine so that c t,i = h(c t-1,i-1, c t-1,i, c t-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.

34 34 2 t(n) t(n) x1x1 xnxn


Download ppt "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."

Similar presentations


Ads by Google