Turing Machines

Home > Computer Science > Theory of Computation > Turing Machines

A theoretical model of computation that can simulate any computer algorithm, including the concept of decidability and undecidability.

Formal language theory: This is the study of formal languages and their properties, including syntax, semantics, and grammars.
Computability theory: This is the study of the limitations of computation, particularly the extent to which certain problems can or cannot be solved by algorithms.
Gödel's incompleteness theorems: A set of two theorems published by Kurt Gödel, which proved that any sufficiently powerful formal system will contain statements that cannot be proven or disproven within that system.
Halting problem: The problem of determining whether an arbitrary Turing machine ever stops for a given input, introduced by Alan Turing in 1936.
Church-Turing thesis: The idea that any function that is computable by an algorithm is also computable by a Turing machine and vice versa.
Universal Turing machine: A Turing machine that can simulate the operation of any other Turing machine, thus showing that all Turing machines are equivalent.
Decidability: A language is said to be decidable if there exists an algorithm that can determine whether any given word belongs to that language.
Complexity theory: This is the study of the resources (time and space) required to solve computational problems.
Time hierarchy theorem: A theorem that establishes different classes of computational complexity based on the amount of time a Turing machine requires in order to solve a problem.
Space complexity: This is the amount of memory space required by a Turing machine to solve a computational problem.
Standard Turing Machine: It is the formal definition of a Turing machine that defines it as an infinite tape, a head that moves across the tape and a set of states and symbols.
Multi-tape Turing Machine: The Multi-tape Turing Machine has multiple tapes, and the transition function is extended to include the current state, and the symbols under each tape is also included.
Non-deterministic Turing Machine: Non-deterministic Turing Machine (NDTM) is a type of Turing machine that can be in two or more different states simultaneously. This machine is not predictable, but it offers faster computation than deterministic Turing machines.
Quantum Turing machine: A quantum Turing machine is a theoretical model that is used for quantum computing. Instead of bits, it has qubits, which have many states at once.
Universal Turing Machine: A Universal Turing Machine (UTM) is a machine that can simulate any other Turing Machine, which means it can compute anything that any other Turing Machine can solve.
Multidimensional Turing machine: In this Turing machine, the tape becomes multidimensional, and the transitions are extended beyond the neighboring cells.
Probabilistic Turing machine: A probabilistic Turing machine (PTM) is a type of Turing machine that uses randomness in its operation.
Alternating Turing Machine: An alternating Turing machine (ATM) is a Turing machine that can switch the control between two players.
Bounded-error randomized Turing machine: A bounded-error randomized Turing machine (BRTM) is a variant of probabilistic Turing machine that can solve some problems with a small error probability.
Hamiltonian Path Turing machine: The Hamiltonian Path Turing Machine is used for finding the solution to the Hamiltonian path problem, it determines whether a given graph has a Hamiltonian path.
"A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules."
"[...] it is capable of implementing any computer algorithm."
"The machine operates on an infinite memory tape divided into discrete cells, each of which can hold a single symbol drawn from a finite set of symbols called the alphabet of the machine."
"It has a 'head' that, at any point in the machine's operation, is positioned over one of these cells."
"[...] a 'state' selected from a finite set of states."
"At each step of its operation, the head reads the symbol in its cell."
"Then, based on the symbol and the machine's own present state, the machine writes a symbol into the same cell, and moves the head one step to the left or the right, or halts the computation."
"The choice of which replacement symbol to write, which direction to move the head, and whether to halt is based on a finite table that specifies what to do for each combination of the current state and the symbol that is read."
"The Turing machine was invented in 1936 by Alan Turing."
"Turing called it an 'a-machine' (automatic machine)."
"It was Turing's doctoral advisor, Alonzo Church, who later coined the term 'Turing machine' in a review."
"Does a machine exist that can determine whether any arbitrary machine on its tape is 'circular' (e.g., freezes, or fails to continue its computational task)? Does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol?"
"Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the uncomputability of the Entscheidungsproblem ('decision problem')."
"Turing machines proved the existence of fundamental limitations on the power of mechanical computation."
"their minimalist design makes them too slow for computation in practice: real-world computers are based on different designs that, unlike Turing machines, use random-access memory."
"Turing completeness is the ability for a computational model or a system of instructions to simulate a Turing machine."
"A programming language that is Turing complete is theoretically capable of expressing all tasks accomplishable by computers."
"nearly all programming languages are Turing complete if the limitations of finite memory are ignored."
"While they can express arbitrary computations, their minimalist design makes them too slow for computation in practice..."
"...real-world computers are based on different designs that, unlike Turing machines, use random-access memory."