Busy beaver

Last updated

In theoretical computer science, the busy beaver game aims at finding a terminating program of a given size that produces the most output possible. [1] Since an endlessly looping program producing infinite output or running for infinite time is easily conceived, such programs are excluded from the game. This is sometimes also formulated as finding the machine that runs for the longest time, but both games are similarly difficult. [2]

Contents

More precisely, the busy beaver game consists of designing a halting Turing machine with alphabet {0,1} which writes the most 1s on the tape, using only a given set of states. The rules for the 2-state game are as follows:

  1. the machine must have at most two states in addition to the halting state, and
  2. the tape initially contains 0s only.

A player should conceive a transition table aiming for the longest output of 1s on the tape while making sure the machine will halt eventually.

An nth busy beaver, BB-n or simply "busy beaver" is a Turing machine that wins the n-state busy beaver game. That is, it attains the largest number of 1s among all other possible n-state competing Turing machines. The BB-2 Turing machine, for instance, achieves four 1s in six steps.

Deciding the number of 1s, or the running time, of the nth Busy Beaver is incomputable. This has implications in computability theory, the halting problem, and complexity theory. The concept was first introduced by Tibor Radó in his 1962 paper, "On Non-Computable Functions". [1]

The game

The n-state busy beaver game (or BB-n game), introduced in Tibor Radó's 1962 paper, involves a class of Turing machines, each member of which is required to meet the following design specifications:

  1. the current non-Halt state,
  2. the symbol in the current tape cell,
and produces three outputs:
  1. a symbol to write over the symbol in the current tape cell (it may be the same symbol as the symbol overwritten),
  2. a direction to move (left or right; that is, shift to the tape cell one place to the left or right of the current cell), and
  3. a state to transition into (which may be the Halt state).

There are thus (4n + 4)2nn-state Turing machines meeting this definition because the general form of the formula is (symbols × directions × (states + 1))(symbols × states).

The transition function may be seen as a finite table of 5-tuples, each of the form

(current state, current symbol, symbol to write, direction of shift, next state).

"Running" the machine consists of starting in the starting state, with the current tape cell being any cell of a blank (all-0) tape, and then iterating the transition function until the Halt state is entered (if ever). If, and only if, the machine eventually halts, then the number of 1s finally remaining on the tape is called the machine's score.

The n-state busy beaver (BB-n) game is a contest to find such an n-state Turing machine having the largest possible score — the largest number of 1s on its tape after halting. A machine that attains the largest possible score among all n-state Turing machines is called an n-state busy beaver, and a machine whose score is merely the highest so far attained (perhaps not the largest possible) is called a championn-state machine.

Radó required that each machine entered in the contest be accompanied by a statement of the exact number of steps it takes to reach the Halt state, thus allowing the score of each entry to be verified (in principle) by running the machine for the stated number of steps. (If entries were to consist only of machine descriptions, then the problem of verifying every potential entry is undecidable, because it is equivalent to the well-known halting problem — there would be no effective way to decide whether an arbitrary machine eventually halts.)

The busy beaver function Σ

The busy beaver function quantifies the maximum score attainable by a busy beaver on a given measure. This is a noncomputable function. Also, a busy beaver function can be shown to grow asymptotically faster than any computable function. [3]

The busy beaver function, , is defined so that Σ(n) is the maximum attainable score (the maximum number of 1s finally on the tape) among all halting 2-symbol n-state Turing machines of the above-described type, when started on a blank tape.

It is clear that Σ is a well-defined function: for every n, there are at most finitely many n-state Turing machines as above, up to isomorphism, hence at most finitely many possible running times.

This infinite sequence Σ is the busy beaver function, and any n-state 2-symbol Turing machine M for which σ(M) = Σ(n) (i.e., which attains the maximum score) is called a busy beaver. Note that for each n, there exist at least four n-state busy beavers (because, given any n-state busy beaver, another is obtained by merely changing the shift direction in a halting transition, another by shifting all direction changes to their opposite, and the final by shifting the halt direction of the all-swapped busy beaver. Theoretically, there could be more than one kind of transition leading to the halting state, but in practice it would be wasteful, because there's only one sequence of state transitions producing the sought-after result).

Non-computability

Radó's 1962 paper proved that if is any computable function, then Σ(n) > f(n) for all sufficiently large n, and hence that Σ is not a computable function.

Moreover, this implies that it is undecidable by a general algorithm whether an arbitrary Turing machine is a busy beaver. (Such an algorithm cannot exist, because its existence would allow Σ to be computed, which is a proven impossibility. In particular, such an algorithm could be used to construct another algorithm that would compute Σ as follows: for any given n, each of the finitely many n-state 2-symbol Turing machines would be tested until an n-state busy beaver is found; this busy beaver machine would then be simulated to determine its score, which is by definition Σ(n).)

Even though Σ(n) is an uncomputable function, there are some small n for which it is possible to obtain its values and prove that they are correct. It is not hard to show that Σ(0) = 0, Σ(1) = 1, Σ(2) = 4, and with progressively more difficulty it can be shown that Σ(3) = 6 and Σ(4) = 13 (sequence A028444 in the OEIS ). Σ(n) has not yet been determined for any instance of n > 4, although lower bounds have been established (see the Known values section below).

In 2016, Adam Yedidia and Scott Aaronson obtained the first (explicit) upper bound on the minimum n for which Σ(n) is unprovable in ZFC. To do so they constructed a 7910-state [4] Turing machine whose behavior cannot be proven based on the usual axioms of set theory (Zermelo–Fraenkel set theory with the axiom of choice), under reasonable consistency hypotheses (stationary Ramsey property). [5] [6] Stefan O'Rear then reduced it to 1919 states, with the dependency on the stationary Ramsey property eliminated, [7] [8] and later to 748 states. [9] In July 2023, Riebel reduced it to 745 states. [10] [11]

Complexity and unprovability of Σ

A variant of Kolmogorov complexity is defined as follows: [12] The complexity of a number n is the smallest number of states needed for a BB-class Turing machine that halts with a single block of n consecutive 1s on an initially blank tape. The corresponding variant of Chaitin's incompleteness theorem states that, in the context of a given axiomatic system for the natural numbers, there exists a number k such that no specific number can be proven to have complexity greater than k, and hence that no specific upper bound can be proven for Σ(k) (the latter is because "the complexity of n is greater than k" would be proven if n > Σ(k) were proven). As mentioned in the cited reference, for any axiomatic system of "ordinary mathematics" the least value k for which this is true is far less than 10⇈10; consequently, in the context of ordinary mathematics, neither the value nor any upper-bound of Σ(10⇈10) can be proven. (Gödel's first incompleteness theorem is illustrated by this result: in an axiomatic system of ordinary mathematics, there is a true-but-unprovable sentence of the form Σ(10⇈10) = n, and there are infinitely many true-but-unprovable sentences of the form Σ(10⇈10) < n.)

Maximum shifts function S

In addition to the function Σ, Radó [1962] introduced another extreme function for Turing machines, the maximum shifts function, S, defined as follows:

Because these Turing machines are required to have a shift in each and every transition or "step" (including any transition to a Halt state), the max-shifts function is at the same time a max-steps function.

Radó showed that S is noncomputable for the same reason that Σ is noncomputable — it grows faster than any computable function. He proved this simply by noting that for each n, S(n) ≥ Σ(n). Each shift may write a 0 or a 1 on the tape, while Σ counts a subset of the shifts that wrote a 1, namely the ones that hadn't been overwritten by the time the Turing machine halted; consequently, S grows at least as fast as Σ, which had already been proved to grow faster than any computable function.

The following connection between Σ and S was used by Lin & Radó [Computer Studies of Turing Machine Problems, 1965] to prove that Σ(3) = 6: For a given n, if S(n) is known then all n-state Turing machines can (in principle) be run for up to S(n) steps, at which point any machine that hasn't yet halted will never halt. At that point, by observing which machines have halted with the most 1s on the tape (i.e., the busy beavers), one obtains from their tapes the value of Σ(n). The approach used by Lin & Radó for the case of n = 3 was to conjecture that S(3) = 21, then to simulate all the essentially different 3-state machines for up to 21 steps. By analyzing the behavior of the machines that had not halted within 21 steps, they succeeded in showing that none of those machines would ever halt, thus proving the conjecture that S(3) = 21, and determining that Σ(3) = 6 by the procedure just described.

Inequalities relating Σ and S include the following (from [Ben-Amram, et al., 1996]), which are valid for all n  1:

and an asymptotically improved bound (from [Ben-Amram, Petersen, 2002]): there exists a constant c, such that for all n  2,

tends to be close to the square of , and in fact many machines give less than .

