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 $1.33 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation
 
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.

Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation [Paperback]

Donald E. Knuth (Author)
5.0 out of 5 stars  See all reviews (4 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

0321335708 978-0321335708 February 16, 2006 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 4,The: Generating All Trees--History of Combinatorial Generation: Generating All Trees--History of Combinatorial Generation

 

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 4

This latest fascicle covers the generation of all trees, a basic topic that has surprisingly rich ties to the first three volumes of The Art of Computer Programming. In thoroughly discussing this well-known subject, while providing 124 new exercises, Knuth continues to build a firm foundation for programming. To that same end, this fascicle also covers the history of combinatorial generation. Spanning many centuries, across many parts of the world, Knuth tells a fascinating story of interest and relevance to every artful programmer, much of it never before told. The story even includes a touch of suspense: two problems that no one has yet been able to solve.




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

Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation + The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions + The Art of Computer Programming, Volume 4,  Fascicle 3: Generating All Combinations and Partitions
Price For All Three: $48.27

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 full time to the completion of these fascicles and the seven volumes to which they belong.



Excerpt. © Reprinted by permission. All rights reserved.

I like to work in a variety of fields in order to spread my mistakes more thinly.

--Victor Klee (1999)

This booklet is Fascicle 4 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 Sections 7.2.1.6 and 7.2.1.7 of a long, long chapter on combinatorial searching. Chapter 7 will eventually fill three volumes (namely Volumes 4A, 4B, and 4C), assuming that I'm able to remain healthy. It will begin with a short review of graph theory, with emphasis on some highlights of significant graphs in the Stanford GraphBase, from which I will be drawing many examples. Then comes Section 7.1, which deals with bitwise manipulation and with algorithms relating to Boolean functions. Section 7.2 is about generating all possibilities, and it begins with Section 7.2.1: Generating Basic Combinatorial Patterns. Details about various useful ways to generate n-tuples, permutations, combinations, and partitions appear in Sections 7.2.1.1 and 7.2.1.5. That sets the stage for the main contents of the present booklet, namely Section 7.2.1.6, which completes the study of basic patterns by discussing how to generate various kinds of tree structures; and Section 7.2.1.7, which completes the story of the preceding subsections by discussing the origins of the concepts and pointing to other sources of information. 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.

I had great pleasure writing this material, akin to the thrill of excitement that I felt when writing Volume 2 many years ago. As in Volume 2, where I found to my delight that the basic principles of elementary probability theory and number theory arose naturally in the study of algorithms for random number generation and arithmetic, I learned while preparing Section 7.2.1 that the basic principles of elementary combinatorics arise naturally and in a highly motivated way when we study algorithms for combinatorial generation. Thus, I found once again that a beautiful story was "out there" waiting to be told.

In fact, I've been looking forward to writing about the generation of trees for a long time, because tree structures have a special place in the hearts of all computer scientists. Although I certainly enjoyed preparing the material about classic combinatorial structures like tuples, permutations, combinations, and partitions in Sections 7.2.1.1-7.2.1.5, the truth is that I've saved the best for last: Now it's time for the dessert course. Ever since 1994 I've been giving an annual "Christmas tree lecture" at Stanford University, to talk about the most noteworthy facts about trees that I learned during the current year, and at last I am able to put the contents of those lectures into written form. This topic, like many desserts, is extremely rich, yet immensely satisfying. The theory of trees also ties together a lot of concepts from different aspects of computer programming.

And Section 7.2.1.7, about the history of combinatorial generation, was equally satisfying to the other half of my brain, because it involves poetry, music, religion, philosophy, logic, and intellectual pastimes from many different cultures in many different parts of the world. The roots of combinatorial thinking go very deep, and I can't help but think that I learned a lot about human beings in general as I was putting the pieces of this story together.

My original intention was to devote far less space to such subjects. But when I saw how fundamental the ideas were, I knew that I could never be happy unless I covered the basics quite thoroughly. Therefore I've done my best to build a solid foundation of theoretical and practical ideas that will support many kinds of reliable superstructures.

I thank Frank Ruskey for bravely foisting an early draft of this material on college students and for telling me about his classroom experiences. Many other readers have also helped me to check the first drafts, especially in Section 7.2.1.7 where I was often operating at or beyond the limits of my ability to understand languages other than English.

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:-)

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

June 2005




Product Details

  • Paperback: 128 pages
  • Publisher: Addison-Wesley Professional; 1 edition (February 16, 2006)
  • Language: English
  • ISBN-10: 0321335708
  • ISBN-13: 978-0321335708
  • Product Dimensions: 6.4 x 0.4 x 9.5 inches
  • Shipping Weight: 9.1 ounces (View shipping rates and policies)
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Best Sellers Rank: #315,265 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

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

