Metropolis 算法中随机数的使用

计算科学 模拟
2021-12-09 06:47:51

Metropolis 算法中,我们根据以下标准接受或拒绝NVT合奏

e(EnewEold)/kTrandom(0,1).

为什么均匀分布的随机数在这里起作用?它是如何工作的?

1个回答

您陈述了验收标准:

e(EnewEold)/kTrandom(0,1)

左侧表示似然比Lnew/Lold一个新的状态和一个旧的状态。如果新状态比旧状态更有可能,Lnew/Lold>1,因此自动满足验收标准。

如果新状态的可能性小于旧状态,0<Lnew/Lold<1. 现在接受标准是随机满足的。新状态越不可能(与旧状态相比),它就越不可能被接受,但接受的概率总是有限的(嗯,无论如何都取决于机器精度)。

在实践中,这意味着随着状态空间的探索,算法通常会朝着更可能的状态移动,但偶尔会逆着可能性的梯度移动。如果似然分布中有局部最大值,这很重要,这样算法就可以“摆脱”局部最大值,继续探索状态空间的其他区域。如果没有这个特性,算法会卡在它遇到的似然分布的第一个小峰值上。它还允许对最大值附近的适当探索,状态的占用数量与状态的相对可能性成正比(随着迭代次数的接近)。