最近,我看到一条评论声称几乎所有使用蒙特卡罗方法的研究人员都做错了。它继续详细说明,仅仅为 PRNG 的不同实例(例如 Mersenne Twister)选择不同的种子并不足以确保无偏见的结果,因为可能会发生不良碰撞。关于 Mersenne Twister的维基百科文章似乎证实了这一点:
仅在种子值(而不是其他参数)上不同的多个 Mersenne Twister 实例通常不适用于需要独立随机数生成器的 Monte-Carlo 模拟,尽管存在选择多组参数值的方法。
我不得不承认,我有罪。但是到目前为止我看到的所有其他并行蒙特卡罗库的实现也是如此,特别是ALPS。
维基百科文章还引用了两篇提供补救措施的论文:
这两种方法都由 Mersenne Twister 算法的原作者 Matsumoto 和 Nishimura 共同完成。
恐怕我对数论或代数不是很了解,也没有完全掌握上述方案或 Mersenne Twister 背后的数学。我的问题主要是实用性的:
- 如果在实践中几乎没有人关心它(至少在我的社区中),那么在不采用这种方案时,我真的需要担心在我的模拟中引入偏差吗?
- 如果我要实施其中一项对策,我是否可以假设 Jump-Ahead 更适合,因为它基于可靠的理论并且是更现代的方法?