Why does research on the busy beaver function get funded?

Extremely likely, this concrete example is useless. So is any other concrete example. However, there are many of these examples, and we do not know which handful of them will be useful.

Some ancient people wasted time on research in number theory, some of which ended up being practically useful. Some studied motion of stars in detail far exceeding calendaring and navigational needs. This also proved useful.

Many, many studies also led to dead-ends. At the time, one could not tell which of them would.


The busy beaver function is an important artifact of computability theory- in particular it's known to (asymptotically) grow faster than any computable function. Intuitively this means that it is a "harder" sequence to compute than all computable sequences.

Thus, it gives rise to a new kind of proof by exhaustion. Suppose you were to write a Turing machine program P to test all possible special cases of a proof (potentially an infinite number of cases). If the program finds a problem with the proof, then it will halt. Otherwise, it will run forever. By the definition of the busy beaver machine, if the Turing machine P halts, then it will halt sooner than the busy beaver machine with the equivalent number of states. Thus, all we have to do to prove our theorem is to run our program for the specified number of steps, and if it doesn't halt before our busy beaver machine then we're guaranteed that it will never halt, and indeed there can be no contradictions of any special case to our proof.

Using this fact isn't feasible on current computer hardware, but that's rarely been a roadblock to this kind of research. If our concept of computer hardware or software were revolutionized and such a task could be completed then this would be a systematic approach to proving or disproving many outstanding questions in many fields. One of the purposes of this kind of research is to spur new questions, not to provide new answers.

When it comes to computing S(5) in particular, the challenge is a basic research challenge. Pure research is about solving problems that have never been solved, it's not about having some great application. Nobody has yet devised a way to compute S(5), and since this sequence is not computable it's possible that there is no way to effectively compute this number. Being able to compute it, or to give a reason why it can't be computed, would probably be a publishable result- both are hard, and neither have been done before.

As a practical exercise it's a good application of computability theory and a counterpoint to the halting problem. The halting problem shows us that there is no single algorithm that can tell us whether any arbitrary program halts, but it's often possible to tell whether a specific program will halt. The analysis of S(3) and S(4) required in-depth analysis by experts to determine whether certain Turing machines with 3 and 4 states actually halted or not. That's not really possible with S(5), so tackling this problem requires asking other questions like "what classes of programs can we determine whether they halt or not?".

To see this more clearly, try this blog post by MIT's Scott Aaronson. A student of his proved that the 8000th busy beaver number is unknowable by standard set theory. Mathematics and logic cannot compute this number, even given unlimited time and space. Here's a very obvious and very deep question that nobody can answer: Why is it the case that we can know S(1), S(2), S(3), and S(4) relatively easily, we can't say whether we can know S(5), and we can say for certain that we can't know S(8000)? If you could tell us the answer to that you'd have the attention of a whole lot of smart people. Endeavoring to do the hard work of computing S(5) is a step in understanding this.

Is S(8000) the first such element in this sequence that is unknowable? If not, what's the smallest element?

Two notes: I'm not a theorist, so all of this is my interpretation. Take it with a grain of salt. Second, a better venue for this question would be the Computer Science stack exchange. They love this stuff over there.


Let me give a guess, which might not be accurate for this case but which has a more general range.

If one tries to compute S(5) by brute force, that is probably not more interesting (but much longer) than solving any given Sudoku by brute force with a computer. But the point of such a question is precisely that, being difficult, if one hopes to answer it one needs to try being smart. One needs to find smart ways to be able to skip as much computations as possible compared to a brute force approach. In this process, one will probably learn something about the involved objects (e.g. Turing machines) and understand them better. One will also have to be smart with the details of the implementation, with the multi-threading, etc.

We choose to go to the Moon. We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one which we intend to win, and the others, too. (JFK 1962)

Tags:

Funding