蒙特卡罗模拟中的自由度分离

计算科学 蒙特卡洛
2021-12-10 09:08:49

我的问题可能非常简单,涉及蒙特卡洛布朗动力学模拟中的自由度分离。

处理外部势能中的粒子,我想在三个空间维度上模拟布朗运动。是否可以分别评估各个自由度,即计算 x 中的位移,评估概率,并接受/拒绝该步骤,然后对 y 和 z 重复?还是我必须在单个 MC 步骤中评估所有自由度?

现在,如果自由度不是独立的,即 x 中的位移会改变 y 中的势(概率)等,该怎么办?个体自由度还能单独计算吗?假设我计算 x 中的位移被接受但 y 中的位移被拒绝。我必须扔掉两个位移吗?或者我可以将位移保持在 x 中吗?

我知道在多粒子系统中,MC方法不会同时评估所有粒子,因此即使它们影响其他自由度的概率分布,也应该可以单独评估自由度。

3个回答

我假设您正在编写 Metropolis-Hastings Monte Carlo 算法。因此,您正在尝试生成移动以对配置空间进行采样并基于能量考虑 (MHMC) 接受/拒绝这些移动,对吗?如果是这样,那么您可以自由定义您的动作,无论您选择什么。最终会出现效率问题,因为提出不太可能的动作将导致模拟时间的接受概率很小。

根据您关于 x- 和 y- 位移的问题,我想这取决于您提出/测试移动的方法。一般来说,我们不会以这种方式对配置空间进行采样,你应该只提出一个移动(比如 y 方向 -5 埃,x 方向 2 埃),根据 MH 算法测试是否应该接受或拒绝,然后继续前进,而不是将其分解为组件。这实际上是一个效率问题,只要您保持遍历性和详细平衡,您就可以随意采样。

请注意,抓取几个原子(或分子、簇,无论您正在研究什么)并一次移动它们,然后计算接受概率也是完全可以接受的。

抛开效率考虑,如果它们满足详细的平衡,你的动作是可以的。

您所描述的通常称为“吉布斯采样”,请参阅http://en.wikipedia.org/wiki/Gibbs_sampler