Turing Machine: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Eric M Gearhart
(Copying definition to article's definition)
mNo edit summary
 
(13 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{subpages}}
{{subpages}}
A '''turing machine''' is a theoretical computing device, first posited by mathematician [[Alan Turing]], which has been used extensively in analyzing computing problems such as tractability and complexity theory.  Its basic components are an infinite length of tape and a head which operates on the tape.  The tape is divided into segments, each of which can hold a single character which is an element of a predefined, finite set of characters called the 'tape alphabet'.  The head is always in one 'state' which is an element in a predefined, finite set of states.  The head is also always in a single location on the tape (i.e. there is one character on the tape at which the head is located).  In a single computing step the head reads the character from the tape, switches its state based on the character and its current state, and steps to an adjacent character either directly to the left or directly to the right of the current location, again based on the state and character it read.
A '''Turing machine'''<ref>{{citation
  | author = [[Alan Turing]]
  | title = On Computable Numbers, With an Application to the Entscheidungsproblem
  | url = http://www.abelard.org/turpap2/tp2-ie.asp
  | journal = Proceedings of the London Mathematical Society
  | date = 1936
}}</ref>
is a theoretical computing device, first posited by mathematician [[Alan Turing]], which has been used extensively in analyzing computing problems such as tractability and complexity theory.


One reduction which has been proven to place no limitations on the turing machine is limiting the tape alphabet to two characters; a turing machine with a binary alphabet can simulate any turing machine with an alphabet of any sizeTherefore, turing machines are usually defined and studied using only the binary alphabet consisting of 1 and 0.
Its basic components are a length of tape and a head which operates on the tape.  The tape is divided into segments, each of which can hold a single character which is an element of a predefined, finite set of characters called the 'tape alphabet'. The machine is always in one 'state' which is an element in a predefined, finite set of statesThe head is also always in a single location on the tape (i.e. there is one character on the tape at which the head is located). The machine is fully deterministic: the current state and current tape character determine what it does next. In a single computing step the head reads the character from the tape and takes actions based on the character and its current state. In addition to changing its internal state, it may take one of four actions &mdash; step to an adjacent character to the left, step to the right, change the character at the current location, or halt.


== Turing Completeness ==
== Turing completeness ==
Turing invented the machine in order to solve the [[halting problem]] and it is widely used in theoretical computer science because its simplicity makes it relatively easy to prove theorems about its behavior. However, it is also quite a general description and many other types of computer are provably equivalent to a Turing machine. A device that can simulate the Turing machine is called '''Turing complete'''.


A device that can simulate any Turing Machine is called '''Turing complete'''. The device does not necessarily have to be intentionally designed to compute or be a computer; if a device, piece of software or even an abstract concept meets the criteria it is Turing complete.
One reduction which has been proven to place no limitations on the Turing machine is limiting the tape alphabet to two characters; a Turing machine with a binary alphabet can simulate any Turing machine with an alphabet of any size. Therefore, Turing machines are usually defined and studied using only the binary alphabet consisting of 1 and 0.


Even software that is only used as a teaching tool or exist only as a concept, not as an implementation (such as [[Donald Knuth|Donald Knuth's]] MMIX<ref name=MMIX> {{cite web | url=http://www-cs-faculty.stanford.edu/~knuth/mmix.html
Any machine using the [[Von Neumann architecture]]—basically any computer with a single processor and memory—can be simulated by a Turing machine.
| title=Knuth: MMIX | author=Donald Knuth | accessdate=2007-11-10 }}</ref> can be considered "Turing complete," in a completely abstract sense.


The name "Turing machine" and the concept known as "Turing completeness" are both derived from noted mathematician and computer scientist [[Alan Turing]].
The device does not necessarily have to be intentionally designed to compute or be a computer; if a device, piece of software or even an abstract concept meets the criteria it is Turing complete. Even software that is only used as a teaching tool or exists only as a concept, not as an implementation (such as [[Donald Knuth|Donald Knuth's]] MMIX)<ref name=MMIX> {{cite web | url=http://www-cs-faculty.stanford.edu/~knuth/mmix.html
| title=Knuth: MMIX | author=Donald Knuth | accessdate=2007-11-10 }}</ref> can be considered "Turing complete," in a completely abstract sense. Even a language such as [http://esolangs.org/wiki/Brainfuck brainfuck], with only eight operators, can be Turing complete.


==References==
==References==
{{reflist}}
[[Category:Suggestion Bot Tag]]

Latest revision as of 06:00, 31 October 2024

This article is a stub and thus not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

A Turing machine[1] is a theoretical computing device, first posited by mathematician Alan Turing, which has been used extensively in analyzing computing problems such as tractability and complexity theory.

Its basic components are a length of tape and a head which operates on the tape. The tape is divided into segments, each of which can hold a single character which is an element of a predefined, finite set of characters called the 'tape alphabet'. The machine is always in one 'state' which is an element in a predefined, finite set of states. The head is also always in a single location on the tape (i.e. there is one character on the tape at which the head is located). The machine is fully deterministic: the current state and current tape character determine what it does next. In a single computing step the head reads the character from the tape and takes actions based on the character and its current state. In addition to changing its internal state, it may take one of four actions — step to an adjacent character to the left, step to the right, change the character at the current location, or halt.

Turing completeness

Turing invented the machine in order to solve the halting problem and it is widely used in theoretical computer science because its simplicity makes it relatively easy to prove theorems about its behavior. However, it is also quite a general description and many other types of computer are provably equivalent to a Turing machine. A device that can simulate the Turing machine is called Turing complete.

One reduction which has been proven to place no limitations on the Turing machine is limiting the tape alphabet to two characters; a Turing machine with a binary alphabet can simulate any Turing machine with an alphabet of any size. Therefore, Turing machines are usually defined and studied using only the binary alphabet consisting of 1 and 0.

Any machine using the Von Neumann architecture—basically any computer with a single processor and memory—can be simulated by a Turing machine.

The device does not necessarily have to be intentionally designed to compute or be a computer; if a device, piece of software or even an abstract concept meets the criteria it is Turing complete. Even software that is only used as a teaching tool or exists only as a concept, not as an implementation (such as Donald Knuth's MMIX)[2] can be considered "Turing complete," in a completely abstract sense. Even a language such as brainfuck, with only eight operators, can be Turing complete.

References

  1. Alan Turing (1936), "On Computable Numbers, With an Application to the Entscheidungsproblem", Proceedings of the London Mathematical Society
  2. Donald Knuth. Knuth: MMIX. Retrieved on 2007-11-10.