Computable function

From Wiki @ Karl Jones dot com
Jump to: navigation, search

Computable functions are the basic objects of study in computability theory.

Description

Computable functions are the formalized analogue of the intuitive notion of algorithm, in the sense that a function is computable if there exists an algorithm that can do the job of the function, i.e. given an input of the function domain it can return the corresponding output.

Computable functions are used to discuss computability without referring to any concrete model of computation such as Turing machines or register machines.

Any definition, however, must make reference to some specific model of computation but all valid definitions yield the same class of functions.

Particular models of computability that give rise to the set of computable functions are the Turing-computable functions and the μ-recursive functions.

Effective computability

Before the precise definition of computable function, mathematicians often used the informal term effectively calculable. This term has since come to be identified with the computable functions.

Note that the effective computability of these functions does not imply that they can be efficiently computed (i.e. computed within a reasonable amount of time).

In fact, for some effectively calculable functions it can be shown that any algorithm that computes them will be very inefficient in the sense that the running time of the algorithm increases exponentially (or even superexponentially) with the length of the input.

The fields of feasible computability and computational complexity study functions that can be computed efficiently.

Church–Turing thesis

According to the Church–Turing thesis, computable functions are exactly the functions that can be calculated using a mechanical calculation device given unlimited amounts of time and storage space.

Equivalently, this thesis states that any function which has an algorithm is computable and vice versa.

Note that an algorithm in this sense is understood to be a sequence of steps a person with unlimited time and an infinite supply of pen and paper could follow.

Blum axioms

The Blum axioms can be used to define an abstract computational complexity theory on the set of computable functions.

In computational complexity theory, the problem of determining the complexity of a computable function is known as a function problem.

See also

External links