Lably
Skip to content

Blum axioms

Axioms in computational complexity theory

  • 3 min read
  • 3 chapters

Related on Lably

Through Axiom, General recursive function and Natural number

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).

Definition

To begin, we list all partial computable functions. That is, we assign a computable numbering of these functions: φ0,φ1,…. For example, we may specify a specific programming language, then assign φn to be the length-lexicographically n-th syntactically valid program according to that. Two programs φn,φm may compute the exact same partial function, but have different numberings. This allows us to distinguish their "complexity"

Abstractly, to say that we are measuring the "complexity" of program φn means finding a function Φn, such that for any program input x, the complexity/cost of computing φn on that input is Φn(x). If program φn does not halt on x, then Φn(x) should be undefined. Otherwise, Φn(x) should be a definite natural number. This gives us the first axiom:

  • The domains of φi and Φi are identical.

Further, the complexity measure should be computable in some sense, for non-computable complexity measures are not interesting in practice. This gives us the second axiom:

  • There is a program that, given any i,x,c∈N, decides whether Φi(x)≤c. Note that if Φi(x) is undefined, then by definition Φi(x)≤c is FALSE for all c∈N. In other words, the set {(i,x,c)∈N3∣Φi(x)=c} is computable.

These are the Blum axioms. A Blum complexity measure is a pairing (φ,Φ) that satisfies the Blum axioms.

Given a Blum complexity measure, and any total computable function f, we define C[f] to be the class of functions of complexity class bounded by f. That is, C[f] consists of total computable functions ϕ, such that there exists some φn, such that ∀x,Φn(x)≤f(x).

The definition of complexity class is sometimes loosened to C¯[f], the class of functions bounded by f for almost all inputs. That is, C¯[f] consists of total computable functions ϕ, such that there exists some φn, such that Φn(x)≤f(x) for all but finitely many x.

Examples

Time complexity is a Blum complexity measure. To decide whether Φi(x)≤c, simulate φi(x) for c steps. If the machine halts before c steps are done, then output TRUE, else output FALSE.

Similarly, space complexity (or any computable combination of time and space), is a Blum complexity measure.

(φ,φ) is not a complexity measure, since it fails the second axiom.

Sign in to keep reading

2 more chapters are free with a Lably account.

More in Theoretical computer science