|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Home
Products and Services
Bibliography and White Papers
|
|
RunRandomRUNRANDOM is a random number simulation tool and C/C++ library based on algorithms that generate multi-dimensional sequences of quasi-random and pseudo-random numbers. These numbers can be used in various simulation applications, from the evaluation of derivative securities (via generating interest rates and stock price scenarios) to evolutionary programming and stochastic optimization (via genetic algorithms). RUNRANDOM Features
Benefits
License The standard single user license is for Microsoft Windows. Other licensing plans for other platforms are also available. Contact us about versions for other operating systems (such as Linux or Solaris), about site licenses, or about academic discounts. Background: Computer-Generated Random Numbers How can one assess the future? One way is to simulate a large number of alternative future scenarios by computer and seeing what the most likely scenario is by averaging all future scenarios together. This is the idea behind the Monte Carlo simulation method. Computer generated numbers are not really random but only appear so when subjected to certain statistical tests. Quasi-random numbers are based on properties of prime numbers and prime polynomial fields (an application of number theory). They are also called low discrepancy sequences because when they are generated, they fill in rectangular regions very evenly and uniformly. Pseudo random numbers do not have this property: their strength is that when they are generated, sequences of numbers have minimal correlation with each other. Simple pseudo random number generators are the ones that are included in many systems (e.g., via a rand() function). They probably should not be trusted unless their autocorrelation properties are known.Many theoretical and empirical results indicate that simulations based on quasi random numbers converge an order of magnitude faster than simulations based on pseudo random numbers. (More formally, for N simulations, the error
associated with pseudo random simulations is proportional to
The RUNRANDOM library provides an easy way to incorporate different types of quasi and pseudo random generators into your simulation applications. RUNRANDOM generates multivariate uniform random variables and multivariate zero-mean unit variance normal random variables (via a very fast approximation to the inverse normal distribution). These numbers are accessed in memory (via a vector object) or by reading a file. RUNRANDOM provides 6 different generators and comes with a tool to display samples of these numbers and for timing analysis. Here are some extracts of the RUNRANDOM tool output. For example, the first 6 vectors of a Uniform and Normal 3-dimensional RICHTMEYER sequence are
This sequence generates random vectors based on prime numbers. Note that the first vector is the zero vector. (RUNRANDOM can skip several vectors of numbers use by changing the SKIP parameter; in this and the following examples, SKIP is set to zero.) The first 6 vectors of a Uniform and Normal 3-dimensional SOBOL' sequence look like this:
Note that these numbers appear "less random" than the other sequence, and that they fill in the space "more evenly." A related method is the FAURE-NIEDERREITER sequence. The first 6 vectors of a Uniform and Normal 3-dimensional sequence look like this:
The TEZUKA-FAURE-NIEDERREITER sequence is a generalization of the above sequence. The first 6 vectors of a Uniform and Normal 3-dimensional look like this:
(c) 2006 Inductive Solutions, Inc. All rights reserved.
|