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

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

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

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

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


person user8236020    schedule 30.06.2017    source источник


Ответы (1)


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

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

См. также комментарий к статье "Как правильно засеять случайный генератор случайных чисел Мерсенна?"

person jj1bdx    schedule 01.07.2017