## 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