Skip to content

Introduction to the Theory of Computation

Spend $50 to get a free movie!

ISBN-10: 0534950973

ISBN-13: 9780534950972

Edition: 2nd 2006

Authors: Michael Sipser

List price: $267.95
Blue ribbon 30 day, 100% satisfaction guarantee!
Out of stock
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

This highly anticipated revision builds upon the strengths of the previous edition. Sipser's candid, crystal-clear style allows students at every level to understand and enjoy this field. His innovative "proof idea" sections explain profound concepts in plain English. The new edition incorporates many improvements students and professors have suggested over the years, and offers updated, classroom-tested problem sets at the end of each chapter.
Customers also bought

Book details

List price: $267.95
Edition: 2nd
Copyright year: 2006
Publisher: Course Technology
Publication date: 2/15/2005
Binding: Hardcover
Pages: 400
Size: 6.50" wide x 9.25" long x 1.00" tall
Weight: 1.628
Language: English

Michael Sipser has taught theoretical computer science and mathematics at the Massachusetts Institute of Technology for the past 32 years. He is a Professor of Applied Mathematics, a member of the Computer Science and Artificial Intelligence Laboratory (CSAIL), and the current head of the mathematics department. He enjoys teaching and pondering the many mysteries of complexity theory.

Preface to the First Edition
To the student
To the educator
The first edition
Feedback to the author
Preface to the Second Edition
Automata, Computability, and Complexity
Complexity theory
Computability theory
Automata theory
Mathematical Notions and Terminology
Sequences and tuples
Functions and relations
Strings and languages
Boolean logic
Summary of mathematical terms
Definitions, Theorems, and Proofs
Finding proofs
Types of Proof
Proof by construction
Proof by contradiction
Proof by induction
Exercises, Problems, and Solutions
Automata and Languages
Regular Languages
Finite Automata
Formal definition of a finite automaton
Examples of finite automata
Formal definition of computation
Designing finite automata
The regular operations
Formal definition of a nondeterministic finite automaton
Equivalence of NFAs and DFAs
Closure under the regular operations
Regular Expressions
Formal definition of a regular expression
Equivalence with finite automata
Nonregular Languages
The pumping lemma for regular languages
Exercises, Problems, and Solutions
Context-Free Languages
Context-free Grammars
Formal definition of a context-free grammar
Examples of context-free grammars
Designing context-free grammars
Chomsky normal form
Pushdown Automata
Formal definition of a pushdown automaton
Examples of pushdown automata
Equivalence with context-free grammars
Non-context-free Languages
The pumping lemma for context-free languages
Exercises, Problems, and Solutions
Computability Theory
The Church-Turing Thesis
Turing Machines
Formal definition of a Turing machine
Examples of Turing machines
Variants of Turing Machines
Multitape Turing machines
Nondeterministic Turing machines
Equivalence with other models
The Definition of Algorithm
Hilbert's problems
Terminology for describing Turing machines
Exercises, Problems, and Solutions
Decidable Languages
Decidable problems concerning regular languages
Decidable problems concerning context-free languages
The Halting Problem
The diagonalization method
The halting problem is undecidable
A Turing-unrecognizable language
Exercises, Problems, and Solutions
Undecidable Problems from Language Theory
Reductions via computation histories
A Simple Undecidable Problem
Mapping Reducibility
Computable functions
Formal definition of mapping reducibility
Exercises, Problems, and Solutions
Advanced Topics in Computability Theory
The Recursion Theorem
Terminology for the recursion theorem
Decidability of logical theories
A decidable theory
An undecidable theory
Turing Reducibility
A Definition of Information
Minimal length descriptions
Optimality of the definition
Incompressible strings and randomness
Exercises, Problems, and Solutions
Complexity Theory
Time Complexity
Measuring Complexity
Big-O and small-o notation
Analyzing algorithms
Complexity relationships among models
The Class P
Polynomial time
Examples of problems in P
The Class NP
Examples of problems in NP
The P versus NP question
Polynomial time reducibility
Definition of NP-completeness
The Cook-Levin Theorem
Additional NP-complete Problems
The vertex cover problem
The Hamiltonian path problem
The subset sum problem
Exercises, Problems, and Solutions
Space Complexity
Savitch's Theorem
The Class PSPACE
The TQBF problem
Winning strategies for games
Generalized geography
The Classes L and NL
Searching in graphs
NL equals coNL
Exercises, Problems, and Solutions
Hierarchy Theorems
Exponential space completeness
Limits of the diagonalization method
Circuit Complexity
Exercises, Problems, and Solutions
Advanced topics in complexity theory
Approximation Algorithms
Probabilistic Algorithms
The class BPP
Read-once branching programs
Alternating time and space
The Polynomial time hierarchy
Interactive Proof Systems
Graph nonisomorphism
Definition of the model
Parallel Computation
Uniform Boolean circuits
The class NC
Secret keys
Public-key cryptosystems
One-way functions
Trapdoor functions
Exercises, Problems, and Solutions
Selected Bibliography