Explain Savitch's theorem — that NPSPACE = PSPACE — and why this is surprising compared to what we believe about time complexity.
Think about your answer, then reveal below.
Model answer: Savitch's theorem says that nondeterminism buys at most a quadratic blowup in space: if a nondeterministic machine solves a problem in s(n) space, a deterministic machine can solve it in O(s(n)²) space. Applied to polynomial space: NPSPACE ⊆ PSPACE, so they are equal (since PSPACE ⊆ NPSPACE trivially). The proof uses recursive reachability: to check if a configuration C is reachable from C₀ in t steps, check if any intermediate configuration C_mid is reachable in t/2 steps from each endpoint — recursing to depth log(t). The recursion stack uses O(s·log t) space, which for polynomial s and polynomial t is still polynomial. This is surprising because with time, we strongly believe P ≠ NP — nondeterminism is conjectured to give an exponential advantage. With space, nondeterminism helps at most quadratically.
The contrast between time and space complexity is striking. For time, P ≠ NP is widely believed: nondeterminism is thought to give an exponential speedup for many problems. For space, nondeterminism barely helps: NPSPACE = PSPACE exactly. Intuitively, space can be reused across time steps in a way that time cannot be reused. A nondeterministic machine explores many paths, but deterministically you can verify reachability one configuration at a time, reusing the same space for each check. This reuse is what Savitch's algorithm exploits. It is one of the most elegant results in complexity theory and highlights that the properties of time and space as computational resources are fundamentally different.