Elements of Computation Theory


Book Description

The foundation of computer science is built upon the following questions: What is an algorithm? What can be computed and what cannot be computed? What does it mean for a function to be computable? How does computational power depend upon programming constructs? Which algorithms can be considered feasible? For more than 70 years, computer scientists are searching for answers to such qu- tions. Their ingenious techniques used in answering these questions form the theory of computation. Theory of computation deals with the most fundamental ideas of computer s- ence in an abstract but easily understood form. The notions and techniques employed are widely spread across various topics and are found in almost every branch of c- puter science. It has thus become more than a necessity to revisit the foundation, learn the techniques, and apply them with con?dence. Overview and Goals This book is about this solid, beautiful, and pervasive foundation of computer s- ence. It introduces the fundamental notions, models, techniques, and results that form the basic paradigms of computing. It gives an introduction to the concepts and mathematics that computer scientists of our day use to model, to argue about, and to predict the behavior of algorithms and computation. The topics chosen here have shown remarkable persistence over the years and are very much in current use.




Theory of Computation


Book Description

Learn the skills and acquire the intuition to assess the theoretical limitations of computer programming Offering an accessible approach to the topic, Theory of Computation focuses on the metatheory of computing and the theoretical boundaries between what various computational models can do and not do—from the most general model, the URM (Unbounded Register Machines), to the finite automaton. A wealth of programming-like examples and easy-to-follow explanations build the general theory gradually, which guides readers through the modeling and mathematical analysis of computational phenomena and provides insights on what makes things tick and also what restrains the ability of computational processes. Recognizing the importance of acquired practical experience, the book begins with the metatheory of general purpose computer programs, using URMs as a straightforward, technology-independent model of modern high-level programming languages while also exploring the restrictions of the URM language. Once readers gain an understanding of computability theory—including the primitive recursive functions—the author presents automata and languages, covering the regular and context-free languages as well as the machines that recognize these languages. Several advanced topics such as reducibilities, the recursion theorem, complexity theory, and Cook's theorem are also discussed. Features of the book include: A review of basic discrete mathematics, covering logic and induction while omitting specialized combinatorial topics A thorough development of the modeling and mathematical analysis of computational phenomena, providing a solid foundation of un-computability The connection between un-computability and un-provability: Gödel's first incompleteness theorem The book provides numerous examples of specific URMs as well as other programming languages including Loop Programs, FA (Deterministic Finite Automata), NFA (Nondeterministic Finite Automata), and PDA (Pushdown Automata). Exercises at the end of each chapter allow readers to test their comprehension of the presented material, and an extensive bibliography suggests resources for further study. Assuming only a basic understanding of general computer programming and discrete mathematics, Theory of Computation serves as a valuable book for courses on theory of computation at the upper-undergraduate level. The book also serves as an excellent resource for programmers and computing professionals wishing to understand the theoretical limitations of their craft.




Elements of Plasticity


Book Description

Providing the essential theoretical framework for understanding elastoplastic behaviour, this text develops the subject of small strain elastoplasticity from classical theory to modern computational techniques.




Introduction to the Theory of Computation


Book Description

"Intended as an upper-level undergraduate or introductory graduate text in computer science theory," this book lucidly covers the key concepts and theorems of the theory of computation. The presentation is remarkably clear; for example, the "proof idea," which offers the reader an intuitive feel for how the proof was constructed, accompanies many of the theorems and a proof. Introduction to the Theory of Computation covers the usual topics for this type of text plus it features a solid section on complexity theory--including an entire chapter on space complexity. The final chapter introduces more advanced topics, such as the discussion of complexity classes associated with probabilistic algorithms.




Elements of Information Theory


Book Description

The latest edition of this classic is updated with new problem sets and material The Second Edition of this fundamental textbook maintains the book's tradition of clear, thought-provoking instruction. Readers are provided once again with an instructive mix of mathematics, physics, statistics, and information theory. All the essential topics in information theory are covered in detail, including entropy, data compression, channel capacity, rate distortion, network information theory, and hypothesis testing. The authors provide readers with a solid understanding of the underlying theory and applications. Problem sets and a telegraphic summary at the end of each chapter further assist readers. The historical notes that follow each chapter recap the main points. The Second Edition features: * Chapters reorganized to improve teaching * 200 new problems * New material on source coding, portfolio theory, and feedback capacity * Updated references Now current and enhanced, the Second Edition of Elements of Information Theory remains the ideal textbook for upper-level undergraduate and graduate courses in electrical engineering, statistics, and telecommunications.




Elements of Statistical Computing


Book Description

Statistics and computing share many close relationships. Computing now permeates every aspect of statistics, from pure description to the development of statistical theory. At the same time, the computational methods used in statistical work span much of computer science. Elements of Statistical Computing covers the broad usage of computing in statistics. It provides a comprehensive account of the most important computational statistics. Included are discussions of numerical analysis, numerical integration, and smoothing. The author give special attention to floating point standards and numerical analysis; iterative methods for both linear and nonlinear equation, such as Gauss-Seidel method and successive over-relaxation; and computational methods for missing data, such as the EM algorithm. Also covered are new areas of interest, such as the Kalman filter, projection-pursuit methods, density estimation, and other computer-intensive techniques.




Classical and Quantum Computation


Book Description

An introduction to a rapidly developing topic: the theory of quantum computing. Following the basics of classical theory of computation, the book provides an exposition of quantum computation theory. In concluding sections, related topics, including parallel quantum computation, are discussed.




Computational Complexity


Book Description

New and classical results in computational complexity, including interactive proofs, PCP, derandomization, and quantum computation. Ideal for graduate students.




Elements of Automata Theory


Book Description

Automata theory lies at the foundation of computer science, and is vital to a theoretical understanding of how computers work and what constitutes formal methods. This treatise gives a rigorous account of the topic and illuminates its real meaning by looking at the subject in a variety of ways. The first part of the book is organised around notions of rationality and recognisability. The second part deals with relations between words realised by finite automata, which not only exemplifies the automata theory but also illustrates the variety of its methods and its fields of application. Many exercises are included, ranging from those that test the reader, to those that are technical results, to those that extend ideas presented in the text. Solutions or answers to many of these are included in the book.