VEGAS algorithm

The VEGAS algorithm, due to G. Peter Lepage,  is a method for reducing error in Monte Carlo simulations by using a known or approximate probability distribution function to concentrate the search in those areas of the integrand that make the greatest contribution to the final integral.

The VEGAS algorithm is based on importance sampling. It samples points from the probability distribution described by the function $$|f|,$$ so that the points are concentrated in the regions that make the largest contribution to the integral. The GNU Scientific Library (GSL) provides a VEGAS routine.

Sampling method
In general, if the Monte Carlo integral of $$f$$ over a volume $$\Omega$$ is sampled with points distributed according to a probability distribution described by the function $$g,$$ we obtain an estimate $$\mathrm{E}_g(f; N),$$


 * $$\mathrm{E}_g(f; N) = {1 \over N } \sum_i^N { f(x_i)} / g(x_i) .$$

The variance of the new estimate is then


 * $$\mathrm{Var}_g(f; N) = \mathrm{Var}(f/g; N)$$

where $$\mathrm{Var}(f;N)$$ is the variance of the original estimate, $$\mathrm{Var}(f; N) = \mathrm{E}(f^2; N) - (\mathrm{E}(f; N))^2.$$

If the probability distribution is chosen as $$g = |f|/\textstyle \int_\Omega |f(x)|dx $$ then it can be shown that the variance $$\mathrm{Var}_g(f; N)$$ vanishes, and the error in the estimate will be zero. In practice it is not possible to sample from the exact distribution g for an arbitrary function, so importance sampling algorithms aim to produce efficient approximations to the desired distribution.

Approximation of probability distribution
The VEGAS algorithm approximates the exact distribution by making a number of passes over the integration region while histogramming the function f. Each histogram is used to define a sampling distribution for the next pass. Asymptotically this procedure converges to the desired distribution. In order to avoid the number of histogram bins growing like $$K^d$$ with dimension d the probability distribution is approximated by a separable function: $$g(x_1, x_2, \ldots) = g_1(x_1) g_2(x_2) \cdots$$ so that the number of bins required is only Kd. This is equivalent to locating the peaks of the function from the projections of the integrand onto the coordinate axes. The efficiency of VEGAS depends on the validity of this assumption. It is most efficient when the peaks of the integrand are well-localized. If an integrand can be rewritten in a form which is approximately separable this will increase the efficiency of integration with VEGAS.