Computational Complexity Theory

Slides:



Advertisements
Similar presentations
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
Advertisements

Complexity Classes: P and NP
The Theory of NP-Completeness
1 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 : 8 x: x 2 L 1 iff.
Computability and Complexity 13-1 Computability and Complexity Andrei Bulatov The Class NP.
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY Read sections 7.1 – 7.3 of the book for next time.
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
1 Polynomial Time Reductions Polynomial Computable function : For any computes in polynomial time.
The Theory of NP-Completeness
NP-Complete Problems Problems in Computer Science are classified into
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT Lecture NP-Completeness Jan Maluszynski, IDA, 2007
February 20, 2015CS21 Lecture 191 CS21 Decidability and Tractability Lecture 19 February 20, 2015.
1 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)
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
Theory of Computation, Feodor F. Dragan, Kent State University 1 NP-Completeness P: is the set of decision problems (or languages) that are solvable in.
The Complexity of Optimization Problems. Summary -Complexity of algorithms and problems -Complexity classes: P and NP -Reducibility -Karp reducibility.
Computational Complexity Theory Lecture 2: Reductions, NP-completeness, Cook-Levin theorem Indian Institute of Science.
Theory of Computing Lecture 17 MAS 714 Hartmut Klauck.
Computational Complexity Theory Lecture 1: Intro; Turing machines; Class P and NP Indian Institute of Science.
CSCI 2670 Introduction to Theory of Computing November 29, 2005.
CSCI 2670 Introduction to Theory of Computing December 1, 2004.
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
CSE 024: Design & Analysis of Algorithms Chapter 9: NP Completeness Sedgewick Chp:40 David Luebke’s Course Notes / University of Virginia, Computer Science.
Complexity 25-1 Complexity Andrei Bulatov Counting Problems.
CSCI 3160 Design and Analysis of Algorithms Tutorial 10 Chengyu Lin.
1 The Theory of NP-Completeness 2 Cook ’ s Theorem (1971) Prof. Cook Toronto U. Receiving Turing Award (1982) Discussing difficult problems: worst case.
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.
1 Chapter 34: NP-Completeness. 2 About this Tutorial What is NP ? How to check if a problem is in NP ? Cook-Levin Theorem Showing one of the most difficult.
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
1 How to establish NP-hardness Lemma: If L 1 is NP-hard and L 1 ≤ L 2 then L 2 is NP-hard.
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
Chapter 11 Introduction to Computational Complexity Copyright © 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1.
NPC.
CSCI 2670 Introduction to Theory of Computing December 2, 2004.
CSCI 2670 Introduction to Theory of Computing December 7, 2005.
1 The Theory of NP-Completeness 2 Review: Finding lower bound by problem transformation Problem X reduces to problem Y (X  Y ) iff X can be solved by.
Computability Examples. Reducibility. NP completeness. Homework: Find other examples of NP complete problems.
Computational Complexity Theory Lecture 1: Intro; Turing machines; Class P and NP Indian Institute of Science.
ICS 353: Design and Analysis of Algorithms NP-Complete Problems King Fahd University of Petroleum & Minerals Information & Computer Science Department.
NP-Completeness A problem is NP-complete if: It is in NP
Chapter 10 NP-Complete Problems.
Computational Complexity Theory
NP and NP-completeness
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.
Richard Anderson Lectures NP-Completeness
Richard Anderson Lecture 26 NP-Completeness
Advanced Algorithms Analysis and Design
Computational Complexity Theory
Lecture 22 Complexity and Reductions
Lecture 5 NP Class.
NP-Completeness Yin Tat Lee
Great Ideas in Computing Complexity Theory
Intro to Theory of Computation
ICS 353: Design and Analysis of Algorithms
Intro to Theory of Computation
Richard Anderson Lecture 25 NP-Completeness
Computational Complexity
Chapter 11 Limitations of Algorithm Power
NP-Complete Problems.
Chapter 34: NP-Completeness
CS154, Lecture 13: P vs NP.
NP-completeness The Chinese University of Hong Kong Fall 2008
NP-Completeness Yin Tat Lee
Umans Complexity Theory Lectures
The Theory of NP-Completeness
CSE 589 Applied Algorithms Spring 1999
Instructor: Aaron Roth
Intro to Theory of Computation
Lecture 23 NP-Hard Problems
Presentation transcript:

Computational Complexity Theory Lecture 2: Class NP, Reductions, NP-completeness Indian Institute of Science

