Approximation Algorithms for NP-Hard Problems by Dorit S. Hochbaum, published in 1997, is a comprehensive book on approximation algorithms for NP-hard problems. The book introduces the concept of approximation algorithms, which are used when finding an optimal solution is infeasible due to the NP-hard nature of the problem. The main themes of the book focus on the design of such algorithms and the degree of approximation achievable in polynomial time. It also discusses the limits of approximability, including lower bounds and inapproximability results. The book covers various topics such as scheduling, bin packing, covering and packing problems, the primal-dual method, cut problems, and connectivity problems. It also includes a chapter on the hardness of approximation and randomized approximation algorithms in combinatorial optimization. The book is structured with a detailed table of contents and includes a glossary of problems and an index.
The book also includes a chapter on computability and complexity theory from a programming perspective by Neil D. Jones. This chapter discusses the relationship between computability and programming languages, and how programming concepts can be used to make classical computability and complexity results more accessible. The book covers classical models of computation and central results in computability and complexity theory, and aims to differ from traditional texts by using programming techniques and concepts from programming language theory. It also discusses the connection between computability and programming languages, such as the s-m-n theorem and the universal machine. The book also addresses the tension between computability and complexity theory and real computing, and provides a more realistic model of computation than the Turing machine.
The book also includes a chapter on compiler construction, principles and practice by Kenneth C. Louden. This chapter introduces the field of compiler construction, combining a detailed study of the theory underlying the modern approach to compiler design with practical examples and a complete description of a compiler for a small language. The book is designed for use in an introductory course on compiler design or compiler construction at the advanced undergraduate level, and is also useful for professionals joining or beginning a compiler writing project. The book covers various topics such as scanning, parsing, semantic analysis, runtime environments, and code generation. It includes a detailed table of contents, a glossary of problems, and an index.Approximation Algorithms for NP-Hard Problems by Dorit S. Hochbaum, published in 1997, is a comprehensive book on approximation algorithms for NP-hard problems. The book introduces the concept of approximation algorithms, which are used when finding an optimal solution is infeasible due to the NP-hard nature of the problem. The main themes of the book focus on the design of such algorithms and the degree of approximation achievable in polynomial time. It also discusses the limits of approximability, including lower bounds and inapproximability results. The book covers various topics such as scheduling, bin packing, covering and packing problems, the primal-dual method, cut problems, and connectivity problems. It also includes a chapter on the hardness of approximation and randomized approximation algorithms in combinatorial optimization. The book is structured with a detailed table of contents and includes a glossary of problems and an index.
The book also includes a chapter on computability and complexity theory from a programming perspective by Neil D. Jones. This chapter discusses the relationship between computability and programming languages, and how programming concepts can be used to make classical computability and complexity results more accessible. The book covers classical models of computation and central results in computability and complexity theory, and aims to differ from traditional texts by using programming techniques and concepts from programming language theory. It also discusses the connection between computability and programming languages, such as the s-m-n theorem and the universal machine. The book also addresses the tension between computability and complexity theory and real computing, and provides a more realistic model of computation than the Turing machine.
The book also includes a chapter on compiler construction, principles and practice by Kenneth C. Louden. This chapter introduces the field of compiler construction, combining a detailed study of the theory underlying the modern approach to compiler design with practical examples and a complete description of a compiler for a small language. The book is designed for use in an introductory course on compiler design or compiler construction at the advanced undergraduate level, and is also useful for professionals joining or beginning a compiler writing project. The book covers various topics such as scanning, parsing, semantic analysis, runtime environments, and code generation. It includes a detailed table of contents, a glossary of problems, and an index.