我们可以使用相同的随机种子但在不同的机器上为随机算法重现相同的基准测试结果吗?

Can we reproduce the same benchmarking results for a stochastic algorithm, using the same random seed but on different machines?

我正在测试随机算法。为了使结果可重现,我计划使用相同的随机种子,并在发布时将此种子编号(整数)与基准测试结果一起包含在内。

但我有一个关于随机种子的幼稚问题。如果其他机器使用相同的随机种子,是否可以保证重现我的结果?其实我对随机种子的原理知之甚少。诚然,许多网站都或多或少地详细解释了它,但也许您对这个主题有一些想法可以分享?

具体来说,我有一个基于 scipy.optimize 过程的 python 项目。我将使用 numpy.random.seed(42) 作为我发布的基准测试结果,并期望其他人在我的机器上有相同的结果,只要使用相同的种子数。有道理吗?

如果你的意思是"Will the same Algorithm, correctly compiled and executed, running on different Machines (Computer, Abacus, or 'Counting Sticks') provide exactly the same number (subject to FP error and rounding)",那么答案是肯定的。

如果你的意思更直白点是“......它会完全一样吗。我可以在 Wendy's 点一份麦当劳汉堡(甚至在那里做饭)并且它会完全一样吗”,那么答案是否定的。

更准确地说,"The Benchmark result will not be the same on different Machines (even two Computers with exactly the same Model Number) except for rare coincidence (which is more likely to occur than comparing entirely different Machines, IE: Multiplication speed of an Abacus vs. a Calculator). The number (answer) derived from the same Algorithm (method) will be the same (subject to FP error and rounding) but the "“基准”几乎总是不同的。