Complexity classes P and NP

Recap: Decision Problems In the initial part of this course, we’ll focus primarily on decision problems. Decision problems can be naturally identified with boolean functions, i.e. functions from {0,1}* to {0,1}. Boolean functions can be naturally identified with sets of {0,1} strings, also called languages.

Recap: Decision Problems Decision problems Boolean functions Languages Definition. We say a TM M decides a language L ⊆ {0,1}* if M computes fL, where fL(x) = 1 if and only if x ∈ L.

Recap: Complexity Class P Let T: N N be some function. Definition: A language L is in DTIME(T(n)) if there’s a TM that decides L in time O(T(n)). Defintion: Class P = ∪ DTIME (nc). c > 0 Deterministic polynomial-time

Complexity Class P : Examples Cycle detection Solvabililty of a system of linear equations Perfect matching Primality testing (AKS test 2002) Check if a number is prime

Polynomial time Turing Machines Definition. A TM M is a polynimial time TM if there’s a polynomial function q: N N such that for every input x ∈ {0,1}*, M halts within q(|x|) steps. Polynomial function. q(n) = nc for some constant c

Class (functional) P What if a problem is not a decision problem? Like the task of adding two integers.

Class (functional) P What if a problem is not a decision problem? Like the task of adding two integers. One way is to focus on the i-th bit of the output and make it a decision problem. (Is the i-th bit, on input x, 1?)

Class (functional) P What if a problem is not a decision problem? Like the task of adding two integers. One way is to focus on the i-th bit of the output and make it a decision problem. Alternatively, we define a class called functional P.

Class (functional) P What if a problem is not a decision problem? Like the task of adding two integers. One way is to focus on the i-th bit of the output and make it a decision problem. We say that a problem or a function f: {0,1}* {0,1}* is in FP (functional P) if there’s a polynomial-time TM that computes f.

Complexity Class FP : Examples Greatest Common Divisor (Euclid ~300 BC) Given two integers a and b, find their gcd.

Complexity Class FP : Examples Greatest Common Divisor Counting paths in a DAG (homework) Find the number of paths between two vertices in a directed acyclic graph.

Complexity Class FP : Examples Greatest Common Divisor Counting paths in a DAG Maximum matching (Edmonds 1965) Find a maximum matching in a given graph

Complexity Class FP : Examples Greatest Common Divisor Counting paths in a DAG Maximum matching Linear Programming (Khachiyan 1979, Karmarkar 1984) Optimize a linear objective function subject to linear (in)equality constraints

Complexity Class NP Solving a problem is generally harder than verifying a given solution to the problem.

Complexity Class NP Solving a problem is generally harder than verifying a given solution to the problem. Class NP captures the set of decision problems whose solutions are efficiently verifiable.

Complexity Class NP Solving a problem is generally harder than verifying a given solution to the problem. Class NP captures the set of decision problems whose solutions are efficiently verifiable. Nondeterministic polynomial-time

Complexity Class NP Definition. A language L ⊆ {0,1}* is in NP if there’s a polynomial function p: N N and a polynomial time TM M (called the verifier) such that for every x, x ∈ L ∃u ∈ {0,1}p(|x|) s.t. M(x, u) = 1

Complexity Class NP Definition. A language L ⊆ {0,1}* is in NP if there’s a polynomial function p: N N and a polynomial time TM M (called the verifier) such that for every x, x ∈ L ∃u ∈ {0,1}p(|x|) s.t. M(x, u) = 1 u is called a certificate or witness for x (w.r.t L and M) if x ∈ L

Complexity Class NP Definition. A language L ⊆ {0,1}* is in NP if there’s a polynomial function p: N N and a polynomial time TM M (called the verifier) such that for every x, x ∈ L ∃u ∈ {0,1}p(|x|) s.t. M(x, u) = 1 It follows that verifier M cannot be fooled!

Complexity Class NP Definition. A language L ⊆ {0,1}* is in NP if there’s a polynomial function p: N N and a polynomial time TM M (called the verifier) such that for every x, x ∈ L ∃u ∈ {0,1}p(|x|) s.t. M(x, u) = 1 Class NP contains those problems (languages) which have such efficient verifiers.

Class NP : Examples Vertex cover Given a graph G and an integer k, check if G has a vertex cover of size k.

