Turing machine: Difference between revisions
CSV import |
CSV import Tags: mobile edit mobile web edit |
||
| Line 1: | Line 1: | ||
{{short description|Mathematical model of computation}} | |||
{{Use dmy dates|date=October 2023}} | |||
== | == Turing machine == | ||
A Turing machine | A '''Turing machine''' is a mathematical model of computation that defines an abstract machine. The Turing machine manipulates symbols on a strip of tape according to a table of rules. Despite its simplicity, a Turing machine can be adapted to simulate the logic of any computer algorithm, and is particularly useful in explaining the functions of a [[CPU]] inside a computer. | ||
[[File:Turing_Machine_Model_Davey_2012.jpg|thumb|A model of a Turing machine]] | |||
== | == History == | ||
The concept of the Turing machine was introduced by [[Alan Turing]] in 1936, in his paper "On Computable Numbers, with an Application to the Entscheidungsproblem." Turing's machine was designed to be a simple yet powerful model of computation that could be used to explore the limits of what can be computed. | |||
== Description == | |||
A Turing machine consists of: | |||
* A tape divided into cells, one next to the other. Each cell contains a symbol from a finite alphabet. | |||
* A head that can read and write symbols on the tape and move the tape left and right one cell at a time. | |||
* A state register that stores the state of the Turing machine, one of a finite number of states. | |||
* A finite table of instructions that, given the current state and the symbol the head is reading, tells the machine what symbol to write, how to move the tape (left or right), and what the next state of the machine is. | |||
[[File:Turing_machine_2a.svg|thumb|Diagram of a Turing machine]] | |||
== Functionality == | |||
The Turing machine operates by reading the symbol on the tape at the current head position, consulting the table of instructions, and then performing the specified action. This action may involve writing a new symbol on the tape, moving the head left or right, and changing the state of the machine. The process continues until the machine reaches a halting state, if such a state exists. | |||
== Variants == | |||
There are many variants of the Turing machine, including the [[universal Turing machine]], which can simulate any other Turing machine. Other variants include the [[multi-tape Turing machine]], which has multiple tapes and heads, and the [[non-deterministic Turing machine]], which can make multiple moves at once. | |||
== Applications == | == Applications == | ||
Turing machines are used in theoretical computer science to understand the limits of what can be computed. They are also used in the study of [[computational complexity]] to classify problems based on the resources required to solve them. | |||
Turing | == Busy Beaver == | ||
The Busy Beaver is a Turing machine that is designed to produce the maximum number of 1s on its tape before halting, given a specific number of states. The Busy Beaver function is non-computable, meaning there is no algorithm that can determine the maximum number of 1s for any given number of states. | |||
== | [[File:Busy_Beaver_3_State.png|thumb|Example of a 3-state Busy Beaver]] | ||
== Related pages == | |||
* [[Alan Turing]] | * [[Alan Turing]] | ||
* [[Computability theory]] | * [[Computability theory]] | ||
* [[Turing | * [[Church-Turing thesis]] | ||
* [[ | * [[Halting problem]] | ||
* [[Universal Turing machine]] | |||
== References == | == References == | ||
* Turing, A. M. (1936). "On Computable Numbers, with an Application to the Entscheidungsproblem." Proceedings of the London Mathematical Society, 2(42), 230-265. | |||
* Davis, M. (2000). "The Universal Computer: The Road from Leibniz to Turing." W. W. Norton & Company. | |||
* | |||
[[Category: | [[Category:Models of computation]] | ||
[[Category:Alan Turing]] | [[Category:Alan Turing]] | ||
[[Category:Theoretical computer science]] | |||
Revision as of 00:38, 10 February 2025
Mathematical model of computation
Turing machine
A Turing machine is a mathematical model of computation that defines an abstract machine. The Turing machine manipulates symbols on a strip of tape according to a table of rules. Despite its simplicity, a Turing machine can be adapted to simulate the logic of any computer algorithm, and is particularly useful in explaining the functions of a CPU inside a computer.
History
The concept of the Turing machine was introduced by Alan Turing in 1936, in his paper "On Computable Numbers, with an Application to the Entscheidungsproblem." Turing's machine was designed to be a simple yet powerful model of computation that could be used to explore the limits of what can be computed.
Description
A Turing machine consists of:
- A tape divided into cells, one next to the other. Each cell contains a symbol from a finite alphabet.
- A head that can read and write symbols on the tape and move the tape left and right one cell at a time.
- A state register that stores the state of the Turing machine, one of a finite number of states.
- A finite table of instructions that, given the current state and the symbol the head is reading, tells the machine what symbol to write, how to move the tape (left or right), and what the next state of the machine is.
Functionality
The Turing machine operates by reading the symbol on the tape at the current head position, consulting the table of instructions, and then performing the specified action. This action may involve writing a new symbol on the tape, moving the head left or right, and changing the state of the machine. The process continues until the machine reaches a halting state, if such a state exists.
Variants
There are many variants of the Turing machine, including the universal Turing machine, which can simulate any other Turing machine. Other variants include the multi-tape Turing machine, which has multiple tapes and heads, and the non-deterministic Turing machine, which can make multiple moves at once.
Applications
Turing machines are used in theoretical computer science to understand the limits of what can be computed. They are also used in the study of computational complexity to classify problems based on the resources required to solve them.
Busy Beaver
The Busy Beaver is a Turing machine that is designed to produce the maximum number of 1s on its tape before halting, given a specific number of states. The Busy Beaver function is non-computable, meaning there is no algorithm that can determine the maximum number of 1s for any given number of states.
Related pages
References
- Turing, A. M. (1936). "On Computable Numbers, with an Application to the Entscheidungsproblem." Proceedings of the London Mathematical Society, 2(42), 230-265.
- Davis, M. (2000). "The Universal Computer: The Road from Leibniz to Turing." W. W. Norton & Company.