Computational Complexity: A Modern Approach
|
| List Price: | $55.00 |
| Price: | $44.00 & eligible for FREE Super Saver Shipping on orders over $25. Details |
Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com
30 new or used available from $44.00
Average customer review:Product Description
This beginning graduate textbook describes both recent achievements and classical results of computational complexity theory. Requiring essentially no background apart from mathematical maturity, the book can be used as a reference for self-study for anyone interested in complexity, including physicists, mathematicians, and other scientists, as well as a textbook for a variety of courses and seminars. More than 300 exercises are included with a selected hint set.
Product Details
- Amazon Sales Rank: #46602 in Books
- Published on: 2009-04-20
- Original language: English
- Number of items: 1
- Binding: Hardcover
- 594 pages
Editorial Reviews
Review
"This text is a major achievement that brings together all of the important developments in complexity theory. Student and researchers alike will find it to be an immensely useful resource."
Michael Sipser, MIT, author of Introduction to the Theory of Computation
"Computational complexity theory is at the core of theoretical computer science research. This book contains essentially all of the (many) exciting developments of the last two decades, with high level intuition and detailed technical proofs. It is a must for everyone interested in this field."
Avi Wigderson, Professor, Institute for Advanced Study, Princeton
"This book by two leading theoretical computer scientists provides a comprehensive,insightful and mathematically precise overview of computational complexity theory, ranging from early foundational work to emerging areas such as quantum computation and hardness of approximation. It will serve the needs of a wide audience, ranging from experienced researchers to graduate students and ambitious undergraduates seeking an introduction to the mathematical foundations of computer science. I will keep it at my side as a useful reference for my own teaching and research."
Richard M. Karp, University Professor, University of California at Berkeley
About the Author
Sanjeev Arora is a Professor in the department of computer science at Princeton University. He holds a Ph.D. from the University of California, Berkeley and has done foundational work in complexity theory, probabilistically checkable proofs, and approximation algorithms.
Boaz Barak is an assistant professor in the department of computer science at Princeton University. He holds a Ph.D. from the Weizmann Institute of Science.
Customer Reviews
Graduate Textbook
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.
So far SO good!
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.
Well written text
This skillfully written book is both broad in its subject matter and deep in its approach. The book begins with basic complexity theory (the classes P, NP, and their more elaborate cousins) and then sprouts in a dozen directions (quantum computing, derandomization, communication complexity, etc..) which can be read independently of each other.
I previously purchased Goldreich's "Computational Complexity", which often left me confused and frustrated. By comparison, Arora and Barak's writing is usually (excluding a few rough spots) great at helping me reach new insights.
My one complaint is that I don't think the book was sufficiently edited before publication. Phrasing is (once in a rare while) needlessly opaque and I have come across some silly typos. I wouldn't be surprised to read about a "Turning machine" on reddit, but in an advanced complexity textbook?
Anyhow, those complaints are minor and shouldn't prevent anyone from buying this book.
