Blum axioms

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.[1]

Importantly, the Speedup and Gap theorems 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 tuple (\varphi, \Phi) with \varphi a Gödel numbering of the partial computable functions \mathbf{P}^{(1)} and a computable function

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

which satisfies the following Blum axioms. We write \varphi_i for the i-th partial computable function under the Gödel numbering \varphi, and \Phi_i for the partial computable function \Phi(i).

Examples

Notes

A Blum complexity measure is defined using computable functions without any reference to a specific model of computation. In order to make the definition more accessible we rephrase the Blum axioms in terms of Turing machines:

A Blum complexity measure is a function \Phi from pairs (Turing machine M, input x for M) to the natural numbers union infinity. Furthermore, \Phi should satisfy the following axioms:

For example, suppose \Phi(M,x) gives the number of time steps that the machine M runs for on input x before halting. The first axiom is clear; the second follows because a universal Turing machine can simulate M on x while counting its steps. If M exceeds n steps, it can halt and reject, so there is no need to determine if M halts on x.

Complexity classes

For a total computable function f complexity classes of computable functions can be defined as

C(f) := \{ \varphi_i \in \mathbf{P}^{(1)} | \forall x.\ \Phi_i(x) \leq f(x) \}
C^0(f) := \{ h \in C(f) | \mathrm{codom}(h) \subseteq \{0,1\} \}

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

References

This article is issued from Wikipedia - version of the Saturday, August 29, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.