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 ...
, Blum's speedup theorem, first stated 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, is a fundamental
theorem In mathematics and formal logic, a theorem is a statement (logic), statement that has been Mathematical proof, proven, or can be proven. The ''proof'' of a theorem is a logical argument that uses the inference rules of a deductive system to esta ...
about the complexity 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. Each computable function has an infinite number of different program representations in a given
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
. In the theory of
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
s one often strives to find a program with the smallest complexity for a given computable function and a given complexity measure (such a program could be called ''optimal''). Blum's speedup theorem shows that for any complexity measure, there exists a computable function such that there is no optimal program computing it, because every program has a program of lower complexity. This also rules out the idea that there is a way to assign to arbitrary functions ''their'' computational complexity, meaning the assignment to any ''f'' of the complexity of an optimal program for ''f''. This does of course not exclude the possibility of finding the complexity of an optimal program for certain specific functions.


Speedup theorem

Given a Blum complexity measure (\varphi, \Phi) and a total computable function f with two parameters, then there exists a total computable predicate g (a boolean valued computable function) so that for every program i for g, there exists a program j for g so that for
almost all In mathematics, the term "almost all" means "all but a negligible quantity". More precisely, if X is a set (mathematics), set, "almost all elements of X" means "all elements of X but those in a negligible set, negligible subset of X". The meaning o ...
x :f(x, \Phi_j(x)) \leq \Phi_i(x) f is called the speedup function. The fact that it may be as fast-growing as desired (as long as it is computable) means that the phenomenon of always having a program of smaller complexity remains even if by "smaller" we mean "significantly smaller" (for instance, quadratically smaller, exponentially smaller).


See also

* Gödel's speed-up theorem


References

* * .


External links

* {{MathWorld, title=Blum's Speed-Up Theorem, urlname=BlumsSpeed-UpTheorem Theorems in computational complexity theory