Твистер Мерсенна: ограничения, используемые в моделях на основе агентов

Я использую Mersnenne Twister в качестве движка для генерации случайных чисел в агентной модели: она быстра и имеет очень длительный период перед повторением.

Недавно я сделал обзор литературы по этому вопросу, в то время как Java-библиотека библиотеки Colt рекомендует Twister Mersenne, я столкнулся с двумя ограничениями:

  1. начальное число не должно быть 0. Предлагается ли это в библиотеке Apache Commons Math?
  2. на основе криптографической бумаги было упомянуто, что "если начальное состояние имеет слишком много нулей, то сгенерированная последовательность может также содержать много нулей для более чем 10000 поколений, и если семена выбираются систематически, например, 0, 20, 30….. выходные последовательности будут коррелированы ".

Кто-нибудь сталкивался с такими проблемами, или это что-то исправлено и уже не так? Есть ли литература, показывающая спектральный анализ Мерсена Твистера по сравнению с другими, как линейный конгруэнтный генератор?

1 ответ

SFMT имеет лучшую характеристику нулевого избытка исходного состояния.

Обычный совет, чтобы избавиться от нулевой избыточной инициализации начального числа, состоит в том, чтобы использовать другой PRNG (который может иметь почти равную вероятность нулей и единиц на выходе) для генерации самого начального числа.

Смотрите также комментарий на тему "Как правильно посеять мерсенновый твистер RNG?"

Другие вопросы по тегам