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

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

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

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

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

Задание нестандартного генератора случайных чисел в качестве заданного по умолчанию ГСЧ

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

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

setDefaultRandomGenerator( Random r )

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

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

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