Complexity Theory: A Modern Approach

A draft of a textbook on computational complexity theory. Covers basic complexity classes, lowerbounds for concrete computational models, and some advanced topics.

**Tag(s):**
Theory of Computation

**Publication date**: 20 Apr 2009

**ISBN-10**:
0521424267

**ISBN-13**:
9780521424264

**Paperback**:
594 pages

**Views**: 18,265

Complexity Theory: A Modern Approach

A draft of a textbook on computational complexity theory. Covers basic complexity classes, lowerbounds for concrete computational models, and some advanced topics.

Terms and Conditions:

Book Excerpts:

Computational complexity theory has developed rapidly in the past three decades. The list of surprising and fundamental results proved since 1990 alone could fill a book: these include new probabilistic definitions of classical complexity classes (IP = PSPACE and the PCP Theorems) and their implications for the field of approximation algorithms; Shor's algorithm to factor integers using a quantum computer; an understanding of why current approaches to the famous P versus NP will not be successful; a theory of derandomization and pseudorandomness based upon computational hardness; and beautiful constructions of pseudorandom objects such as extractors and expanders.

This book aims to describe such recent achievements of complexity theory in the context of the classical results. It is intended to be a text and as well as a reference for self-study. This means it must simultaneously cater to many audiences, and it is carefully designed with that goal. The book will explain the context in which a certain notion is useful, and why things are defined in a certain way. Examples and solved exercises accompany key definitions.

The book has three parts and an appendix. Part I covers basic complexity classes; it provides a broad introduction to the field and covers basically the same ground as Papadimitriou's text from the early 1990s -- but more quickly. Part II covers lowerbounds for concrete computational models; it concerns lowerbounds on resources required to solve algorithmic tasks on concrete models such as circuits, decision trees, etc. Part III covers advanced topics; this constitutes the latter half of the book and is largely devoted to developments since the late 1980s. It includes average case complexity, derandomization and pseudorandomness, the PCP theorem and hardness of approximation, proof complexity and quantum computing. Finally, the Appendix outlines mathematical ideas that may be useful for following certain chapters, especially in parts II and III.

Intended Audience:

This book assumes essentially no computational background (though a slight exposure to computing may help) and very little mathematical background apart from the ability to understand proofs and some elementary probability on finite sample spaces. A typical undergraduate course on "Discrete Math" taught in many math and CS departments should suffice (together with the Appendix).

Sanjeev Arora wrote:Not to be reproduced or distributed without the author's permission.

Book Excerpts:

Computational complexity theory has developed rapidly in the past three decades. The list of surprising and fundamental results proved since 1990 alone could fill a book: these include new probabilistic definitions of classical complexity classes (IP = PSPACE and the PCP Theorems) and their implications for the field of approximation algorithms; Shor's algorithm to factor integers using a quantum computer; an understanding of why current approaches to the famous P versus NP will not be successful; a theory of derandomization and pseudorandomness based upon computational hardness; and beautiful constructions of pseudorandom objects such as extractors and expanders.

This book aims to describe such recent achievements of complexity theory in the context of the classical results. It is intended to be a text and as well as a reference for self-study. This means it must simultaneously cater to many audiences, and it is carefully designed with that goal. The book will explain the context in which a certain notion is useful, and why things are defined in a certain way. Examples and solved exercises accompany key definitions.

The book has three parts and an appendix. Part I covers basic complexity classes; it provides a broad introduction to the field and covers basically the same ground as Papadimitriou's text from the early 1990s -- but more quickly. Part II covers lowerbounds for concrete computational models; it concerns lowerbounds on resources required to solve algorithmic tasks on concrete models such as circuits, decision trees, etc. Part III covers advanced topics; this constitutes the latter half of the book and is largely devoted to developments since the late 1980s. It includes average case complexity, derandomization and pseudorandomness, the PCP theorem and hardness of approximation, proof complexity and quantum computing. Finally, the Appendix outlines mathematical ideas that may be useful for following certain chapters, especially in parts II and III.

Intended Audience:

This book assumes essentially no computational background (though a slight exposure to computing may help) and very little mathematical background apart from the ability to understand proofs and some elementary probability on finite sample spaces. A typical undergraduate course on "Discrete Math" taught in many math and CS departments should suffice (together with the Appendix).

Tweet

About The Author(s)

Sanjeev Arora is Charles C. Fitzmorris Professor of Computer Science at Princeton University. His research area is Theoretical Computer Science. He has worked on Computational Complexity, Probabilistically Checkable Proofs (PCPs), computing approximate solutions to NP-hard problems, geometric embedding of metric spaces, unique games conjecture, complexity of financial derivatives, and provable bounds for Machine Learning.

Boaz Barak is the Gordon McKay professor of Computer Science at Harvard University's John A. Paulson School of Engineering and Applied Sciences. Until January 2016 he will also continue in his position as a principal researcher in Microsoft Research New England where he has worked since 2010. His research interests include all areas of theoretical computer science, particularly cryptography and computational complexity.

Book Categories

Computer Science
Introduction to Computer Science
Introduction to Computer Programming
Algorithms and Data Structures
Artificial Intelligence
Computer Vision
Machine Learning
Neural Networks
Game Development and Multimedia
Data Communication and Networks
Coding Theory
Computer Security
Information Security
Cryptography
Information Theory
Computer Organization and Architecture
Operating Systems
Image Processing
Parallel Computing
Concurrent Programming
Relational Database
Document-oriented Database
Data Mining
Big Data
Data Science
Digital Libraries
Compiler Design and Construction
Functional Programming
Logic Programming
Object Oriented Programming
Formal Methods
Software Engineering
Agile Software Development
Information Systems
Geographic Information System (GIS)

Mathematics
Mathematics
Algebra
Abstract Algebra
Linear Algebra
Number Theory
Numerical Methods
Precalculus
Calculus
Differential Equations
Category Theory
Proofs
Discrete Mathematics
Theory of Computation
Graph Theory
Real Analysis
Complex Analysis
Probability
Statistics
Game Theory
Queueing Theory
Operations Research
Computer Aided Mathematics

Supporting Fields
Web Design and Development
Mobile App Design and Development
System Administration
Cloud Computing
Electric Circuits
Embedded System
Signal Processing
Integration and Automation
Network Science
Project Management

Operating System
Programming/Scripting
Ada
Assembly
C / C++
Common Lisp
Forth
Java
JavaScript
Lua
Microsoft .NET
Rexx
Perl
PHP
Python
R
Rebol
Ruby
Scheme
Tcl/Tk

Miscellaneous
Sponsors