Abstract
The problem of estimating the size of a backtrack tree is an important but hard problem in the computational sciences. An efficient solution of this problem can have a major impact on the hierarchy of complexity classes. The first randomized procedure, which repeatedly generates random paths through the tree, was introduced by Knuth. Unfortunately, as was noted by Knuth and a few other researchers, the estimator can introduce a large variance and become ineffective in the sense that it underestimates the cost of the tree. Recently, a new sequential algorithm called Stochastic Enumeration (SE) method was proposed by Rubinstein et al. The authors showed numerically that this simple algorithm can be very efficient for handling different counting problems, such as counting the number of satisfiability assignments and enumerating the number of perfect matchings in bipartite graphs. In this paper we introduce a rigorous analysis of SE and show that it results in significant variance reduction as compared to Knuth’s estimator. Moreover, we establish that for almost all random trees the SE algorithm is a fully polynomial time randomized approximation scheme (FPRAS) for the estimation of the overall tree size.
Similar content being viewed by others
References
Asmussen S, Hering H (1983) Branching processes. Progress in probability and statistics. Birkhäuser, Switzerland
Avis David, Devroye Luc (2000) Estimating the number of vertices of a polyhedron. Inf Process Lett 73(3–4):137–143
Blanchet J, Rudoy D (2009) Rare event simulation and counting problems. In: Rare event simulation using monte carlo methods. Wiley
Blitzstein JK, Diaconis P (2011) A sequential importance sampling algorithm for generating random graphs with prescribed degrees. Internet Math 6(4):489–522
Botev ZI, Kroese DP (2012) Efficient monte carlo simulation via the generalized splitting method. Stat Comput 22:1–16
Botev ZI, Kroese DP (2008) An Efficient Algorithm for Rare-event Probability Estimation, Combinatorial Optimization, and Counting. Methodol Comput Appl Probab 10(4):471–505. doi:10.1007/s11009-008-9073-7
Chen PC (1992) Heuristic sampling: a method for predicting the performance of tree searching programs. SIAM J Comput 21(2):295–315
Dyer M (2003) Approximate counting by dynamic programming. In: Proceedings of the 35th ACM symposium on theory of computing, pp 693–699
Dyer M, Frieze A, Jerrum M (1999) On counting independent sets in sparse graphs. In: In 40th annual symposium on foundations of computer science, pp 210–217
Garvels MJJ (2000) The splitting method in rare event simulation. PhD thesis, Enschede
Glasserman P, Heidelberger P, Shahabuddin P, Zajic T (1996) Splitting for rare event simulation: analysis of simple cases. In: Winter simulation conference, pp 302–308
Hoeffding W (1962) Probability inequalities for sums of bounded random variables. J Am Stat Assoc
Jerrum M, Sinclair A (1996) The Markov chain Monte Carlo method: an approach to approximate counting and integration. In: Hochbaum D (ed) Approximation algorithms for np-hard problems. PWS Publishing, pp 482–520
Jerrum M, Sinclair A, Vigoda E (2004) A polynomial-time approximation algorithm for the permanent of a matrix with non-negative entries. J ACM 671–697
Jerrum M, Valiant LG, Vazirani VV (1986) Random generation of combinatorial structures from a uniform distribution. Theor Comput Sci 43:169–188
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, Washington, pp 56–64
Knuth DE (1975) Estimating the efficiency of backtrack programs. Math Comp 29
Liu J, Lu P (2013) FPTAS for counting monotone CNF. CoRR arXiv:1311.3728
Motwani R, Raghavan P (1995) Randomized algorithms. Cambridge University Press, New York
Pakes AG (1971) Some limit theorems for the total progeny of a branching process. Adv Appl Probab 3(1):176–192
Polya G, Szegö G (1998) Problems and theorems in analysis I. Classics in mathematics. Springer, Berlin
Purdom PW (1978) Tree size by partial backtracking. SIAM J Comput 7(4):481–491
Rasmussen LE (1997) Approximately counting cliques. Random Struct Algorithms 11(4):395–411
Rubinstein RY (2009) The Gibbs cloner for combinatorial optimization, counting and sampling. Methodol Comput Appl Probab 11:491–549
Rubinstein RY (2012) Stochastic enumeration method for counting NP-hard problems. Methodol Comput Appl Probab 1–42
Rubinstein RY, Dolgin A, Vaisman R (2012) The splitting method for decision making. Communications in Statistics - Simulation and Computation 41(6):905–921
Rubinstein RY, Kroese DP (2008) Simulation and the Monte Carlo Method, 2nd edn. Wiley, New York
Rubinstein RY, Ridder A, Vaisman R (2013) Fast sequential Monte Carlo methods for counting and optimization. Wiley, New York
Vadhan SP (1997) The complexity of counting in sparse, regular, and planar graphs. SIAM J Comput 31:398–427
Vaisman R, Kroese DP, Gertsbakh IB (2015) Improved sampling plans for combinatorial invariants of coherent systems. IEEE Trans Reliab. doi:10.1109/TR.2015.2446471
Valiant LG (1979) The complexity of enumeration and reliability problems. SIAM J Comput 8(3):410–421
Yuguo C, Persi D, Holmes SP, Liu JS (2005) Sequential Monte Carlo methods for statistical analysis of tables. J Am Stat Assoc 100:109–120
Zhang Y, Wu H, Cheng L (2012) Some new deformation formulas about variance and covariance. In: Proceedings of 4th international conference on modelling, identification and control
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Vaisman, R., Kroese, D.P. Stochastic Enumeration Method for Counting Trees. Methodol Comput Appl Probab 19, 31–73 (2017). https://doi.org/10.1007/s11009-015-9457-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11009-015-9457-4