polynomial time computability

an initial definition that i had studied was from davis'
a broken link: blk:def-lang an alphabet is said to be polynomial-time decidable if there is a turing machine that accepts , and a polynomial , such that the number of steps in an accepting computation by with input is . when the alphabet is understood, we write for the class of polynomial-time decidable languages.
[cite:;taken from @computability_davis_1994 chapter 15 polynomial-time complexity]
a total function on , where is an alphabet, is said to be polynomial-time computable if there is a turing machine that computes , and a polynomial , such that the number of steps in the computation by with input is .
[cite:;taken from @computability_davis_1994 chapter 15 polynomial-time complexity]
the following definition is the original definition of (based on the concept of a nondeterministic turing machine).
a language is said to belong to the class if there is a nondeterministic turing machine that accepts , and a polynomial , such that for each , there is an accepting computation by for with .
[cite:;taken from @computability_davis_1994 chapter 15 polynomial-time complexity]
an equivalent definition from arora's:
for every function and , we say that if there is a constant and a -time NDTM such that for every , .
[cite:;taken from @computability_arora_2009 definition 2.5]
another definition for (which i actually prefer):
a language is in if there exists a polynomial and a polynomial-time TM (called the verifier for ) such that for all :
if and satisfy , then we call a certificate for (with respect to the language and machine ).
[cite:;taken from @computability_arora_2009 definition 2.1]
we then have:
. if , then is recursive
[cite:;taken from @computability_davis_1994 chapter 15 polynomial-time complexity; theorem 2.3]
let
we show that the language defined in is in . recall that this language contains all pairs such that the graph has a subgraph of at least vertices with no edges between them (such a subgraph is called an independent set). consider the following polynomial-time algorithm : given a pair and a string , output if and only if encodes a list of vertices of such that there is no edge between any two members of the list. clearly, is in if and only if there exists a string such that and hence is in . the list of vertices forming the independent set in serves as the certificate that is in . note that if is the number of vertices in , then a list of vertices can be encoded using bits, where is the number of vertices in . thus, is a string of at most bits, which is polynomial in the size of the representation of .
[cite:;refer to @computability_arora_2009 chapter 2.1 the class np; example 2.2] gives an intuitive example of how the definition of relates to the "largest party you can throw" problem.
[cite:;taken from @computability_arora_2009 example 2.2]
.
let be languages, then we write
and say that is polynomial-time reducible to , if there is a polynomial-time computable function such that
[cite:;taken from @computability_davis_1994 chapter 15 polynomial-time complexity; theorem 2.3]
if and then is too. if and then is too.
a language is called -hard if for every , we have , is called -complete if and is -hard.
[cite:;taken from @computability_davis_1994 chapter 15 polynomial-time complexity; theorem 2.3]
is closed under intersection, broken link: blk:def-union and complementation.
is closed under broken link: blk:def-union and intersection.
if there is an -complete language in then .
the implications of are mind-boggling. problems seem to capture some aspects of "creativity" in problem solving, and such creativity could become accessible to computers if . for instance, in this case computers would be able to quickly find proofs for every true mathematical statement for which a proof exists. resolving the versus question is truly of great practical, scientific, and philosophical interest.
[cite:;taken from @computability_arora_2009 chapter 2.1 the class NP]
[cite:taken from @computability_arora_2009 definition 2.19]
the following language is -complete:
[cite:;taken from @computability_arora_2009 example 2.21]
for every , we say that if there exists a polynomial and a polynomial-time TM such that for every ,
note the use of the quantifier in this definition where polynomial_time_computability.html used .
[cite:;taken2 from @computability_arora_2009 definition 2.20]