or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Sell Back Your Copy
For a $2.01 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions
 
See larger image
 
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions [Paperback]

Donald E. Knuth (Author)
5.0 out of 5 stars  See all reviews (3 customer reviews)

List Price: $19.99
Price: $14.64 & eligible for FREE Super Saver Shipping on orders over $25. Details
You Save: $5.35 (27%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 6 left in stock--order soon (more on the way).
Want it delivered Friday, February 3? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for students on millions of items. Learn more


Book Description

0321534964 978-0321534965 April 27, 2008 1

Finally, after a wait of more than thirty-five years, the first part of Volume 4 is at last ready for publication. Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually.

 

The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e

ISBN: 0321751043 

 

 

 

 Art of Computer Programming, Volume 4, Fascicle 0, The: Introduction to Combinatorial Algorithms and Boolean Functions: Introduction to Combinatorial Algorithms and Boolean Functions

 

This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science. The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth’s writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his “cookbook” solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books.

To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called fascicles, which will be published at regular intervals. Each fascicle will encompass a section or more of wholly new or revised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete.

Volume 4, Fascicle 0

This fascicle introduces what will become by far the longest chapter in The Art of Computer Programming, a chapter on combinatorial algorithms that will itself fill three full-sized volumes. Combinatorial algorithms, informally, are techniques for the high-speed manipulation of extremely large quantities of objects, such as permutations or the elements of graphs. Combinatorial patterns or arrangements solve vast numbers of practical problems, and modern approaches to dealing with them often lead to methods that are more than a thousand times faster than the straightforward procedures of yesteryear. This fascicle primes the pump for everything that follows in the chapter, discussing first the essential ideas of combinatorics and then introducing fundamental ideas for dealing efficiently with 0s and 1s inside a machine, including Boolean basics and Boolean function evaluation. As always, the author’s exposition is enhanced by hundreds of new exercises, arranged carefully for self-instruction, together with detailed answers.


Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $5 in Amazon MP3 Credit. Here's how (restrictions apply)

Frequently Bought Together

The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions + The Art of Computer Programming, Volume 4, Fascicle 1: Bitwise Tricks & Techniques; Binary Decision Diagrams + The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations
Price For All Three: $44.76

Show availability and shipping details

Buy the selected items together


Editorial Reviews

About the Author

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. Professor Emeritus of The Art of Computer Programming at Stanford University, he currently devotes his time to the completion of these fascicles and the seven volumes to which they belong.

Excerpt. © Reprinted by permission. All rights reserved.

To put all the good stuff into one book is patently impossible, and attempting even to be reasonably comprehensive about certain aspects of the subject is likely to lead to runaway growth.
GERALD B. FOLLAND "Editor's Corner" (2005)

La dernière chose qu'on trouve en faisant un ouvrage est de savoir celle qu'il faut mettre la première.
BLAISE PASCAL, Pensées 740 (c. 1660)

This booklet is Fascicle 0 of The Art of Computer Programming, Volume 4: Combinatorial Algorithms. As explained in the preface to Fascicle 1 of Volume 1, I'm circulating the material in this preliminary form because I know that the task of completing Volume 4 will take many years; I can't wait for people to begin reading what I've written so far and to provide valuable feedback.

To put the material in context, this fascicle contains the opening sections intended to launch a long, long chapter on combinatorial algorithms. Chapter 7 is planned to be by far the longest single chapter of The Art of Computer Programming; it will eventually fill at least three volumes (namely Volumes 4A, 4B, and 4C), assuming that I'm able to remain healthy. Like the second-longest chapter (Chapter 5), it begins with pump-priming introductory material that comes before the main text, including dozens of exercises to get the ball rolling. A long voyage lies ahead, and some important provisions need to be brought on board before we embark. Furthermore I want to minimize the shock of transition between Chapter 6 and the new chapter, because Chapter 6 was originally written and published more than thirty years ago.

Chapter 7 proper begins with Section 7.1: Zeros and Ones, which is another sort of introduction, at a different level. It dives into the all-important topics that surround the study of Boolean functions, which essentially underly everything that computers do. Subsection 7.1.1, "Boolean basics," attempts to erect a solid foundation of theoretical and practical ideas on which we shall build significant superstructures later; subsection 7.1.2, "Boolean evaluation," considers how to compute Boolean functions with maximum efficiency.

The remaining parts of Section 7.1--namely 7.1.3, "Bitwise tricks and techniques," and 7.1.4, "Binary decision diagrams"--will be published soon as Volume 4, Fascicle 1. Then comes Section 7.2, Generating All Possibilities; the fascicles for Section 7.2.1, "Generating basic combinatorial patterns," have already appeared in print. Section 7.2.2 will deal with backtracking in general. And so it will go on, if all goes well; an outline of the entire Chapter 7 as currently envisaged appears on the taocp webpage that is cited on page ii.

These introductory sections have turned out to have more than twice as many exercises as I had originally planned. In fact, the total number of exercises in this fascicle (366) is almost unbelievable. But many of them are quite simple, intended to reinforce the reader's understanding of basic definitions, or to acquaint readers with the joys of The Stanford GraphBase. Other exercises were simply irresistible, as they cried out to be included here--although, believe it or not, I did reject more potential leads than I actually followed up.

I would like to express my indebtedness to the late Robert W Floyd, who made dozens of valuable suggestions when I asked him to look over the first draft of this material in 1977. Thanks also to Robin Wilson of the Open University for his careful reading and many detailed suggestions; and to hundreds of readers who provided fantastic feedback on early drafts that circulated on the Internet.

I shall happily pay a finder's fee of $2.56 for each error in this fascicle when it is first reported to me, whether that error be typographical, technical, or historical. The same reward holds for items that I forgot to put in the index. And valuable suggestions for improvements to the text are worth 32¢ each. (Furthermore, if you find a better solution to an exercise, I'll actually reward you with immortal glory instead of mere money, by publishing your name in the eventual book:-)

