Misplaced Pages

Blum axioms

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
(Redirected from Blum complexity axioms) Axioms in computational complexity theory

In computational complexity theory the Blum axioms or Blum complexity axioms are axioms that specify desirable properties of complexity measures on the set of computable functions. The axioms were first defined by Manuel Blum in 1967.

Importantly, Blum's speedup theorem and the Gap theorem hold for any complexity measure satisfying these axioms. The most well-known measures satisfying these axioms are those of time (i.e., running time) and space (i.e., memory usage).

Definitions

A Blum complexity measure is a pair ( φ , Φ ) {\displaystyle (\varphi ,\Phi )} with φ {\displaystyle \varphi } a numbering of the partial computable functions P ( 1 ) {\displaystyle \mathbf {P} ^{(1)}} and a computable function

Φ : N P ( 1 ) {\displaystyle \Phi :\mathbb {N} \to \mathbf {P} ^{(1)}}

which satisfies the following Blum axioms. We write φ i {\displaystyle \varphi _{i}} for the i-th partial computable function under the Gรถdel numbering φ {\displaystyle \varphi } , and Φ i {\displaystyle \Phi _{i}} for the partial computable function Φ ( i ) {\displaystyle \Phi (i)} .

  • the domains of φ i {\displaystyle \varphi _{i}} and Φ i {\displaystyle \Phi _{i}} are identical.
  • the set { ( i , x , t ) N 3 | Φ i ( x ) = t } {\displaystyle \{(i,x,t)\in \mathbb {N} ^{3}|\Phi _{i}(x)=t\}} is recursive.

Examples

  • ( φ , Φ ) {\displaystyle (\varphi ,\Phi )} is a complexity measure, if Φ {\displaystyle \Phi } is either the time or the memory (or some suitable combination thereof) required for the computation coded by i.
  • ( φ , φ ) {\displaystyle (\varphi ,\varphi )} is not a complexity measure, since it fails the second axiom.

Complexity classes

For a total computable function f {\displaystyle f} complexity classes of computable functions can be defined as

C ( f ) := { φ i P ( 1 ) | x .   Φ i ( x ) f ( x ) } {\displaystyle C(f):=\{\varphi _{i}\in \mathbf {P} ^{(1)}|\forall x.\ \Phi _{i}(x)\leq f(x)\}}
C 0 ( f ) := { h C ( f ) | c o d o m ( h ) { 0 , 1 } } {\displaystyle C^{0}(f):=\{h\in C(f)|\mathrm {codom} (h)\subseteq \{0,1\}\}}

C ( f ) {\displaystyle C(f)} is the set of all computable functions with a complexity less than f {\displaystyle f} . C 0 ( f ) {\displaystyle C^{0}(f)} is the set of all boolean-valued functions with a complexity less than f {\displaystyle f} . If we consider those functions as indicator functions on sets, C 0 ( f ) {\displaystyle C^{0}(f)} can be thought of as a complexity class of sets.

References

  1. Blum, Manuel (1967). "A Machine-Independent Theory of the Complexity of Recursive Functions" (PDF). Journal of the ACM. 14 (2): 322โ€“336. doi:10.1145/321386.321395. S2CID 15710280.
Categories: