并行回火算法原理和在Ising类模型中的应用

Monte Carlo采样的过程相当于在模型的自由能面上按照一定规则游走,每一步采一次样。对于Metropolis算法,对于Ising自旋模型也就是single spin flip算法,这个过程大致是随机产生一个下一步,但是能否接受要看与当前点的能量差。如果能量降低则一定接受下一步,如果能量升高,则以概率$p=e^{-\beta\Delta E}$来决定是否接受。这样总体上采样点在向能量低的地方走,同时也有概率能够翻越势垒。但是如果势垒太高,那么这个概率就很小,需要很长时间才能使采样点翻出势垒。显然,势垒越高,需要的步数就越长。对于某些体系,如自旋玻璃这样有阻挫的体系,势能面非常“崎岖”,有很多的局部极小点,并且可能势垒也很高。使用Metropolis算法就会发现MC的自相关时间非常长,也就是说,采样点被困在某个势阱当中了。重复计算可以观察到每次计算的物理量之间误差可能很大,这是因为每次模拟的时候采样点被困在不同的势阱中。这意味着在有限时间内,算法失去了遍历性。如果无法增加采样时间,那么Metropolis算法就失效了。

并行回火(parallel tempering,又称复本交换replica exchange)是一种Monte Carlo采样算法,专门用于处理这种有“崎岖”的势能面的体系。“回火”是金属加工的一种技术,将金属稍作加热,使微观结构达到热力学平衡,从而改变金属性能。并行回火的大致原理就是使用多个副本(replicas)在一系列温度下同时模拟,并且相互交换温度来促进采样。

算法

假设我们要计算某一个较低温度$T_0$下体系的某个热力学量。我们使用$n$个副本,每个副本对应一个温度$T_i$,这一系列温度由低到高$T_0\beta_1>\ldots>\beta_{n-1}>0$。这$n$个副本并行地按照Metropolis算法进行演化,并且按照一定频率尝试交换相邻温度的两个副本的构型。这个交换可以看做一个特殊的Metropolis步骤,提出交换之后要按照一定的概率决定是否接受交换:

这里$\Delta\beta=\beta_i-\beta_j$,$\Delta E=E_i-E_j$,$i,j$是被交换的两个副本。如果接受s,则交换两个副本的构型。

参考资料

[1] Frenkel, Daan, and Berend Smit. “Understanding molecular simulation: From algorithms to applications.” Computational sciences series 1 (2002): 1-638.

s. 取$[0,1)$随机数,如果小于这个概率,则接受,否则不接受。