3.3.1. 基本模型与算法介绍¶
3.3.1.1. Ising 模型 与 Potts 模型¶
Ising 模型,是物理学家研究磁性材料的模型,在统计物理中已经被广泛的研究过了。一个相近的模型是 Potts 模型 。与Ising模型类似,Potts 模型也是定义在晶格空间 \(\mathcal{L}\) 上的 \(x=(x_l,x\in \mathcal{L})\) 。
与Ising模型不同,在Potts 模型里面每一个 \(x_l\) 可以取 \(q:{1,\dots,q}\) 。能量势可以取为:
这里 \(i\sim j\) 表示i和j在晶格空间里面是相邻的。于是我们关心的分布就是Bolzmann分布:
\(\beta=(kT)^{-1}\) , \(k\) 是Bolzmann常数,T是绝对温度。当 \(q=2\) 时,Potts模型就是Ising模型:
为了简单起见,我们假设 \(h_j\equiv 0\) 。
关于这个模型的一个重要的问题是相变现象:当温度高的时候,可以观察到所有的spin几乎是独立变化的;而当温度低到一个特定的温度 \(c_0\) 以后,所有的spin就趋于保持一致。
标准的 Metropolis算法正好方便的应用于模拟这个模型:第一步,随机选一个spin将他的取值 \(x_l\) 取为 \(-x_l\) ; 第二步,计算 Metropolis 比例来决定是否接受这个变化。但是当温度接近或者低于 \(c_0\) 的时候,这个算法变的非常的慢。
3.3.1.2. 算法介绍¶
3.3.1.2.1. The Swendsen-Wang Algorithm as Data Augmentation¶
概念上,我们可以将 Swendsen-wang 算法视为一种“数据增强”(data augmentation scheme)。我们用一个连接变量 \(u=(u_{l\sim l'})\) 来增强数据。每一个 \(u_{l \sim l'}\) 在晶格的边界上,取值范围为: \([0,e^{2 \beta J}]\) 。
注意到 \(1+x_l x_{l'}\) 等于 0 或者2。所以,如果我们引入辅助变量 \(u\) 使得:
于是 x 的边界分布就是我们想要的分布。 显然,在这个联合分布中,条件分布 \([u|x]\) 是各个基于两个相邻的spin的平均分布的乘积。反过来,给定u,x的条件分布也容易得到:如果 \(u_{l,l'}>1\) ,则 \(x_l=x_{l'}\) ;否则对 \(x_l\) 没有限制。 于是,u 只有在 \(I[u_{l,l'}>1\) 时,对 x 起作用。基于u的作用,我们将这些晶格根据相互直接有没有连接来分成组(cluster)。然后,所有属于同一组的 \(x_l\) 必须保持相同的值。在这样的分组的前提下,没一种情况出现的概率都是相同的。
所以,我们还可以做另一种数据增强,只用一个 连接变量 \(b =(b_{l\sim l'}\) ,来表示 \(u(l,l')>1\) 是否成立。也就是说,我们定义:
于是,相应的增强模型是:
且 \(b_{l,l'}\) 如果 \(x_l\neq x_{l'}\) 。 spin的分组(clustering)可以通过将连接为1的邻居相连。分组之间的spin方向相互独立。
Swendsen-Wang 算法:
对于一个给定的spin情况,以概率 \(1-e^{-2\beta J}\) 建立每一个相等晶格之间的边界的连接变量 \(\langle l,l' \rangle\) 取值为1 ,否则取值0。
在连接变量 b 前提下,通过 \(p(x|b)\) 更新 spin变量x ,即在所有可能情况下的平均分布。也就是说,每一个组以概率 0.5 翻转。
3.3.1.2.2. The Modification by Wolff¶
Wolff的修正使得算法的效率得到了很大的改善:
Wolff 算法:
对于给定的一个情况x,随机选取一个晶格 \(x_l\) ,然后从一个连接集 \(C\) 递归的生长:
检查 \(C^{old}\) 所有未检查的邻居;并且按照 SW算法中的规则建立连接。
将新连接到 \(C^{old}\) 上的单元添加到 \(C^{old}\) 中生成 \(C^{new}\)
停止上诉递归过程直到没有未检查的邻居可以添加。将最后的集合称为 \(C\)
将 集合 C 中的所有元素翻转,(不带随机性)。
3.3.1.2.3. Further Generalization¶
Niedermayer 提出允许连接取值不同的邻居。设 \(p_a\) 为连接相等邻居的概率, \(p_b\) 为连接相反邻居的概率。生长完一个组 \(C\) (Cluster)之后,反转整个 \(C\) 。 选取适当的 \(p_a,p_b\) 使得: