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

Preview:

DESCRIPTION

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. NP. - PowerPoint PPT Presentation

Citation preview

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

NP

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

3

Reductions

• A reduction r of L1 to L2 is a polynomial time computable map so that

x : x ∈ L1 iff r(x) ∈ L2

• We write L1 ≤ L2 if L1 reduces to L2.

• Intuition: Efficient software for L2 can also be used to efficiently solve L1.

4

Properties of reductions

Transitivity:

L1 ≤ L2 ∧ L2 ≤ L3 ⇒ L1 ≤ L3

Downward closure of P:

L1 ≤ L2 ∧ L2 ∈ P ⇒ L1 ∈ P.

• Follows from Polynomial Church-Turing thesis.

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

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

•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

8

How to establish NP-hardness

•Lemma: If L1 is NP-hard and L1 ≤ L2 then L2 is NP-hard.

9

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

10

How to represent Boolean functions on a computer

•Tables.

•Formulae.

11

Tables

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

12

Boolean Formulae

•X1, X2, …, Xn are formulae.

•If f is a formula then f is a formula.

•If f1 and f2 are formulae then (f1) ∧ (f2) and (f1) ∨ (f2) are formulae.

•Sometimes we leave out parentheses….

13

Formulae represent Boolean functions

•“(x1 ∧x2) ∨ (x2 ∧x1)” represents the function XOR.

•Sometimes formula-representation is much more compact than table representation. Sometimes not.

•It’s never much less compact.

14

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.

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: (¬x1 ∨ ¬x2) ∧ (x1 ∨ x2)•Output: Yes.•Input: (¬x1 ∨ ¬x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ ¬x2 ) ∧ (¬x1 ∨ x2)•Output: No.

16

SAT

•SAT is in NP.

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

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

18

A formula can be viewed as a special kind of circuit

f(X1, X2, X3) = ¬X1 ∨(X1 ∧ X2 ∧ X3)

¬

X1 X2

X3

X1

19

A formula can be viewed as a special kind of circuit

f(X1, X2, X3) = ¬X1 ∨(X1 ∧ X2 ∧ X3)

¬

X1 X2

X3

Convention: For each j, at most gate is labeled Xj

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

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

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

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

Example

X1 X2

X3

Input:

Output: Yes

¬

25

Example

Output: No⋀

X1 X2

X3

Input:

¬

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

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

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.

29

Intuition behind proof

30

Problem: Cycles!

Flip-Flop, stores one bit.

31

The Tableau Method

Time 0

Time 1

Time t

s21

Can be replaced byacyclic Booleancircuit of size ≈ s

32

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.

33

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.

342 t(n)

t(n)

x1 xn

Recommended