Theory of Computability

Slides:



Advertisements
Similar presentations
1 Nondeterministic Space is Closed Under Complement Presented by Jing Zhang and Yingbo Wang Theory of Computation II Professor: Geoffrey Smith.
Advertisements

INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
The class NP Section 7.3 Giorgi Japaridze Theory of Computability.
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
NL equals coNL Section 8.6 Giorgi Japaridze Theory of Computability.
The diagonalization method The halting problem is undecidable Decidability.
Complexity 15-1 Complexity Andrei Bulatov Hierarchy Theorem.
Computability and Complexity 13-1 Computability and Complexity Andrei Bulatov The Class NP.
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
P and NP Sipser (pages ). CS 311 Fall Polynomial time P = ∪ k TIME(n k ) … P = ∪ k TIME(n k ) … TIME(n 3 ) TIME(n 2 ) TIME(n)
NP-completeness Sipser 7.4 (pages 271 – 283). CS 311 Mount Holyoke College 2 The classes P and NP NP = ∪ k NTIME(n k ) P = ∪ k TIME(n k )
NP-completeness Sipser 7.4 (pages 271 – 283). CS 311 Fall The classes P and NP NP = ∪ k NTIME(n k ) P = ∪ k TIME(n k )
Complexity ©D.Moshkovitz 1 Turing Machines. Complexity ©D.Moshkovitz 2 Motivation Our main goal in this course is to analyze problems and categorize them.
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY Read sections 7.1 – 7.3 of the book for next time.
1 Polynomial Time Reductions Polynomial Computable function : For any computes in polynomial time.
Analysis of Algorithms CS 477/677
CS 310 – Fall 2006 Pacific University CS310 P vs NP the steel cage death match Section 7.2 November 29, 2006.
Time Complexity.
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT Lecture NP-Completeness Jan Maluszynski, IDA, 2007
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
MCS312: NP-completeness and Approximation Algorithms
חישוביות וסיבוכיות Computability and Complexity Lecture 7 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A AAAA.
Computational Complexity Theory Lecture 2: Reductions, NP-completeness, Cook-Levin theorem Indian Institute of Science.
Computer Language Theory
CSCI 2670 Introduction to Theory of Computing November 23, 2004.
CSCI 2670 Introduction to Theory of Computing November 29, 2005.
1 Design and Analysis of Algorithms Yoram Moses Lecture 11 June 3, 2010
Measuring complexity Section 7.1 Giorgi Japaridze Theory of Computability.
Computability Heap exercise. The class P. The class NP. Verifiers. Homework: Review RELPRIME proof. Find examples of problems in NP.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 7 Time complexity Contents Measuring Complexity Big-O and small-o notation.
CSCI 2670 Introduction to Theory of Computing November 17, 2005.
Donghyun (David) Kim Department of Mathematics and Computer Science North Carolina Central University 1 Chapter 7 Time Complexity Some slides are in courtesy.
Alternation Section 10.3 Giorgi Japaridze Theory of Computability.
April 13 th Class Notes Hw# 5 will be worth 50 points and it will be posted tonight or tomorrow.
Introduction to NP Instructor: Neelima Gupta 1.
The NP class. NP-completeness Lecture2. The NP-class The NP class is a class that contains all the problems that can be decided by a Non-Deterministic.
Theory of Computational Complexity TA : Junichi Teruyama Iwama lab. D3
CSCI 2670 Introduction to Theory of Computing November 15, 2005.
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
The NP class. NP-completeness
NP-Completeness (2) NP-Completeness Graphs 4/13/2018 5:22 AM x x x x x
CSE 105 theory of computation
Time complexity Here we will consider elements of computational complexity theory – an investigation of the time (or other resources) required for solving.
CS154, Lecture 13: P vs NP.
CSCI 2670 Introduction to Theory of Computing
Intro to Theory of Computation
CS154, Lecture 16: More NP-Complete Problems; PCPs
ICS 353: Design and Analysis of Algorithms
Intractable Problems Time-Bounded Turing Machines Classes P and NP
Intro to Theory of Computation
Intractable Problems Time-Bounded Turing Machines Classes P and NP
Additional NP-complete problems
CSC 4170 Theory of Computation The class NP Section 7.3.
CS154, Lecture 13: P vs NP.
CSC 4170 Theory of Computation Time complexity Section 7.1.
Turing Machines Complexity ©D.Moshkovitz.
Time Complexity Classes
CSC 4170 Theory of Computation The class NP Section 7.3.
Computer Language Theory
CS154, Lecture 16: More NP-Complete Problems; PCPs
Theory of Computability
CSE 589 Applied Algorithms Spring 1999
Instructor: Aaron Roth
Instructor: Aaron Roth
CSE 105 theory of computation
CSC 4170 Theory of Computation Time complexity Section 7.1.
NP-Completeness (2) NP-Completeness Graphs 7/9/2019 6:12 AM x x x x x
Presentation transcript:

Theory of Computability The class NP Section 7.3

and target node are fixed. The HAMPATH problem A Hamiltonian path in a directed graph G is a directed path that goes through each node exactly once. We consider a special case of this problem where the start node and target node are fixed. HAMPATH = {<G,s,t> | G is a directed graph with a Hamiltonian path from s to t} 1 5 3  PATH? s t 4 2 6 1 5 3  HAMPATH? s t 4 2 6

Polynomial verifiability Does this graph have a Hamiltonian path? s t

