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 otherscientists, as well as a textbook for a variety of courses and seminars. More than 300 exercises are included with a selected hint set. The book starts with a broad introduction to the ﬁeld and progresses to advanced results. Contents include deﬁnition of Turing machines and basic time and space complexity classes, probabilistic algorithms, interactive proofs, cryptography, quantum computation,lower bounds for concrete computational models (decision trees, communication complexity, constant depth, algebraic and monotone circuits, proof complexity), average-case complexity and hardness ampliﬁcation, derandomization and pseudorandom constructions, and the PCP Theorem. Sanjeev Arora is a professor in the department of computer science at Princeton University. He has done foundational workon probabilistically checkable proofs and approximability of NP-hard problems. He is the founding director of the Center for Computational Intractability, which is funded by the National Science Foundation. Boaz Barak is an assistant professor in the department of computer science at Princeton University. He has done foundational work in computational complexity and cryptography, especially indeveloping “non-blackbox” techniques.
A Modern Approach
CAMBRIDGE UNIVERSITY PRESS
Cambridge, New York, Melbourne, Madrid, Cape Town, Singapore, São Paulo Cambridge University Press The Edinburgh Building, Cambridge CB2 8RU, UK Published in the United States of America by Cambridge UniversityPress, New York www.cambridge.org Information on this title: www.cambridge.org/9780521424264 © Sanjeev Arora and Boaz Barak 2009 This publication is in copyright. Subject to statutory exception and to the provision of relevant collective licensing agreements, no reproduction of any part may take place without the written permission of Cambridge University Press. First published in print format2007
eBook (EBL) hardback
Cambridge University Press has no responsibility for the persistence or accuracy of urls for external or third-party internet websites referred to in this publication, and does not guarantee that any content on such websites is, or will remain, accurate or appropriate.
To our wives—Silvia and RavitContents
About this book Acknowledgments Introduction
page xiii xvii xix
Notational conventions . . . . . . . . . . . . . . . . . . . . . . . . . . .
0.1 Representing objects as strings 0.2 Decision problems/languages 0.3 Big-oh notation exercises
2 3 3 4 7
PART ONE: BASIC COMPLEXITY CLASSES
The computational model—and why it doesn’t matter . . . . . . . . . .
1.1Modeling computation: What you really need to know 1.2 The Turing machine 1.3 Efﬁciency and running time 1.4 Machines as strings and the universal Turing machine 1.5 Uncomputability: An introduction 1.6 The Class P 1.7 Proof of Theorem 1.9: Universal simulation in O(T log T)-time chapter notes and history exercises
10 11 15 19 21 24 29 32 34
NP and NP completeness . . . . . . . . . . .. . . . . . . . . . . . . . .
2.1 The Class NP 2.2 Reducibility and NP-completeness 2.3 The Cook-Levin Theorem: Computation is local 2.4 The web of reductions 2.5 Decision versus search 2.6 coNP, EXP, and NEXP 2.7 More thoughts about P, NP, and all that chapter notes and history exercises
39 42 44 50 54 55 57 62 63
Diagonalization . . . . . . . . . . . ....