Turing Machines

A Turing machine is a mathematical model of computation…

Formally, a Turing machine can be defined as a 7-tuple Where - is a finite, nonempty set of alphabet symbols (on Turing tape) - is the ‘blank’ symbol, which is the only symbol which is allowed to occur infinitely often at any step during the computation - \ is the set of input symbols, the set of symbols which can appear in the initial tape contents - is a finite set of states - is the initial state - is the set of final states or accepting states - \ {} is a partial function…

Computability Theory

The Halting Problem: The Halting Problem is a decision problem showing the fundamental limitation of computation. Consider plugging in the following question into a Turing machine, “will an arbitrary computer program either halt or loop for any given input”, it turns out a Turing machine will not halt given this decision problem. This means that the Halting Problem is undecidable (i.e., there is no algorithm which that solves the halting problem)

Oracle Machine: An oracle machine is a kind of abstract machine which operates as ‘black box’, meaning it takes in an input (decision problem) and instantly solves, returning an output. An ‘oracle’ refers to an entity which can solve the decision problem (note this is not necessarily an algorithm).

Turing Degree: The Turing degrees measure the level of algorithmic unsolvability of a set of natural numbers.

  • A set is said to be Turing-reducible to a set , denoted (or alternatively, ), if there is an oracle Turing machine which decides membership in when given an oracle (machine) for membership in .
  • Two sets are Turing equivalent, denoted (or alternatively, ), if and . The relation '' is an equivalent relation. A Turing degree is then an equivalence class of the relation . Properties of Turing Degrees:
    • Each Turing degree is countably infinite, i.e., it contains exactly -many (Turing-equivalent) sets.
    • There are distinct Turing degrees
    • Turing degrees are partially ordered (),

Turing Jump: The Turing jump operator is a function which increases the Turing degree of a decision problem (i.e., given a problem , then the problem is not Turing-reducible to if is of a higher Turing degree). More precisely, it is an operation which asserts to each decision problem a (successively) harder decision problem such that is not decidable by an oracle machine with an oracle for Formally, given a set and a Gödel numbering of the -computable functions, the Turing jump of is defined as follows: , i.e., the effective joint of the sequence of sets for

  • The Turing jump operator is defined for all recursive ordinals , and extends beyond decidability.
  • The Turing jump of the empty set is Turing equivalent to the Halting Problem
  • For each , the set is m-complete at the level by Posts’ theorem (see below)

Many-One Reduction: A many-one reduction is a reduction which converts instances of a decision problem (i.e., an instance in ) to another decision problem (an instance in ) using a computable function. The reduced instance is in the language if and only if the initial instance is in its language .

Many-one reductions are a special case of Turing reductions (and a stronger form of it).

Formally, suppose and are formal languages over the alphabets and (set of symbols), respectively. A many-one reduction from is a total computable function that has the property that each word iff . If such a function exists, is many-one reducible (-reducible) to is denoted as . For subsets of natural numbers , then if there exists a computable function w/ .

  • If the many-one reduction is injective, then this is a one-one reduction, denoted .
  • If the one-one reduction is surjective, then is recursively isomorphic to ( is totally computable and bijective, ), this is denoted as .

Note: (that is, '' and '' have the same equivalence classes).

  • The equivalence class of are called -degrees
  • If both and , then is many-one equivalent (or -equivalent) to , denoted as .

Many-One Completeness: A set is many-one complete (or -complete) if and only if is recursively enumerable and every recursively enumerable set is -reducible to ( and are both of degree of ). The equivalence classes of are called -degrees and forms a partially ordered set (w/ the order induced by ).

Posts Theorem: The intuition behind Post’s theorem is that it describes a connection between the arithmetical hierarchy and Turing degrees. Formally, it is asserted as follows: A set is in the class if and only if is recursively-enumerable by a Turing machine w/ an oracle for (the -Turing jump of the empty set).

Ordinal Notation

Ordinal Notation: An ordinal notation is a partial function which maps the set of all finite sequences of symbols (which are members of an alphabet) to a countable set of ordinals.

E.g., Gödel numbering is a type of ordinal notation which maps the set of all well-formed formulae (WFF) of some language to the natural numbers. if a Gödel numbering is fixed, then the subset relation on the ordinals induces an ordering on WFF which in turn induces a well-ordering on the subset of natural numbers.

Kleene’s Kleene’s is the set of ordinal notation for computable/recursive ordinals. It is a canonical subset of the natural numbers For is an ordinal notation for the ordinal .

The following holds for - - - For is the -partial computable function (a formalized analogue of the intuitive notion of algorithms). If is the total and range, then - (transitive)

Computable Functions A function is computable if there is an algorithm that returns and computes an output for any given input.

Constructive Ordinals The function ordinals is defined by transfinite recursion on

  • If , then is said to be a notation for the ordinal . An ordinal is constructive if .
  • There are no ‘gaps’ in the constructive ordinals
  • There exists a -subset of , linearly ordered by , and order type
  • Every ordinal constructive in a set is recursive in , and every ordinal recursive in some ordinal constructive in
  • Kleene’s is a complete -set (i.e., is and every -set is Turing-reducible to ).

Other

Time Complexity: Measures how long it takes for an algorithm to compute an output given an input, represented in big O notation. Big O notation can simplify the growth rate of functions as . The rules of big O notation are as follows:

  • If a function is the sum of multiple terms, then the largest growth rate is kept and all other terms are omitted
  • If is the product of multiple terms, then any constants (which do not depend on the variable ) may be omitted. E.g., the big O of is as grows faster than any other term, and the constant '' may be omitted.

Polynomial Time: The time complexity of an algorithm or model of computation where its runtime is proportional to a polynomial function of the input size E.g., If the input time is , then the algorithms runtime is bounded by some polynomial function such as or .

Deterministic Turing Machine (DTM): For any given state and input symbol there is only a single action the Turing machine can do, thus making its behavior predictable (i.e., standard tape model of Turing machines).

Nondeterministic Turing Machine (NTM): For any a given state and input symbol there is a multitude of possible actions a Turing machine can do depending on governing laws.

P = NP Problem: Can any decision problem decidable from a NTM in polynomial time can also be decidable from a DTM in polynomial time?

Complexity Classes:

Rice’s Theorem: No Turing machine can decide whether an arbitrary program posses a non-trivial (i.e., ‘trivial’ true for all programs or false for all programs) semantic property such as “does this program halt?” or “does the program loop?”

References

Recursion Theory Turing Machine Halting Problem Turing Degrees Kleene’s O [Many-One Reduction](Many-one reduction - Wikipedia) Model Theory D.Marker