Tensor Renormalization Group Approach to Two-Dimensional Classical Lattice Models
DOI:PRL 99, 120601 (2007)
1.介绍
这种方法在本质上与块自旋方法( block spin methods)相似,但同时建立在量子纠缠理论的基础上。在这个意义上,该技术可以看作是DMRG方法的经典类比。
密度矩阵重正化群(DMRG)技术在一维量子系统的分析中被证明是非常强大的。因此,我们尝试在高维空间发展类似的重整化群方法,这种方法可以解决许多目前难以解决的问题(如2D Hubbard模型)。虽然经典的实空间重整化群方法(如块自旋方法)已经存在多年,但它们从来没有达到DMRG的通一性和精确性。
在二维的情况下,利用量子信息论的思想,提出了一种数值重整化群方法,该方法可以有效地求解任意二维经典晶格模型。我们将这种技术称为张量重整化群方法(TRG)——没有sign problem,并且同样适用于具有复杂权重的模型。
该方法的优点是,它是一个完全各向同性的粗粒化过程,在思想上类似于块自旋方法。因此,它也适合于研究宇宙远距离物理。在理论层面上,这种方法也揭示了经典RG与量子纠缠的关系。
TRG适合在张量网络模型中运用,许多著名的统计力学模型,如Ising模型、Potts模型和六顶点模型,都可以很自然地写成张量网络模型,即所有具有局部相互作用的经典格模型都可以写成张量网络模型
2.具体算法
2.1Tensor network models
我们现在来描述蜂巢晶格上的张量网络模型,首先指定一个(循环对称)张量
T
i
j
k
T_{ijk}
Tijk(
i
,
j
,
k
=
1
,
.
.
.
,
D
i ,j,k= 1,...,D
i,j,k=1,...,D),相应的张量网络在蜂窝晶格的每个键上的自由度为
i
i
i(
i
=
1
,
.
.
.
,
D
i = 1,...,D
i=1,...,D)
(
i
,
j
,
k
,
.
.
.
i ,j,k,...
i,j,k,...)的权重为:
e
−
S
(
i
,
j
,
k
,
.
.
.
)
=
T
i
j
k
T
i
l
m
T
j
n
p
T
k
q
r
.
.
.
.
e^{-S(i ,j,k,...)} = T_{ijk}T_{ilm}T_{jnp}T_{kqr}....
e−S(i,j,k,...)=TijkTilmTjnpTkqr.... 即将下图晶格中所有的张量进行乘积
配分函数是所有权值的和:
Z
=
∑
i
j
k
.
.
.
e
−
S
(
i
,
j
,
k
,
.
.
.
)
=
∑
i
j
k
.
.
.
T
i
j
k
T
i
l
m
T
j
n
p
T
k
q
r
.
.
.
.
Z = \sum_{ijk...}e^{-S(i ,j,k,...)} = \sum_{ijk...}T_{ijk}T_{ilm}T_{jnp}T_{kqr}....
Z=ijk...∑e−S(i,j,k,...)=ijk...∑TijkTilmTjnpTkqr....即,配分函数是通过取所有张量的乘积并且缩并每个键上的指标对得到。
2.2The TRG method
TRG是一种利用实空间RG流计算配分函数Z的方法,下面我们将解释这种方法在蜂窝晶格的情况下。
每个粗粒化迭代由两个单独的步骤组成(粗粒化转换):① 近似 ② 精确
如图所示:
①近似
首先找到一个张量
S
S
S:
∑
n
S
l
i
n
S
j
k
n
≈
∑
m
T
i
j
m
T
k
l
m
\sum_nS_{lin}S_{jkn} \approx\sum_mT_{ijm}T_{klm}
n∑SlinSjkn≈m∑TijmTklm注:如何找到
S
S
S将在后面讲到
这时我们可以重新连接晶格,进行替换:
整个过程就是:
注:这时配分函数是通过在新晶格上收缩S张量得到的。
② 精确
我们将三组相邻点组合在一起,用一个粗粒化张量
T
′
T^{'}
T′格点代替它们:
其中张量
T
′
T^{'}
T′是由三角形的三个键缩并得到的:
T
i
j
k
′
=
∑
p
q
r
S
k
p
q
S
j
q
r
S
i
r
p
T^{'}_{ijk} = \sum_{pqr}S_{kpq}S_{jqr}S_{irp}
Tijk′=pqr∑SkpqSjqrSirp整个过程就是:
整个过程中格点的数量减少了三倍。
注:热力学观测值和相关函数可以由两种方法得到:
1.对
F
F
F求导,其中
F
=
−
l
o
g
(
Z
)
F = -log(Z)
F=−log(Z) (
Z
Z
Z为配分函数)
2.评估更一般模型的自由能,其中张量
T
i
j
k
T_{ijk}
Tijk随位置而变化
注:张量
T
T
T将收敛于不动点
T
∗
T^{*}
T∗
这种方法不局限于蜂窝晶格,也可以很容易地在其他晶格上实现,如图:
2.3如何确定 S S S
我们将
∑
m
T
i
j
m
T
k
l
m
\sum_mT_{ijm}T_{klm}
∑mTijmTklm写为
D
2
×
D
2
D^2\times D^2
D2×D2的矩阵
M
M
M:
M
l
i
,
j
k
=
∑
m
T
i
j
m
T
k
l
m
M_{li,jk} = \sum_mT_{ijm}T_{klm}
Mli,jk=m∑TijmTklm我们也可以考虑张量
S
l
i
n
S_{lin}
Slin为一个
D
2
×
D
D^2\times D
D2×D的矩阵
那么我们
∑
n
S
l
i
n
S
j
k
n
≈
∑
m
T
i
j
m
T
k
l
m
\sum_nS_{lin}S_{jkn} \approx\sum_mT_{ijm}T_{klm}
∑nSlinSjkn≈∑mTijmTklm问题可以化为找到矩阵
S
S
S,使得满足:
M
=
S
S
T
M = SS^T
M=SST一般来说,这个因式分解不能精确地完成,因为
M
M
M的秩为
D
2
D^2
D2,而
S
S
T
SS^T
SST的秩最多为
D
D
D
但是我们可以获得近似的解,其思想是选择误差
∣
M
−
S
S
T
∣
2
|M-SS^T|^2
∣M−SST∣2最小的矩阵
S
S
S,然后对
M
M
M进行SVD分解得到我们最优的
S
S
S。
更详细的步骤:
(1)
M
l
i
,
j
k
=
∑
n
s
n
U
l
i
,
n
V
j
k
,
n
∗
M_{li,jk} = \sum_n s_nU_{li,n}V_{jk,n}^*
Mli,jk=∑nsnUli,nVjk,n∗(其中
s
n
s_n
sn为奇异值,
U
,
V
U,V
U,V是酉矩阵)
(2)截断矩阵
U
l
i
,
n
U_{li,n}
Uli,n和
V
j
k
,
n
V_{jk,n}
Vjk,n,只保留与最大
D
D
D个奇异值对应的列,于是我们得到矩阵
U
~
l
i
,
n
\tilde{U}_{li,n}
U~li,n和
V
~
j
k
,
n
\tilde{V}_{jk,n}
V~jk,n的维数为
D
2
×
D
D^2\times D
D2×D
(3)最后我们令
S
l
i
n
=
s
n
U
~
l
i
,
n
S_{lin} = \sqrt{s_n}\tilde{U}_{li,n}
Slin=snU~li,n
注:只要我们稍微调整一下相位模糊度:
U
l
i
,
n
→
U
l
i
,
n
e
i
ϕ
n
,
V
j
k
,
n
→
V
j
k
,
n
e
−
i
ϕ
n
U_{l i, n} \rightarrow U_{l i, n} e^{i \phi_{n}}, V_{j k, n} \rightarrow V_{j k, n} e^{-i \phi_{n}}
Uli,n→Uli,neiϕn,Vjk,n→Vjk,ne−iϕn就可以得到要求的因式分解。但是在实践中,忽略相位调整问题往往更方便,直接令
S
l
i
n
A
=
s
n
U
~
l
i
,
n
,
S
j
k
n
B
=
s
n
V
~
j
k
,
n
∗
S_{\mathrm{lin}}^{A}=\sqrt{s_{n}} \tilde{U}_{l i, n}, S_{j k n}^{B}=\sqrt{s_{n}} \tilde{V}_{j k, n}^{*}
SlinA=snU~li,n,SjknB=snV~jk,n∗
结果就是我们得到:
∑
n
S
lin
A
S
j
k
n
B
≈
∑
m
T
i
j
m
T
k
l
m
\sum_{n} S_{\operatorname{lin}}^{A} S_{j k n}^{B} \approx \sum_{m} T_{i j m} T_{k l m}
n∑SlinASjknB≈m∑TijmTklm其中
S
A
S^A
SA和
S
B
S^B
SB只在一些相位因子上不同
我们可以运用TRG,只是我们需要对
A
A
A和
B
B
B格子追踪他们的张量
T
A
T^A
TA和
T
B
T^B
TB
注:
这种最优分解的误差与迭代次数无关,并且可以通过增加D来任意减小
误差为
ε
∼
e
x
p
[
−
c
o
n
s
t
×
(
l
o
g
D
)
2
]
\varepsilon \sim exp[-const \times(logD)^2]
ε∼exp[−const×(logD)2](与DMRG中的截断误差相同)