RandomNumberGeneratorExponential

From Nsnam
Jump to: navigation, search

Exponential Random Number Generator

The Exponential Random Number Generator of ns-3 advertizes itself as able to generate a sequence of random numbers that is exponentially distributed. The ns-3 class that implements this behavior is ExponentialVariable.

Our goal is to validate that the random number generator does, in fact, do this.

Methodology

We apply a chi square test of goodness of fit to evaluate the function. We create a histogram with 50 bins uniformly distributed across the range [0, 10) and expand the upper boundary bin to extend the range to +infinity. We generate 1 000 000 random numbers which we assign to appropriate bins in the histogram.

Since the expected value is provided for us (we do not calculate it from the data) the degrees of freedom in the chi square test is 50. Using this value, we calculate a maximum chi squared statistic corresponding to the 0.05 significance level (using the GNU Scientific Library gsl_cdf_chisq_Qinv function) as 67.5048. Ten runs of the test for goodness of fit results in an average chi square statistic of 48.2773.

Outcome

Pass

Since 48.2773 is less than the rejection value of 67.5048 we can state with 95% confidence that the chi square statistic we measured is conistent with statistical fluctuations and that the ns-3 exponential random number generator does, in fact, generate random numbers distributed exponentially.

Data

The following is a histogram of the random numbers generated in one run of the test. Expected values are calulated based on the area of the cumulative distribution function corresponding to the histogram bin. This expected value is calculated using the GNU Scientific Library gsl_cdf_exponential_P function.

Rng-exponential.png


Craigdo 07:56, 30 May 2009 (UTC)