Prírodou inšpirované algoritmy
študijné materiály pre projekt mobilnej triedy umelej inteligencie
|
|
Požívateľské generovanie pseudonáhodných čísel
Používateľský generátor pseudonáhodných čísel stále používa knižnice Colt,
ale obchádza použitie triedy Random z RePast-u. Toto budete potrebovať, ak budete chcieť
použiť distribúciu s nezávislým generátorom. Hlavnou myšlienkou tu je definovať nejakú premennú v našom
modeli, ktorá bude vhodného typu distribúcie, vytvoriť vlastný generátor a tento asociovať s distribúciou,
ktorú hodláme použiť. Napríklad:
import cern.jet.random.*;
import cern.jet.random.engine.MersenneTwister;
...
public class MyModel extends SimModelImpl {
Normal myNormalDist;
Uniform myUniformDist;
...
public void begin() {
MersenneTwister generator1 = new MersenneTwister(123);
MersenneTwister generator2 = new MersenneTwister(321);
myNormalDist = new Normal(1.0, 1.0, generator1);
myUniformDist = new Uniform(generator2);
}
...
public void someMethod() {
int index = myUniformDist.nextIntFromTo(0, 10);
double val = myNormalDist.nextDouble();
}
}
Dôležitou časťou je vytvorenie dvoch rôznych Mersenne Twister generátorov. Toto bude poskytovať
dva nezávislé prúdy pseudonáhodných čísel pre distribúcie. Môžeme parametrizovať inicializačné hodnoty
týchto distribúcií a potom ich urobiť používateľsky prístupné cez get a set
metódy. Ak sú inicializačné hodnoty používateľsky špecifikovateľné, je tiež dôležité vytvroriť distribúcie
v metóde begin() namiesto v metóde setup() .
|
|
Kontakt: Marek Bundzel |