一般来说(在实际应用中),假设我使用的是随机算法(例如,使用 MCMC 从分布中采样,然后计算对于某些功能)
假设我的算法将面对所有可能的输入,并且我使用伪随机生成器来提供随机性。
每次算法启动时,我是否应该通过固定一个随机种子来去随机化我的算法?
我提出这个问题的原因是通过去随机化,我可以确保每个输入都会有相应的输出,这让我在实际使用中感觉更舒服。但是,我相信如果我像这样对它进行去随机化,我会失去一些东西(也许算法对于最坏的情况输入非常糟糕)。
一般来说(在实际应用中),假设我使用的是随机算法(例如,使用 MCMC 从分布中采样,然后计算对于某些功能)
假设我的算法将面对所有可能的输入,并且我使用伪随机生成器来提供随机性。
每次算法启动时,我是否应该通过固定一个随机种子来去随机化我的算法?
我提出这个问题的原因是通过去随机化,我可以确保每个输入都会有相应的输出,这让我在实际使用中感觉更舒服。但是,我相信如果我像这样对它进行去随机化,我会失去一些东西(也许算法对于最坏的情况输入非常糟糕)。
你肯定想在开发过程中去随机化你的程序。否则您将无法调试它,因为问题无法重现。
同时,一旦您知道该算法有效,您需要针对多个种子或使用不同的随机数生成器运行它,以确保您的结果(例如整体平均值、标准差等)独立于实际的序列随机数。