Abstract
Many hard problems in the computational sciences are equivalent to counting the leaves of a decision tree, or, more generally, by summing a cost function over the nodes. These problems include calculating the permanent of a matrix, finding the volume of a convex polyhedron, and counting the number of linear extensions of a partially ordered set. Many approximation algorithms exist to estimate such sums. One of the most recent is Stochastic Enumeration (SE), introduced in 2013 by Rubinstein. In 2015, Vaisman and Kroese provided a rigorous analysis of the variance of SE, and showed that SE can be extended to a fully polynomial randomized approximation scheme for certain cost functions on random trees. We present an algorithm that incorporates an importance function into SE, and provide theoretical analysis of its efficacy. We also present the results of numerical experiments to measure the variance of an application of the algorithm to the problem of counting linear extensions of a poset, and show that introducing importance sampling results in a significant reduction of variance as compared to the original version of SE.
Similar content being viewed by others
References
Beichl I, Sullivan F (1999) Approximating the permanent via importance sampling with applications to the dimer covering problem. J Comput Phys 149:128–147
Beichl I, Jensen A, Sullivan F (2017) A sequential importance sampling algorithm for estimating linear extensions, preprint
Blitzstein J, Diaconis P (2011) A sequential importance sampling algorithm for generating random graphs with prescribed degrees. Internet Math 6(4):489–522
Chen PC (1992) Heuristic sampling: a method for predicting the performance of tree searching programs. SIAM J Comput 21(2):295–315
Cloteaux B, Valentin LA (2011) Counting the leaves of trees. Congr Numerantium 207:129–139
Harris D, Sullivan F, Beichl I (2014) Fast sequential importance sampling to estimate the graph reliability polynomial. Algorithmica 68(4):916–939
Kahn AB (1962) Topological sorting of large networks. Commun ACM 5 (11):558–562. https://doi.org/10.1145/368996.369025
Karp RM, Luby M (1983) Monte-carlo algorithms for enumeration and reliability problems. In: Proceedings of the 24th annual symposium on foundations of computer science, SFCS ’83. IEEE Computer Society, pp 56–64
Knuth DE (1975) Estimating the efficiency of backtrack programs. Math Comput 29(129):121–136
Rubinstein R (2013) Stochastic enumeration method for counting NP-hard problems. Methodol Comput Appl Probab 15(2):249–291
Rubinstein R, Ridder A, Vaisman R (2014) Fast sequential Monte Carlo methods for counting and optimization. Wiley, New York
Vaisman R, Kroese DP (2017) Stochastic enumeration method for counting trees. Methodol Comput Appl Probab 19(1):31–73. https://doi.org/10.1007/s11009-015-9457-4
Valiant LG (1979) The complexity of enumeration and reliability problems. SIAM J Comput 8(3):410–421
Acknowledgments
The author would like to thank Isabel Beichl and Francis Sullivan for the idea for this project. The author would also like to thank the Applied and Computational Mathematics Division of the Information Technology Laboratory at the National Institute of Standards and Technology for hosting the author as a guest researcher during the preparation of this article.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Jensen, A. Stochastic Enumeration with Importance Sampling. Methodol Comput Appl Probab 20, 1259–1284 (2018). https://doi.org/10.1007/s11009-018-9619-2
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11009-018-9619-2
Keywords
- Randomized algorithms
- Monte Carlo sampling
- Importance sampling
- Sequential importance sampling
- Linear extensions
- Decision tree
- Counting