Known values for Σ and S

As of 2016 the function values for Σ(n) and S(n) are only known exactly for n < 5. [6]

The current (as of 2023) 5-state busy beaver champion produces 4098 1s, using 47176870 steps (discovered by Heiner Marxen and Jürgen Buntrock in 1989), but there remain many machines with non-regular behavior which are believed to never halt, but which have not been proven to run infinitely. Various sources list different numbers of these holdouts. Skelet lists 42 or 43 unproven machines. [13]

At the moment the record 6-state champion produces over 10⇈15 [14] (found by Pavel Kropitz in 2022). As noted above, these are 2-symbol Turing machines.

Milton Green, in his 1964 paper "A Lower Bound on Rado's Sigma Function for Binary Turing Machines", constructed a set of Turing machines demonstrating that

where ↑ is Knuth up-arrow notation and A is Ackermann's function.

Thus

(with 333 = 7625597484987 terms in the exponential tower), and

where the number g1 is the enormous starting value in the sequence that defines Graham's number.

In 1964 Milton Green developed a lower bound for the Busy Beaver function that was published in the proceedings of the 1964 IEEE symposium on switching circuit theory and logical design. Heiner Marxen and Jürgen Buntrock described it as "a non-trivial (not primitive recursive) lower bound". This lower bound can be calculated but is too complex to state as a single expression in terms of n. When n=8 the method gives

Σ(8) ≥ 3 × (7 × 392 - 1) / 2 ≈ 8.248×1044.

It can be derived from current lower bounds that:

In contrast, the best current (as of 2023) lower bound on Σ(6) is 10⇈15, which is greater than the lower bound given by Green's formula, 33 = 27 (which is tiny in comparison). In fact, it is much greater than the lower bound: 3⇈3 = 333 = 7625597484987, which is Green's first lower bound for Σ(8), and also much greater than the second lower bound: 3×(7×392−1)/2.

Proof for uncomputability of S(n) and Σ(n)

Suppose that S(n) is a computable function and let EvalS denote a TM, evaluating S(n). Given a tape with n 1s it will produce S(n) 1s on the tape and then halt. Let Clean denote a Turing machine cleaning the sequence of 1s initially written on the tape. Let Double denote a Turing machine evaluating function n + n. Given a tape with n 1s it will produce 2n 1s on the tape and then halt. Let us create the composition Double | EvalS | Clean and let n0 be the number of states of this machine. Let Create_n0 denote a Turing machine creating n0 1s on an initially blank tape. This machine may be constructed in a trivial manner to have n0 states (the state i writes 1, moves the head right and switches to state i + 1, except the state n0, which halts). Let N denote the sum n0 + n0.

Let BadS denote the composition Create_n0 | Double | EvalS | Clean. Notice that this machine has N states. Starting with an initially blank tape it first creates a sequence of n0 1s and then doubles it, producing a sequence of N 1s. Then BadS will produce S(N) 1s on tape, and at last it will clear all 1s and then halt. But the phase of cleaning will continue at least S(N) steps, so the time of working of BadS is strictly greater than S(N), which contradicts to the definition of the function S(n).

The uncomputability of Σ(n) may be proved in a similar way. In the above proof, one must exchange the machine EvalS with EvalΣ and Clean with Increment — a simple TM, searching for a first 0 on the tape and replacing it with 1.

The uncomputability of S(n) can also be established by reference to the blank tape halting problem. The blank tape halting problem is the problem of deciding for any Turing machine whether or not it will halt when started on an empty tape. The blank tape halting problem is equivalent to the standard halting problem and so it is also uncomputable. If S(n) was computable, then we could solve the blank tape halting problem simply by running any given Turing machine with n states for S(n) steps; if it has still not halted, it never will. So, since the blank tape halting problem is not computable, it follows that S(n) must likewise be uncomputable.

Generalizations

For any model of computation there exist simple analogs of the busy beaver. For example, the generalization to Turing machines with n states and m symbols defines the following generalized busy beaver functions:

  1. Σ(n, m): the largest number of non-zeros printable by an n-state, m-symbol machine started on an initially blank tape before halting, and
  2. S(n, m): the largest number of steps taken by an n-state, m-symbol machine started on an initially blank tape before halting.

