Skip to main content
Log in

Stochastic Enumeration Method for Counting Trees

  • Published:
Methodology and Computing in Applied Probability Aims and scope Submit manuscript


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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others


  • Asmussen S, Hering H (1983) Branching processes. Progress in probability and statistics. Birkhäuser, Switzerland

    Book  MATH  Google Scholar 

  • Avis David, Devroye Luc (2000) Estimating the number of vertices of a polyhedron. Inf Process Lett 73(3–4):137–143

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Book  MATH  Google Scholar 

  • Pakes AG (1971) Some limit theorems for the total progeny of a branching process. Adv Appl Probab 3(1):176–192

    Article  MathSciNet  MATH  Google Scholar 

  • Polya G, Szegö G (1998) Problems and theorems in analysis I. Classics in mathematics. Springer, Berlin

    MATH  Google Scholar 

  • Purdom PW (1978) Tree size by partial backtracking. SIAM J Comput 7(4):481–491

    Article  MathSciNet  MATH  Google Scholar 

  • Rasmussen LE (1997) Approximately counting cliques. Random Struct Algorithms 11(4):395–411

    Article  MathSciNet  MATH  Google Scholar 

  • Rubinstein RY (2009) The Gibbs cloner for combinatorial optimization, counting and sampling. Methodol Comput Appl Probab 11:491–549

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • Rubinstein RY, Kroese DP (2008) Simulation and the Monte Carlo Method, 2nd edn. Wiley, New York

    MATH  Google Scholar 

  • Rubinstein RY, Ridder A, Vaisman R (2013) Fast sequential Monte Carlo methods for counting and optimization. Wiley, New York

    Book  Google Scholar 

  • Vadhan SP (1997) The complexity of counting in sparse, regular, and planar graphs. SIAM J Comput 31:398–427

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • 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

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Radislav Vaisman.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Vaisman, R., Kroese, D.P. Stochastic Enumeration Method for Counting Trees. Methodol Comput Appl Probab 19, 31–73 (2017).

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI:


Mathematics Subject Classification (2010)