Bibliography
Total Page:16
File Type:pdf, Size:1020Kb
Bibliography In writing this book, I consulted [1–3] and revised some parts of the material from those books to make them accessible as parts of this book. The proof of the equiva- lence of context-free grammars and pushdown automata, as well as the proof of the NP completeness for Hamiltonian path problem and subset sum problem are based on the contents of [1]. Solutions to Problems 8.4 and 10.2 come from [2]. The construction of the universal Turing machine in Sect. 7.1 is from [3]. Furthermore, in discussing the general aspect of the theory of computation in computer science, I refer to [4–6]. Many other books other than those described above deal with the theory of com- putation. Regarding the broader introductory topics of computer science that in- clude the theory of computation as their theoretical core, several books have been published that are easy to understand, even for those who are not that familiar with computers. Biermann [8] is such an instructive book, although it is quite a large volume; Kawai [9] and Watanabe [10] are introductory books in this regard, but it is concisely organized for ease of reading; Wilf [11] and Iwama [12] are also introduc- tory books, but are somewhat focused on theoretical aspects; Inagaki [13] is another such book, which provides an account of computation as well as communication. For those readers who want to study further the topics of this book, but who need more advanced material or more comprehensive details, many useful books are available. Among them, Sipser [1] is a fascinating one which emphasizes throughout the intuitive bases underlying ideas. Papadimitriou [2] is remarkable for its depth of advanced arguments and its wide coverage of the topics. For that reason, this book is a must for readers who want to start research in these fields. Hopcroft et al. [14] is a comprehensive standard textbook that has been revised several times over the years. Its recent version emphasizes practical applications more than did the earlier versions. Savage [15] is another comprehensive book that particularly addresses the Boolean circuit model as well as the lower bounds of complexity in terms of cir- cuit size. Arora and Barak [16] describes recent achievements of complexity theory. Kasai [17] adopts a Turing machine as its computational model, expressing its be- havior in terms of a certain programming language introduced in the book. It gives arguments in detail, but succinctly. Koren [18] covers only the material described in Parts II and III of this book; it comprises lectures numbered 1 through 39 together with supplementary lectures, each being more or less self-contained. A. Maruoka, Concise Guide to Computation Theory, 273 DOI 10.1007/978-0-85729-535-4, © Springer-Verlag London Limited 2011 274 Bibliography Numerous books partially address the material contained in this book. Watan- abe [19] covers Parts III and IV; Kobayashi [20] covers Part IV; Kasai and Toda [21] covers Parts III and IV as well as parallel computation and approximate com- putation, which this book does not cover; Moriya [22] deals with Part II in detail; Tomita and Yokomori [23] and Yoneda et al. [24] explain the material of Parts II and III mainly using examples; Takeuti [25] specifically examines how to solve the P vs. NP problem; and Leeuwen [26] is a sort of encyclopedia of computer science, describing various topics written by authors who contributed to establishing their respective fields. Designing good algorithms is a fundamental common objective that is related somehow with every topic in this book. So many books have been published on how to design algorithms: Knuth [27, 28] give thorough arguments on designing algorithms; Hopcroft and Ullman [29], read extensively, has imparted a large influ- ence on the research on designing and analyzing algorithms; Ibaraki [30] is a good textbook on algorithms; and Hirata [31] is both concise and easy to read. The books, including others than those described above, that are referred to in this book are listed as follows. References 1. M. Sipser, Introduction to the Theory of Computation, Course Technology Ptr, Florence, 2005. 2. C. Papadimitriou, Computational Complexity, Addison-Wesley, Reading, 1994. 3. M. Minsky, Computation: Finite and Infinite Machines, Prentice-Hall, New York, 1967. 4. J. von Neumann, Theory of Self-Reproducing Automata, University of Illinois Press, Cham- paign, 1966. 5. L. Valiant, Circuit of the Mind, Oxford University Press, London, 1994. 6. J. Hartmanis, Observations About the Development of Theoretical Computer Science, Annals of the History of Computing, Vol. 3, No. 1, pp. 42–51, 1981. 7. G. Johnson, All Science Is Computer Science, The New York Times, March 25, 2001. 8. A. Biermann, Great Ideas in Computer Science, MIT Press, Cambridge, 1993. 9. S. Kawai, Computer Science, Tokyo University Press, Tokyo, 1995 (in Japanese). 10. O. Watanabe, Computer Science as a Culture, Saiensu-sha, Tokyo, 2001 (in Japanese). 11. H. Wilf, Algorithms and Complexity, AK Peters, Wellesley, 2002. 12. K. Iwama, Automaton-Languages and Computation Theory, Corona Publishing, San Antonio, 2003 (in Japanese). 13. Y. Inagaki, Communication and Computation, Iwanami-Shoten, Tokyo, 2003 (in Japanese). 14. J. Hopcroft, R. Motwani, and J. Ullman, Introduction to Automata Theory, Languages and Computation, Second Edition, Addison-Wesley, Reading, 2001. 15. J. Savage, Models of Computations, Addison-Wesley, Reading, 1998. 16. S. Arora and B. Barak, Computational Complexity—A Modern Approach, Cambridge Uni- versity Press, New York, 2009. 17. T. Kasai, The Theory of Computation, Kindai Kagaku sha, Tokyo, 1992 (in Japanese). 18. D. Koren, Automata and Computability, Springer, Berlin, 1997. 19. O. Watanabe, An Introduction to Computability and Computational Complexity, Kindai Ka- gaku sha, Tokyo, 1992 (in Japanese). 20. K. Kobayashi, Computational Complexity, Shokodo, Tokyo, 1988 (in Japanese). 21. T. Kasai and S. Toda, The Theory of Computation, Kyoritsu Shuppan, Tokyo, 1993 (in Japanese). 22. E. Moriya, Formal Languages and Automata, Saiensu-sha, Tokyo, 2001 (in Japanese). 23. E. Tomita and T. Yokomori, The Theory of Automaton and Language, Morikita Publishing, Tokyo, 1992 (in Japanese). 24. M. Yoneda, S. Hirose, N. Osato, and S. Okawa, The Foundation of the Theory of Automaton and Languages, Kindai Kagaku sha, Tokyo, 2003 (in Japanese). 25. G. Takeuti, P and NP, Nippon-Hyoron-Sha, Tokyo, 1996. 26. J. Leeuwen, Algorithms and Complexity, Volume A of Handbook of Computer Science, Else- vier, Amsterdam, 1990. 27. D. Knuth, The Art of Computer Programming, Vol. I, Addison-Wesley, Reading, 1973. 28. D. Knuth, The Art of Computer Programming, Vol. II, Addison-Wesley, Reading, 1981. 29. A. Hopcroft and J. Ullman, The Design and Analysis of Computer Algorithms, Addison- Wesley, Reading, 1974. A. Maruoka, Concise Guide to Computation Theory, 275 DOI 10.1007/978-0-85729-535-4, © Springer-Verlag London Limited 2011 276 References 30. T. Ibaraki, Algorithms by C and Data Structures, Shokodo, Tokyo, 1999 (in Japanese). 31. T. Hirata, Algorithms and Data Structures, Morikita Publishing, Tokyo, 1990 (in Japanese). 32. M. Minsky, The Society of Mind, Simon & Schuster, New York, 1985. 33. N. Chomsky, Syntactic Structures, Mouton, The Hague, 1957. 34. V. Vazirani, Approximation Algorithms, Springer, Berlin, 2001. 35. L. Valiant, A Theory of the Learnable, Communications of the ACM, Vol. 15, No. 11, pp. 1134–1142, 1984. 36. A. Maruoka and E. Takimoto, Algorithmic Learning Theory, Encyclopedia of Computer Sci- ence and Technology, Vol. 45, Dekker, New York, 2002. 37. S. Arikawa, M. Sato, T. Sato, A. Maruoka, and Y. Kaneda, Structure and Development of Discovery Science, Proceedings of the Institute of Artificial Intelligence of Japan, Vol. 15, No. 4, pp. 595–607, 2000 (in Japanese). Index A Chomsky normal form, 92, 93 A polynomial time verifier, 198 Church–Turing thesis, 6, 156, 157 A. Turing, 5 Circuit family, 205 Accept, 134, 136 Circuit model, 201 Accepting configuration, 136, 153 Circuit satisfiability problem, 217, 219 Accept state, 39, 49, 109, 134, 135, 141 CIRCUIT-SAT, 217–219 Adjacency matrix, 22, 30, 192 Class, 13 Alan Turing, 133, 162 Class of regular languages, 71 Algorithm, 3, 5, 28 Clause, 221 Alphabet, 15, 39, 49 Ambiguous grammar, 88 Clay Mathematics Institute, 7 AND gate, 201, 204 Clique, 199, 237, 266 Arc, 19 Closed, 74 Arithmetic expression, 86 Closed path, 21 Arrow, 19 Closed under operation, 74 Artificial automaton, 9 Closure property, 74, 75 Artificial intelligence, 10 Complement, 14 Artificial languages, 81 Computable in polynomial time, 174 Average-case analysis, 186 Computation, 4 Computation tree, 153 B Computational barrier, 4 Barber paradox, 167 Computational model, 3, 4 Bilaterally infinite tape, 147, 149 Concatenation, 15, 58 Block, 19 Configuration, 135 Boolean algebra, 22 Conjunction, 23 Boolean circuit, 7, 201, 204 Conjunctive normal form, 221 Boolean circuit family, 207 Connected graph, 21 Boolean formula, 23 Context, 82 Boolean function, 201, 204 Boolean operations, 22 Context-free grammar, 7, 8, 81, 82, 84, 89, 90, Boolean values, 22 96 Boolean variables, 22, 23 Context-free language, 81, 96 Brute-force search, 100, 191, 192 Context-sensitive grammar, 83, 89, 90, 96 Context-sensitive language, 96 C Contradiction, 170 Cartesian product, 14 Contraposition, 26 Cartesian product automaton, 75 Cover, 238, 267 Certificate, 185, 196 Cycle, 21 Chomsky hierarchy, 89, 96 CYK (Cocke–Younger–Kasami), 100 A. Maruoka, Concise Guide to Computation Theory, 277 DOI 10.1007/978-0-85729-535-4,