For example, the longest-running 3-state 3-symbol machine found so far runs 119112334170342540 steps before halting. [15] The longest running 6-state, 2-symbol machine which has the additional property of reversing the tape value at each step produces 6147 1s after 47339970 steps.[ citation needed ] So for the Reversal Turing Machine (RTM) class, [16] SRTM(6) ≥ 47339970 and ΣRTM(6) ≥ 6147.

It is possible to further generalize the busy beaver function by extending to more than one dimension.

Likewise we could define an analog to the Σ function for register machines as the largest number which can be present in any register on halting, for a given number of instructions.

Exact values and lower bounds

The following table lists the exact values and some known lower bounds for S(n, m) and Σ(n, m) for the generalized busy beaver problems. Note: entries listed as "?" are bounded from below by the maximum of all entries to left and above. These machines either haven't been investigated or were subsequently surpassed by a smaller machine.

Values of S(n, m)
n
m
2-state3-state4-state5-state6-state
2-symbol62110747176870> 10⇈15
3-symbol38119112334170342540> 1.0×1014072 ? ?
4-symbol3932964> 10⇈2048 ? ? ?
5-symbol> 1.9×10704 ? ? ? ?
6-symbol> 10⇈10⇈1010115 ? ? ? ?
Values of Σ(n, m)
n
m
2-state3-state4-state5-state6-state
2-symbol46134098> 10⇈15
3-symbol9374676383> 1.3×107036 ? ?
4-symbol2050> 10⇈2048 ? ? ?
5-symbol> 1.7×10352 ? ? ? ?
6-symbol> 10⇈10⇈1010115 ? ? ? ?

Nondeterministic Turing machines

Maximal Halting Times and States from p-case, 2-state, 2-color NDTM [17]
pstepsstates
122
244
367
4711
5815
6718
7618

The problem can be extended to Nondeterministic Turing machines by looking for the system with the most states across all branches or the branch with the longest number of steps. [17] The question of whether a given NDTM will halt is still computationally irreducible, and the computation required to find an NDTM busy beaver is significantly greater than the deterministic case, since there are multiple branches that need to be considered. For a 2-state, 2-color system with p cases or rules, the table to the right gives the maximum number of steps before halting and maximum number of unique states created by the NDTM.

Applications

In addition to posing a rather challenging mathematical game, the busy beaver functions offer an entirely new approach to solving pure mathematics problems. Many open problems in mathematics could in theory, but not in practice, be solved in a systematic way given the value of S(n) for a sufficiently large n. [18]

