1 / 28

L is in NP means: There is a language L ’ in P and a polynomial p so that

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:

ryann
Download Presentation

L is in NP means: There is a language L ’ in P and a polynomial p so that

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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  L1iffr(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 ≤ L2 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. How to represent Boolean functions on a computer Tables. Formulae. 4

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

  6. 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…. 6

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

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

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

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

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

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

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

  14. 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!

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

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

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

  18. Example ⋁ Input: ⋀ Output: Yes ¬ ⋀ X3 X2 X1

  19. Example ⋀ Input: ⋀ Output: No ¬ ⋀ X3 X2 X1

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

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

  22. 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 1nCn is polynomial time computable.

  23. Intuition behind proof

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

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

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

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

  28. t(n) x1 xn 2 t(n)

More Related