Notations that are used here and not otherwise explained can be found in the Index to Notations at the end of Volumes 1, 2, or 3. Those indexes point to the places where further information is available. (See also the entries under "Notation" in the present booklet.) Of course Volume 4 will some day contain its own Index to Notations.

Machine-language examples in all future editions of The Art of Computer Programming will be based on the MMIX computer, which is described in Volume 1, Fascicle 1.

Cross references to yet-unwritten material sometimes appear as '00' in the following pages; this impossible value is a placeholder for the actual numbers to be supplied later.

Happy reading!

D. E. K.
Stanford, California
January 2008


Product Details

  • Paperback: 240 pages
  • Publisher: Addison-Wesley Professional; 1 edition (April 27, 2008)
  • Language: English
  • ISBN-10: 0321534964
  • ISBN-13: 978-0321534965
  • Product Dimensions: 9.4 x 6.5 x 0.6 inches
  • Shipping Weight: 15.5 ounces (View shipping rates and policies)
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (3 customer reviews)
  • Amazon Best Sellers Rank: #170,962 in Books (See Top 100 in Books)

More About the Author

Donald E. Knuth was born on January 10, 1938 in Milwaukee, Wisconsin. He studied mathematics as an undergraduate at Case Institute of Technology, where he also wrote software at the Computing Center. The Case faculty took the unprecedented step of awarding him a Master's degree together with the B.S. he received in 1960. After graduate studies at California Institute of Technology, he received a Ph.D. in Mathematics in 1963 and then remained on the mathematics faculty. Throughout this period he continued to be involved with software development, serving as consultant to Burroughs Corporation from 1960-1968 and as editor of Programming Languages for ACM publications from 1964-1967.

He joined Stanford University as Professor of Computer Science in 1968, and was appointed to Stanford's first endowed chair in computer science nine years later. As a university professor he introduced a variety of new courses into the curriculum, notably Data Structures and Concrete Mathematics. In 1993 he became Professor Emeritus of The Art of Computer Programming. He has supervised the dissertations of 28 students.

Knuth began in 1962 to prepare textbooks about programming techniques, and this work evolved into a projected seven-volume series entitled The Art of Computer Programming. Volumes 1-3 first appeared in 1968, 1969, and 1973. Having revised these three in 1997, he is now working full time on the remaining volumes. Volume 4A appeared at the beginning of 2011. More than one million copies have already been printed, including translations into ten languages.

He took ten years off from that project to work on digital typography, developing the TeX system for document preparation and the METAFONT system for alphabet design. Noteworthy by-products of those activities were the WEB and CWEB languages for structured documentation, and the accompanying methodology of Literate Programming. TeX is now used to produce most of the world's scientific literature in physics and mathematics.

His research papers have been instrumental in establishing several subareas of computer science and software engineering: LR(k) parsing; attribute grammars; the Knuth-Bendix algorithm for axiomatic reasoning; empirical studies of user programs and profiles; analysis of algorithms. In general, his works have been directed towards the search for a proper balance between theory and practice.

