- #1
cobalt124
- 61
- 32
Hi, layman post, not sure what thread level I need. From post https://www.physicsforums.com/threads/the-busy-beaver-function.942741/, I've been working my way through https://www.scottaaronson.com/busybeaver.pdf and come to section "1.3 The Busy Beaver Function", which states:
"The Busy Beaver function, written BB(k), equals the number of steps it takes for a k-state
Busy Beaver to halt. The Busy Beaver function has many striking properties. To begin with,
it is not computable; in other words, there does not exist an algorithm that takes k as input and
returns BB(k), for arbitrary values of k. This follows directly from the undecidability of the
halting problem. Suppose an algorithm existed to compute the Busy Beaver function; then given
a k-state Turing machine M as input, we could compute BB(k) and run M for BB(k) steps. If,
after BB(k) steps, M had not yet halted, we could safely conclude that M would never halt. Thus,
we could solve the halting problem, which we know is impossible.".
and
"By the same argument, BB(k) must grow faster than any computable function. (To check
this, assume that some computable function f(k) grows faster than BB(k), and substitute f(k)
for BB(k) in the rest of the proof.)".
The first statement I understand, the second statement I don't. Taking it literally and presumably missing the point, I get:
"...Suppose a function f(k) existed that grew faster than BB(k); then given
a k-state Turing machine M as input, we could compute f(k) and run M for f(k) steps. If,
after f(k) steps, M had not yet halted, we could safely conclude that M would never halt. Thus,
we could solve the halting problem, which we know is impossible.".
That doesn't look right to me, it just looks the same as the first proof but substituting f(k) for BB(k) and changing the assumption that is to be proven incorrect. I suspect I may be confusing the notion of "Busy Beaver" and "fastest growing computable function". Can anyone help me untangle (in my head) the second proof?
"The Busy Beaver function, written BB(k), equals the number of steps it takes for a k-state
Busy Beaver to halt. The Busy Beaver function has many striking properties. To begin with,
it is not computable; in other words, there does not exist an algorithm that takes k as input and
returns BB(k), for arbitrary values of k. This follows directly from the undecidability of the
halting problem. Suppose an algorithm existed to compute the Busy Beaver function; then given
a k-state Turing machine M as input, we could compute BB(k) and run M for BB(k) steps. If,
after BB(k) steps, M had not yet halted, we could safely conclude that M would never halt. Thus,
we could solve the halting problem, which we know is impossible.".
and
"By the same argument, BB(k) must grow faster than any computable function. (To check
this, assume that some computable function f(k) grows faster than BB(k), and substitute f(k)
for BB(k) in the rest of the proof.)".
The first statement I understand, the second statement I don't. Taking it literally and presumably missing the point, I get:
"...Suppose a function f(k) existed that grew faster than BB(k); then given
a k-state Turing machine M as input, we could compute f(k) and run M for f(k) steps. If,
after f(k) steps, M had not yet halted, we could safely conclude that M would never halt. Thus,
we could solve the halting problem, which we know is impossible.".
That doesn't look right to me, it just looks the same as the first proof but substituting f(k) for BB(k) and changing the assumption that is to be proven incorrect. I suspect I may be confusing the notion of "Busy Beaver" and "fastest growing computable function". Can anyone help me untangle (in my head) the second proof?