Blum axioms
From Wikipedia, the free encyclopedia
In computational complexity theory the Blum axioms or Blum complexity axioms are axioms which specify desirable properties of complexity measures on the set of computable functions. The axioms were first defined by Manuel Blum in 1967.
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).
Contents |
[edit] Definitions
A Blum complexity measure is a tuple with a Gödel numbering of the partial computable functions and a computable function
which satisfies the following Blum axioms. We write and Φi for the i-th partial computable function under the Gödel numbering or Φ.
[edit] 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 Φ mapping pairs (M,x) to a natural number or to infinity, where M is a Turing Machine and x is an input to M. Furthermore, Φ should satify the following axioms:
- Φ(M,x) is finite if and only if M(x) halts
- There is an algorithm which, on input (M,x,n) decides if Φ(M,x) = n
[edit] Examples
- is a complexity measure, if Φ is either the time or the memory (or some suitable combination thereof) required for the computation coded by i.
- is not a complexity measure, since it fails the second axiom.
[edit] Complexity classes
For a total computable function f complexity classes of computable functions can be defined as
C(f) is the set of all computable functions with a complexity less than f. C0(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, C0(f) can be thought of as a complexity class of sets.
[edit] References
- M. Blum. "A machine-independent theory of the complexity of recursive functions". Journal of the ACM, 14(2):322 336, 1967.