9 of 9 people found the following review helpful:
5.0 out of 5 stars has a distinctive historical monograph, March 29, 2006
This review is from: Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation (Paperback)
This fascicle can perhaps best be read as a sequel to Knuth's Volume 3, on sorting and searching, where he discusses trees. The fascicle extends that into how does one generate every tree. Of the four fascicles thus published, this might be the skimpiest in terms of current mathematical knowledge. Though to a practising programmer, trees are a vital construct and the book could well have germane analysis. And, as with his other books in this series, there is a tough set problems that can be just as instructive and interesting as the text.

Still, to perhaps compensate for the thin length, the book contains a distinctive section on the history of combinatorial generation. Knuth delves into this subject while giving a deeper treatment of the maths than one would likely encounter in a popular text directed at a general audience. He cites the I Ching, as well as ancient Indian and Arab manuscripts. The I Ching is notable as it is still in print and likely to be familiar to many.

With the publication of this fascicle, the collective set of four would make a respectable book in its own right. However, Knuth is scarcely done yet. We can expect more fascicles, and soon, one might hope. And eventually, a hardcover.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 3 people found the following review helpful:
5.0 out of 5 stars The best computer book published in 2006, January 8, 2009
This review is from: Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation (Paperback)
It can be convincingly argued that Knuth's three volumes The Art of Programming is the best reference set for computer science ever written. They top my list of required reference works; the only items that might be placed ahead of them are books such as complete listings of the values of Unicode characters. Even then, it would be very specific to the situation.

It would be very difficult to overstate the value of the tree data structure in computing. If you cannot program the creation and searching of trees, do yourself and your employer a favor and find another line of work. In this book, Knuth gives the history of how the many uses of trees arose in the history of human problem solving. Concise with just enough detail, it is well worth reading. He frequently uses algorithms expressed in stepwise notation to make his points.

However, the real value of this book is in the exercises at the end of the sections. Because so much of it was familiar to me, I was often skimming through the explanatory material. That strategy changed when I reached the exercises, they are extensive and really force you to think the matter through. An enormous amount of fundamental computer science is expressed in those 156 questions and detailed answers to all of the exercises are included at the end. Even though there is only approximately sixty pages of explanatory material in this book, it could be used as a semester long text in advanced programming.

If working with trees is part of your job description, then you are a fool if you don't buy this book, study it then keep it for a reference. It is that good and in my opinion, it is the best computer book published in 2006.

Published in the online Journal of Object Technology, reprinted with permission
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


11 of 20 people found the following review helpful:
5.0 out of 5 stars Great for comp sci and math majors..., April 30, 2006
This review is from: Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation (Paperback)
I've known about The Art of Computer Programming volumes by Donald E. Knuth for some time, but I've always avoided reviewing them for fear of not being able to do them justice. But after being contacted specifically by the publisher asking if I was interested in the latest - The Art of Computer Programming, Volume 4, Fascicle 4 : Generating All Trees--History of Combinatorial Generation - I decided to give it a try. For the right audience, this is really good stuff. But I can tell you that I'm not it...

Content:
Chapter 7 - Combinatorial Searching: 7.2 - Generating All Possibilities; 7.2.1 - Generating Basic Combinatorial Patterns; 7.2.1.1 - Generating all n-tuples; 7.2.1.2 - Generating all permutations; 7.2.1.3 - Generating all combinations; 7.2.1.4 - Generating all partitions; 7.2.1.5 - Generating all set partitions; 7.2.1.6 - Generating all trees; 7.2.1.7 - History and further references; Answers to Exercises; Index and Glossary

Don't refresh your browser thinking the Content section didn't load properly. There's just chapter 7... For those who don't understand the "fascicle" concept (like I didn't before getting this volume), it's a small book (120 pages) of material that either updates writings in previous volumes or a "preview" of material that will eventually be rolled into a single volume (in this case, volume 4). Knuth has a lot of information he wants to convey, and by using fascicles, the public can get a steady flow of information and help shape the continuing evolution of the series. Interesting concept, and one I can appreciate. Another review stated that this was probably one of the "skimpiest" volumes in terms of mathematical knowledge. If true, then I fear what will await me with future installments. To get the most of out Knuth's work, you really do need to be well-grounded in computer science and mathematical theory. Every page is populated with numerous formulas to prove the subject matter, and I'll admit to being completely lost in most of it. That doesn't mean the book isn't good. It *is* excellent work, but I'm definitely not the target audience. I don't come from a formal computer science and mathematics background, so I'd have to really slog through everything from page 1 with supporting texts in order to fully benefit from it.

It wasn't a total loss for me, though... I enjoyed the History and Further References chapter, where he shows the tree theory and how it affected such things as literature and culture through the ages. Whether the ancient Chinese had all this in mind when developing the I Ching is open to debate, but the theory and underpinnings of trees is definitely there. And for those readers who really want to work through and apply the material, there are exercises galore at the end (with answers graciously provided for those who get stuck). You could likely set up a college level course based on this (and associated) book, and it would be foundational to a computer science degree.

So, for the right audience, this is the type of book that will allow for weeks of thought and learning. But if you're more like me, someone who deals more with business systems and development (without a comp sci degree to back it up), you'll likely miss most of the value here.
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
 
 
 
Most Recent Customer Reviews


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



So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject