numpy.random и Монте-Карло

Я написал код Монте-Карло (MC) на Python с расширением Fortran (скомпилированным с помощью f2py). Поскольку это стохастическое интегрирование, алгоритм сильно зависит от случайных чисел, а именно я использую ~ 10^8 - 10^9 случайных чисел для типичного запуска. До сих пор я действительно не возражал против «качества» случайных чисел — однако это то, что я хочу проверить.

Мой вопрос: достаточно ли Mersenne-Twister, используемого numpy, или есть лучшие генераторы случайных чисел, которые следует (можно) использовать? (лучше в смысле времени выполнения, а также качества сгенерированной последовательности)

Любые предложения/опыты определенно приветствуются, спасибо!


person rammelmueller    schedule 01.09.2017    source источник
comment
Я бы посоветовал вам проверить существующие реализации MC, такие как PyMC или ведущий и посмотрите, какую реализацию ГСЧ они используют. Если MT numpy достаточно хорош для них, кажется разумным предположить, что он будет достаточно хорош для вашего приложения, верно?   -  person kazemakase    schedule 01.09.2017
comment
MT должно быть достаточно для MC, это согласно его вики-странице.   -  person L Selter    schedule 01.09.2017


Ответы (1)


Я не думаю, что кто-то может сказать вам, достаточно ли этого алгоритма, не зная, как используются случайные числа.

Что бы я сделал, так это заменил бы случайные числа numpy чем-то другим, конечно, уже есть другие доступные модули, которые предоставляют другие алгоритмы. Если на результаты вашего моделирования не влияет выбор генератора случайных чисел, это уже хороший знак.

person philippd    schedule 01.09.2017