An introduction to computational complexity theory, its connections and interactions with mathematics, and its central role in the natural and social sciences, technology, and philosophyMathematics and Computation provides a broad, conceptual overview of computational complexity theory-the mathematical study of efficient computation. With important practical applications to computer science and industry, computational complexity theory has evolved into a highly interdisciplinary field, with strong links to most mathematical areas and to a growing number of scientific endeavors.Avi Wigderson takes a sweeping survey of complexity theory, emphasizing the field's insights and challenges. He explains the ideas and motivations leading to key models, notions, and results. In particular, he looks at algorithms and complexity, computations and proofs, randomness and interaction, quantum and arithmetic computation, and cryptography and learning, all as parts of a cohesive whole with numerous cross-influences. Wigderson illustrates the immense breadth of the field, its beauty and richness, and its diverse and growing interactions with other areas of mathematics. He ends with a comprehensive look at the theory of computation, its methodology and aspirations, and the unique and fundamental ways in which it has shaped and will further shape science, technology, and society. For further reading, an extensive bibliography is provided for all topics covered.Useful for undergraduates in mathematics and computer science as well as researchers and teachers in the field, Mathematics and Computation brings conceptual clarity to a central and dynamic scientific discipline.· Comprehensive coverage of computational complexity theory· High-level, intuitive exposition· Historical accounts of the evolution and motivations of central concepts and models· A resourceful look at the theory's influence on science, technology, and society· Extensive bibliography.
Frontmatter Contents Acknowledgments 1. Introduction 2. Prelude: Computation, undecidability, and limits to mathematical knowledge 3. Computational complexity 101: The basics, P, and NP 4. Problems and classes inside (and around) NP 5. Lower bounds, Boolean circuits, and attacks on P vs. NP 6. Proof complexity 7. Randomness in computation 8. Abstract pseudo-randomness 9. Weak random sources and randomness extractors 10. Randomness and interaction in proofs 11. Quantum computing 12. Arithmetic complexity 13. Interlude: Concrete interactions between math and computational complexity 14. Space complexity: Modeling limited memory 15. Communication complexity: Modeling information bottlenecks 16. On-line algorithms: Coping with an unknown future 17. Computational learning theory, AI, and beyond 18. Cryptography: Modeling secrets and lies, knowledge and trust 19. Distributed computing: Coping with asynchrony 20. Epilogue: A broader perspective of ToC -- References