Busy Beaver Functions: Difference between revisions
m (Update name) |
|||
Line 29: | Line 29: | ||
* Busy periodic beaver: <math>BBP(n,m)</math> is the largest period of any cycler or [[translated cycler]] with ''n'' states and ''m'' symbols. | * Busy periodic beaver: <math>BBP(n,m)</math> is the largest period of any cycler or [[translated cycler]] with ''n'' states and ''m'' symbols. | ||
* Busy preperiodic beaver: <math>BBS(n,m)</math> is the largest preperiod of any cycler or [[translated cycler]] with ''n'' states and ''m'' symbols. | * Busy preperiodic beaver: <math>BBS(n,m)</math> is the largest preperiod of any cycler or [[translated cycler]] with ''n'' states and ''m'' symbols. | ||
* Higher order busy beaver functions: | |||
*BB<sub>L</sub>(n) (busy beaver for L programs):People have also studied variants with a 2-dimensional tape, or where the tape head is allowed to stay still in addition to moving left or right, etc. More broadly, given any programming language L, whose programs consist of bit-strings, one can define a Busy Beaver function for L-programs:BB<sub>L</sub>(n) := max<sub>P∈L∩{0,1}</sub><sup>≤n</sup><sub>: s(P)<∞</sub>s(P) where s(P) is the number of steps taken by P on a blank input. Alternatively, some people define a “Busy Beaver function for L-programs” using Kolmogorov complexity. That is, they let BB’<sub>L</sub>(n) be the largest integer m such that K<sub>L</sub> (m) ≤ n, where K<sub>L</sub>(m) is the length of the shortest L-program whose output is m on a blank input.<ref name=":3">[https://www.scottaaronson.com/papers/bb.pdf Scott Aaronson - The Busy Beaver frontier]</ref> | *BB<sub>L</sub>(n) (busy beaver for L programs):People have also studied variants with a 2-dimensional tape, or where the tape head is allowed to stay still in addition to moving left or right, etc. More broadly, given any programming language L, whose programs consist of bit-strings, one can define a Busy Beaver function for L-programs:BB<sub>L</sub>(n) := max<sub>P∈L∩{0,1}</sub><sup>≤n</sup><sub>: s(P)<∞</sub>s(P) where s(P) is the number of steps taken by P on a blank input. Alternatively, some people define a “Busy Beaver function for L-programs” using Kolmogorov complexity. That is, they let BB’<sub>L</sub>(n) be the largest integer m such that K<sub>L</sub> (m) ≤ n, where K<sub>L</sub>(m) is the length of the shortest L-program whose output is m on a blank input.<ref name=":3">[https://www.scottaaronson.com/papers/bb.pdf Scott Aaronson - The Busy Beaver frontier]</ref> | ||
*<math>R(n)</math> (The runtime spectrum function): <math>T(n)</math> is the set of <math>n</math>-state Turing machines, and <math>s(M)</math> is the running time of machine <math>M</math> on an all-0 input tape. Let <math>R(n)</math> be the spectrum of possible runtimes of <math>n</math>-state machines on the all-0 input<math> R(n) := \lbrace k \in \natnums : s(M) = k \, \textrm{for} \, \textrm{some} \, M \in T(n) \rbrace</math>.<ref name=":3" /> | *<math>R(n)</math> (The runtime spectrum function): <math>T(n)</math> is the set of <math>n</math>-state Turing machines, and <math>s(M)</math> is the running time of machine <math>M</math> on an all-0 input tape. Let <math>R(n)</math> be the spectrum of possible runtimes of <math>n</math>-state machines on the all-0 input<math> R(n) := \lbrace k \in \natnums : s(M) = k \, \textrm{for} \, \textrm{some} \, M \in T(n) \rbrace</math>.<ref name=":3" /> |
Revision as of 19:19, 26 July 2025
The Busy Beaver Game is the search for Turing machines which maximize various Busy Beaver Functions. All Busy Beaver functions are non-computable. There are several, related functions with different authors referring to one or the other as "the Busy Beaver function". Therefore, it is recommended that you use a more specific designation when referring to one specific Busy Beaver function.
The two most commonly used Busy Beaver functions are:
- The Maximum Shift function which is the most commonly used Busy Beaver function by bbchallenge and is generally called here.
- The Maximum Score function which is Tibor Radó's original Busy Beaver function.
where denotes the number of states and the number of symbols.
Max Shift Function S(n, m)
The Maximum Shift or Maximum Step function is the largest number of steps (or shifts) that any Turing machine (of a certain size, and starting with a blank tape) takes before halting. It was introduced by Tibor Radó in his seminal Busy Beaver paper.[1] He used the notation to define it for Turing machines with states and 2 symbols. This was later extended to for states and symbols. Notably, the halting transition counts as a step, so the TM with rule A0 -> 1RZ
halts in 1 step.
Ben-Amram calls this the function.[2] Harland calls it the "frantic frog" function .[3]
In his 2020 Busy Beaver Frontier survey, Scott Aaronson used the notation for the Max Shift function and referred to it as "the" Busy Beaver function.[4]
Max Score Function Σ(n, m)
The Maximum Score function is the largest number of ones (or non-zero symbols in general) left on the tape by any halting Turing machine (of a certain size, and starting with a blank tape) at the moment it halts. It was also introduced by Tibor Radó in his seminal paper. He called it the "score" of the Turing machine. He used the notation to define it for Turing machines with states and 2 symbols. This was later extended to for states and symbols.
Ben-Amram calls this the function.[2] Harland calls it the "busy beaver" function .[3] Before Aaronson's survey, this was the function that most people called "the" Busy Beaver function.
Other Busy Beaver functions
In addition to the above functions, there are a couple of others that have appeared in the literature:
- Maximum space: Ben-Amram call this [2], bbchallenge calls it
BB_SPACE(n)
or . This is the total number of tape cells read before halting. According to Ben-Amram, it includes the starting cell, but not necessarily the cell the halting transition moves to.[2] - Maximum consecutive ones: Ben-Amram calls this .[2] A TM only qualifies if it halts with all ones consecutive on tape.
- function: Radó formulated the number of halting machines in terms of the set of all valid busy beaver entries where is the Turing machine, and is the exact number of steps the halting Turing machine took. The set of all halting -card machines is denoted , and the cardinality of this set is denoted The number of -card Turing machines that halt after exactly or not more than s steps are respectively denoted and .
- Blanking busy beaver: is the largest of steps done by any Turing machine with n states and m symbols before blanking the tape.
- Beeping busy beaver: is the largest of steps done by any Turing machine with n states and m symbols before quasihalting.
- Busy periodic beaver: is the largest period of any cycler or translated cycler with n states and m symbols.
- Busy preperiodic beaver: is the largest preperiod of any cycler or translated cycler with n states and m symbols.
- Higher order busy beaver functions:
- BBL(n) (busy beaver for L programs):People have also studied variants with a 2-dimensional tape, or where the tape head is allowed to stay still in addition to moving left or right, etc. More broadly, given any programming language L, whose programs consist of bit-strings, one can define a Busy Beaver function for L-programs:BBL(n) := maxP∈L∩{0,1}≤n: s(P)<∞s(P) where s(P) is the number of steps taken by P on a blank input. Alternatively, some people define a “Busy Beaver function for L-programs” using Kolmogorov complexity. That is, they let BB’L(n) be the largest integer m such that KL (m) ≤ n, where KL(m) is the length of the shortest L-program whose output is m on a blank input.[5]
- (The runtime spectrum function): is the set of -state Turing machines, and is the running time of machine on an all-0 input tape. Let be the spectrum of possible runtimes of -state machines on the all-0 input.[5]
- Instruction-Limited Busy Beaver Function: is the longest runtime for all halting n-instruction (allowing any states and symbols) TMs when started on a blank tape.
References
- ↑ Tibor Radó (May 1962). "On non-computable functions" (PDF). Bell System Technical Journal. 41 (3): 877–884. https://doi.org/10.1002%2Fj.1538-7305.1962.tb00480.x
- ↑ 2.0 2.1 2.2 2.3 2.4 Ben-Amram A.M., Julstrom B.A. and Zwick U. (1996). A note on busy beavers and other creatures. Mathematical Systems Theory 29 (4), July-August 1996, 375-386.
- ↑ 3.0 3.1 James Harland. The Busy Beaver, the Placid Platypus and other Crazy Creatures. 2006.
- ↑ Scott Aaronson. The Busy Beaver Frontier. 2020.
- ↑ 5.0 5.1 Scott Aaronson - The Busy Beaver frontier