The design of efficient algorithms for enumeration
Andrew R. Conway

TL;DR
This paper discusses the design and implementation of efficient enumeration algorithms for combinatorial objects, highlighting techniques like dynamic programming and transfer matrix method through diverse examples.
Contribution
It provides a comprehensive overview of techniques for creating efficient enumeration algorithms and illustrates their application with various complex combinatorial problems.
Findings
Techniques for improving enumeration efficiency are detailed.
Examples include permutations, polycubes, and directed animals.
The paper serves as an educational resource for both beginners and experts.
Abstract
Many algorithms have been developed for enumerating various combinatorial objects in time exponentially less than the number of objects. Two common classes of algorithms are dynamic programming and the transfer matrix method. This paper covers the design and implementation of such algorithms. A host of general techniques for improving efficiency are described. Three quite different example problems are used for examples: 1324 pattern avoiding permutations, three-dimensional polycubes, and two-dimensional directed animals. For those new to the field, this paper is designed to be an introduction to many of the tricks for producing efficient enumeration algorithms. For those more experienced, it will hopefully help them understand the interrelationship and implications of a variety of techniques, many or most of which will be familiar. The author certainly found his understanding…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Combinatorial Mathematics · Theoretical and Computational Physics · Markov Chains and Monte Carlo Methods
