What happens to the coefficient in O(t(n)b^{t(n)})?

AI Thread Summary
The discussion centers on the equivalence between the running time of nondeterministic and deterministic single-tape Turing machines, specifically regarding the expression O(t(n)b^{t(n)}) and its simplification to 2^{O(t(n))}. Participants explore how the constant branching factor b leads to the conclusion that b^{t(n)} is equivalent to 2^{O(t(n))}, questioning the disappearance of the O(t(n)) coefficient. It is suggested that the exponential term dominates, allowing for the simplification, while also discussing the asymptotic relationships between the terms. Ultimately, the conversation clarifies that breaking the expression into parts helps illustrate the underlying mathematical relationships.
gnome
Messages
1,031
Reaction score
1
In Sipser, "Introduction to the Theory of Computation", a proof that "every t(n) time nondeterministic single-tape Turing machine (where t(n) ≥ n) has an equivalent 2O(t(n)) time deterministic single-tape Turing machine" shows that the running time of the equivalent NTM is O(t(n)b^{t(n)}) and then concludes with the statement:

O(t(n)b^{t(n)}) = 2^{O(t(n))}

which is not entirely clear to me.

b in this case is just a constant representing the maximum branching factor of the NTM.

I guess that 2^{O(t(n))} is equivalent to b^{t(n)} since b is a constant and therefore log_2{b} is a constant so we get

b^{t(n)} = 2^{(log_2 b)* t(n)} = 2^{O(t(n))}

Correct?

But, then what happened to the other O(t(n)) (the coefficient of the original expression)? That was not a constant term. It might be n, or nlogn, or n2, or whatever, but certainly not a constant. So why did it just disappear? Is it just that the exponential term so dominates that the t(n) coefficient is dropped as insignificant?
 
Physics news on Phys.org
It didn't just disappear -- you have to break the RHS into two parts, each part asymptotically bigger than one of the factors of the LHS.
 
I don't understand your meaning. Where are the two parts in 2^{O(t(n))}?

Or to put it another way: for argument's sake, suppose that every branch of the original NTM has a length of at most n2, so t(n) = n2 in the original NTM. And further, suppose that the maximum branching factor was just 2. Then we would have the total number of nodes = O(2^{n^2}) and the time for traveling from the root to a node = O({n^2}). Therefore, the running time of the equivalent deterministic machine = O(n^22^{n^2}). Can this be simplified to just 2^{O(n^2)}? Why?
 
You can almost always break things into two parts if you're creative! How about writing it as the square of 2(1/2) O(t(n))?
 
But what is the point of that? (And anyway, ½O(t(n)) is the same as O(t(n)), isn't it?)
 
Because you can prove 2^O(t(n)) is asymptotically larger than t(n), and equal to O(b^t(n)), therefore 2^O(t(n)) * 2^O(t(n)) must be asymptotically at least as large as O(t(n) * b^t(n)).

But what is the point of that? (And anyway, ½O(t(n)) is the same as O(t(n)), isn't it?)

Yep! But writing it that way makes it clear how I'm breaking it into two parts.
 
OK, I see your point.

Thanks, Hurkyl.
 
Back
Top