Recursion_definition Recursion_definition

Recursion definition - Definition

Related Words: Appellation, Baptism, Bloom, Calling, Ceiling, Characterization, Christening, Clarity, Coherence, Consistency, Construction

In mathematics and computer science, recursion is a particular way of specifying (or constructing) a class of objects (or an object from a certain class) with the help of a reference to other objects of the class: a recursive definition defines objects in terms of the already defined objects of the class.

For example, the following is a recursive definition of person's ancestors:

  • One's parents are one's ancestors (base case);
  • The parents of any ancestor are also ancestors of the person under consideration (recursion step').

For instance, your ancestors are:

  • your parents, and
  • your parents' parents (= grandparents), and
  • your grandparents' parents, and
  • everyone else you get by successively adding ancestors

It is convenient to think that a recursive definition defines objects in terms of "previously defined" of the class to define.

Definitions such as these are ubiquitous in mathematics. In fact, the formal definition of natural numbers is very similar: 0 is a natural number, and each natural number has a successor, which is also a natural number.

For visualizing recursion, it can be helpful to consider recursively-defined geometric figures, such as the Koch curve, the Sierpinski triangle, or the Cantor set.

An example of a recursive image
Enlarge
An example of a recursive image
Contents

Recursion in language

Mathematical linguist Noam Chomsky produced evidence that unlimited extension of a language such as English is possible only by the recursive device of embedding sentences in sentences. Thus, a talky little girl may say, "Dorothy, who met the wicked Witch of the West in Munchkin Land where her wicked Witch sister was killed, liquidated her with a pail of water." Clearly, two simple sentences — "Dorothy met the Wicked Witch of the West in Munchkin Land" and "Her sister was killed in Munchkin Land" — can be embedded in a third sentence, "Dorothy liquidated her with a pail of water," to obtain a very talky sentence.

Niels K. Jerne, the 1984 Nobel Prize laureate in Medicine and Physiology, used Chomsky's transformational-generative grammar model to explain the human immune system, equating "components of a generative grammar ... with various features of protein structures." The title of Jerne's Stockholm Nobel lecture was The Generative Grammar of the Immune System.

Here is another, perhaps simpler way to understand recursive processes:

  1. Are we done yet? If so, return the results. Without such a termination condition a recursion would go on forever.
  2. If not, simplify the problem, solve those simpler problem(s), and assemble the results into a solution for the original problem. Then return that solution.

A more humorous illustration goes: "In order to understand recursion, one must first understand recursion." Or perhaps more accurate is the following due to Andrew Plotkin: "If you already know what recursion is, just remember the answer. Otherwise, find someone who is standing closer to Douglas Hofstadter than you are; then ask him or her what recursion is."

Examples of mathematical objects often defined recursively are functions, sets, and especially fractals.

Recurrence relations or algorithms

Recurrence relations are equations to define one or more sequences recursively. Some specific kinds of recurrence relation can be "solved" to obtain a nonrecursive definition.

Recursively defined sets

Example: the natural numbers

The canonical example of a recursively defined set is given by the natural numbers:

0 is in N
if n is in N, then n + 1 is in N
The set of natural numbers is the smallest set satisfying the previous two properties.

Here's an alternative recursive definition of N:

0, 1 are in N;
if n and n + 1 are in N, then n + 2 is in N;
N is the smallest set satisfying the previous two properties.

Example: The set of true reachable propositions

Another interesting example is the set of all true "reachable" propositions in an axiomatic system.

  • if a proposition is an axiom, it is a true reachable proposition.
  • if a proposition can be obtained from true reachable propositions by means of inference rules, it is a true reachable proposition.
  • The set of true reachable propositions is the smallest set of reachable propositions satisfying these conditions.

This set is called 'true reachable propositions' because: in nonconstructive approaches to the foundations of mathematics, the set of true propositions is larger than the set recursively constructed from the axioms and rules of inference. See also Godels Incompleteness Theorem.

(Note that determining whether a certain object is in a recursively defined set is not an algorithmic task.)

Recursively defined functions

Functions whose domains can be recursively defined can be given recursive definitions patterned after the recursive definition of their domain.

The canonical example of a recursively defined function is the following definition of the factorial function <math>f(n)<math>:

<math>f (0) = 1<math>
<math>f (n) = n * f (n-1)<math>  for any natural number <math>n > 0<math> 

Given this definition, also called a recurrence relation, we work out <math>f(3)<math> as follows:

<math>
f (3) = 3 * f (3 - 1)
<math>
<math>
 = 3 * f (2)
<math>
<math>
 = 3 * 2 * f (2 - 1)
<math>
<math>
 = 3 * 2 * f (1) 
<math>
<math>
 = 3 * 2 * 1 * f (1 - 1)
<math>
<math>
 = 3 * 2 * 1 * f (0)
<math>
<math>
 = 3 * 2 * 1 * 1
<math>
<math>
 = 6
<math>

Recursive algorithms

A common method of simplification is to divide a problem into subproblems of the same type. As a computer programming technique, this is called divide and conquer and is key to the design of many important algorithms, as well as being a fundamental part of dynamic programming.

Virtually all programming languages in use today allow the direct specification of recursive functions and procedures. When such a function is called, the computer (for most languages on most stack-based architectures) or the language implementation keeps track of the various instances of the function (on many architectures, by using a stack, although other methods may be used). Conversely, every recursive function can be transformed into an iterative function by using a stack.

Any function that can be evaluated by a computer can be expressed in terms of recursive functions, without use of iteration, and conversely. Some languages designed for logic programming and functional programming provide recursion as the only means of repetition directly available to the programmer. Such languages generally make tail recursion as efficient as iteration, letting programmers express other repetition structures (such as Scheme's map and for) in terms of recursion.

Recursion is deeply embedded in the theory of computation, with the theoretical equivalence of recursive functions and Turing machines at the foundation of ideas about the universality of the modern computer.

John McCarthy's function, McCarthy's 91 is another example of a recursive function.

The Recursion Theorem

In set theory, this is a theorem guaranteeing that recursively defined functions exist. Given a set <math>X<math>, an element <math>a<math> of <math>X<math> and a function <math>f: X -> X<math>, the theorem states that there is a unique function <math>F: N -> X<math> (where <math>N<math> denotes the set of natural numbers) such that

<math>F(0) = a<math>
<math>F(n + 1) = f(F(n))<math>

for any natural number <math>n<math>.

Proof of Uniqueness

Take two functions <math>f<math> and <math>g<math> of domain <math>N<math> and codomain <math>A<math> such that:

<math>f(0) = a<math>
<math>g(0) = a<math>
<math>f(n + 1) = F(f(n))<math>
<math>g(n + 1) = F(g(n))<math>

where <math>a<math> is an element of <math>A<math>. We want to prove that <math>f = g<math>. Two functions are equal if they:

i. have equal domains/codomains;
ii. have the same graphic.
i. Done!
ii. Mathematical induction: for all <math>n<math> in <math>N<math>, <math>f(n) = g(n)<math>? (We shall call this condition, say, <math>Eq(n))<math>:
1.<math>Eq(0)<math> iff <math>f(0) = g(0)<math> iff <math>a = a<math>. Done!
2.Let <math>n<math> be an element of <math>N<math>. Assuming that <math>Eq(n)<math> holds, we want to show that <math>Eq(n + 1)<math> holds as well, which is easy because: <math>f(n + 1) = F(f(n)) = F(g(n)) = g(n + 1)<math>. Done!

Proof of Existence

[See Hungerford, "Algebra", first chapter on set theory]


Some common recurrence relations are:

Recursive humour

A common geeky joke (for example [1] (http://catb.org/~esr/jargon/html/R/recursion.html)) is the following "definition" of recursion.

Recursion
See "Recursion".

This is a parody on references in dictionaries, which in some careless cases may lead to circular definitions; in fact the above is the shortest possible one. Every joke has an element of wisdom. This one is also the shortest possible example of an erroneous recursive definition of an object, an error being the absence of the termination condition (or lack of the initial state, if to look at it from an opposite point of view).

Another example is recursive acronyms, such as GNU.

See also

Further reading and references

  • Johnsonbaugh, Richard (1990). Discrete Mathematics. Macmillan. 5th ed.
  • Hofstadter, Douglas (1999). Gödel, Escher, Bach: an Eternal Golden Braid. HarperCollins. 20th anniversary edition. ISBN 0465026567.

External links

All three above are iterated sequences.

Example Usage of definition

laylaanwar: @husseinanwar hahaha @ procrastinate husseinanwar definition...oh man get the dictionary online.
erikgwilson: @ileducprof CEOs don't fall within the definition of an employee under the NLRA so they aren't afforded the right to unionize.
DESiiGNERLADii: Jus like every1s shuttin shit down smh lol RT @MrReaLRighT5: Now everybodys is mobbin smh im da definition of mobbin be check mah resume
Copyright 2009 WordIQ.com - Privacy Policy  :: Terms of Use  :: Contact Us  :: About Us
This article is licensed under the GNU Free Documentation License. It uses material from the this Wikipedia article.