The aim of this textbook is to present an account of the theory of computation. After introducing the concept of a model of computation and presenting various examples, the author explores the limitations of effective computation via basic recursion theory. Self-reference and other methods are introduced as fundamental and basic tools for constructing and manipulating algorithms. From there the book considers the complexity of computations and the notion of a complexity measure is introduced. Finally, the book culminates in considering time and space measures and in classifying computable functions as being either feasible or not. The author assumes only a basic familiarity with discrete mathematics and computing, making this textbook ideal for a graduate-level introductory course. It is based on many such courses presented by the author and so numerous exercises are included. In addition, the solutions to most of these exercises are provided.
Author(s): Carl H. Smith
Series: Graduate Texts in Computer Science
Publisher: Springer
Year: 1994
Language: English
Pages: 156
Cover......Page 1
Title Page......Page 3
Preface......Page 5
Contents......Page 7
Introduction......Page 9
1 Models of Computation......Page 11
1.1 Random Access Machines......Page 12
1.2 Partial Recursive Functions......Page 15
1.3 Pairing and Coding......Page 24
1.4 Simulating an Execution of a RAM Program......Page 28
1.5 Turing Machines......Page 30
1.6 Some Other Models......Page 34
1.7 A Representation for Programs......Page 36
1.8 Historical Notes......Page 38
2.1 Acceptable Programming Systems......Page 39
2.2 Recursion Theorems......Page 44
2.3 Alternative Characterizations......Page 56
2.4 The Isomorphism Theorem......Page 60
2.5 Algorithmically Unsolvable Problems......Page 62
2.6 Recursively Enumerable Sets......Page 66
2.7 Historical Notes......Page 75
3 Abstract Complexity Theory......Page 76
3.1 RAM Pseudospace Measure......Page 77
3.2 Abstract Complexity Measures......Page 78
3.3 Fundamental Results......Page 82
3.4 Complexity Gaps......Page 85
3.5 Complexity Compression......Page 87
3.6 Speed-up......Page 88
3.7 Measures of Program Size......Page 92
3.8 Restricted Programming Systems......Page 96
3.9 Historical Notes......Page 98
4.1 Reducibilities......Page 99
4.2 Polynomial Computability......Page 102
4.3 The Deterministic Time Hierarchy......Page 103
4.4 Nondeterminism......Page 111
4.5 An NP-Complete Problem......Page 117
4.6 More NP-Complete Problems......Page 124
4.7 Historical Notes......Page 132
Solutions to Selected Exercises......Page 133
List of Symbols......Page 150
Index......Page 152