HOME

TheInfoList



OR:

In
computational complexity theory In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and explores the relationships between these classifications. A computational problem ...
the Blum axioms or Blum complexity axioms are
axioms An axiom, postulate, or assumption is a statement that is taken to be true, to serve as a premise or starting point for further reasoning and arguments. The word comes from the Ancient Greek word (), meaning 'that which is thought worthy or f ...
that specify desirable properties of complexity measures on the set of
computable function Computable functions are the basic objects of study in computability theory. Informally, a function is ''computable'' if there is an algorithm that computes the value of the function for every value of its argument. Because of the lack of a precis ...
s. The axioms were first defined by
Manuel Blum Manuel Blum (born 26 April 1938) is a Venezuelan-born American computer scientist who received the Turing Award in 1995 "In recognition of his contributions to the foundations of computational complexity theory and its application to cryptography ...
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 (\varphi, \Phi) with \varphi a
numbering There are many different numbering schemes for assigning nominal numbers to entities. These generally require an agreed set of rules, or a central coordinator. The schemes can be considered to be examples of a primary key In the relational model ...
of the partial computable functions \mathbf^ and a computable function :\Phi: \mathbb \to \mathbf^ which satisfies the following Blum axioms. We write \varphi_i for the ''i''-th partial computable function under the
Gödel numbering In mathematical logic, a Gödel numbering is a function that assigns to each symbol and well-formed formula of some formal language a unique natural number, called its Gödel number. Kurt Gödel developed the concept for the proof of his incom ...
\varphi, and \Phi_i for the partial computable function \Phi(i). * the domains of \varphi_i and \Phi_i are identical. * the set \ is recursive.


Examples

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


Complexity classes

For a total computable function f
complexity class In computational complexity theory, a complexity class is a set (mathematics), set of computational problems "of related resource-based computational complexity, complexity". The two most commonly analyzed resources are time complexity, time and s ...
es of computable functions can be defined as :C(f) := \ :C^0(f) := \ 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 function A Boolean-valued function (sometimes called a predicate or a proposition) is a function of the type f : X → B, where X is an arbitrary set and where B is a Boolean domain, i.e. a generic two-element set, (for example B = ), whose elements ar ...
s with a complexity less than f. If we consider those functions as
indicator function In mathematics, an indicator function or a characteristic function of a subset of a set is a function that maps elements of the subset to one, and all other elements to zero. That is, if is a subset of some set , then the indicator functio ...
s on sets, C^0(f) can be thought of as a complexity class of sets.


References

{{Reflist Structural complexity theory Mathematical axioms