Нестандартный генератор случайных чисел

По умолчанию все функции вероятностных распределений в AnyLogic, объекты Основной библиотеки, случайно срабатывающие переходы и события, сам исполняющий модуль AnyLogic, и т.д. – одним словом, все источники случайности в AnyLogic используют для своих вычислений принятый в AnyLogic по умолчанию генератор случайных чисел (ГСЧ). Этот ГСЧ является экземпляром Java класса Random

Если по каким-либо причинам Вас не устраивает качество стандартного генератора Random, то Вы можете:

 Чтобы заменить используемый по умолчанию генератор случайных чисел на другой

  1. Создайте Ваш собственный генератор случайных чисел (ГСЧ). Это должен быть подкласс Java класса Random, например, MyRandom.
  2. Выберите эксперимент в панели Проекты и перейдите на страницу его основных свойств.
  3. Выберите опцию Нестандартный генератор (подкласс класса Random) из группы кнопок Генератор случайных чисел и введите выражение, возвращающее экземпляр класса Вашего генератора чисел, в расположенном справа поле, например:
    new MyRandom() или
    new MyRandom( 1234 )

Задание нестандартного генератора случайных чисел as default RNG

Инициализация выбранного по умолчанию ГСЧ (как поставляемого вместе с AnyLogic, так и Вашего собственного) производится во время инициализации эксперимента и затем перед каждым "прогоном" модели.

Вы можете заменить используемый по умолчанию генератор другим, вызвав метод:

setDefaultRandomGenerator( Random r )

Но Вы должны учитывать тот факт, что перед каждым "прогоном" модели генератор будет заново выбираться и инициализироваться исходя из установок, заданных на странице основных свойств эксперимента.

Чтобы использовать нестандартный генератор случайных чисел в функции вероятностного распределения

  1. Создайте и проинициализируйте экземпляр класса Вашего ГСЧ. Например, это может быть простая переменная myRNG класса Random или его подкласса.
  2. При вызове функции распределения, передайте ссылку на Ваш ГСЧ myRNG в качестве аргумента функции, например:
    uniform( myRNG ) или
    triangular( 5, 10, 25, myRNG )
Если у функции есть несколько различных нотаций с различными наборами параметров, то у некоторых из них может не быть варианта, позволяющего задавать нестандартный ГСЧ. Но такая нотация всегда есть у функции с наиболее полным набором параметров.