What do you think?
Rate this book
594 pages, Hardcover
First published December 13, 2007
Nondeterministic Polynomial-Time: The class of dashed hopes and idle dreams...The book was clearly designed with the assumption that Sipser's modern classic Introduction to the Theory of Computation would be used as an undergraduate precursor; besides referencing Sipser several times early on (and his role heading up MIT's Math department, a group the authors are -- from the Foreward -- definitely good pals with (the authors themselves hail from Princeton, where I had no idea but Brian Kernighan and Robert Sedgewick are still faculty (of course I knew Andrew Appel, Edward Felten, and Robert Tarjan were still there, and Andrew Yao/Richard Lipton's emeritus status (but we've got Lipton now, motherfuckers!)))). The book takes off almost directly from where Sipser's study of complexity ends, with a deep study of p≤ polynomial-time Karp reducibility (well, actually it starts with deterministic TM's, but as I've studied the 7-parameter TM formalism since I was thirteen or so, I didn't look at Chapter 1 too closely (I *do* applaud their Claim 1.6: single-tape simulation of k-tape TM's in time 5kT(n)^2 -- this kind of rigorous, strong presentation is welcomed -- and ESPECIALLY the early presentation of oblivious Turing Machines (those which care only about the input length, not the input content), as this simplifies many a proof later on (most authors, if they introduce OTM's at all, do so only as a curiousity and not as a fundamental proof mechanism))). The heavy emphasis throughout on the dual miracles of randomization and modern crypto (including more advanced topics like derandomization, the probabilistic complexity classes, pseudorandomization and hardness amplification) will hopefully result in these topics being more deeply embedded within classical theory classes, as they should be. Furthermore, being placed (for the first time?) on the same footing as automata and the Hierarchy means that relevant issues are addressed throughout -- the implication that P == NP, for instance, would mean that nothing is to be gained from randomized algorithms, was entirely new to me *despite* having taken Lipton's Randomized Algorithms class and having read both of the two major books on the subject (Motwani + Raghavan and Mitzenmacher + Upfal). I can fairly say that realizing this obvious truth blew my mind.