Most Helpful Customer Reviews
34 of 39 people found the following review helpful:
5.0 out of 5 stars
So far SO good!, May 27, 2009
This review is from: Computational Complexity: A Modern Approach (Hardcover)
Customer review from the Amazon Vine™ Program (What's this?)
I almost didn't order this book. I had visions of opening the box and pulling out some incomprehensible tome with one coma-inducing proof after another. I have a BS in math, but that was an embarrassingly long time ago, so I wasn't sure I was up for a real test of my sanity. What a relief it was to see that this book is relatively approachable.
OK, wait -- quick sanity check. This *is* a textbook about the mathematical analysis of computation; hopefully you wouldn't even be reading this review if you couldn't wade through a jungle of mathematical proofs, if you didn't know some discrete math, graph theory, etc., or if you didn't have some programming experience. There are formal notations everywhere. The subject matter of this book sets a pretty high bar, regardless of how the book is written.
So, back to how the book is written. Very well! Yes, there are proofs and lemmas everywhere, but the authors do several things to focus on getting the point across without being tiresome. First, they are great about motivating what they are talking about. Why is this issue important? Why are we going to approach the problem this way? Second, they are generous with well thought out diagrams that depict what is being described in words. A few good diagrams go a long way with me, personally. Third, in some cases they just give "hand-wavy proofs." By not getting hung up the formality of the proofs, they can choose interesting statements to prove and get the idea across in a paragraph. May I just say "Hallelujah!" -- I wish more books took this approach, concentrating more on understanding than on formality. Fourth, they sometimes take two runs at a proof, once just talking their way through it, saying what is going to happen, and then going back over it a second time formally. Fifth, they have quite interesting "chapter notes" that give interesting history about how a topic developed over the years and how it has been important in the "real world." The book is also very well typeset -- easy on the eye.
I was delighted to see a section on cryptography followed by a section on quantum computing, which has huge implications for cryptography precisely because of what it means for computational complexity (of integer factorization, in particular). The section "Shor's ideas in nutshell" is a perfect example of how the authors took something that could have been quite tedious and talked the (prepared) reader through it in a way that is not only comprehensible but interesting.
This is not to say that the book is not rigorous. But rigorous doesn't have to be tedious.
I will try to update this later as I read further, but so far, I'm quite impressed. This book assumes you have some serious background, but then treats you kindly.
Oh, and the price -- it's less than half what I would have expected a book like this to cost. I thought I was reviewing the wrong book for a minute! :^) Kudos to Cambridge University Press for keeping prices down.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
7 of 7 people found the following review helpful:
3.0 out of 5 stars
Mixed feelings about this book, March 29, 2011
This review is from: Computational Complexity: A Modern Approach (Hardcover)
I own two copies of this book: a hardcopy I keep at home, and the PDF version on my Nook (which I bought directly from the publisher). I'm happy that there is an eBook version given that I often run or bike to school and don't have to lug this thing around with me.
That said, I'm not crazy about this book. It is the required text for our graduate complexity theory course. I've found with some regularity that I did not really understand the assigned chapters until I attended the professor's lectures and read his slides in detail. It really seems to be geared toward presenting the most recent results in complexity theory in textbook form. I personally think it would be better suited to an advanced complexity theory course.
Contrast this with Papadimitriou's "Computational Complexity" (1993) which is a little out of date, but WOW, is it readable. Reductions, which are the bread and butter of complexity theorists get an entire chapter in Papadimitriou whereas they get a few pages in AB. Also, Papadimitriou's style is much more conversational, and he points out pitfalls and other considerations that novice mathematicians would simply miss. Oh, and Papadimitriou uses the word "trivial" sparingly, unlike AB, who sprinkle it liberally throughout their text. "Trivially"? Oh REALLY? For WHOM?!! Sorry, kind of a pet peeve of mine.
Were I a student engaging in self-study, I would obviously choose Papadimitriou despite the fact that it's a bit more expensive. It already seems like an old friend to me. I'll probably keep AB around as a reference, but it is definitely not my go-to book.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
18 of 22 people found the following review helpful:
5.0 out of 5 stars
Graduate Textbook, July 9, 2009
This review is from: Computational Complexity: A Modern Approach (Hardcover)
Customer review from the Amazon Vine™ Program (What's this?)
Amazon Vine Review
This is a 500 page textbook for a graduate course written by two Princeton professors who are experts in the field. As a non-expert I am not qualified to review it on technical grounds, but I was intrigued by the authors' claim to require of readers only minimal computational and mathematical background. In their introduction they state:
"This book aims to describe such recent achievements of complexity theory in the context of more classical results. It is intended to serve both as a textbook and as a reference for self-study. This means it must simultaneously cater to many audiences, and it is carefully designed with that goal in mind. We assume essentially no computational background and very minimal mathematical background, which we review in Appendix A."
I thought it would be an interesting experiment to see just how much I could learn about the topic just from the book itself. I did succeed in getting quite a bit more than I expected from dipping into it at various points, but in the end I was reminded of P.F. Strawson's remark that "There is no shallow end to the philosophical pool." The computational complexity pool is similarly configured.
The fundamental background for this field was set up in the 1930's by logicians such as Alan Turing and Alonzo Church whose work gave the answer to what constitutes a computable function. Turing described a simple type of abstract machine and showed that such a machine could compute any computable function.
With the question of what is theoretically computable decisively settled, the question turns to what is computable efficiently--that is, within an amount of time determined by the size of the input raised to some power.
The central and unsolved problem of computational complexity is whether the class P of decision problems which can be efficiently solved (that is, computed by a Turing machine in polynomial time) is the same as the class NP of problems whose solution can be efficiently verified. Verification is generally a much simpler task than finding a solution, which might require long searches. The authors do an excellent job of explaining the philosophical significance of this problem as well as its practical importance. As they put it, if P = NP, "then the world would be mostly a computational Utopia."
Even for the non-technical reader there are many interesting and delightful things in this book and my (non-technical) guess would be that with it is going to become the standard reference and textbook in the field. Whether the general reader will find it penetrable is a much different question, and I suspect she won't. The reason is not the fault of the book--it is extremely well-written--but of human psychology: new ideas take a while to become familiar enough that you can work with them.
The authors, who have done such a marvelous job with this book aimed at the professional audience in computational complexity, could do us all a great service by writing another book aimed at a general audience. Clearly they have the knowledge and the writing skills to make this field more broadly accessible and the topics involved are fascinating and important.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
|