\n\n## Table of contents\n\n\n## Goal\n\n
\n\n
\n
![]()
\n
\n\n
Disclaimer: This page is specific to the search of BB(5), which has been completed as of July 2nd 2024.
\n\nThe goal of the Busy Beaver Challenge (bbchallenge for short) is to collaboratively prove or disprove the following conjecture [[Marxen and Buntrock, 1990]](http://turbotm.de/~heiner/BB/mabu90.html) [[Aaronson, 2020]](https://www.scottaaronson.com/papers/bb.pdf):\n\n
\nBB(5) = 47,176,870\n
\n\nThis conjecture says that if a 5-state 2-symbol [Turing machine](#turing-machines) runs for more than 47,176,870 steps without halting then it will never halt (starting from all-0 memory tape).\n\nThe conjecture, explicitly formulated in [[Aaronson, 2020]](https://www.scottaaronson.com/papers/bb.pdf), is based on the pioneering work of [[Marxen and Buntrock, 1990]](http://turbotm.de/~heiner/BB/mabu90.html) who discovered the current
5-state busy beaver champion, a machine with 5 states that halts after 47,176,870 steps:\n\n
\n
\n\n| | 0 | 1 |\n| --- | --- | --- |\n| A | 1RB | 1LC |\n| B | 1RC | 1RB |\n| C | 1RD | 0LE |\n| D | 1LA | 1LD |\n| E | --- | 0LA |\n\n
\n
\n\nAchieving the goal of the Busy Beaver Challenge implies studying **88,664,064 Turing machines** and decide whether they halt or not, see
Method.\n\n
You can help!\n\n
\n\n## Turing machines\n\nThe introduction of Turing machines by Alan Turing in 1936 is arguably one of the founding events of computer science, [[Turing, 1936]](https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf).\n\nTuring machines can be thought as a primitive computer architecture providing (i) a runtime environment consisting of a moving read/write head over a memory tape divided in adjacent memory cells and (ii) a programming language allowing to control the behavior of the head depending on the content of the memory cell where it is currently at.\n\nThe Turing machines we work with have one bi-infinite memory tape where each cell is either containing a 0 or a 1.\n\nThe programmer specifies the code of the machine in a table with 2 columns and
q rows. Rows are called **states**. Here is the code of the current
5-state busy beaver champion:\n\n
\n
\n\n| | 0 | 1 |\n| --- | ------------------------------------------------------------- | --- |\n| A | 1RB | 1LC |\n| B | 1RC | 1RB |\n| C | 1RD | 0LE |\n| D | 1LA | 1LD |\n| E | --- | 0LA |\n\n
\n
\n\nEach entry of the table is called a **transition** and instructs us what to do when reading a 0 or a 1 at the current head's position on the memory tape in a given state. For instance, in the above machine,
reading a 0 in state A will:\n\n1. write a 1 at the current head position (i.e replacing the read 0 with a 1)\n2. move the head to the right\n3. jump to state B for the next instruction\n\nThe machine will **halt** (i.e. cease functioning) if it ever tries to execute an **undefined transition** denoted by **---**. Here, it would happen only if ever
reading a 0 in state E .\n\nIn the context of the Busy Beaver Challenge, machines are always executed starting in state A and with a memory tape that is initially all 0 (i.e. all memory cells are 0).\n\n
\n\n### Interactive simulator\n\nAs with probably any programming language, the best way to understand Turing machines is to play with them:\n\n
\n\nA more detailed simulator is available at
https://turingmachine.io. Here is the code of the above machine in their format:\n\n
{ theCode }
\n\n
\n\n### Space-time diagrams\n\nSpace-time diagrams provide a condensed way to visualise the behavior of [Turing machines](#turing-machines). The space-time diagram of a machine is a 2D image where the i
th row represents the memory tape of the machine at the i
th iteration. Black pixels are used for memory cells containing 0 and white for 1.\n\nHere is the space-time diagram of the first 10,000 iterations of the
5-state busy beaver champion:\n\n
\n\n\n\n
\n\nAdditional green and red colors are used to track the head position and its movement: green when the head has moved to the left and red when it has moved to the right.\n\nBy default, these space-time diagrams are re-scaled to fit a 400x500 canvas, hence they can be inexact due to the scaling algorithm, especially at small scales (i.e. few simulation steps).\n\nIf you tick **Explore mode** you will enter a more precise visualisation of space-time diagrams that are accurate at small scales and that will give you additional coloured information about the state of the machine at each step.\n\n
\n\n#### Machine ID\n\nThe Busy Beaver Challenge is based on a
seed database of 88,664,064 undecided 5-state machines, see
Method. We can consequently refer to undecided machines with their ID in this database.\n\nFor instance:
https://bbchallenge.org/55897188\n\n\n\n
\n\n### Will it halt or not?\n\nTuring machines have an important property: starting from a given memory tape (all-0 in our case), they either **halt** or don't. By halting we mean that the machine tries to execute an undefined transition and, since it is undefined, stops functioning. Here is a machine that halts after 4 steps:\n\n
\n\nHere is another machine that halts after 105 steps:\n\n\n\nIf a machine has no undefined transition it is sure that it will never halt as it cannot ever encounter an undefined transition.\n\nHowever, it is not because a machine has an undefined transition that it will halt one day. The most simple example to support this statement is the following machine that will never halt starting from all-0 tape although it has plenty undefined transitions:\n\n\n\n\n\nIn this case it is easy to convince ourselves that the machine will never halt starting from all-0 tape. However, if we take our earlier example:\n\n\n\nWill this one halt or not starting from all-0 tape?\n\nAnswering this question does not look simple. Here, patience can answer it for us because the machine **does halt**, after 47,176,870 steps. However, this fact would have been quite difficult to predict just from looking at the code of the machine.\n\nTo this day, no 5-state Turing machine is known to halt after more than 47,176,870 steps.\n\nWith the Busy Beaver Challenge, we hope to discover if that 47,176,870 record can be beaten or not among 5-state machines. This implies to decide, for all machines with 5 states, whether they halt or not.\n\nBut why focusing on 5 states? Let's first reformulate the problem in terms of busy beavers.\n\n\n\n## The busy beaver function BB\n\n\n\n### Definition of BB\n\nWe can now properly define the busy beaver function BB (called S originally) as introduced in [[Rado, 1962]](https://cs.famaf.unc.edu.ar/~hoffmann/cc18/Rado-On-non-computable.pdf):\n\n\n
\nBB(n) = \n
Maximum number of steps done by a halting Turing machine with n states starting from all-0 memory tape
\n
\n\nNote that there is a finite number of Turing machines with n states, to be exact, hence BB(n) is well defined.\n\nBB(n) is a very powerful number to know because it gives you a way to decide any machine with n states: run the machine and if it runs for BB(n)+1 steps you know that it will never halt.\n\nThis means that the function n ↦ BB(n) is not computable otherwise [the halting problem of Turing machines](https://en.wikipedia.org/wiki/Halting_problem) would be decidable. Find more properties of BB in [[Aaronson, 2020]](https://www.scottaaronson.com/papers/bb.pdf).\n\n\n\n### What is known about BB\n\nOnly 4 values of BB are known:\n\n- BB(1) = 1, [[Rado, 1962]](https://cs.famaf.unc.edu.ar/~hoffmann/cc18/Rado-On-non-computable.pdf)\n- BB(2) = 6, [[Rado, 1962]](https://cs.famaf.unc.edu.ar/~hoffmann/cc18/Rado-On-non-computable.pdf)\n- BB(3) = 21, [[Rado and Lin, 1963]](https://etd.ohiolink.edu/apexprod/rws_etd/send_file/send?accession=osu1486554418657614&disposition=inline)\n- BB(4) = 107, [[Brady, 1983]](https://www.jstor.org/stable/2007539)\n\nThe fact that BB(4) = 107 means that if a 4-state Turing machine does not halt after 107 steps starting from all-0 tape then it will never halt.\n\nProving the value of BB(n) implies to be able to decipher the behavior of any machine with n-states (starting from all-0 tape). The number of machines grows exponentially with n hence making the task overwhelmingly hard very quickly.\n\nCurrently, BB(5) is unknown but is conjectured to be BB(5) = 47,176,870 [[Marxen and Buntrock, 1990]](http://turbotm.de/~heiner/BB/mabu90.html) [[Aaronson, 2020]](https://www.scottaaronson.com/papers/bb.pdf). The naïve space of 5-state Turing machines contains machines, see Method for how we can reduce and search this space efficiently.\n\nApart from concrete values of BB, the following is also known:\n\n- BB(5) >= 47,176,870 [[Marxen and Buntrock, 1990]](http://turbotm.de/~heiner/BB/mabu90.html)\n- BB(6) [[Kropitz, 2022]](https://www.sligocki.com/2022/06/21/bb-6-2-t15.html)\n- BB(15) is at least as hard as Erdős' conjecture on powers of 2: \"for n > 8, there is at least one digit 2 in the base-3 representation of 2n\". [[Stérin and Woods, 2021]](https://arxiv.org/pdf/2107.12475.pdf)\n- BB(27) is at least as hard as Goldbach conjecture: \"for n > 2, every even integer is the sum of two primes\" [unverified construction](https://gist.github.com/anonymous/a64213f391339236c2fe31f8749a0df6) [[Aaronson, 2020]](https://www.scottaaronson.com/papers/bb.pdf)\n- BB(744) is at least as hard as Riemann Hypothesis [[Matiyasevich and O'Rear and Aaronson, unpublished]](https://github.com/sorear/metamath-turing-machines/blob/master/riemann-matiyasevich-aaronson.nql)\n- BB(748) is independent of ZF [[O'Rear, unpublished]](https://github.com/sorear/metamath-turing-machines/blob/master/zf2.nql)\n- BB(5,372) is at least as hard as Riemann Hypothesis [[Yedidia and Aaronson, 2016]](https://arxiv.org/abs/1605.04343)\n- BB(7,910) is independent of ZFC [[Yedidia and Aaronson, 2016]](https://arxiv.org/abs/1605.04343)\n\nAll these results come from constructing explicit Turing machines. For instance, in [[Stérin and Woods, 2021]](https://arxiv.org/pdf/2107.12475.pdf), the authors construct an explicit 15-state Turing machine which enumerates all powers of two in base 3 until it finds a counterexample to Erdős' conjecture on powers of 2. Hence the machine halts if and only if the conjecture is false!\n\nKnowing the value of BB(15) would imply that we'd know if that particular 15-state Turing machine halts or not, it means that knowing BB(15) is at least as hard as solving Erdős' conjecture.\n\n\n\n#### The busy beaver scale\n\nThese results provide a scale, **the busy beaver scale**, on which we can measure the complexity of various mathematical problems. For instance, according to this scale (and current knowledge), Erdős' conjecture on powers of 2 is less complex than Goldbach conjecture since it can be encoded as the halting problem of a smaller Turing machine.\n\nThese results also drastically reduce the hope that we'd ever know the value of BB even for small values such as 15. Even worse, BB(6) [[Kropitz, 2022]](https://www.sligocki.com/2022/06/21/bb-6-2-t15.html) as there is a 6-state Turing machine halting after roughly that many steps, which is way bigger than the estimated number of atoms in the universe 1080.\n\nHence, the frontier between tractable and intractable values of BB seems to be situated at BB(5).\n\n\n\n### BB(5)\n\nThe above motivates the Busy Beaver Challenge: **let's try to collaboratively find BB(5)**, the smallest currently unknown BB value.\n\nPrior work exhibited the current 5-state busy beaver champion halting after 47,176,870 steps [[Marxen and Buntrock, 1990]](http://turbotm.de/~heiner/BB/mabu90.html) which has not been beaten in the past 30 years.\n\nThis led to [[Aaronson, 2020]](https://www.scottaaronson.com/papers/bb.pdf) conjecturing that BB(5) = 47,176,870.\n\nGo to Method and Contribute to see how we plan to find BB(5) and how you can contribute.\n\nAre you up for the challenge?\n\n\n\n## Possible outcomes of the challenge\n\nHere are some possible outcomes to the quest of looking for BB(5):\n\n- We decide the halting problem of all 5-state machines (from all-0 tape), see Method, which as a result gives the value of BB(5) 🥳\n\n- We find a 5-state machine that halts after more than 47,176,870 steps hence improving Aaronson's conjecture [[Aaronson, 2020]](https://www.scottaaronson.com/papers/bb.pdf) 🥳\n\n- We establish a fine-grained [Zoology](/#zoology) of the behaviors of 5-state Turing machines which allows us to understand what they are capable of and where complexity lies 🥳\n\n- We decide as many machines as we can but fail to decide some of them. Their individual halting problems compete for the title of \"simplest open problem in mathematics\" (on the [busy beaver scale](#the-busy-beaver-scale)) which is also 🥳\n\n\n\n## Similar projects\n\n\n\n### Skelet's 43 undecided machines\n\nIn 2003, [Skelet](https://skelet.ludost.net/bb/nreg.html) released ≈6000 lines of Pascal that aim at achieving the same result as the Busy Beaver Challenge (but ~20 years before): decide the behavior of all 5-state Turing machines from all-0 tape. Skelet's program left only 164 machines undecided which he reduced further to only 43 \"hardly non-regular\" machines. This is claimed to have since been reduced even further to a mere 21 machines by various authors including [Dan Briggs](https://github.com/danbriggs/Turing/blob/master/paper/HNRs.pdf). Significant work has been made by these authors to manually decide the behavior of Skelet’s 43 machines.\n\nThis represents a substantial and truly impressive effort.\n\nHowever, we do not believe that Skelet’s program has been reviewed independently, and proving 6,000 lines of uncommented Pascal correct would be difficult (How can we be sure that the original set of 164 machines is not erroneous? I.e we'd need a proof that some machines were not overlooked or nor decided using incorrect arguments.).\n\nIn contrast, it is one of the core mission of the Busy Beaver Challenge to provide collaborative, open source, concise, modular, tested and proved correct code in order to facilitate peer-review and increase trust in the final outcome of the challenge. See our reproducibility and verifiability statement.\n\nThe full list of Skelet's 43 machines and their equivalents in the Busy Beaver Challenge is available here.\n\n\n\n### Hertel's 100 holdouts\n\nIn 2009, Joachim Hertel [published a method](https://content.wolfram.com/uploads/sites/19/2009/11/Hertel.pdf) that claims to leave only 100 machines undecided. The method seems to be very robust and an independent reproduction of these results would be very interesting.\n\n\n\n## References\n\n- [[Aaronson, 2020]](https://www.scottaaronson.com/papers/bb.pdf)\n- [[Brady, 1983]](https://www.jstor.org/stable/2007539)\n- [[Cloudy176, 2014]](https://googology.fandom.com/wiki/User_blog:Cloudy176/Proving_the_bound_for_S(7))\n- [[Marxen and Buntrock, 1990]](http://turbotm.de/~heiner/BB/mabu90.html)\n- [[Michel, 2009]](https://arxiv.org/abs/0906.3749#:~:text=Pascal%20Michel%20(ELM),faster%20than%20any%20computable%20function.)\n- [[Rado, 1962]](https://cs.famaf.unc.edu.ar/~hoffmann/cc18/Rado-On-non-computable.pdf)\n- [[Rado and Lin, 1963]](https://etd.ohiolink.edu/apexprod/rws_etd/send_file/send?accession=osu1486554418657614&disposition=inline)\n- [[Stérin and Woods, 2021]](https://arxiv.org/pdf/2107.12475.pdf)\n- [[Yedidia and Aaronson, 2016]](https://arxiv.org/abs/1605.04343)\n- [[Wythagoras, 2014]](https://googology.fandom.com/wiki/User_blog:Wythagoras/A_good_bound_for_S(7)%3F)\n\n\n\n## Related Links\n\n- [Heiner Marxen's website](http://turbotm.de/~heiner/BB/index.html)\n- [Pascal Michel's website](https://bbchallenge.org/~pascal.michel/index.html)\n- [Rensselaer RAIR Lab](https://homepages.hass.rpi.edu/heuveb/Research/BB/index.html)\n- [Skelet's website](https://skelet.ludost.net/bb/index.html)\n- [Busy Beaver Discuss](https://groups.google.com/g/busy-beaver-discuss) (Google Groups)\n\n\n\n\n