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
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
hi; i purchased 3 of these, AZDelivery 3 x AZ-MEGA2560-Board Bundle with Prototype Shield and each is reporting the error message below. I have triple checked every aspect of the set up and all seems in order, cable devices port, board reburn bootloader et al . I have substituted an arduino uno and it works fine; could you help please Thanks Martyn 'avrdude: ser_open(): can't set com-state for "\\.\COM3"avrdude: ser_drain(): read error: The handle is invalid.avrdude: ser_send(): write...

Similar threads

Back
Top