Art of Computer Programming, The

Art of Computer Programming, The

$79.99

SKU: 9780201038064
Quantity Discount
5 + $59.99

Description

Donald E. Knuth’s eagerly-awaited deeper look at combinatorial algorithms: The Art of Computer Programming, Volume 4B!

  • Starts with Knuth’s indispensable tutorial and review of probability theory
  • Thoroughly explains the principles of efficient backtracking: long a mainstay of combinatorial algorithms
  • Fully illuminates the problem of satisfiability: “a triumph of software engineering, blended with rich doses of beautiful mathematics”
  • Includes hundreds of exercises, arranged carefully for self-instruction, together with detailed answers

Donald E. Knuth is known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the TEX and METAFONT systems for computer typesetting, and for his prolific and influential writing (26 books, 161 papers). Professor Emeritus of The Art of Computer Programming at Stanford University, he currently devotes full time to the completion of his seminal multivolume series on classical computer science, begun in 1962 when he was a graduate student at California Institute of Technology. Professor Knuth is the recipient of numerous awards and honors, including the ACM Turing Award, the Medal of Science presented by President Carter, the AMS Steele Prize for expository writing, and, in November, 1996, the prestigious Kyoto Prize for advanced technology. He lives on the Stanford campus with his wife, Jill.

Preface v
Notes on the Exercises xi

Mathematical Preliminaries Redux 1

Chapter 7: Combinatorial Searching
7.2.2 Backtrack Programming 30
7.2.2.1 Dancing links 65
7.2.2.2 Satisfiability 185

Answers to Exercises 370

Appendix A: Tables of Numerical Quantities 656
Appendix B: Index to Notations 660
Appendix C: Index to Algorithms and Theorems 666
Appendix D: Index to Combinatorial Problems 667
Appendix E: Answers to Puzzles in the Answers 671

Index and Glossary 674

The Art of Computer Programming is Knuth’s multivolume analysis of algorithms. With the addition of this new volume, it continues to be the definitive description of classical computer science.

Volume 4B, the sequel to Volume 4A, extends Knuth’s exploration of combinatorial algorithms. These algorithms are of keen interest to software designers because “. . . a single good idea can save years or even centuries of computer time.”

The book begins with coverage of Backtrack Programming, together with a set of data structures whose links perform “delightful dances” and are ideally suited to this domain. New techniques for important applications such as optimum partitioning and layout are thereby developed.

Knuth’s writing is playful, and he includes dozens of puzzles to illustrate the algorithms and techniques, ranging from popular classics like edge-matching to more recent crazes like sudoku. Recreational mathematicians and computer scientists will not be disappointed!

In the second half of the book, Knuth addresses Satisfiability, one of the most fundamental problems in all of computer science. Innovative techniques developed at the beginning of the twenty-first century have led to game-changing applications, for such things as optimum scheduling, circuit design, and hardware verification. Thanks to these tools, computers are able to solve practical problems involving millions of variables that only a few years ago were regarded as hopeless.

The Mathematical Preliminaries Redux section of the book is a special treat, which presents basic techniques of probability theory that have become prominent since the original “preliminaries” were discussed in Volume 1.

As in every volume of this remarkable series, the book includes hundreds of exercises that employ Knuth’s ingenious rating system, making it easy for readers of varying degrees of mathematical training to find challenges suitable to them. Detailed answers are provided to facilitate self-study.

“Professor Donald E. Knuth has always loved to solve problems. In Volume 4B he now promotes two brand new and practical general problem solvers, namely (0) the Dancing Links Backtracking and (1) the SAT Solver. To use them, a problem is defined declaratively (0) as a set of options, or (1) in Boolean formulae. Today’s laptop computers, heavily armoured with very high speed processors and ultra large amounts of memory, are able to run either solver for problems having big input data. Each section of Volume 4B contains a multitudinous number of tough exercises which help make understanding surer. Happy reading!” –Eiiti Wada, an elder computer scientist, UTokyo

“Donald Knuth may very well be a great master of the analysis of algorithms, but more than that, he is an incredible and tireless storyteller who always strikes the perfect balance between theory, practice, and fun. [Volume 4B, Combinatorial Algorithms, Part 2] dives deep into the fascinating exploration of search spaces (which is quite like looking for a needle in a haystack or, even harder, to prove the absence of a needle in a haystack), where actions performed while moving forward must be meticulously undone when backtracking. It introduces us to the beauty of dancing links for removing and restoring the cells of a matrix in a dance which is both simple to implement and very efficient.” –Christine Solnon, Department of Computer Science, INSA Lyon

Register your book for convenient access to downloads, updates, and/or corrections as they become available.

“Satisfiability solving is one of the most important computer technology advances in the last two decades. Now, with the help of it, we can find solutions for unbelievably large (say 2^1000000) combinations. Donald Knuth’s new volume explains the theories, algorithms, and applications of satisfiability solving, together with his famous search algorithm, Dancing Links.

“If you have a difficult combinatorial problem and want to solve it with a computer, read this book! Not only your needs but also your intellectual curiosity will be fully satisfied.”

—Naoyuki Tamura, Kobe University

“Donald Knuth may very well be a great master of the analysis of algorithms, but more than that, he is an incredible and tireless storyteller who always strikes the perfect balance between theory, practice, and fun.

“This new volume of TAOCP dives deep into the fascinating exploration of search spaces (which is quite like looking for a needle in a haystack or, even harder, to prove the absence of a needle in a haystack), where actions performed while moving forward must be meticulously undone when backtracking. It introduces us to the beauty of dancing links for removing and restoring the cells of a matrix in a dance which is both simple to implement and very efficient. And it studies the iconic and versatile satisfiability problem and carefully analyses various ingredients of SAT solvers.”

—Christine Solnon, Department of Computer Science, INSA Lyon

“Donald Knuth’s latest volume of The Art of Computer Programming continues his treatment of combinatorial searching. As in previous volumes, he presents his material clearly and precisely, in logical sequence, with plenty of helpful examples and instructive problems to help the reader understand. Any programmer whose work involves recursive searching, combinatorial satisfaction, or optimization is likely to gain much of value from this book.

“To help illustrate the use of search techniques, Knuth covers, in great variety, problems involving polyominoes, polycubes (including Soma), and other polyforms. He also tackles tiling and dissection problems, matching problems, chessboard problems, sudoku puzzles, and various commercial puzzles like KenKen® and Hidato®. These problems are analyzed carefully and rigorously, with many detailed diagrams.

“I was amazed and delighted by this material. I think that any fan of recreational mathematics and puzzles will be too.”

—George Sicherman, Red Bank, New Jersey

“Knuth’s latest volume (4B) contains, as the previous ones, a huge amount of material on the analysis of algorithms, of interest to both mathematicians and computer scientists; the new volume focusses on algorithms related to backtracking. An important feature in all volumes is the large number of exercises, most of them with detailed solutions, but some are unsolved research problems; I have based some of my own research on open problems from Knuth’s books, and I look forward to trying to do so with problems in the new volume.”

—Professor Svante Janson, Department of Mathematics, Uppsala University

“I taught an undergraduate combinatorics course and a graduate probability course out of earlier versions of Volume 4B. The students loved it and so did I. It’s FULL of new stuff AND it’s full of (illuminated) old stuff that nobody knows anymore. Just great.”

—Persi Diaconis, professor of mathematics and statistics, Stanford University

“Many important applications in computer science from optimization to verification can be phrased as combinatorial search problems, and much of this book is focused on solving Boolean satisfiability (SAT) encodings of such problems. The volume is unique in the way it provides a consistent introduction and account of the technical history of practical SAT solving which led to the ‘SAT Revolution’ we are witnessing today where the encoding of a problem into SAT is considered a practical solution. Following the unique style of TAOCP the author continues to explore a vast number of fascinating forgotten paths and opens intriguing new ones, often formulated as exercises, which actually with some of their solutions should be considered the real treasures of this volume. Some of these exercises have already led to new results published in scientific paper and are also a great source for seminars and teaching SAT in general.”

—Armin Biere, University of Freiburg, Germany

“On a casual browse, the exercises in TAOCP leave most of all an impression of playfulness. Once you begin to dig deeper, though, you are overcome with respect for Knuth’s uncanny knack for asking the right questions—for uncovering surprising but fruitful directions of research. While the breadth and depth of his work have been praised extensively, this aspect of it has perhaps gone underappreciated. Nearly every exercise in TAOCP is a door; Knuth has pushed it ajar for you, and now you are invited to step through and explore.”

—Nikolai Beluhov, Bulgaria

“Professor Donald E. Knuth has always loved to solve problems. In Volume 4B he now promotes two brand new and practical general problem solvers, namely (0) the Dancing Links Backtracking and (1) the SAT Solver. To use them, a problem is defined declaratively (0) as a set of options, or (1) in Boolean formulae. Today’s laptop computers, heavily armoured with very high speed processors and ultra large amounts of memory, are able to run either solver for problems having big input data. Each section of Volume 4B contains multitudinous number of tough exercises which help make understanding surer. Happy reading!”

—Eiiti Wada, an elder computer scientist, UTokyo

“Knuth explains with great clarity the essential SAT techniques to a broad audience and shows their effectiveness on fascinating problems. His thought-provoking questions drive deeper understanding and new research in the area.”

—Marijn Heule, Carnegie Mellon University

“For a generation, The Art of Computer Programming has been a goldmine of learning opportunities for students, mathematicians, and algorithm scientists in pursuit of efficient means of solving practical computational problems as well as insights into the nature of computation. This volume gets to the heart of the matter: satisfiability. Whether or not one believes that P=NP, the pursuit of useful algorithms to address NP-complete problems that arise in scientific applications is worthwhile, and this book is the place to start.”

—Robert Sedgewick, William O. Baker *39 Professor of Computer Science, Emeritus, Princeton University

Additional information

Dimensions 1.75 × 7.10 × 9.63 in
Imprint

Format

ISBN-13

ISBN-10

Author

Subjects

professional, higher education, Employability, IT Professional, Y-AN SOFTWARE ENGINEERING