The COMPOSITES problem COMPOSITES = {x | x = pq for some integers p, q > 1} 15  COMPOSITES ? 17  COMPOSITES ? 77  COMPOSITES ? 10403  COMPOSITES ? COMPOSITES is very easily seen to be verifiable in polynomial time. But only a few years ago it was proven that it is also decidable in polynomial time (2002, N. Agrawal, N. Kayal and N. Saxena, claimed a deterministic polynomial-time algorithm). The same question, however, remains open for HAMPATH --- one of the seven $1,000,000 questions!

Definition of a verifier Definition: A verifier for a language A is an algorithm V, where A = {w | V accepts <w, c> for some string c}. We measure the time of a verifier only in terms of the length of w, so a polynomial time verifier runs in polynomial time in the length of w. A language A is polynomially verifiable if it has a polynomial time verifier. The above string c, used as additional information to verify that w  A, is called a certificate, or proof, of membership in A. Observe that, for polynomial verifiers, the certificate has polynomial length (in the length of w) because that is all the verifier can access in its time bound. What is a certificate for <G,s,t>  HAMPATH? What is a verifier for HAMPATH? What is a certificate for x  COMPOSITES? What is a verifier for COMPOSITES?

Definition of NP Definition: NP is the class of languages that have polynomial time verifiers. A very important class, because many natural and important problems are in it! NP stand for “nondeterministic polynomial”. As it turns out, an alternative characterization of NP is to say that this is the class of languages decidable by polynomial-time nondeterministic Turing machines. Here is such a machine for HAMPATH: N1 = “On input <G,s,t>, where G is a directed graph with nodes s and t: 1. Write a list on m members p1,…,pm, where m is the number of nodes of G. Each number in the list is nondeterministically selected to be between 1 and m. 2. Check for repetitions in the list. If any are found, reject. 3. Check whether s=p1 and t=pm. If either fail, reject. 4. For each i between 1 and m-1, check whether (pi,pi+1) is an edge of G. If any are not, reject. Otherwise, all tests have been passed, so accept.”

NP in terms of nondeterministic Turing machines Theorem: A language is in NP iff it is decided by some nondeterministic polynomial time Turing machine. Proof. The idea is to show how to convert a polynomial time verifier into a polynomial time NTM, and vice versa. The NTM simulates the verifier by guessing the certificate. The verifier simulates the NTM by using the accepting branch as the certificate. () Assume A  NP. Let V be a verifier for A with VTIME(nk), which, by the definition of NP, exists. Construct N as follows: N = “On input w of length n: 1. Nondeterministically select a string c of length at most nk. 2. Run V on input <w, c>. 3. If V accepts, accept; otherwise reject.” () Assume A is decided by a polynomial time NTM N. Construct a verifier V as follows: V = “On input <w ,c>, where w and c are strings: Check whether c is (encodes) an accepting computation branch of N on input w. If yes, accept; otherwise reject.”

Definition of NTIME(t(n)) Definition: Let t(n) be a function. NTIME(t(n)) is defined as {L | L is a language decided by some O(t(n)) time NTM}. Corollary: NP = NTIME(n1)  NTIME(n2)  NTIME(n3)  NTIME(n4)  … Just like P, the class NP is insensitive to the choice of the reasonable underlying computational model because all such models are polynomially equivalent. So, when describing and analyzing nondeterministic polynomial algorithms, we can follow the preceding (lazy man’s) conventions for deterministic polynomial time algorithms.

CLIQUE = {<G, k> | G is an undirected graph with a k-clique} The CLIQUE problem A k-clique in an undirected graph is a subgraph with k nodes, wherein every two nodes are connected by an edge. On the right we see a 5-clique CLIQUE = {<G, k> | G is an undirected graph with a k-clique} Theorem: CLIQUE  NP. Idea: The clique is the certificate. Proof. Here is a polynomial time verifier V for CLIQUE: V = “On input <<G, k>, c>: 1. Test whether c is a set of k nodes in G. 2. Test whether G contains all edges connecting nodes in c. 3. If both pass, accept; otherwise reject.” Alternative proof. Here is a polynomial time NTM N deciding CLIQUE: N = “On input <G, k>: 1. Nondeterministically select a subset c of k nodes of G. 2. Test whether G contains all edges connecting nodes in c. 3. If yes, accept; otherwise reject.”

The SUBSET-SUM problem SUBSET-SUM = {<S, t> | S is a multiset of integers and, for some R  S, the sum of all elements of R equals t} Theorem 7.25 SUBSET-SUMNP. Idea: The subset is the certificate. Proof. Here is a polynomial time verifier V for SUBSET-SUM: V = “On input <<S, t>,c>: 1. Test whether c is a collection of numbers that sum to t. 2. Test whether S contains all the numbers in c. 3. If both pass, accept; otherwise reject.” Alternative proof. Here is a polynomial time NTM N deciding SUBSET-SUM: N = “On input <S, t>: 1. Nondeterministically select a subset c of S. 2. Test whether the elements of c sum up to t. 3. If yes, accept; otherwise reject.”

P vs. NP vs. coNP vs. EXPTIME Definitions coNP = {L | L is the complement of some language in NP} EXPTIME = TIME(2n1)  TIME(2n2)  TIME(2n3)  … This is what we know: P NP coNP EXPTIME NP  coNP ≠ EXPTIME P: membership can be decided quickly NP: membership can be verified quickly coNP: membership can be refuted quickly EXPTIME: none of the above This is what we do not know: P = NP? NP = coNP? P = NP  coNP?