Class NP : Examples Vertex cover 0/1 integer programming Given a system of linear (in)equalities with integer coefficients, check if there’s a 0-1 assignment to the variables that satisfy all the (in)equalities.

Class NP : Examples Vertex cover 0/1 integer programming Integer factoring Given 2 numbers n and U, check if n has a nontrivial factor less than equal to U.

Class NP : Examples Vertex cover 0/1 integer programming Integer factoring Graph isomorphism Given 2 graphs, check if they are isomorphic

Is P = NP ? Obviously, P ⊆ NP. Whether or not P = NP is an outstanding open question in mathematics and TCS!

Is P = NP ? Obviously, P ⊆ NP. Whether or not P = NP is an outstanding open question in mathematics and TCS! Solving a problem does seem harder than verifying its solution, so most people believe that P ≠ NP.

Is P = NP ? Obviously, P ⊆ NP. Whether or not P = NP is an outstanding open question in mathematics and TCS! P = NP has many weird consequences, and if true, will pose a serious threat to secure and efficient cryptography.

Is P = NP ? Obviously, P ⊆ NP. Whether or not P = NP is an outstanding open question in mathematics and TCS! Mathematics has gained much from attempts to prove such negative statements—Galois theory, Godel’s incompleteness, Fermat’s Last Theorem, Turing’s undecidability, Continuum hypothesis etc.

Is P = NP ? Obviously, P ⊆ NP. Whether or not P = NP is an outstanding open question in mathematics and TCS! Complexity theory has several of such intriguing unsolved questions.

Karp reductions

Polynomial time reduction Definition. We say a language L1 ⊆ {0,1}* is polynomial time (Karp) reducible to a language L2 ⊆ {0,1}* if there’s a polynomial time computable function f s.t. x∈L1 f(x)∈L2 f(L1) L1 L2 L2 L1 f(L1)

Polynomial time reduction Definition. We say a language L1 ⊆ {0,1}* is polynomial time (Karp) reducible to a language L2 ⊆ {0,1}* if there’s a polynomial time computable function f s.t. x∈L1 f(x)∈L2 Notation. L1 ≤p L2 Observe. If L1 ≤p L2 and L2 ≤p L3 then L1 ≤p L3 .

NP-completeness Definition. A language L’ is NP-hard if for every L in NP, L ≤p L’. Further, L’ is NP-complete if L’ is in NP and is NP-hard. Observe. If L’ is NP-hard and L’ is in P then P = NP. If L’ is NP-complete then L’ in P if and only if P = NP. NPC Hardest problems inside NP in the sense that if one NPC problem is in P then all problems in NP is in P. NP P

NP-completeness Definition. A language L’ is NP-hard if for every L in NP, L ≤p L’. Further, L’ is NP-complete if L’ is in NP and is NP-hard. Observe. If L’ is NP-hard and L’ is in P then P = NP. If L’ is NP-complete then L’ in P if and only if P = NP. Exercise. Let L1 ⊆ {0,1}* be any language and L2 be a language in NP. If L1 ≤p L2 then L1 is also in NP.

Few words on reductions As to how we define a reduction from one language to the other (or one function to the other) is usually guided by a question on whether two complexity classes are different or identical. For polynomial time reductions, the question is whether P equals NP. Reductions help us define complete problems (the ‘hardest’ problems in a class) which in turn help us compare the complexity classes under consideration.

Class P and NP : Examples Vertex cover (NP-complete) 0/1 integer programming (NP-complete) Integer factoring (unlikely to be NP-complete) Graph isomorphism (Quasi-P) Primality testing (P) Linear programming (P)

How to show existence of an NPC problem? Let L’ = { (α, x, 1m, 1t ) : there exists a u ∈{0,1}m s.t. Mα accepts (x, u) in t steps } Observation. L’ is NP-complete. The language L’ involves Turing machine in its definition. Next, we’ll see an example of an NP-complete problem that is arguably more natural.

A natural NP-complete problem Definition. A boolean formula on variables x1, …, xn consists of AND, OR and NOT operations. e.g. ϕ = (x1 ∨ x2) ∧ (x3 ∨ ¬x2 ) Definition. A boolean formula ϕ is satisfiable if there’s a {0,1}-assignment to its variables that makes ϕ evaluate to 1.

A natural NP-complete problem Definition. A boolean formula is in Conjunctive Normal Form (CNF) if it is an AND of OR of literals. e.g. ϕ = (x1 ∨ x2) ∧ (x3 ∨ ¬x2 ) clauses

A natural NP-complete problem Definition. A boolean formula is in Conjunctive Normal Form (CNF) if it is an AND of OR of literals. e.g. ϕ = (x1 ∨ x2) ∧ (x3 ∨ ¬x2 ) literals

A natural NP-complete problem Definition. A boolean formula is in Conjunctive Normal Form (CNF) if it is an AND of OR of literals. e.g. ϕ = (x1 ∨ x2) ∧ (x3 ∨ ¬x2 ) Definition. Let SAT be the language consisting of all satisfiable CNF formulae.

A natural NP-complete problem Definition. A boolean formula is in Conjunctive Normal Form (CNF) if it is an AND of OR of literals. e.g. ϕ = (x1 ∨ x2) ∧ (x3 ∨ ¬x2 ) Definition. Let SAT be the language consisting of all satisfiable CNF formulae. Theorem. (Cook-Levin) SAT is NP-complete.

A natural NP-complete problem Definition. A boolean formula is in Conjunctive Normal Form (CNF) if it is an AND of OR of literals. e.g. ϕ = (x1 ∨ x2) ∧ (x3 ∨ ¬x2 ) Definition. Let SAT be the language consisting of all satisfiable CNF formulae. Theorem. (Cook-Levin) SAT is NP-complete. Easy to see that SAT is in NP. Need to show that SAT is NP-hard.

Proof of Cook-Levin Theorem

Cook-Levin theorem: Proof Main idea: Computation is local; i.e. every step of computation looks at and changes only constantly many bits; and this step can be implemented by a small CNF formula.

Cook-Levin theorem: Proof Main idea: Computation is local; i.e. every step of computation looks at and changes only constantly many bits; and this step can be implemented by a small CNF formula. Let L ∈ NP. We intend to come up with a polynomial time computable function f: x ϕx s.t., x ∈ L ϕx ∈ SAT

Cook-Levin theorem: Proof Main idea: Computation is local; i.e. every step of computation looks at and changes only constantly many bits; and this step can be implemented by a small CNF formula. Let L ∈ NP. We intend to come up with a polynomial time computable function f: x ϕx s.t., x ∈ L ϕx ∈ SAT Notation: |ϕx| := size of ϕx = number of ∨ or ∧ in ϕx

Cook-Levin theorem: Proof Language L has a poly-time verifier M such that x∈L ∃u ∈{0,1}p(|x|) s.t. M(x, u) = 1

Cook-Levin theorem: Proof Language L has a poly-time verifier M such that x∈L ∃u ∈{0,1}p(|x|) s.t. M(x, u) = 1 Idea: Capture the computation of M(x, ..) by a CNF ϕx such that ∃u ∈{0,1}p(|x|) s.t. M(x, u) = 1 ϕx is satisfiable

Cook-Levin theorem: Proof Language L has a poly-time verifier M such that x∈L ∃u ∈{0,1}p(|x|) s.t. M(x, u) = 1 Idea: Capture the computation of M(x, ..) by a CNF ϕx such that ∃u ∈{0,1}p(|x|) s.t. M(x, u) = 1 ϕx is satisfiable For any fixed x, M(x, ..) is a deterministic TM that takes u as input and runs in time polynomial in |u|.

Cook-Levin theorem: Proof Main Theorem. Let N be a deterministic TM that runs in time T(n) on every input u of length n, and outputs 0/1. Then,

Cook-Levin theorem: Proof Main Theorem. Let N be a deterministic TM that runs in time T(n) on every input u of length n, and outputs 0/1. Then, There’s a CNF ϕ of size poly(T(n)) such that ϕ(u, “additional variables”) is satisfiable if and only if N(u) =1.

Cook-Levin theorem: Proof Main Theorem. Let N be a deterministic TM that runs in time T(n) on every input u of length n, and outputs 0/1. Then, There’s a CNF ϕ of size poly(T(n)) such that ϕ(u, “additional variables”) is satisfiable if and only if N(u) =1. ϕ is computable in time poly(T(n)).

Cook-Levin theorem: Proof Main Theorem. Let N be a deterministic TM that runs in time T(n) on every input u of length n, and outputs 0/1. Then, There’s a CNF ϕ of size poly(T(n)) such that ϕ(u, “additional variables”) is satisfiable if and only if N(u) =1. ϕ is computable in time poly(T(n)). Cook-Levin theorem follows from above!