In theoretical computer science , the busy beaver game aims at finding a terminating program of a given size that (depending on definition) either produces the most output possible, or runs for the longest number of steps. Since an endlessly looping program producing infinite output or running for infinite time is easily conceived, such programs are excluded from the game. Rather than traditional programming languages, the programs used in the game are n-state Turing machines , one of the first mathematical models of computation.
125-527: Turing machines consist of an infinite tape, and a finite set of states which serve as the program's "source code". Producing the most output is defined as writing the largest number of 1s on the tape, also referred to as achieving the highest score, and running for the longest time is defined as taking the longest number of steps to halt. The n- state busy beaver game consists of finding the longest-running or highest-scoring Turing machine which has n states and eventually halts. Such machines are assumed to start on
250-460: A computable ordinal number of iterates of the Turing jump of the empty set. This is equivalent to sets defined by both a universal and existential formula in the language of second order arithmetic and to some models of Hypercomputation . Even more general recursion theories have been studied, such as E-recursion theory in which any set can be used as an argument to an E-recursive function. Although
375-412: A computable ordinal number of iterates of the Turing jump of the empty set. This is equivalent to sets defined by both a universal and existential formula in the language of second order arithmetic and to some models of Hypercomputation . Even more general recursion theories have been studied, such as E-recursion theory in which any set can be used as an argument to an E-recursive function. Although
500-403: 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
625-477: A partial function f : N k → N {\displaystyle f:\mathbb {N} ^{k}\rightarrow \mathbb {N} } can be calculated if and only if there exists a computer program with the following properties: The basic characteristic of a computable function is that there must be a finite procedure (an algorithm ) telling how to compute the function. The models of computation listed above give different interpretations of what
750-477: A partial function f : N k → N {\displaystyle f:\mathbb {N} ^{k}\rightarrow \mathbb {N} } can be calculated if and only if there exists a computer program with the following properties: The basic characteristic of a computable function is that there must be a finite procedure (an algorithm ) telling how to compute the function. The models of computation listed above give different interpretations of what
875-657: A 27-state Turing machine could check Goldbach's conjecture for each number and halt on a counterexample: if this machine had not halted after running for S(27) steps, then it must run forever, resolving the conjecture. Many other problems, including the Riemann hypothesis (744 states) and the consistency of ZF set theory (745 states), can be expressed in a similar form, where at most a countably infinite number of cases need to be checked. The n -state busy beaver game (or BB- n game ), introduced in Tibor Radó 's 1962 paper, involves
1000-604: A Turing machine writes a one to, it must also visit: in other words, Σ ( n ) ≤ space ( n ) {\displaystyle \Sigma (n)\leq {\text{space}}(n)} . The num ( n ) {\displaystyle {\text{num}}(n)} function can be shown to be incomputable by proving, for example, that space ( n ) < num ( 3 n + 3 ) {\displaystyle {\text{space}}(n)<{\text{num}}(3n+3)} : this can be done by designing an (3n+3) -state Turing machine which simulates
1125-546: A blank tape has 0 ones), the recursion relations are as follows: a This leads to two formulas, for odd and even numbers, for calculating the lower bound given by the Nth machine, G ( N ) {\displaystyle G(N)} : The lower bound BB(N) can also be related to the Ackermann function . It can be shown that: Trivially, S(n) ≥ Σ(n) because a machine that writes Σ(n) ones must take at least Σ(n) steps to do so. It
1250-440: A blank tape, and the tape is assumed to contain only zeros and ones (a binary Turing machine). The objective of the game is to program a set of transitions between states aiming for the highest score or longest running time while making sure the machine will halt eventually. An n th busy beaver , BB- n or simply "busy beaver" is a Turing machine that wins the n -state busy beaver game. Depending on definition, it either attains
1375-430: A busy beaver contender because it runs forever on a blank tape. In his original 1962 paper, Radó defined two functions related to the busy beaver game: the score function Σ(n) and the shifts function S(n). Both take a number of Turing machine states n {\displaystyle n} and output the maximum score attainable by a Turing machine of that number of states by some measure. The score function Σ(n) gives
SECTION 10
#17328555382661500-466: A class of Turing machines , each member of which is required to meet the following design specifications: "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
1625-459: A constant c , such that for all n ≥ 2 : The following table lists the exact values and some known lower bounds for S ( n ), Σ( n ), and several other busy beaver functions. In this table, 2-symbol Turing machines are used. Entries listed as "?" are at least as large as other entries to the left (because all n-state machines are also (n+1) state machines), and no larger than entries above them (because S(n) ≥ space(n) ≥ Σ(n) ≥ num(n)). So, space(6)
1750-426: 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
1875-435: A formal procedure for the function in some model of computation. Given a function (or, similarly, a set), one may be interested not only if it is computable, but also whether this can be proven in a particular proof system (usually first order Peano arithmetic ). A function that can be proven to be computable is called provably total . The set of provably total functions is recursively enumerable : one can enumerate all
2000-435: A formal procedure for the function in some model of computation. Given a function (or, similarly, a set), one may be interested not only if it is computable, but also whether this can be proven in a particular proof system (usually first order Peano arithmetic ). A function that can be proven to be computable is called provably total . The set of provably total functions is recursively enumerable : one can enumerate all
2125-546: A fourth by reversing the halt direction of the all-swapped busy beaver. Furthermore, a permutation of all states except Start and Halt produces a machine that attains the same score. Theoretically, there could be more than one kind of transition leading to the halting state, but in practice it would be wasteful, because there is only one sequence of state transitions producing the sought-after result.) Radó's 1962 paper proved that if f : N → N {\displaystyle f:\mathbb {N} \to \mathbb {N} }
2250-415: A procedure is and how it is used, but these interpretations share many properties. The fact that these models give equivalent classes of computable functions stems from the fact that each model is capable of reading and mimicking a procedure for any of the other models, much as a compiler is able to read instructions in one computer language and emit instructions in another language. Enderton [1977] gives
2375-415: A procedure is and how it is used, but these interpretations share many properties. The fact that these models give equivalent classes of computable functions stems from the fact that each model is capable of reading and mimicking a procedure for any of the other models, much as a compiler is able to read instructions in one computer language and emit instructions in another language. Enderton [1977] gives
2500-468: A scale, for example the various large cardinal axioms in ZFC : if each theory T {\displaystyle T} is assigned as its number n T {\displaystyle n_{T}} , theories with larger values of n T {\displaystyle n_{T}} prove the consistency of those below them, placing all such theories on a countably infinite scale. Exploring
2625-431: A single natural number (just as above). They are the smallest class of partial functions that includes the constant, successor, and projection functions, and is closed under composition , primitive recursion , and the μ operator . Equivalently, computable functions can be formalized as functions which can be calculated by an idealized computing agent such as a Turing machine or a register machine . Formally speaking,
SECTION 20
#17328555382662750-431: A single natural number (just as above). They are the smallest class of partial functions that includes the constant, successor, and projection functions, and is closed under composition , primitive recursion , and the μ operator . Equivalently, computable functions can be formalized as functions which can be calculated by an idealized computing agent such as a Turing machine or a register machine . Formally speaking,
2875-455: A string of bits (the alphabet Σ = {0, 1 }). The real numbers are uncountable so most real numbers are not computable. See computable number . The set of finitary functions on the natural numbers is uncountable so most are not computable. Concrete examples of such functions are Busy beaver , Kolmogorov complexity , or any function that outputs the digits of a noncomputable number, such as Chaitin's constant . Similarly, most subsets of
3000-455: A string of bits (the alphabet Σ = {0, 1 }). The real numbers are uncountable so most real numbers are not computable. See computable number . The set of finitary functions on the natural numbers is uncountable so most are not computable. Concrete examples of such functions are Busy beaver , Kolmogorov complexity , or any function that outputs the digits of a noncomputable number, such as Chaitin's constant . Similarly, most subsets of
3125-437: A value which is a single natural number. As counterparts to this informal description, there exist multiple formal, mathematical definitions. The class of computable functions can be defined in many equivalent models of computation , including Although these models use different representations for the functions, their inputs, and their outputs, translations exist between any two models, and so every model describes essentially
3250-437: A value which is a single natural number. As counterparts to this informal description, there exist multiple formal, mathematical definitions. The class of computable functions can be defined in many equivalent models of computation , including Although these models use different representations for the functions, their inputs, and their outputs, translations exist between any two models, and so every model describes essentially
3375-474: Is Knuth's up-arrow notation . This represents 10 ( 10 ( 10 ( 10 ( … ) ) ) ) {\displaystyle 10^{(10^{(10^{(10^{(\ldots )})})})}} , an exponentiated chain of 15 tens equal to 10 10 ↑ ↑ 14 {\displaystyle 10^{10\uparrow \uparrow 14}} . The value of Σ ( 8 ) {\displaystyle \Sigma (8)}
3500-428: Is unary , max( f , g ), min( f , g ), arg max { y ≤ f ( x )} and many more combinations. The following examples illustrate that a function may be computable though it is not known which algorithm computes it. The Church–Turing thesis states that any function computable from a procedure possessing the three properties listed above is a computable function. Because these three properties are not formally stated,
3625-428: Is unary , max( f , g ), min( f , g ), arg max { y ≤ f ( x )} and many more combinations. The following examples illustrate that a function may be computable though it is not known which algorithm computes it. The Church–Turing thesis states that any function computable from a procedure possessing the three properties listed above is a computable function. Because these three properties are not formally stated,
3750-421: Is a computable function f such that f ( w ) is defined if and only if the word w is in the language. The term enumerable has the same etymology as in computably enumerable sets of natural numbers. The following functions are computable: If f and g are computable, then so are: f + g , f * g , f ∘ g {\displaystyle \color {Blue}f\circ g} if f
3875-421: Is a computable function f such that f ( w ) is defined if and only if the word w is in the language. The term enumerable has the same etymology as in computably enumerable sets of natural numbers. The following functions are computable: If f and g are computable, then so are: f + g , f * g , f ∘ g {\displaystyle \color {Blue}f\circ g} if f
Busy beaver - Misplaced Pages Continue
4000-400: Is a computable function f such that for each number n , f ( n ) is defined if and only if n is in the set. Thus a set is computably enumerable if and only if it is the domain of some computable function. The word enumerable is used because the following are equivalent for a nonempty subset B of the natural numbers: If a set B is the range of a function f then
4125-400: Is a computable function f such that for each number n , f ( n ) is defined if and only if n is in the set. Thus a set is computably enumerable if and only if it is the domain of some computable function. The word enumerable is used because the following are equivalent for a nonempty subset B of the natural numbers: If a set B is the range of a function f then
4250-428: Is a computable function f such that for each word w over the alphabet, f ( w ) = 1 if the word is in the language and f ( w ) = 0 if the word is not in the language. Thus a language is computable just in case there is a procedure that is able to correctly tell whether arbitrary words are in the language. A language is computably enumerable (synonyms: recursively enumerable , semidecidable ) if there
4375-428: Is a computable function f such that for each word w over the alphabet, f ( w ) = 1 if the word is in the language and f ( w ) = 0 if the word is not in the language. Thus a language is computable just in case there is a procedure that is able to correctly tell whether arbitrary words are in the language. A language is computably enumerable (synonyms: recursively enumerable , semidecidable ) if there
4500-408: 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 2 n 1s on the tape and then halt. Let us create
4625-400: Is a language over the binary alphabet. A key property of a formal language is the level of difficulty required to decide whether a given word is in the language. Some coding system must be developed to allow a computable function to take an arbitrary word in the language as input; this is usually considered routine. A language is called computable (synonyms: recursive , decidable ) if there
4750-400: Is a language over the binary alphabet. A key property of a formal language is the level of difficulty required to decide whether a given word is in the language. Some coding system must be developed to allow a computable function to take an arbitrary word in the language as input; this is usually considered routine. A language is called computable (synonyms: recursive , decidable ) if there
4875-519: 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
5000-427: Is common to consider formal languages . An alphabet is an arbitrary set. A word on an alphabet is a finite sequence of symbols from the alphabet; the same symbol may be used more than once. For example, binary strings are exactly the words on the alphabet {0, 1} . A language is a subset of the collection of all words on a fixed alphabet. For example, the collection of all binary strings that contain exactly 3 ones
5125-427: Is common to consider formal languages . An alphabet is an arbitrary set. A word on an alphabet is a finite sequence of symbols from the alphabet; the same symbol may be used more than once. For example, binary strings are exactly the words on the alphabet {0, 1} . A language is a subset of the collection of all words on a fixed alphabet. For example, the collection of all binary strings that contain exactly 3 ones
Busy beaver - Misplaced Pages Continue
5250-435: Is computable if and only if there is an effective procedure that, given any k - tuple x {\displaystyle \mathbf {x} } of natural numbers, will produce the value f ( x ) {\displaystyle f(\mathbf {x} )} . In agreement with this definition, the remainder of this article presumes that computable functions take finitely many natural numbers as arguments and produce
5375-435: Is computable if and only if there is an effective procedure that, given any k - tuple x {\displaystyle \mathbf {x} } of natural numbers, will produce the value f ( x ) {\displaystyle f(\mathbf {x} )} . In agreement with this definition, the remainder of this article presumes that computable functions take finitely many natural numbers as arguments and produce
5500-436: 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. According to
5625-425: Is known to be greater than 10⇈15, as space(n) ≥ Σ(n) and Σ(6) > 10⇈15. 47 176 870 is an upper bound for space(5), because S(5) = 47 176 870 () and S(n) ≥ space(n). 4098 is an upper bound for num(5), because Σ(5) = 4098 () and Σ(n) ≥ num(n). The last entry listed as "?" is num(6), because Σ(6) > 10⇈15, but Σ(n) ≥ num(n). ≤ 47 176 870 (S(n) ≥ space(n)) Incomputable Computable functions are
5750-577: 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
5875-554: Is not used in this article. A number of other uncomputable functions can also be defined based on measuring the performance of Turing machines in other ways than time or maximal number of ones. For example: These four functions together stand in the relation num ( n ) ≤ Σ ( n ) ≤ space ( n ) ≤ S ( n ) {\displaystyle {\text{num}}(n)\leq \Sigma (n)\leq {\text{space}}(n)\leq S(n)} . More functions can also be defined by operating
6000-401: Is possible to give a number of upper bounds on the time S(n) with the number of ones Σ(n): By defining num(n) to be the maximum number of ones an n -state Turing machine is allowed to output contiguously, rather than in any position (the largest unary number it can output), it is possible to show: Ben-Amram and Petersen, 2002, also give an asymptotically improved bound on S(n). There exists
6125-645: Is probably much larger still than that. Specifically, the lower bound was shown with a series of recursive Turing machines, each of which was made of a smaller one with two additional states that repeatedly applied the smaller machine to the input tape. Defining the value of the N-state busy-beaver competitor on a tape containing m {\displaystyle m} ones to be B N ( m ) {\displaystyle B_{N}(m)} (the ultimate output of each machine being its value on m = 0 {\displaystyle m=0} , because
6250-400: Is the primitive recursive functions . Another example is the Ackermann function , which is recursively defined but not primitive recursive. For definitions of this type to avoid circularity or infinite regress, it is necessary that recursive calls to the same function within a definition be to arguments that are smaller in some well-partial-order on the function's domain. For instance, for
6375-400: Is the primitive recursive functions . Another example is the Ackermann function , which is recursively defined but not primitive recursive. For definitions of this type to avoid circularity or infinite regress, it is necessary that recursive calls to the same function within a definition be to arguments that are smaller in some well-partial-order on the function's domain. For instance, for
SECTION 50
#17328555382666500-518: Is the extension to Turing machines with m symbols instead of just 2 (0 and 1). For example a trinary Turing machine with m = 3 symbols would have the symbols 0, 1, and 2. The generalization to Turing machines with n states and m symbols defines the following generalized busy beaver functions : For example, the longest-running 3-state 3-symbol machine found so far runs 119 112 334 170 342 540 steps before halting. The problem can be extended to nondeterministic Turing machines by looking for
6625-448: Is the length of the shortest program in L {\displaystyle L} that outputs m {\displaystyle m} : B B ( n ) {\displaystyle {BB}(n)} is thereby the largest integer a program with length n {\displaystyle n} or less can output in L {\displaystyle L} . The longest running 6-state, 2-symbol machine which has
6750-501: Is too complex to state as a single expression in terms of n . This was done with a set of Turing machines, each of which demonstrated the lower bound for a certain n . When n =8 the method gives In contrast, the best current (as of 2024) lower bound on Σ ( 6 ) {\displaystyle \Sigma (6)} is 10 ↑ ↑ 15 {\displaystyle 10\uparrow \uparrow 15} , where each ↑ {\displaystyle \uparrow }
6875-583: The OEIS ). Σ( n ) has not yet been determined for any instance of n > 5, although lower bounds have been established (see the Known values section below). A variant of Kolmogorov complexity is defined as follows: 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
7000-417: The halting problem , and complexity theory . The concept was first introduced by Tibor Radó in his 1962 paper, "On Non-Computable Functions". One of the most interesting aspects of the busy beaver game is that, if it were possible to compute the functions Σ(n) and S(n) for all n , then this would resolve all mathematical conjectures which can be encoded as "does this Turing machine halt or not". For example,
7125-540: The n -state space champion, and then uses it to write at least space ( n ) {\displaystyle {\text{space}}(n)} contiguous ones to the tape. Analogs of the shift function can be simply defined in any programming language, given that the programs can be described by bit-strings, and a program's number of steps can be counted. For example, the busy beaver game can also be generalized to two dimensions using Turing machines on two-dimensional tapes, or to Turing machines that are allowed to stay in
7250-513: The Ackermann function A {\displaystyle A} , whenever the definition of A ( x , y ) {\displaystyle A(x,y)} refers to A ( p , q ) {\displaystyle A(p,q)} , then ( p , q ) < ( x , y ) {\displaystyle (p,q)<(x,y)} w.r.t. the lexicographic order on pairs of natural numbers . In this case, and in
7375-461: The Ackermann function A {\displaystyle A} , whenever the definition of A ( x , y ) {\displaystyle A(x,y)} refers to A ( p , q ) {\displaystyle A(p,q)} , then ( p , q ) < ( x , y ) {\displaystyle (p,q)<(x,y)} w.r.t. the lexicographic order on pairs of natural numbers . In this case, and in
7500-461: The Church–Turing thesis cannot be proved. The following facts are often taken as evidence for the thesis: The Church–Turing thesis is sometimes used in proofs to justify that a particular function is computable by giving a concrete description of a procedure for the computation. This is permitted because it is believed that all such uses of the thesis can be removed by the tedious process of writing
7625-405: The Church–Turing thesis cannot be proved. The following facts are often taken as evidence for the thesis: The Church–Turing thesis is sometimes used in proofs to justify that a particular function is computable by giving a concrete description of a procedure for the computation. This is permitted because it is believed that all such uses of the thesis can be removed by the tedious process of writing
SECTION 60
#17328555382667750-458: The Church–Turing thesis states that the computable functions include all functions with algorithms, it is possible to consider broader classes of functions that relax the requirements that algorithms must possess. The field of Hypercomputation studies models of computation that go beyond normal Turing computation. Noncomputable function Computable functions are the basic objects of study in computability theory . Computable functions are
7875-468: The Church–Turing thesis, there is no effective procedure (with an algorithm) which can perform these computations. The notion of computability of a function can be relativized to an arbitrary set of natural numbers A . A function f is defined to be computable in A (equivalently A -computable or computable relative to A ) when it satisfies the definition of a computable function with modifications allowing access to A as an oracle . As with
8000-468: The Church–Turing thesis, there is no effective procedure (with an algorithm) which can perform these computations. The notion of computability of a function can be relativized to an arbitrary set of natural numbers A . A function f is defined to be computable in A (equivalently A -computable or computable relative to A ) when it satisfies the definition of a computable function with modifications allowing access to A as an oracle . As with
8125-456: The Turing machine that computes it according to the n-th proof. Such a Turing machine is guaranteed to halt if the proof system is sound. Every computable function has a finite procedure giving explicit, unambiguous instructions on how to compute it. Furthermore, this procedure has to be encoded in the finite alphabet used by the computational model, so there are only countably many computable functions. For example, functions may be encoded using
8250-456: The Turing machine that computes it according to the n-th proof. Such a Turing machine is guaranteed to halt if the proof system is sound. Every computable function has a finite procedure giving explicit, unambiguous instructions on how to compute it. Furthermore, this procedure has to be encoded in the finite alphabet used by the computational model, so there are only countably many computable functions. For example, functions may be encoded using
8375-412: The Turing machines that produces them, then the above statement can be shown, if the proof system is sound, by a similar diagonalization argument to that used above, using the enumeration of provably total functions given earlier. One uses a Turing machine that enumerates the relevant proofs, and for every input n calls f n ( n ) (where f n is n -th function by this enumeration) by invoking
8500-412: The Turing machines that produces them, then the above statement can be shown, if the proof system is sound, by a similar diagonalization argument to that used above, using the enumeration of provably total functions given earlier. One uses a Turing machine that enumerates the relevant proofs, and for every input n calls f n ( n ) (where f n is n -th function by this enumeration) by invoking
8625-492: The additional property of reversing the tape value at each step produces 6147 1s after 47 339 970 steps. So for the Reversal Turing Machine (RTM) class, S RTM (6) ≥ 47 339 970 and Σ RTM (6) ≥ 6147 . 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. A simple generalization
8750-411: The assumption of well-ordering. In a sound proof system, every provably total function is indeed total, but the converse is not true: in every first-order proof system that is strong enough and sound (including Peano arithmetic), one can prove (in another proof system) the existence of total functions that cannot be proven total in the proof system. If the total computable functions are enumerated via
8875-411: The assumption of well-ordering. In a sound proof system, every provably total function is indeed total, but the converse is not true: in every first-order proof system that is strong enough and sound (including Peano arithmetic), one can prove (in another proof system) the existence of total functions that cannot be proven total in the proof system. If the total computable functions are enumerated via
9000-612: 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
9125-420: The behavior of the machines that had not halted within 21 steps, they succeeded in showing that none of those machines would ever halt, most of them following a certain pattern. This proved the conjecture that S (3) = 21, and also determined that Σ(3) = 6, which was attained by several machines, all halting after 11 to 14 steps. In 2016, Adam Yedidia and Scott Aaronson obtained the first (explicit) upper bound on
9250-451: The blank tape halting problem is not computable, it follows that S ( n ) must likewise be uncomputable. Both space ( n ) {\displaystyle {\text{space}}(n)} and num ( n ) {\displaystyle {\text{num}}(n)} functions are uncomputable . This can be shown for space ( n ) {\displaystyle {\text{space}}(n)} by noting that every tape square
9375-497: 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
9500-527: The busy beaver problem suggest that this will not be practical for two reasons: Another property of S(n) is that no arithmetically sound, computably axiomatized theory can prove all of the function's values. Specifically, given a computable and arithmetically sound theory T {\displaystyle T} , there is a number n T {\displaystyle n_{T}} such that for all n ≥ n T {\displaystyle n\geq n_{T}} , no statement of
9625-419: 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 (after unsuccessfully conjecturing 18), then to simulate all the essentially different 3-state machines (82,944 machines, equal to 23) for up to 21 steps. They found 26,073 machines that halted, including one that halted only after 21 steps. By analyzing
9750-471: The case of the primitive recursive functions, well-ordering is obvious, but some "refers-to" relations are nontrivial to prove as being well-orderings. Any function defined recursively in a well-ordered way is computable: each value can be computed by expanding a tree of recursive calls to the function, and this expansion must terminate after a finite number of calls, because otherwise Kőnig's lemma would lead to an infinite descending sequence of calls, violating
9875-471: The case of the primitive recursive functions, well-ordering is obvious, but some "refers-to" relations are nontrivial to prove as being well-orderings. Any function defined recursively in a well-ordered way is computable: each value can be computed by expanding a tree of recursive calls to the function, and this expansion must terminate after a finite number of calls, because otherwise Kőnig's lemma would lead to an infinite descending sequence of calls, violating
10000-404: The composition Double | EvalS | Clean and let n 0 be the number of states of this machine. Let Create_n 0 denote a Turing machine creating n 0 1s on an initially blank tape. This machine may be constructed in a trivial manner to have n 0 states (the state i writes 1, moves the head right and switches to state i + 1, except the state n 0 , which halts). Let N denote
10125-464: The concept of a computable function relative computability can be given equivalent definitions in many different models of computation. This is commonly accomplished by supplementing the model of computation with an additional primitive operation which asks whether a given integer is a member of A . We can also talk about f being computable in g by identifying g with its graph. Hyperarithmetical theory studies those sets that can be computed from
10250-464: The concept of a computable function relative computability can be given equivalent definitions in many different models of computation. This is commonly accomplished by supplementing the model of computation with an additional primitive operation which asks whether a given integer is a member of A . We can also talk about f being computable in g by identifying g with its graph. Hyperarithmetical theory studies those sets that can be computed from
10375-444: 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"
10500-567: The difficulty in finding and proving these machines; these features suggest that Busy Beaver machines possess the necessary complexity for universality. In 1964 Milton Green developed a lower bound for the 1s-counting variant of 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
10625-547: 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, Σ(4) = 13 and Σ(5) = 4098 (sequence A028444 in
10750-436: The following characteristics of a procedure for computing a computable function; similar characterizations have been given by Turing [1936], Rogers [1967], and others. Enderton goes on to list several clarifications of these 3 requirements of the procedure for a computable function: To summarise, based on this view a function is computable if: The field of computational complexity studies functions with prescribed bounds on
10875-436: The following characteristics of a procedure for computing a computable function; similar characterizations have been given by Turing [1936], Rogers [1967], and others. Enderton goes on to list several clarifications of these 3 requirements of the procedure for a computable function: To summarise, based on this view a function is computable if: The field of computational complexity studies functions with prescribed bounds on
11000-521: The form S ( n ) = k {\displaystyle S(n)=k} can be proved in T {\displaystyle T} . This implies that for each theory there is a specific largest value of S(n) that it can prove. This is true because for every such T {\displaystyle T} , a Turing machine with n T {\displaystyle n_{T}} states can be designed to enumerate every possible proof in T {\displaystyle T} . If
11125-421: The form Σ(10⇈10) < n .) In addition to the function Σ, Radó [1962] introduced another extreme function for Turing machines, the maximum shifts function , S , defined as follows: Because normal 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
11250-533: 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
11375-445: The function can be viewed as an enumeration of B , because the list f (0), f (1), ... will include every element of B . Because each finitary relation on the natural numbers can be identified with a corresponding set of finite sequences of natural numbers, the notions of computable relation and computably enumerable relation can be defined from their analogues for sets. In computability theory in computer science , it
11500-445: The function can be viewed as an enumeration of B , because the list f (0), f (1), ... will include every element of B . Because each finitary relation on the natural numbers can be identified with a corresponding set of finite sequences of natural numbers, the notions of computable relation and computably enumerable relation can be defined from their analogues for sets. In computability theory in computer science , it
11625-563: The game on different computing machines, such as 3-symbol Turing machines, non-deterministic Turing machines, the lambda calculus (sequence A333479 in the OEIS ) or even arbitrary programming languages. The score function quantifies the maximum score attainable by a busy beaver on a given measure. This is a noncomputable function , because it grows asymptotically faster than any computable function. The score function, Σ : N → N {\displaystyle \Sigma :\mathbb {N} \to \mathbb {N} } ,
11750-490: The highest score, or runs for the longest time, among all other possible n -state competing Turing machines. The functions determining the highest score or longest running time of the n -state busy beavers by each definition are Σ(n) and S(n) respectively. Deciding the running time or score of the n th Busy Beaver is incomputable . In fact, both the functions Σ(n) and S(n) eventually become larger than any computable function. This has implications in computability theory ,
11875-439: 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
12000-452: 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, in theory, used to systematically solve many open problems in mathematics. However, current results on
12125-557: The maximum number of 1s an n {\displaystyle n} -state Turing machine can output before halting, while the shifts function S(n) gives the maximum number of shifts (or equivalently steps, because each step includes a shift) that an n {\displaystyle n} -state Turing machine can undergo before halting. He proved that both of these functions were noncomputable , because they each grew faster than any computable function. The function BB(n) has been defined to be either of these functions, so that notation
12250-522: The minimum n for which S( n ) is unprovable in ZFC . To do so they constructed a 7910-state 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 ). Stefan O'Rear then reduced it to 1919 states, with the dependency on the stationary Ramsey property eliminated, and later to 748 states. In July 2023, Riebel reduced it to 745 states. Suppose that S ( n )
12375-403: The natural numbers are not computable. The halting problem was the first such set to be constructed. The Entscheidungsproblem , proposed by David Hilbert , asked whether there is an effective procedure to determine which mathematical statements (coded as natural numbers) are true. Turing and Church independently showed in the 1930s that this set of natural numbers is not computable. According to
12500-403: The natural numbers are not computable. The halting problem was the first such set to be constructed. The Entscheidungsproblem , proposed by David Hilbert , asked whether there is an effective procedure to determine which mathematical statements (coded as natural numbers) are true. Turing and Church independently showed in the 1930s that this set of natural numbers is not computable. According to
12625-478: The precise definition of computable function, mathematicians often used the informal term effectively calculable . This term has since come to be identified with the computable functions. The effective computability of these functions does not imply that they can be efficiently computed (i.e. computed within a reasonable amount of time). In fact, for some effectively calculable functions it can be shown that any algorithm that computes them will be very inefficient in
12750-478: The precise definition of computable function, mathematicians often used the informal term effectively calculable . This term has since come to be identified with the computable functions. The effective computability of these functions does not imply that they can be efficiently computed (i.e. computed within a reasonable amount of time). In fact, for some effectively calculable functions it can be shown that any algorithm that computes them will be very inefficient in
12875-430: The problem of determining the complexity of a computable function is known as a function problem . Computability of a function is an informal notion. One way to describe it is to say that a function is computable if its value can be obtained by an effective procedure . With more rigor, a function f : N k → N {\displaystyle f:\mathbb {N} ^{k}\rightarrow \mathbb {N} }
13000-430: The problem of determining the complexity of a computable function is known as a function problem . Computability of a function is an informal notion. One way to describe it is to say that a function is computable if its value can be obtained by an effective procedure . With more rigor, a function f : N k → N {\displaystyle f:\mathbb {N} ^{k}\rightarrow \mathbb {N} }
13125-438: The provably total functions by enumerating all their corresponding proofs, that prove their computability. This can be done by enumerating all the proofs of the proof system and ignoring irrelevant ones. In a function defined by a recursive definition , each value is defined by a fixed first-order formula of other, previously defined values of the same function or other functions, which might be simply constants. A subset of these
13250-438: The provably total functions by enumerating all their corresponding proofs, that prove their computability. This can be done by enumerating all the proofs of the proof system and ignoring irrelevant ones. In a function defined by a recursive definition , each value is defined by a fixed first-order formula of other, previously defined values of the same function or other functions, which might be simply constants. A subset of these
13375-428: The relationship between computational universality and the dynamic behavior of Busy Beaver Turing machines , a conjecture was proposed in 2012 suggesting that Busy Beaver machines were natural candidates for Turing universality as they display complex characteristics, known for (1) their maximal computational complexity within size constraints, (2) their ability to perform non-trivial calculations before halting, and (3)
13500-470: The same class of functions, giving rise to the opinion that formal computability is both natural and not too narrow. These functions are sometimes referred to as "recursive", to contrast with the informal term "computable", a distinction stemming from a 1934 discussion between Kleene and Gödel. For example, one can formalize computable functions as μ-recursive functions , which are partial functions that take finite tuples of natural numbers and return
13625-470: The same class of functions, giving rise to the opinion that formal computability is both natural and not too narrow. These functions are sometimes referred to as "recursive", to contrast with the informal term "computable", a distinction stemming from a 1934 discussion between Kleene and Gödel. For example, one can formalize computable functions as μ-recursive functions , which are partial functions that take finite tuples of natural numbers and return
13750-868: 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 . According to the Church–Turing thesis , computable functions are exactly the functions that can be calculated using a mechanical (that is, automatic) calculation device given unlimited amounts of time and storage space. More precisely, every model of computation that has ever been imagined can compute only computable functions, and all computable functions can be computed by any of several models of computation that are apparently very different, such as Turing machines , register machines , lambda calculus and general recursive functions . Before
13875-754: 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 . According to the Church–Turing thesis , computable functions are exactly the functions that can be calculated using a mechanical (that is, automatic) calculation device given unlimited amounts of time and storage space. More precisely, every model of computation that has ever been imagined can compute only computable functions, and all computable functions can be computed by any of several models of computation that are apparently very different, such as Turing machines , register machines , lambda calculus and general recursive functions . Before
14000-537: The same place as well as move to the left and right. Alternatively a "busy beaver function" for diverse models of computation can be defined with Kolmogorov complexity . This is done by taking B B ( n ) {\displaystyle {BB}(n)} to be the largest integer m {\displaystyle m} such that K L ( m ) ≤ n {\displaystyle K_{L}(m)\leq n} , where K L ( m ) {\displaystyle K_{L}(m)}
14125-419: The score-based definition, any n -state 2-symbol Turing machine M for which σ ( M ) = Σ( n ) (i.e., which attains the maximum score) is called a busy beaver. For each n , there exist at least 4( n − 1)! n -state busy beavers. (Given any n -state busy beaver, another is obtained by merely changing the shift direction in a halting transition, a third by reversing all shift directions uniformly, and
14250-415: The sense that the running time of the algorithm increases exponentially (or even superexponentially ) with the length of the input. The fields of feasible computability and computational complexity study functions that can be computed efficiently. The Blum axioms can be used to define an abstract computational complexity theory on the set of computable functions. In computational complexity theory,
14375-415: The sense that the running time of the algorithm increases exponentially (or even superexponentially ) with the length of the input. The fields of feasible computability and computational complexity study functions that can be computed efficiently. The Blum axioms can be used to define an abstract computational complexity theory on the set of computable functions. In computational complexity theory,
14500-449: The sum n 0 + n 0 . Let BadS denote the composition Create_n 0 | Double | EvalS | Clean . Notice that this machine has N states. Starting with an initially blank tape it first creates a sequence of n 0 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
14625-412: The system with the most states across all branches or the branch with the longest number of steps. 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,
14750-464: The table to the right gives the maximum number of steps before halting and maximum number of unique states created by the NDTM. In addition to posing a rather challenging mathematical game , the busy beaver functions Σ(n) and S ( n ) 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
14875-470: The tape is called the machine's score . The n -state busy beaver (BB- n ) game is therefore a contest, depending on definition to find such an n -state Turing machine having the largest possible score or running time. The rules for one 1-state Turing machine might be: This Turing machine would move to the right, swapping the value of all the bits it passes. Since the starting tape is all 0s, it would make an unending string of ones. This machine would not be
15000-475: The theory is inconsistent, then all false statements are provable, and the Turing machine can be given the condition to halt if and only if it finds a proof of, for example, 0 = 1 {\displaystyle 0=1} . Any theory that proves the value of S ( n T ) {\displaystyle S(n_{T})} proves its own consistency, violating Gödel's second incompleteness theorem . This can be used to place various theories on
15125-453: The time and/or space allowed in a successful computation. A set A of natural numbers is called computable (synonyms: recursive , decidable ) if there is a computable, total function f such that for any natural number n , f ( n ) = 1 if n is in A and f ( n ) = 0 if n is not in A . A set of natural numbers is called computably enumerable (synonyms: recursively enumerable , semidecidable ) if there
15250-453: The time and/or space allowed in a successful computation. A set A of natural numbers is called computable (synonyms: recursive , decidable ) if there is a computable, total function f such that for any natural number n , f ( n ) = 1 if n is in A and f ( n ) = 0 if n is not in A . A set of natural numbers is called computably enumerable (synonyms: recursively enumerable , semidecidable ) if there
15375-440: 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
15500-401: The value of S ( n ) for a sufficiently large n . Theoretically speaking, the value of S(n) encodes the answer to all mathematical conjectures that can be checked in infinite time by a Turing machine with less than or equal to n states. Consider any Π 1 0 {\displaystyle \Pi _{1}^{0}} conjecture : any conjecture that could be disproven via
15625-406: Was used by Lin & Radó [ Computer Studies of Turing Machine Problems , 1965] to prove that Σ(3) = 6 and that S(6)=21: 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.,
#265734