The Good, the Bad, and the Hungry Sale
 
 

Recently Viewed clear list


Original Essays | July 22, 2014

Nick Harkaway: IMG The Florist-Assassins



The three men lit up in my mind's eye, with footnotes. They were converging on me — and on the object I was carrying — in a way that had... Continue »
  1. $18.87 Sale Hardcover add to wish list

    Tigerman

    Nick Harkaway 9780385352413

spacer
Qualifying orders ship free.
$23.75
New Trade Paper
Ships in 1 to 3 days
Add to Wishlist
available for shipping or prepaid pickup only
Available for In-store Pickup
in 7 to 12 days
Qty Store Section
2 Remote Warehouse Software Engineering- Algorithms

More copies of this ISBN

The Art of Computer Programming, Volume 3, Fascicle 3: Generating All Combinations and Partitions

by

The Art of Computer Programming, Volume 3, Fascicle 3: Generating All Combinations and Partitions Cover

 

 

Excerpt

In my preface to the first edition, I begged the reader not to draw attention to errors. I now wish I had not done so and am grateful to the few readers who ignored my request.

--Stuart Sutherland, The International Dictionary of Psychology (1996)

This booklet is Fascicle 3 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.3, 7.2.1.4, and 7.2.1.5 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 appear in Section 7.2.1.1, and the generation of permutations is discussed in Section 7.2.1.2. That sets the stage for the main contents of the present booklet, namely Section 7.2.1.3 (which extends the ideas to combinations of n things taken t at a time); Section 7.2.1.4 (about partitions of an integer); and Section 7.2.1.5 (about partitions of a set). Then will come Section 7.2.1.6 (about trees) and Section 7.2.1.7 (about the history of combinatorial generation), in Fascicle 4. 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.

For example, in the present booklet we find many of the beautiful patterns formed by combinations, with and without repetition, and how they relate to famous theorems of extremal combinatorics. Then comes my chance to tell the extraordinary story of partitions; indeed, the theory of partitions is one of the nicest chapters in all of mathematics. And in Section 7.2.1.5, a little known triangle of numbers, discovered by C. S. Peirce, turns out to simplify and unify the study of set partitions, another vital topic. Along the way I've included expositions of two mathematical techniques of great importance in the analysis of algorithms: Poisson's summation formula, and the powerful saddle point method. There are games and puzzles too, as in the previous fascicles.

My original intention was to devote far less space to these subjects. But when I saw how fundamental the ideas were for combinatorial studies in general, 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; I wish to thank especially George Clements and Svante Janson for their penetrating comments.

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 indices point to the places where further information is available. 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

June 2005

0201853949P06302005

Product Details

ISBN:
9780201853940
Author:
Knuth, Donald E.
Publisher:
Addison-Wesley Professional
Author:
Knuth, Donald Ervin
Author:
Knuth
Location:
Upper Sadle River, N. J.
Subject:
Computer programming
Subject:
Computer algorithms
Subject:
Programming - Algorithms
Subject:
Software Engineering-Algorithms
Copyright:
Edition Number:
Volume 4
Edition Description:
Fascicle 3
Series:
Art of Computer Programming
Series Volume:
04
Publication Date:
July 2005
Binding:
TRADE PAPER
Grade Level:
Professional and scholarly
Language:
English
Illustrations:
Y
Pages:
160
Dimensions:
9.52x6.44x.41 in. .69 lbs.

Other books you might like

  1. The Art of Computer Programming,... New Trade Paper $23.75
  2. The Art of Computer Programming,... New Trade Paper $23.75
  3. The Art of Computer Programming,... New Trade Paper $20.95
  4. Stretching (20th Anniversary Revised...
    Used Trade Paper $8.50

Related Subjects

Computers and Internet » Software Engineering » Algorithms
Computers and Internet » Software Engineering » General
Computers and Internet » Software Engineering » Programming and Languages

The Art of Computer Programming, Volume 3, Fascicle 3: Generating All Combinations and Partitions New Trade Paper
0 stars - 0 reviews
$23.75 In Stock
Product details 160 pages Addison-Wesley Professional - English 9780201853940 Reviews:
"Synopsis" by ,

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

"Synopsis" by , According to "Webster's Dictionary," a fascicle is "one of the divisions of a book published in parts." This represents a first look at material from the long-anticipated and much-discussed volume four of Knuth's "The Art of Computer Programming," and he plans to use feedback from readers in order to prepare subsequent volumes.
spacer
spacer
  • back to top
Follow us on...




Powell's City of Books is an independent bookstore in Portland, Oregon, that fills a whole city block with more than a million new, used, and out of print books. Shop those shelves — plus literally millions more books, DVDs, and gifts — here at Powells.com.