词条 | Μ-recursive function | ||
释义 |
In mathematical logic and computer science, the general recursive functions (often shortened to recursive functions) or μ-recursive functions are a class of partial functions from natural numbers to natural numbers that are "computable" in an intuitive sense. In computability theory, it is shown that the μ-recursive functions are precisely the functions that can be computed by Turing machines. The μ-recursive functions are closely related to primitive recursive functions, and their inductive definition (below) builds upon that of the primitive recursive functions. However, not every μ-recursive function is a primitive recursive function—the most famous example is the Ackermann function. Other equivalent classes of functions are the λ-recursive functions and the functions that can be computed by Markov algorithms. The set of all recursive functions is known as R in computational complexity theory. DefinitionThe μ-recursive functions (or partial μ-recursive functions) are partial functions that take finite tuples of natural numbers and return a single natural number. They are the smallest class of partial functions that includes the initial functions and is closed under composition, primitive recursion, and the μ operator. The smallest class of functions including the initial functions and closed under composition and primitive recursion (i.e. without minimisation) is the class of primitive recursive functions. While all primitive recursive functions are total, this is not true of partial recursive functions; for example, the minimisation of the successor function is undefined. The primitive recursive functions are a subset of the total recursive functions, which are a subset of the partial recursive functions. For example, the Ackermann function can be proven to be total recursive, and to be non-primitive.
Initial or "basic" functions: (In the following the subscripting is per Kleene (1952) p. 219. For more about some of the various symbolisms found in the literature see Symbolism below.)
Operators:{{clarify|reason=Since all operators might take properly partial functions as arguments, a comment on handling of undefined values should be given. The arguments should be referred to as 'partial function', not as 'function', let alone as 'total function'.|date=March 2019}}
The strong equality operator can be used to compare partial μ-recursive functions. This is defined for all partial functions f and g so that holds if and only if for any choice of arguments either both functions are defined and their values are equal or both functions are undefined. Equivalence with other models of computability{{Expand section|date=February 2010}}In the equivalence of models of computability, a parallel is drawn between Turing machines that do not terminate for certain inputs and an undefined result for that input in the corresponding partial recursive function. The unbounded search operator is not definable by the rules of primitive recursion as those do not provide a mechanism for "infinite loops" (undefined values). Normal form theoremA normal form theorem due to Kleene says that for each k there are primitive recursive functions and such that for any μ-recursive function with k free variables there is an e such that . The number e is called an index or Gödel number for the function f. A consequence of this result is that any μ-recursive function can be defined using a single instance of the μ operator applied to a (total) primitive recursive function. Minsky (1967) observes (as does Boolos-Burgess-Jeffrey (2002) pp. 94–95) that the U defined above is in essence the μ-recursive equivalent of the universal Turing machine: To construct U is to write down the definition of a general-recursive function U(n, x) that correctly interprets the number n and computes the appropriate function of x. to construct U directly would involve essentially the same amount of effort, and essentially the same ideas, as we have invested in constructing the universal Turing machine. (italics in original, Minsky (1967) p. 189) SymbolismA number of different symbolisms are used in the literature. An advantage to using the symbolism is a derivation of a function by "nesting" of the operators one inside the other is easier to write in a compact form. In the following we will abbreviate the string of parameters x1, ..., xn as x:
e.g. C137 ( r, s, t, u, v, w, x ) = 13 e.g. const13 ( r, s, t, u, v, w, x ) = 13
S(a) = a +1 =def a', where 1 =def 0', 2 =def 0 ' ', etc.
Uin( x ) = idin( x ) = xi e.g. U37 = id37 ( r, s, t, u, v, w, x ) = t
If we are given h( x )= g( f1(x), ... , fm(x) ) h(x) = Smn(g, f1, ... , fm ) In a similar manner, but without the sub- and superscripts, B-B-J write: h(x)= Cn[g, f1 ,..., fm](x)
Example: primitive recursion definition of a + b:
R2 { U11(a), S [ (U23( b, c, a ) ] } Pr{ U11(a), S[ (U23( b, c, a ) ] } Example: Kleene gives an example of how to perform the recursive derivation of f(b, a) = b + a (notice reversal of variables a and b). He starts with 3 initial functions
induction step: h( b', a ) = g( b, h( b, a ), a ) He arrives at: a+b = R2[ U11, S13(S, U23) ] Examples
See also
References
On pages 210-215 Minsky shows how to create the μ-operator using the register machine model, thus demonstrating its equivalence to the general recursive functions.
External links
2 : Computability theory|Theory of computation |
||
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。