Understanding busy beavers (noncomputability)

  • Thread starter Thread starter martix
  • Start date Start date
AI Thread Summary
The busy beaver function is considered noncomputable due to its relation to the halting problem, which prevents the creation of a general algorithm to determine whether a given Turing machine halts. The function, denoted as Σ(n), identifies the Turing machine with the maximum output of 1s for a given number of states. While it is possible to run all machines in parallel for an infinite amount of time, this approach does not qualify as an algorithm because it requires infinite time, which contradicts the definition of an algorithm. The term "state" refers to the specific actions a machine takes based on the tape symbol, not the arrangement of 1s and 0s. Ultimately, without a general method to ascertain halting, the busy beaver function remains uncomputable.
martix
Messages
167
Reaction score
5
TL;DR Summary
It is said that the busy beaver function is noncomputable. I want to understand what that means.
An ill advised late night plunge into a math rabbit hole left me confused. It started with Graham's number and ended with me trying to understand what noncomputable numbers and functions are. I'm not ready to tackle things like Rayo's number or SGC(n), but I did come across something that seemed fairly simple - the busy beaver game.

It is said that the busy beaver function is noncomputable. I want to understand what that means.
My current understanding is that the function is noncomputable because the halting problem is embedded within.

Here is my current understanding, gleaned from the wikipedia article:
We have n - the number of states in a 2-symbol turing machine (0 and 1)
Σ(n), the busy beaver function gives us that turing machine that outputs the most 1s out of all n-state 2s machines.

The number of 2s machines with n states is finite - (4n + 4)^2n.

Based on the definition of the game, these finite machines can be split in 2 categories/sets:
Machines that halt
Machines that don't halt.

From this point alone, it seems clear to me why Σ(n) is noncomputable - while the categories are valid, a general way to decide which machine goes into which set is impossible to construct.
(Anything wrong with my reasoning so far?)

Here is where my confusion starts.

Wikipedia states that an algorithm to decide whether a given machine is a busy beaver cannot exist ("general algorithm" being the precise wording, don't know if it matters).

But... what if we take all (4n + 4)^2n machines with n states and run them in parallel. We already have infinite tape - what's stopping us from running them for an infinite amount of time? Doesn't this qualify as an algorithm? Or is there something about requiring infinite time that disqualifies something from being an algorithm, whereas requiring infinite space does not?

Or, even if we don't run them for an infinite amount of time, just a sufficiently large amount of time, I would expect to end up in one of 2 situations in a finite amount of time:
1. Machine halts
2. Machine enters a loop

At the point where we determine the loop of each machine that has one, we have "computed" the busy beaver function.

The one hiccup I can think of here is, if it's possible to run forever without entering some sort of loop, but I personally can't conceive how.

Another final confusion is what is meant by "state" of a turing machine. It's not the arrangement of 1s and 0s on the tape so far as I can determine. My current best guess is that a "state" is 1 row in the transition table of the machine.
 
Technology news on Phys.org
The busy beaver is the longest running n-state machine that halts. We can look at all the machines one by one, but there’s no general algorithm to determine whether a given machine halts. Also, it’s certainly possible for machines to loop, but the loops can be arbitrarily long. So we can’t compute in general whether we’ve found the busy beaver without solving the halting problem.

martix said:
Summary:: It is said that the busy beaver function is noncomputable. I want to understand what that means.

Another final confusion is what is meant by "state" of a turing machine. It's not the arrangement of 1s and 0s on the tape so far as I can determine. My current best guess is that a "state" is 1 row in the transition table of the machine.
I’d have to see a specific example to understand what you mean by “row” (e.g., one table in the link has the states arranged in columns). A state is basically a series of actions that the machine takes when presented with a tape symbol. So a 2-state machine might be:
State 1:
if tape symbol = 0 then
Replace 0 with 1, move the tape head to the right, change to state 2.
if tape symbol = 1 then
Leave the 1 alone, move the tape head to the left, change to state 2.
State 2:
If tape symbol = 0 then
Replace 0 with 1, move the tape head to the right, change to state 1.
if tape symbol = 1 then
Leave the 1 alone, move the tape head to the left, halt.

The halt state isn’t generally counted when talking about an n-state machine, which makes it a little confusing.
 
I would concentrate on the impossibility of computably enumerability.
I have found some proofs. Maybe one of them gives you more insights than the Wikipedia article:
https://web.stanford.edu/class/cs54n/handouts/15-UncomputableFunctions.pdf
https://homepages.hass.rpi.edu/heuv...Web/Presentations/The Busy Beaver Problem.pdf
http://mca.ignougroup.com/2017/01/solved-understanding-proof-for-busy.html
and an interesting article about BB(n) in general:
https://www.scottaaronson.com/papers/bb.pdf
 
Thread 'Star maps using Blender'
Blender just recently dropped a new version, 4.5(with 5.0 on the horizon), and within it was a new feature for which I immediately thought of a use for. The new feature was a .csv importer for Geometry nodes. Geometry nodes are a method of modelling that uses a node tree to create 3D models which offers more flexibility than straight modeling does. The .csv importer node allows you to bring in a .csv file and use the data in it to control aspects of your model. So for example, if you...
I tried a web search "the loss of programming ", and found an article saying that all aspects of writing, developing, and testing software programs will one day all be handled through artificial intelligence. One must wonder then, who is responsible. WHO is responsible for any problems, bugs, deficiencies, or whatever malfunctions which the programs make their users endure? Things may work wrong however the "wrong" happens. AI needs to fix the problems for the users. Any way to...

Similar threads

Back
Top