A Busy Beaver champion derived from scratch
nickdrozd.github.io
nickdrozd.github.io
Discussion: the whole thing is very encoding dependent, but if you figure the BB machine on N states is randomly distributed on all the N-state machines, then for the types of encodings being discussed, for large N, the flow graph has (I think) a high chance of being complete but that is not guaranteed. So that's a reason to think the conjecture is strictly false but approximately true.
The BB champ being a Collatz variant is iirc a well known approach to manually constructed BB champs. That is inspired by an old result (Conway's?) found in Jeff Lagarias's book on the 3n+1 problem. It says the generalized Collatz conjecture is Pi-0-2 complete so specific instances sound like a good place to look for functions that are on the edge of undecidability.
I wonder if anything is known about the arithmetic (not computational) complexity of random programs like that. I'm imaginging e.g. Shannon's theorem that most boolean functions on N inputs require exponentially many gates to compute. The analogy would be with the likelihood of functions on some parameter, expressed as N-state programs, being Pi-0-2 complete.
L(3k+r)=L(5k+r+3)
There are ways to concoct algorithms along the lines of Goodstein's, that are even harder to prove always halt, and that take even longer / grow even faster. I haven't heard of anyone using any of these as BB champions but it seems like an unsatisfying answer, since you already know they halt.
What is nicer about the Collatz and similar iterations is that you don't know whether they halt. So maybe your current champion takes 123456789 steps before halting, and you've got a Collatz parameter that you experimentally find runs for even more steps, but does will it eventually halt and become your new champion, or will it never halt? The only way to find out is keep running it, and similar keep running all the other parameters that, in your current knowledge, might or might not halt.
See https://googology.wikia.org for some fast-growing functions, such as the Buchholz hydra which grows much faster than Goodstein's.
[1] https://github.com/tromp/AIT/blob/master/goodstein.lam
[2] https://github.com/tromp/AIT/blob/master/laver.lam
[3] https://codegolf.stackexchange.com/questions/79620/laver-tab...
Sorry, but can someone unpack this? "complete control flow graphs"? That sounds like it means that the states are some form of Kn and that from any state you can get to any other state with the appropriate symbol.
For N=0,1: the problem is trivaial/degenerate.
For N=2: the Turing machine must go back and forth between states or else it'd just be stuck in one state forever, which wouldn't be very busy beaverish.
For N=n+1: well we just proved it up till n, so it seems pretty unlikely that n+1 would be different, things don't really just suddenly change like that y'know?
QED
So I'm not too surprised that this conjecture is being called into question.
[1]: https://nickdrozd.github.io/2021/01/26/spaghetti-code-conjec...
Interminable Ibex
Verbose Vervet
What's the difference?
https://nickdrozd.github.io/2021/01/14/halt-quasihalt-recur....
This degenerate state is known as quasihalting. The author points out that for the traditional busy beaver function, let's call it BB, then BB(4) = 107. For this modified busy beaver function, let's call it, QQ, QQ(4) ~= 33 million.
The article goes into some detail why considering Turing machines that quasi halt instead of strictly halting provides some insight into some interesting questions, notably the spaghetti code conjecture.
In this case it appears that the author considers halting to be decided externally to the program, which is not the mechanism Turing machines use.
The definition of a turing machine is not based on the halting property at all. A turing machine is defined as a 5 tuple (if I recall right) with some structure to the tuple elements and that's it. Infinitely running turing machines are just turing machines. The halting problem is actually based around the idea of halting, or non-halting turing machines.
Now, a busy beaver is defined as a turing machine which stops after making a mess of a certain size. So a TM that never stops cannot be a busy beaver by strict definition.
In the case of the OP's machine, this isn't the case if I understand correctly. So the OP's machine isn't really a Turing machine by the usual definition.
However, all turing machines with an empty set of final states accept the empty language, and the empty language only, making them rather boring.
What the author is taking liberty with is instead of considering Turing machines that halt, the Turing machine reaches a point where it will never transition to a given state, or set of states. Call this quasi-halting, the Turing machine will continue running, but it will never transition to one of a predetermined set of states. As soon as the Turing Machine reaches such a point, it is said to have quasihalted, even though it has not technically halted in the usual sense.
Then the author comes up with a variation of the busy beaver game where instead of a Turing machine halting, the Turing machine enters a quasihalting state. The author argues that reasoning in terms of a quasihalting state instead of a halting state is more expressive, gives insight into a problem known as the spaghetti code conjecture and furthermore that if BB(n) represents the busy beaver function, and QQ(n) represents the variation of busy beavers but for quasihalting, then BB(n) is an element of O(QQ(b)).
QQ(n) will contain all Turing machines that halt (since anything that halts also quasi-halts), but it will also contain some Turing machines that don't halt and instead strictly quasi-halt, so we should expect that there are more of them.
Perhaps an interesting open question is whether BB(n) is in little-oh(QQ(n)). Given that BB(n) is not even computable, and hence QQ(n) is not computable, I don't even know how one would begin to tackle such a problem.
C (2k + 1) = C (3k + 2)
should be
C (2k + 1) = C (6k + 4)