Turing Machines

Overview

A Turing machine is a 7-tuple Q,Σ,Γ,δ,q0,qa,qr, where Q, Σ, and Γ are finite sets and:

  1. Q is the set of states,
  2. Σ is the input alphabet not containing the blank symbol ,
  3. Γ is the tape alphabet where Γ and ΣΓ,
  4. δ:Q×ΓQ×Γ×{L,R} is the transition function,
  5. q0Q is the start state,
  6. qa is the accept state, and
  7. qr is the reject state, where qrqa.

A language is Turing-recognizable (also known as recursively enumerable or semidecidability) if a Turing machine recognizes it. Otherwise it is Turing-unrecognizable. A language is co-Turing-recognizable if it is the complement of a Turing-recognizable language. An analogous definition holds for co-Turing-unrecognizable.

Configurations

A configuration of a Turing machine M refers to M's current state, current tape contents, and current head location. For a state q and strings u and v over tape alphabet Γ, we write uqv for the configuration where the current state is q, the current tape contents is uv, and the current head location is the first symbol of v. A few configurations are notable:

We say configuration C1 yields configuration C2 if the Turing machine in question can reach C2 from C1 in a single step.

A Turing machine M accepts input w if a sequence of configurations, beginning with the starting configuration and ending in an accepting configuration, exists.

Computation Histories

Let M be a Turing machine and w an input string. An accepting computation history for M on w is a sequence of configurations, C1,C2,,Cn, where:

A rejecting computation history is defined analogously.

Tableaus

Let computation history H be a sequence of configurations C1,C2,,Cn. A tableau of H is a visualization of H arranged in a table. Configuration Ci is listed in the tableau's ith row. The jth column of the ith row corresponds to the jth symbol in Ci.

An accepting tableau is a tableau corresponding to an accepting computation history. A rejecting tableau is a tableau corresponding to a rejecting configuration history.

Dovetailing

Dovetailing refers to the simulation of two or more Turing machines in parallel on a single Turing machine. Typically it is implemented by simulating one step of each machine at a time.

In the case of infinitely many TMs, dovetailing is typically accomplished by running the first machine for one step, the first two machines for two steps, the first three machines for three steps, and so on and so forth.

Closure Operations

Let A and B be Turing-recognizable languages. Such languages are closed under the following:

Model Independence

A computation model's invariance to certain changes is known as its robustness. The Turing machine is an especially robust computing model - no variation of the model is known to increase the recognizing power of the Turing machine. In addition, seemingly distinct computation models (e.g. lambda calculus) were proven to be equivalent in power.

Multi-tape

A multi-tape Turing machine is a Turing machine with several tapes. Each tape has its own head for reading and writing, with the initial input set on the first tape and other tapes starting blank. A multi-tape Turing machine with k tapes has transition function:

δ:Q×ΓkQ×Γk×{L,R}k.

Multi-tape Turing machines are equivalent in power to a ordinary Turing machines.

Nondeterministic

A nondeterminstic Turing machine (NTM) is a Turing machine that allows ambiguous transitions from a given state. At any point in computation, the machine may proceed according to several possibilities. An NTM has transition function:

δ:Q×ΓP(Q×Γ×{L,R}).

Nondeterministic Turing machines are equivalent in power to ordinary Turing machines. They are deciders if every branch of computation halts.

Enumerators

An enumerator is a variant of a Turing machine. Like a Turing machine, it has an infinite tape and a finite state control. Unlike a Turing machine, it also has a printer as an output device for printing strings. It begins with a blank input tape and prints the strings, one at a time, in its corresponding language.

Enumerators are equivalent in power to Turing machines.

Church-Turing Thesis

By virtue of model independence, the Church-Turing thesis states that a problem has an effective method if and only if it is computable by a Turing machine. The thesis aims to formalize what an effective method (i.e. an algorithm) is.

Self-Reproduction

In the context of Turing machines, we can build a programming/quine with the aid of a quotation function. This is a computable function q:ΣΣ, where if w is any string, q(w) is the description of a TM Pw that prints out w and then halts.

turing-machine-self.png

The quine is denoted SELF and consists of template A and action B given as:

Kleene's Recursion Theorem

Let T be a TM that computes a function t:Σ×ΣΣ. Then there exists is a TM R that computes a function r:Σ×Σ, where for every w,

r(w)=t(R,w).

turing-machine-kleene.png

Powered by Forestry.md