Definition. TIME(t(n))
[time-tn]
Definition. 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: