وبلاگ بلیان

The Art of Computer Programming, Combinatorial Algorithms, Volume 4B, Part 2

معرفی کتاب «The Art of Computer Programming, Combinatorial Algorithms, Volume 4B, Part 2» نوشتهٔ Eloy Moreno و Donald Ervin Knuth، منتشرشده توسط نشر Addison-Wesley Professional در سال 2022. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

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. Cover Half Title Title Page Copyright Page Contents Preface Notes on the Exercises Mathematical Preliminaries Redux Inequalities Martingales Tail inequalities from martingales Applications Statements that are almost sure, or even quite sure Exercises Chapter 7—Combinatorial Searching 7.2. Generating All Possibilities 7.2.1. Generating Basic Combinatorial Patterns 7.2.2. Backtrack Programming Data structures Walker’s method Permutations and Langford pairs Word rectangles Commafree codes Dynamic ordering of choices Sequential allocation redux Lists for the commafree problem A general mechanism for doing and undoing Backtracking through commafree codes Running time estimates Estimating the number of solutions Factoring the problem Historical notes Exercises 7.2.2.1. Dancing links Exact cover problems Secondary items Progress reports Sudoku Polyominoes Polycubes Factoring an exact cover problem Color-controlled covering Introducing multiplicity A new dance step Analysis of Algorithm X Analysis of matching problems Maintaining a decent focus Exploiting local equivalence Preprocessing the options Minimum-cost solutions Implementing the min-cost cutoffs Dancing with ZDDs Summary Historical notes Exercises—First set Exercises—Second set Exercises—Third set 7.2.2.2. Satisfiability Example applications Backtracking algorithms Random clauses Resolution of clauses Clause-learning algorithms Monte Carlo algorithms The Local Lemma Message-passing algorithms Preprocessing of clauses Encoding constraints into clauses Unit propagation and forcing Symmetry breaking Satisfiability-preserving maps One hundred test cases Tuning the parameters Exploiting parallelism History Exercises Answers to Exercises Appendix A—Tables of Numerical Quantities 1. Fundamental Constants (decimal 2. Fundamental Constants (hexadecimal) 3. Harmonic Numbers, Bernoulli Numbers, Fibonacci Numbers Appendix B—Index to Notations Appendix C—Index to Algorithms and Theorems Appendix D—Index to Combinatorial Problems Appendix E—Answers to Puzzles in the Answers Index and Glossary A B C D E F G H I J K L M N O P Q R S T U V W X Y Z This first volume begins with basic programming concepts and techniques, then focuses on information structures--the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design
دانلود کتاب The Art of Computer Programming, Combinatorial Algorithms, Volume 4B, Part 2