Consider any conjecture that could be disproven via a counterexample among a countable number of cases (e.g. Goldbach's conjecture). Write a computer program that sequentially tests this conjecture for increasing values. In the case of Goldbach's conjecture, we would consider every even number ≥ 4 sequentially and test whether or not it is the sum of two prime numbers. Suppose this program is simulated on an n-state Turing machine. If it finds a counterexample (an even number ≥ 4 that is not the sum of two primes in our example), it halts and indicates that. However, if the conjecture is true, then our program will never halt. (This program halts only if it finds a counterexample.)

Now, this program is simulated by an n-state Turing machine, so if we know S(n) we can decide (in a finite amount of time) whether or not it will ever halt by simply running the machine that many steps. And if, after S(n) steps, the machine does not halt, we know that it never will and thus that there are no counterexamples to the given conjecture (i.e., no even numbers that are not the sum of two primes). This would prove the conjecture to be true.

Thus specific values (or upper bounds) for S(n) could be used to systematically solve many open problems in mathematics (in theory). However, current results on the busy beaver problem suggest that this will not be practical for two reasons:

Notable instances

A 745-state binary Turing machine has been constructed that halts if and only if ZFC is inconsistent. [10] [11] A 744-state Turing machine has been constructed that halts if, and only if, the Riemann hypothesis is false. [7] [20] A 43-state Turing machine has been constructed that halts if, and only if, Goldbach's conjecture is false, and a 27-state machine for that conjecture has been proposed but not yet verified. [7] [20]

A 15-state Turing machine has been constructed that halts if and only if the following conjecture formulated by Paul Erdős in 1979 is false: for all n > 8 there is at least one digit 2 in the base 3 representation of 2n. [21] [22]

Examples

Shows the first 100,000 timesteps of the current best 5-state busy beaver. Orange is "1", white is "0" (image compressed vertically). Busy Beaver 5 State 2 Color.png
Shows the first 100,000 timesteps of the current best 5-state busy beaver. Orange is "1", white is "0" (image compressed vertically).

These are tables of rules for the Turing machines that generate Σ(1) and S(1), Σ(2) and S(2), Σ(3) (but not S(3)), Σ(4) and S(4), and the best known lower bound for Σ(5) and S(5), and Σ(6) and S(6).

In the tables, columns represent the current state and rows represent the current symbol read from the tape. Each table entry is a string of three characters, indicating the symbol to write onto the tape, the direction to move, and the new state (in that order). The halt state is shown as H.

Each machine begins in state A with an infinite tape that contains all 0s. Thus, the initial symbol read from the tape is a 0.

Result key: (starts at the position overlined, halts at the position underlined)

1-state, 2-symbol busy beaver
A
01RH
1(not used)

Result: 0 0 10 0 (1 step, one "1" total)

2-state, 2-symbol busy beaver[ citation needed ]
AB
01RB1LA
11LB1RH

Result: 0 0 1 1 1 1 0 0 (6 steps, four "1"s total)

Animation of a 3-state, 2-symbol busy beaver 3-state, 2-symbol Busy Beaver animation.gif
Animation of a 3-state, 2-symbol busy beaver
3-state, 2-symbol busy beaver [23] [24]
ABC
01RB0RC1LC
11RH1RB1LA

Result: 0 0 1 1 1 1 1 1 0 0 (14 steps, six "1"s total).

Unlike the previous machines, this one is a busy beaver only for Σ, but not for S. (S(3) = 21.)

Animation of a 4-state, 2-symbol busy beaver 4-state, 2-symbol Busy Beaver animation.gif
Animation of a 4-state, 2-symbol busy beaver
4-state, 2-symbol busy beaver
ABCD
01RB1LA1RH1RD
11LB0LC1LD0RA

Result: 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 (107 steps, thirteen "1"s total)

current 5-state, 2-symbol best contender (possible busy beaver)
ABCDE
01RB1RC1RD1LA1RH
11LC1RB0LE1LD0LA

Result: 4098 "1"s with 8191 "0"s interspersed in 47,176,870 steps.

Note in the image to the right how this solution is similar qualitatively to the evolution of some cellular automata.

current 6-state, 2-symbol best contender [15] [14]
ABCDEF
01RB1RC1LC0LE1LF0RC
10LD0RF1LA1RH0RB0RE

Result: 1 0 1 1 1 ... 1 1 1 ("10" followed by more than 10↑↑15 contiguous "1"s in more than 10↑↑15 steps, where 10↑↑15=1010..10, an exponential tower of 15 tens).

Visualizations

In the following table, the rules for each busy beaver (maximizing Σ) are represented visually, with orange squares corresponding to a "1" on the tape, and white corresponding to "0". The position of the head is indicated by the black ovoid, with the orientation of the head representing the state. Individual tapes are laid out horizontally, with time progressing from top to bottom. The halt state is represented by a rule which maps one state to itself (head doesn't move).

Evolution of busy beavers with 1-4 states
Busybeaver1rules.png
Rules for 1-state busy beaver
Busybeaver2rules.png
Rules for 2-state busy beaver
Busybeaver3rules.png
Rules for 3-state busy beaver
Busybeaver4rules.png
Rules for 4-state busy beaver
Busybeaver1.svg
Evolution of 1-state busy beaver until halt. The initial state triggers a halt, with a single "1" being written before termination.
Busybeaver2.svg
Evolution of 2-state busy beaver until halt
Busybeaver3.svg
Evolution of 3-state busy beaver until halt
Busybeaver4.png
Evolution of 4-state busy beaver until halt. Bottom line in left image wraps to top line of right image. The final step writes "1" before halting (not shown).

See also

Notes

  1. 1 2 Radó, Tibor (May 1962). "On non-computable functions" (PDF). Bell System Technical Journal . 41 (3): 877–884. doi:10.1002/j.1538-7305.1962.tb00480.x.
  2. Weisstein, Eric W. "Busy Beaver". Wolfram MathWorld. Retrieved 21 November 2023.
  3. Chaitin (1987)
  4. Adam Yedidia and Scott Aaronson (May 2016). A Relatively Small Turing Machine Whose Behavior Is Independent of Set Theory (Technical Report). MIT. arXiv: 1605.04343 . Bibcode:2016arXiv160504343Y.
  5. Aron, Jacob. "This Turing machine should run forever unless maths is wrong" . Retrieved 2016-09-25.
  6. 1 2 Version from May 3rd contained 7918 states: "The 8000th Busy Beaver number eludes ZF set theory". Shtetl-Optimized blog. 2016-05-03. Retrieved 2016-09-25.
  7. 1 2 3 "Three announcements". Shtetl-Optimized blog. 2016-05-03. Retrieved 2018-04-27.
  8. "GitHub - sorear/metamath-turing-machines: Metamath proof enumerators and other things". GitHub . 2019-02-13.
  9. "The Busy Beaver Frontier" (PDF).
  10. 1 2 "Life, blogging, and the Busy Beaver function go on". 2023-07-05. Retrieved 2023-08-27.
  11. 1 2 "The Undecidability of BB(748)" (PDF). Retrieved 2023-08-27.
  12. Boolos, Burgess & Jeffrey, 2007. "Computability and Logic"
  13. "Skelet page for Busy Beaver problem". skelet.ludost.net.
  14. 1 2 BB(6, 2) > 10↑↑15 article proving this bound.
  15. 1 2 Pascal Michel's Busy Beaver Competitions page listing best contenders known.
  16. "Reversal Turing machine". skelet.ludost.net. Retrieved 2022-02-10.
  17. 1 2 Wolfram, Stephen (4 February 2021). "Multiway Turing Machines". www.wolframphysics.org.
  18. Chaitin 1987
  19. Lloyd 2001. Computational Capacity of the Universe.
  20. 1 2 Pavlus, John (10 December 2020). "How the Slowest Computer Programs Illuminate Math's Fundamental Limits". Quanta Magazine. Retrieved 2020-12-11.
  21. Tristan Stérin and Damien Woods (July 2021). On the hardness of knowing busy beaver values BB(15) and BB(5,4) (Technical Report). Maynooth University. arXiv: 2107.12475 .
  22. Erdõs, Paul (1979). "Some unconventional problems in number theory". Math. Mag. 52 (2): 67–70. doi:10.1080/0025570X.1979.11976756. JSTOR   2689842.
  23. Shen Lin (1963). Computer studies of Turing machine problems (Ph.D. thesis). Ohio State University.
  24. Lin, Shen; Rado, Tibor (April 1965). "Computer studies of Turing machine problems". Journal of the ACM. 12 (2): 196–212. doi: 10.1145/321264.321270 . S2CID   17789208.

Related Research Articles

<span class="mw-page-title-main">Kolmogorov complexity</span> Measure of algorithmic complexity

In algorithmic information theory, the Kolmogorov complexity of an object, such as a piece of text, is the length of a shortest computer program that produces the object as output. It is a measure of the computational resources needed to specify the object, and is also known as algorithmic complexity, Solomonoff–Kolmogorov–Chaitin complexity, program-size complexity, descriptive complexity, or algorithmic entropy. It is named after Andrey Kolmogorov, who first published on the subject in 1963 and is a generalization of classical information theory.

The P versus NP problem is a major unsolved problem in theoretical computer science. Informally, it asks whether every problem whose solution can be quickly verified can also be quickly solved.

In the computer science subfield of algorithmic information theory, a Chaitin constant or halting probability is a real number that, informally speaking, represents the probability that a randomly constructed program will halt. These numbers are formed from a construction due to Gregory Chaitin.

In theoretical computer science, a nondeterministic Turing machine (NTM) is a theoretical model of computation whose governing rules specify more than one possible action when in some given situations. That is, an NTM's next state is not completely determined by its action and the current symbol it sees, unlike a deterministic Turing machine.

<span class="mw-page-title-main">Turing machine</span> Computation model defining an abstract machine

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. Despite the model's simplicity, it is capable of implementing any computer algorithm.

<span class="mw-page-title-main">Automata theory</span> Study of abstract machines and automata

Automata theory is the study of abstract machines and automata, as well as the computational problems that can be solved using them. It is a theory in theoretical computer science with close connections to mathematical logic. The word automata comes from the Greek word αὐτόματος, which means "self-acting, self-willed, self-moving". An automaton is an abstract self-propelled computing device which follows a predetermined sequence of operations automatically. An automaton with a finite number of states is called a Finite Automaton (FA) or Finite-State Machine (FSM). The figure on the right illustrates a finite-state machine, which is a well-known type of automaton. This automaton consists of states and transitions. As the automaton sees a symbol of input, it makes a transition to another state, according to its transition function, which takes the previous state and current input symbol as its arguments.

Hypercomputation or super-Turing computation is a set of hypothetical models of computation that can provide outputs that are not Turing-computable. For example, a machine that could solve the halting problem would be a hypercomputer; so too would one that could correctly evaluate every statement in Peano arithmetic.

<span class="mw-page-title-main">Arithmetical hierarchy</span> Hierarchy of complexity classes for formulas defining sets

In mathematical logic, the arithmetical hierarchy, arithmetic hierarchy or Kleene–Mostowski hierarchy classifies certain sets based on the complexity of formulas that define them. Any set that receives a classification is called arithmetical. The arithmetical hierarchy was invented independently by Kleene (1943) and Mostowski (1946).

Computability is the ability to solve a problem in an effective manner. It is a key topic of the field of computability theory within mathematical logic and the theory of computation within computer science. The computability of a problem is closely linked to the existence of an algorithm to solve the problem.

<span class="mw-page-title-main">Deterministic finite automaton</span> Finite-state machine

In the theory of computation, a branch of theoretical computer science, a deterministic finite automaton (DFA)—also known as deterministic finite acceptor (DFA), deterministic finite-state machine (DFSM), or deterministic finite-state automaton (DFSA)—is a finite-state machine that accepts or rejects a given string of symbols, by running through a state sequence uniquely determined by the string. Deterministic refers to the uniqueness of the computation run. In search of the simplest models to capture finite-state machines, Warren McCulloch and Walter Pitts were among the first researchers to introduce a concept similar to finite automata in 1943.

In computational complexity theory, the Cook–Levin theorem, also known as Cook's theorem, states that the Boolean satisfiability problem is NP-complete. That is, it is in NP, and any problem in NP can be reduced in polynomial time by a deterministic Turing machine to the Boolean satisfiability problem.

In computability theory Post's theorem, named after Emil Post, describes the connection between the arithmetical hierarchy and the Turing degrees.

Computable functions are the basic objects of study in computability theory. Computable functions are the formalized analogue of the intuitive notion of algorithms, in the sense that a function is computable if there exists an algorithm that can do the job of the function, i.e. given an input of the function domain it can return the corresponding output. Computable functions are used to discuss computability without referring to any concrete model of computation such as Turing machines or register machines. Any definition, however, must make reference to some specific model of computation but all valid definitions yield the same class of functions. Particular models of computability that give rise to the set of computable functions are the Turing-computable functions and the general recursive functions.

In theoretical computer science and mathematical logic a string rewriting system (SRS), historically called a semi-Thue system, is a rewriting system over strings from a alphabet. Given a binary relation between fixed strings over the alphabet, called rewrite rules, denoted by , an SRS extends the rewriting relation to all strings in which the left- and right-hand side of the rules appear as substrings, that is , where , , , and are strings.

A Post–Turing machine is a "program formulation" of a type of Turing machine, comprising a variant of Emil Post's Turing-equivalent model of computation. Post's model and Turing's model, though very similar to one another, were developed independently. Turing's paper was received for publication in May 1936, followed by Post's in October. A Post–Turing machine uses a binary alphabet, an infinite sequence of binary storage locations, and a primitive programming language with instructions for bi-directional movement among the storage locations and alteration of their contents one at a time. The names "Post–Turing program" and "Post–Turing machine" were used by Martin Davis in 1973–1974. Later in 1980, Davis used the name "Turing–Post program".

In logic, finite model theory, and computability theory, Trakhtenbrot's theorem states that the problem of validity in first-order logic on the class of all finite models is undecidable. In fact, the class of valid sentences over finite models is not recursively enumerable.

A multi-tape Turing machine is a variant of the Turing machine that utilizes several tapes. Each tape has its own head for reading and writing. Initially, the input appears on tape 1, and the others start out blank.

The following are examples to supplement the article Turing machine.

Description numbers are numbers that arise in the theory of Turing machines. They are very similar to Gödel numbers, and are also occasionally called "Gödel numbers" in the literature. Given some universal Turing machine, every Turing machine can, given its encoding on that machine, be assigned a number. This is the machine's description number. These numbers play a key role in Alan Turing's proof of the undecidability of the halting problem, and are very useful in reasoning about Turing machines as well.

In computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run forever. The halting problem is undecidable, meaning that no general algorithm exists that solves the halting problem for all possible program–input pairs.

References