Limits of Computation
An Introduction to the Undecidable and the Intractable
Preview
Book Description
Limits of Computation: An Introduction to the Undecidable and the Intractable offers a gentle introduction to the theory of computational complexity. It explains the difficulties of computation, addressing problems that have no algorithm at all and problems that cannot be solved efficiently.
The book enables readers to understand:
 What does it mean for a problem to be unsolvable or to be NPcomplete?
 What is meant by a computation and what is a general model of a computer?
 What does it mean for an algorithm to exist and what kinds of problems have no algorithm?
 What problems have algorithms but the algorithm may take centuries to finish?
Developed from the authors’ course on computational complexity theory, the text is suitable for advanced undergraduate and beginning graduate students without a strong background in theoretical computer science. Each chapter presents the fundamentals, examples, complete proofs of theorems, and a wide range of exercises.
Table of Contents
Set Theory
Sets—Basic Terms
Functions
Cardinalities
Counting Arguments and Diagonalization
Languages: Alphabets, Strings, and Languages
Alphabets and Strings
Operations on Strings
Operations on Languages
Algorithms
Computational Problems
Decision Problems
Traveling Salesman Problem
Algorithms: A First Look
History
Efficiency in Algorithms
Counting Steps in an Algorithm
Definitions
Useful Theorems
Properties of O Notation
Finding O: Analyzing an Algorithm
Best and Average Case Analysis
Tractable and Intractable
Turing Machines
Overview
The Turing Machine Model
Formal Definition of Turing Machine
Configurations of Turing Machines
Terminology
Some Sample Turing Machines
Turing Machines: What Should I Be Able to Do?
TuringCompleteness
Other Versions of Turing Machines
Turing Machines to Evaluate a Function
E numerating Turing Machines
The Church–Turing Thesis
A Simple Computer
Encodings of Turing Machines
Universal Turing Machine
Undecidability
Introduction and Overview
SelfReference and SelfContradiction in Computer Programs
Cardinality of the Set of All Languages over an Alphabet
Cardinality of the Set of All Turing Machines
Construction of the Undecidable Language ACCEPT_{TM}
Undecidability and Reducibility
Undecidable Problems: Other Examples
Reducibility
Reducibility and Language Properties
Reducibility to Show Undecidability
Rice’s Theorem (a SuperTheorem)
Undecidability: What Does It Mean?
Post Correspondence Problem
ContextFree Grammars
Classes NP and NPComplete
The Class NP (Nondeterministic Polynomial)
Definition of P and NP
Polynomial Reducibility
Properties
Completeness
Intractable and Tractable—Once Again
A First NPComplete Problem: Boolean Satisfiability
Cook–Levin Theorem: Proof
Conclusion
More NPComplete Problems
Adding Other Problems to the List of Known NPComplete Problems
Reductions to Prove NPCompleteness
Graph Problems
Vertex Cover: The First Graph Problem
Other Graph Problems
Hamiltonian Circuit (HC)
Eulerian Circuits (an Interesting Problem in P)
ThreeDimensional Matching (3DM)
Subset Sum
Summary and Reprise
Other Interesting Questions and Classes
Introduction
Number Problems
Complement Classes
Open Quest ions
Are There Any Problems in NPP But Not NPComplete?
PSPACE
Reachable Configurations
NPSPACE = PSPACE
A PSPACE Complete Problem
Other PSPACEComplete Problems
The Class EXP
Space Restrictions
Approaches to Hard Problems in Practice
Summary
Bibliography
Index
Exercises appear at the end of each chapter.
Author(s)
Biography
Edna E. Reiter, Ph.D., is the current Chair of the Department of Mathematics and Computer Science at California State University, East Bay (CSUEB). Her research interests include noncommutative ring theory and theoretical aspects of computer science.
Clayton Matthew Johnson, Ph.D., is the graduate coordinator for all M.S. students and the incoming Chair of the Department of Mathematics and Computer Science at CSUEB. His research interests include genetic algorithms and machine learning.
Drs. Reiter and Johnson developed the subject matter for the CSUEB Computation and Complexity course, which is required for all students in the computer science M.S. program. The course covers the hard problems of computer science—those that are intractable or undecidable. The material in this book has been tested on multiple sections of CSUEB students.
Reviews
"… a very basic, reader friendly introduction to computational complexity theory. What sets their book apart from others on the topic is its leisurely pace. … Because the book is so readable, it is likely that its primary audience will include students who experienced difficulties with other books on the topic. However, those students would probably benefit from more exercises than this volume provides, especially full solutions, at least for some exercises. … Highly recommended. Lowerdivision undergraduates.
—M Bona, University of Florida in CHOICE Magazine, June 2013
"This excellent book on DSNs has a wealth of information for researchers, engineers, and scientists. It could be used as a textbook for graduatelevel and doctoral courses on DSNs, and would also serve as a reference for engineers, scientists, and researchers working in this field."
—Computing Reviews, April 2013
Support Material
Ancillaries

PPTSlides.zip
PowerPoint Slides