A creative, insightful, and accessible introduction to the theory of computing, written with a keen eye toward the frontiers of the field and a vivid enthusiasm for the subject matter. Jon Kleinberg, Cornell University To put it bluntly: this book rocks! It's 900+ pages of awesome. It somehow manages to combine the fun of a popular book with the intellectual heft of a textbook, so much so that I don't know what to call it (but whatever the genre is, there needs to be more of it!). Scott Aaronson, Massachusetts Institute of Technology Moore and Mertens guide the reader through the interesting field of computational complexity in a clear, broadly accessible and informal manner, while systematically explaining the main concepts and approaches in this area and the existing links to other disciplines. The book is comprehensive and can be easily used as a textbook, at both advanced undergraduate and postgraduate levels, but is equally useful for researchers in neighbouring disciplines, such as statistical physics [...]. Some of the material covered, such as approximability issues and Probabilistically Checkable Proofs is typically not presented in books of this type, and the authors do an excellent job in presenting them very clearly and convincingly. David Saad, Aston University, Birmingham A treasure trove of ideas, concepts and information on algorithms and complexity theory. Serious material presented in the most delightful manner! Vijay Vazirani, Georgia Instituute of Technology In a class by itself - in The Nature of Computation, Cristopher Moore and Stephan Mertens have produced one of the most successful attempts to capture the broad scope and intellectual depth of theoretical computer science as it is practiced today. The Nature of Computation is one of those books you can open to a random page and find something amazing, surprising and, often, very funny. American Scientist
In the last decade, the boundary between physics and computer science has become a hotbed of interdisciplinary collaboration. Every passing year shows that physicists and computer scientists have a great deal to say to each other, sharing metaphors, intuitions, and mathematical techniques. In this book, two leading researchers in this area introduce the reader to the fundamental concepts of computational complexity. They go beyond the usual discussion of P, NP and NP-completeness to explain the deep meaning of the P vs. NP question, and explain many recent results which have not yet appeared in any textbook. They then give in-depth explorations of the major interfaces between computer science and physics: phase transitions in NP-complete problems, Monte Carlo algorithms, and quantum computing. The entire book is written in an informal style that gives depth with a minimum of mathematical formalism, exposing the heart of the matter without belabouring technical details. The only mathematical prerequisites are linear algebra, complex numbers, and Fourier analysis (and most chapters can be understood without even these).It can be used as a textbook for graduate students or advanced undergraduates, and will be enjoyed by anyone who is interested in understanding the rapidly changing field of theoretical computer science and its relationship with other sciences.