Skip to content

Introduction to the Theory of Computation

Best in textbook rentals since 2012!

ISBN-10: 113318779X

ISBN-13: 9781133187790

Edition: 3rd 2013 (Revised)

Authors: Michael Sipser, Michael Sipser

List price: $314.95
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!
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!

Description:

Gain a clear understanding of even the most complex, highly theoretical computational theory topics in the approachable presentation found only in the market-leading INTRODUCTION TO THE THEORY OF COMPUTATION, 3E. The number one choice for today's computational theory course, this revision continues the book's well-know, approachable style with timely revisions, additional practice, and more memorable examples in key areas. A new first-of-its-kind theoretical treatment of deterministic context-free languages is ideal for a better understanding of parsing and LR(k) grammars. You gain a solid understanding of the fundamental mathematical properties of computer hardware, software, and…    
Customers also bought

Book details

List price: $314.95
Edition: 3rd
Copyright year: 2013
Publisher: CENGAGE Learning Custom Publishing
Publication date: 6/27/2012
Binding: Hardcover
Pages: 504
Size: 6.61" wide x 9.57" long x 0.98" tall
Weight: 1.936
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
Acknowledgments
Preface to the Second Edition
Preface to the Third Edition
Introduction
Automata, Computability, and Complexity
Complexity theory
Computability theory
Automata theory
Mathematical Notions and Terminology
Sets
Sequences and tuples
Functions and relations
Graphs
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
Nondeterminism
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
Ambiguity
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
Deterministic Context-Free Languages
Properties of DCFLs
Deterministic context-free grammars
Relationship of DPDAs and DCFGs
Parsing and LR(k) Grammars
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
Enumerators
Equivalence with other models
The Definition of Algorithm
Hilbert's problems
Terminology for describing Turing machines
Exercises, Problems, and Solutions
Decidability
Decidable Languages
Decidable problems concerning regular languages
Decidable problems concerning context-free languages
Undecidability
The diagonalization method
An undecidable language
A Turing-unrecognizable language
Exercises, Problems, and Solutions
Reducibility
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
Self-reference
Terminology for the recursion theorem
Applications
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
NP-completeness
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, arid Solutions
Space Complexity
Savitch�s Theorem
The Class PSPACE
PSPACE-completeness
The TQBF problem
Winning strategies for games
Generalized geography
The Classes L and NL
NL-completeness
Searching in graphs
NL equals coNL
Exercises, Problems, and Solutions
Intractability
Hierarchy Theorems
Exponential space completeness
Relativization
Limits of the diagonalization method
Circuit Complexity
Exercises, Problems, and Solutions
Advanced Topics in Complexity Theory
Approximation Algorithms
Probabilistic Algorithms
The class BPP
Primality
Read-once branching programs
Alternation
Alternating time and space
The Polynomial time hierarchy
Interactive Proof Systems
Graph nonisomorphism
Definition of the model
IP = PSPACE
Parallel Computation
Uniform Boolean circuits
The class NC
P-completeness
Cryptography
Secret keys
Public-key cryptosystems
One-way functions
Trapdoor functions
Exercises, Problems, and Solutions
Selected Bibliography
Index