Distributions

Overview

   
 

Distributions in DESMO-J provide you with a powerful possibility to supply your simulations with a nearly endless stream of random numbers. DESMO-J uses Java's built-in random number generator (java.util.Random) which uses a linear congruential method with a cycle of 245 random numbers. The produced samples of one period can be considered statistically independent. So although computer generated random numbers are of course always deterministic (or pseudo-random), this ensures enough "randomness" to model stochastic processes.

Based on the data type of the produced samples, DESMO-J differentiates between numerical distributions, entity distributions and boolean distributions (base classes NumericalDist, EntityDist and BoolDist).. At the moment, the following distributions are ready to use:

Class  Return type  Distribution
BoolDistBernoulli   boolean   Bernoulli distribution
BoolDistConstant   boolean   Constant boolean distribution
ContDistEmpirical   Double   Continuous empirical distribution
ContDistErlang   Double   Erlang distribution
ContDistExponential   Double   Exponential distribution
ContDistGamma   Double   Gamma distribution
ContDistNormal   Double   Normal distribution
ContDistTriangular   Double   Triangular distribution
ContDistUniform   Double   Continuous uniform distribution
DiscreteDistBinomial   Long  Binomial distribution
DiscreteDistConstant   Flexible, e.g. Integer   Constant numerical distribution
DiscreteDistEmpirical   Flexible, e.g. Integer   Discrete empirical distribution
DiscreteDistPoisson   Long  Discrete empirical distribution
DiscreteDistUniform   Long  Discrete (integer) uniform distribution
EntityDistEmpirical   Entity   Distribution of Entities (probabilities assigned per entity)
EntityDistUniform   Entity   Distribution of Entities (probabilities equal for all entities)

The constant distributions are provided for testing purposes. Instances of these two classes always return the same value.

In addition, ContDistAggregate allows to aggregate (e.g. add or multiply) two distributions, while ContDistCustom is parameterised using an arbitrary cumulative distribution function implementing the interface desmoj.core.dist.Function.



   
  http://desmoj.sourceforge.net/tutorial/distributions/0.html