Professor Knuth received the ACM Turing Award in 1974 and became a Fellow of the British Computer Society in 1980, an Honorary Member of the IEEE in 1982. He is a member of the American Academy of Arts and Sciences, the National Academy of Sciences, and the National Academy of Engineering; he is also a foreign associate of l'Academie des Sciences (Paris), Det Norske Videnskaps-Akademi (Oslo), Bayerische Akademie der Wissenschaften (Munich), the Royal Society (London), and Rossiiskaya Akademia Nauk (Moscow). He holds five patents and has published approximately 160 papers in addition to his 28 books. He received the Medal of Science from President Carter in 1979, the American Mathematical Society's Steele Prize for expository writing in 1986, the New York Academy of Sciences Award in 1987, the J.D. Warnier Prize for software methodology in 1989, the Adelskøld Medal from the Swedish Academy of Sciences in 1994, the Harvey Prize from the Technion in 1995, and the Kyoto Prize for advanced technology in 1996. He was a charter recipient of the IEEE Computer Pioneer Award in 1982, after having received the IEEE Computer Society's W. Wallace McDowell Award in 1980; he received the IEEE's John von Neumann Medal in 1995. He holds honorary doctorates from Oxford University, the University of Paris, St. Petersburg University, and more than a dozen colleges and universities in America.

Professor Knuth lives on the Stanford campus with his wife, Jill. They have two children, John and Jennifer. Music is his main avocation.

 

Customer Reviews

3 Reviews
5 star:
 (3)
4 star:    (0)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
5.0 out of 5 stars (3 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

6 of 6 people found the following review helpful:
5.0 out of 5 stars A fresh introduction to combinatorial thinking, May 2, 2008
By 
Roozbeh Pournader (San Jose, California) - See all my reviews
(REAL NAME)   
This review is from: The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions (Paperback)
For those interested in combinatorial thinking, ranging from combinatorial card game puzzles to how to count the number of ways to do something, this is a great re-introduction. In this first part of the long-awaited Volume 4, Knuth tells you why he loves combinatorics and computer algorithms, and why it took him so long to publish volume 4.

Hearing it from Knuth, the fascicle basically reassured me in my personal dance with mathematics and algorithmics: there is no problem if you love these things!

I highly recommended this to few friends who were computer science students, and they really liked it. They could not stop reading it during a party at our home!

Disclaimer: This review is based on the preview version that was made available on Knuth's home page. I believe not much is changed, except that some errors should be corrected.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 4 people found the following review helpful:
5.0 out of 5 stars the richness of Boolean functions, May 16, 2008
This review is from: The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions (Paperback)
Nobody should read this book lightly. It continues the decades-long practice of Knuth's series, by furnishing a huge set of exercises in the computational field. Yet ones where the emphasis is not on writing computer programs, though he does have some problems where you are asked to do this. Instead, you have to nut out puzzles in what you might term applied number theory. A key trait of the book, and of the entire series, is that the reduction of an algorithm to source code is a relatively minor aspect.

The book differs from the first 3 volumes in the surfeit of problems. Perhaps in part because decades have elapsed since those volumes came out. During which, Knuth accrued ever more problems that he now gives us.

The focus of this book on Boolean functions can be an eye opener to some readers. You might think, naively, how difficult could the theory of Boolean functions be? Knuth shows that there is a vast level of complexity and conceptual richness lurking in such apparently simple functions. The typical computer science text that mentions Boolean functions might devote some space to examples of these. But it rarely goes deeper than explaining how to optimise, say, ORs of ANDs, where this is used for in turn optimising circuit layouts on a chip. Knuth goes way beyond this.

Granted, those are introductory CS texts, and this is not. But the average computer programmer or chip designer rarely goes beyond those in mathematical depth. And so is unlikely to have seen the material in this book.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful:
5.0 out of 5 stars TAOCP: Volume 4 - Fascicle 0, June 23, 2008
By 
Amazon Verified Purchase(What's this?)
This review is from: The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions (Paperback)
I bought this book after a class I had in "Boolean Functions" and I must admit that the content was superb. Many interesting subjects about boolean functions, an extensive range of problems with solutions, and certainly a great deal of "food for thought" for further applications or research. All in all, a highly recommended book, and I am only wondering why volume 4 is not published in its final version (assuming that the rest of fascicles are in the same form). If you are interested in the field, just buy it.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Only search this product's reviews




Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums





Look for Similar Items by Category


Look for Similar Items by Subject