NP and Time Complexity
[cpsc/np-time-complexity]
NP and Time Complexity [cpsc/np-time-complexity]
Np (complexity class) is very important! Contains a large amount of natural problems
- ex. Hamilton path, 3 color graph, graph isomorphism, satisfiable boolean formulas
- Many problems in Np (complexity class) have “identical Complexity”, i.e. are Complete (we’ll talk about this later)
Definition 1. Runtime
[runtime]
Definition 1. Runtime [runtime]
-
- The runtime of a Turing machine is : . (the number of steps of on input until it halts) (assume is a decider for simplicity)
- The runtime of a nondeterministic Turing machine on input is max-length of any root-leaf path. For deciders – no infinite paths!
Recall .
Definition 2. TIME(t(n))
[time-tn]
Definition 2. TIME(t(n)) [time-tn]
is the class of all languages such that there exists a Turing machine with runtime that decides .
In briefer notation:
Definition 1. P (complexity class)
[p]
Definition 1. P (complexity class) [p]
Why is P a good definition for efficient computation?
- Insensitive to model of computation: by the extended Church-Turing thesis, switching computational models “only” involves a polynomial slowdown
- Closed under composition: can use polynomial time algorithm as a subroutine
- In practice: algorithms usually can be improved. If we find an time algorithm, it typically can be improved to, say, time.
Example. 2COLORMAP
Let be a “map” of countries in the plane, where a coloring is valid if neighboring countries have different colors.
Question. The two color map does not work for every map. So consider it as a problem: . Is 2COLORMAP P?
Answer. Yes! Start with an arbitrary country, set it to red, set their neighbors to blue, and continue. If there is a conflict, reject, if there is no conflict, accept.
It’s unknown if the three color map is in P. It’s known to be in EXP:
Definition 3. NTIME(t(n))
[ntime-tn]
Definition 3. NTIME(t(n)) [ntime-tn]
NTIME(𝑡(𝑛))={language𝐿:∃NTM𝑀thatdecides𝐿in time𝑂(𝑡(𝑛))}
NP (complexity class)
[cpsc/np]
NP (complexity class) [cpsc/np]
Let’s prove that 3colormap is in NP.
Proof: Design a nondeterministic Turing machine to decide 3colormap in polynomial time.
- Iterate through vertices
- Nondetermistically pick a color for each vertex (a “lucky guess”)
- Check all pairs of neighbors to see if they are the same color
- If so reject, otherwise accept
NP and EXP
[cpsc/np-exp]
NP and EXP [cpsc/np-exp]
Claim: Np (complexity class) Exp
Idea: For any , there is an NTM deciding in polynomial time. We can simulate it with a DTM that does the breadth-first search on the configuration tree. The tree has a number of nodes exponential in runtime of the NTM.
There are several open questions surrounding P (complexity class), Np (complexity class), and Exp:
- Is , i.e. ?
- Is , i.e. ?
The answer to either Q1 or Q2 is yes.
Proof: , yet by the time hierarchy theorem . So either or (or both).