PrefacetotheFirstEdition.........................iv
To the student...........................iv
To the educator..........................v
The frst edition..........................vi
Feedback to the author......................vi
Acknowledgments.........................vii
Preface to the Second Edition.........................ix
Preface to the Third Edition.........................xi
0 Introduction.........................1
0.1 Automata, Computability, and Complexity.............1
Complexity theory.........................2
Computability theory.......................3
Automata theory..........................3
0.2 Mathematical Notions and Terminology..............3
Sets.................................3
Sequences and tuples.......................6
Functions and relations......................7
Graphs...............................10
Strings and languages.......................13
Boolean logic............................14
Summary of mathematical terms.................16
0.3 Defnitions, Theorems, and Proofs.................17
Finding proofs...........................17
0.4 Typesof Proof............................21
Proof by construction.......................21
Proof by contradiction.......................21
Proof by induction.........................22
Exercises, Problems, and Solutions...................25
PartOne: AutomataandLanguages...................29
1 RegularLanguages...................31
1.1 Finite Automata...........................31
Formal defnition of afnite automaton.............35
Examples of fnite automata....................37
Formal defnition of computation................40
Designing fnite automata.....................41
The regular operations......................44
1.2 Nondeterminism...........................47
Formal defnition of a nondeterministic fnite automaton....53
Equivalence of NFAs and DFAs.................54
Closure under the regular operations...............58
1.3 Regular Expressions.........................63
Formal defnition of a regular expression............64
Equivalence with fnite automata.................66
1.4 Nonregular Languages........................77
The pumping lemma for regular languages...........77
Exercises, Problems, and Solutions...................83
2 Context-Free Languages...................101
2.1 Context-Free Grammars.......................102
Formal defnition of acontext-free grammar..........104
Examples of context-free grammars...............105
Designing context-free grammars................106
Ambiguity.............................107
Chomsky normal form......................108
2.2 Pushdown Automata.........................111
Formal defnition of a pushdown automaton...........113
Example of pushdow automata.................114
Equivalence with context-free grammars.............117
2.3Non-Context-Free Languages....................125
The pumping lemma for context-free languages.........125
2.4 Deterministic Context-Free Languages...............130
Properties of DCFLs.......................133
Deterministic context-free grammars..............135
Relationship of DPDAs and DCFGs...............146
Parsing and LR(k) grammars...................151
Exercises, Problems, and Solutions...................154
PartTwo: Computability Theory...................163
3 The Church–Turing Thesis...................165
3.1 Turing Machines...........................165
Formal defnition of a Turing machine..............167
Examples of Turing machines...................170
3.2 Variants of Turing Machines.....................176
Multitape Turing machines....................176
Nondeterministic Turing machines................178
Enumerators............................180
Equivalence with other models..................181
3.3 The Defnition of Algorithm....................182
Hilbert’s problems.........................182
Terminology for describing Turing machines..........184
Exercises, Problems, and Solutions...................187
4 Decidability...................193
4.1 Decidable Languages.........................194
Decidable problems concerning regular languages.......194
Decidable problems concerning context-free languages.....198
4.2 Undecidability............................201
The diagonalization method...................202
An undecidable language.....................207
A Turing-unrecognizable language................209
Exercises, Problems, and Solutions...................210
5 Reducibility...................215
5.1 Undecidable Problems from Language Theory..........216
Reductions via computation histories...............220
5.2 A Simple Undecidable Problem...................227
5.3 Mapping Reducibility........................234
Computable functions.......................234
Formal defnition of mapping reducibility............235
Exercises, Problems, and Solutions...................239
6 Advanced Topicsin Computability Theory...................245
6.1 The Recursion Theorem.......................245
Self-reference...........................246
Terminology for the recursion theorem.............249
Applications............................250
6.2 Decidability of logical theories...................252
A decidable theory.........................255
An undecidable theory.......................257
6.3 Turing Reducibility..........................260
6.4 A Defnition of Information.....................261
Minimal length descriptions...................262
Optimality of the defnition....................266
Incompressible strings and randomness.............267
Exercises, Problems, and Solutions...................270
Part Three: Complexity Theory...................273
7 Time Complexity...................275
7.1 Measuring Complexity........................275
Big-O and small-o notation....................276
Analyzing algorithms.......................279
Complexity relationships among models.............282
7.2 The Class P..............................284
Polynomial time..........................284
Examples of problems in P....................286
7.3 The Class NP.............................292
Examples of problemsin NP...................295
The Pversus NP question....................297
7.4 NP-completeness...........................299
Polynomial time reducibility...................300
Defnition of NP-completeness..................304
The Cook–Levin Theorem....................304
7.5 Additional NP-complete Problems.................311
The vertex cover problem.....................312
The Hamiltonian path problem.................314
The subset sum problem.....................319
Exercises, Problems, and Solutions...................322
8 Space Complexity...................331
8.1 Savitch’s Theorem..........................333
8.2 The Class PSPACE.........................336
8.3 PSPACE-completeness.......................337
The TQBF problem........................338
Winning strategies for games...................341
Generalized geography......................343
8.4 The Classes L and NL........................348
8.5 NL-completeness..........................351
Searching in graphs........................353
8.6 NL equals coNL...........................354
Exercises, Problems, and Solutions...................357
9 Intractability...................363
9.1 Hierarchy Theorems.........................364
Exponential space completeness.................371
9.2 Relativization.............................376
Limits of the diagonalization method..............377
9.3 Circuit Complexity..........................379
Exercises, Problems, and Solutions...................38
10 Advanced Topicsin Complexity Theory...................393
10.1 Approximation Algorithms.....................393
10.2 Probabilistic Algorithms.......................396
The class BPP...........................396
Primality..............................399
Read-once branching programs..................404
10.3 Alternation..............................408
Alternating time and space....................410
The Polynomial time hierarchy..................414
10.4 Interactive Proof Systems......................415
Graph nonisomorphism......................415
Defnition of the model......................416
IP=PSPACE...........................418
10.5 Parallel Computation........................427
Uniform Boolean circuits.....................428
The class NC...........................430
P-completeness..........................432
10.6 Cryptography.............................433
Secret keys.............................433
Public-key cryptosystems.....................435
One-way functions.........................435
Trapdoor functions........................437
Exercises, Problems, and Solutions...................439
Selected Bibliography...................443
Index...................448
· · · · · · (
收起)