340 likes | 408 Views
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.
E N D
P • P := the class of decision problems (languages) decided by a Turingmachine so that for somepolynomialp and all x, the machineterminatesafter at most p(|x|) steps on input x.
NP L is in NP iffthere is a languageL’ in P and a polynomialp so that:
Reductions • A reductionr of L1 to L2 is a polynomial time computablemap so that x : x ∈ L1iffr(x) ∈L2 • WewriteL1 ≤ L2if L1reduces to L2. • Intuition:Efficient software for L2canalsobeused to efficientlysolve L1.
Properties of reductions Transitivity: L1≤L2∧ L2≤ L3⇒L1≤L3 Downwardclosure of P: L1≤L2∧ L2∈P ⇒ L1∈P. • Follows from PolynomialChurch-Turingthesis.
NP-hardness • A language L is calledNP-hardiff L’ ∈NP: L’ ≤L • Intuition: Software for L is strongenough to beused to solveany simple search problem. • Proposition: If someNP-hardlanguage is in P, thenP=NP.
NPC • A language L ∈NPthat is NP-hard is calledNP-complete. • NPC := the class of NP-complete problems. • Proposition: L∈NPC⇒ [L∈ PiffP=NP].
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 L1iffr(x) L2 L is NP-hard means: L’ NP: L’ ≤L L is in NPC means: LNP and L is NP-hard
How to establish NP-hardness Lemma: If L1 is NP-hard and L1 ≤ L2then L2 is NP-hard.
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
How to represent Boolean functions on a computer Tables. Formulae. 10
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 11
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…. 12
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. 13
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 anyconjunction of clauses (disjunctions of literals). A DNF is anydisjunction of terms (conjunctions of literals). Any function on n variables canbedescribed by a CNF (DNF) formulacontaining at most 2nclauses (terms), eachcontaining at most nliterals.
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.
SAT SAT is in NP. Cook’s theorem (1972): SAT is NP-hard.
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
A formula can be viewed as a special kind of circuit f(X1, X2, X3) = ¬X1∨(X1∧X2∧X3) ⋁ ⋀ ⋀ ¬ X3 X2 X1 X1
A formula can be viewed as a special kind of circuit f(X1, X2, X3) = ¬X1∨(X1∧X2∧X3) ⋁ ⋀ ⋀ ¬ X3 X2 X1 Convention: For each j, at most gate is labeledXj
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!
Multi-output circuits Any functionf: {0,1}n {0,1}m is represented by somecircuit. Proof: Any functionf: {0,1}n {0,1} canbedescribed by a Booleanformula. A formulacanalsobeviewed as a circuit. Combinemsuchcircuits.
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.
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.
Example ⋁ Input: ⋀ Output: Yes ¬ ⋀ X3 X2 X1
Example ⋀ Input: ⋀ Output: No ¬ ⋀ X3 X2 X1
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
Circuits vs. Turing Machines Weconsider Circuits also as computationaldevicesthemselves. LikeTuring Machines, circuitsC: {0,1}n {0,1} solvedecision problems on {0,1}n. UnlikeTuringmachines, circuitstakes inputs of afixedinput lengthnonly.
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 iffM accepts x. The map 1nCn is polynomial time computable.
Problem: Cycles! Flip-Flop, stores one bit.
The Tableau Method Time t … Time 1 Can be replaced by acyclic Boolean circuit of size ≈ s 1 2 s Time 0
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.
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.
t(n) x1 xn 2 t(n)