张量网络算法基础(五、TEBD算法和DMRG算法)


我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!
在这里插入图片描述

一、TEBD算法

定义

给定一个张量网络,把所有的指标求和,得出求和的结果。例如一个由 W×H 个张量组成的张量网络,如下图。该张量网络由三种不等价张量构成,该三种不等价张量为:在四个角上的张量为二阶张量、在边上的张量为三阶张量、在内部的张量为四阶张量。把该张量所有的指标求和,得出的结果是一个标量。

在这里插入图片描述

TEBD(time-evolving block decimation)算法为一种基于矩阵乘积态的、近似收缩张量网络的数值算法。要是忘记了什么是矩阵乘积态,戳这里:矩阵乘及态

TEBD算法是从处于边界的张量构成的MPS开始,一行一行或一列一列地收缩张量网络的算法。以下图的收缩为例,把张量网络沿水平方向从中间分成两部分,右图以下部分为例,下边界的张量也就是橙色的部分组成一个长度为W的MPS态,我们把它记为 ∣ φ D 0 ⟩ \left| {{\varphi }^{{{D}_{0}}}} \right\rangle φD0,中间的每一层张量也就是蓝色的部分构成作用在 ∣ φ D 0 ⟩ \left| {{\varphi }^{{{D}_{0}}}} \right\rangle φD0上的算符,记为 ρ ^ \hat{\rho } ρ^。看到这再结合之前学过的多体算符作用到多体态上的内容,有没有思绪万千?我们继续往下看。
在这里插入图片描述

TEBD的做法就是把上面这一层一层的张量 ρ ^ \hat{\rho } ρ^和MPS态 ∣ φ D 0 ⟩ \left| {{\varphi }^{{{D}_{0}}}} \right\rangle φD0进行收缩,如下图所示。每收缩一层就会产生一个新的MPS态,整个下半部分收缩的结果为另一个MPS态,记为 ∣ φ D ⟩ \left| {{\varphi }^{D}} \right\rangle φD,易得
∣ φ D ⟩ = ρ ^ H 2 − 1 ∣ φ D 0 ⟩ \left| {{\varphi }^{D}} \right\rangle \text{=}{{\hat{\rho }}^{\frac{H}{2}-1}}\left| {{\varphi }^{{{D}_{0}}}} \right\rangle φD=ρ^2H1φD0

在这里插入图片描述
下半层同理,类似地定义 ∣ φ U ⟩ =( ρ ^ T ) H 2 − 1 ∣ φ U 0 ⟩ \left| {{\varphi }^{U}} \right\rangle \text{=(}{{\hat{\rho }}^{T}}{{)}^{\frac{H}{2}-1}}\left| {{\varphi }^{{{U}_{0}}}} \right\rangle φU=(ρ^T)2H1φU0,所以整个张量网络收缩的结果为
Z = ⟨ φ U ∣ φ D ⟩ = ⟨ φ U 0 ∣ ρ ^ H − 2 ∣ φ D 0 ⟩ Z=\left\langle {{\varphi }^{U}} \right.\left| {{\varphi }^{D}} \right\rangle \text{=}\left\langle {{\varphi }^{{{U}_{0}}}} \right|{{\hat{\rho }}^{H-2}}\left| {{\varphi }^{{{D}_{0}}}} \right\rangle Z=φUφD=φU0ρ^H2φD0

一切看起来都那么的简单,但是如果我们只进行收缩其它什么操作都没有,那么们我们就会遇见一个问题,每次收缩都会使MPS态的辅助指标扩大D倍( ρ ^ \hat{\rho } ρ^水平方向指标的维数),所以此时需要引入MPS的最优裁剪,设置截断维数 χ \chi χ,如下图的操作。也就是在收缩的过程中,我们收缩一层,得到一个新的MPS态,通过中心正交形式计算MPS纠缠谱,将多于截断维数的奇异值和对应的奇异向量进行裁剪,最后将辅助指标的维数裁剪为 χ \chi χ

注意:这种收缩、裁剪的方式很重要,后面的学习还会涉及,理解还不够透彻可以再回顾下上篇博客有关MPS的内容TT分解和MPS态
在这里插入图片描述

TEBD算法计算一维格点模型基态

考虑N个自旋构成的一维海森堡模型:
H ^ = ∑ ⟨ i , j ⟩ H ^ i j , H ^ i j = ∑ α = x , y , z s ^ i α s ^ j α \widehat{H}=\sum_{\langle i, j\rangle} \widehat{H}_{i j}, \quad \widehat{H}_{i j}=\sum_{\alpha=x, y, z} \hat{s}_{i}^{\alpha} \hat{s}_{j}^{\alpha} H =i,jH ij,H ij=α=x,y,zs^iαs^jα

求解该模型的基态步骤如下:
(1) 获得演化算符的 e − τ H ^ i j {{e}^{-\tau {{{\hat{H}}}_{ij}}}} eτH^ij的系数张量:
G s 1 ′ s 2 ′ s 1 s 2 = ⟨ s 1 ′ s 2 ′ ∣ e − τ H ^ i j ∣ s 1 s 2 ⟩ {{G}_{{{s}_{1}}'{{s}_{2}}'{{s}_{1}}{{s}_{2}}}}=\left\langle {{s}_{1}}'{{s}_{2}}' \right|{{e}^{-\tau {{{\hat{H}}}_{ij}}}}\left| {{s}_{1}}{{s}_{2}} \right\rangle Gs1s2s1s2=s1s2eτH^ijs1s2

其中 τ \tau τ为极小的正实数,基态演化算符:
P ^ = lim ⁡ K → ∞   ( e − τ ∑ ⟨ i , j ⟩ H ^ i j ) K \hat{P}=\underset{K\to \infty }{\mathop{\lim }}\,{{({{e}^{-\tau \sum\nolimits_{\left\langle i \right.,\left. j \right\rangle }{{{{\hat{H}}}_{ij}}}}})}^{K}} P^=Klim(eτi,jH^ij)K

其被表示为由四阶张量G构成的如下图所示的张量网络;
在这里插入图片描述

(2) 随机初始化MPS态,MPS满足归一性,将随机初始化的MPS态放置在张量网络底部,以竖直方向和MPS态一层一层地进行收缩,只要MPS态和 P ^ \hat{P} P^不完全正交,就可以把任意一个态投影到基态上;
补充:这里收缩和裁剪的方式不止一种,我们可以先思考一下,答案后面揭晓
在这里插入图片描述

(3) 将靠近MPS态的半层张量与MPS态进行收缩,部分近邻的两个张量被收缩成一个四阶张量。
在这里插入图片描述

(4) 利用规范变化,将MPS态变换为中心正交形式,正交中心为第一个四阶张量。
在这里插入图片描述

(5) 对中心张量进行奇异值分解,如果奇异谱维数大于截断维数 χ \chi χ,仅保留 χ \chi χ个最大的奇异值与奇异向量。
在这里插入图片描述

(6) 移动正则中心到下一个四阶张量,重复步骤(4)—(5)直到所有四阶张量被分解成三阶张量。
(7) 进行完上述步骤后MPS被变换成为演化前的形式,重复(3)—(6)收缩下一个半层张量直到MPS收敛。
在这里插入图片描述

TEBD算法的方法并不唯一…
在这里插入图片描述
可以每次只收缩一个算符然后进行裁剪,也就是收缩一个算符裁剪一次,而不是收缩一层算符再进行裁剪,没想到吧!( ఠൠఠ )ノ

二、密度矩阵重整化群算法(DMRG)

密度矩阵重整化群(DMRG)是基于最大本征态求解对应的最优化问题,即求解哈密顿量的基态和基态能。DMRG就是更新各个张量使能量达到最小,更新策略不唯一。

在单点DMRG中每次更新MPS中的一个张量,其余的张量看成给定的参数。将单个张量的优化问题等价为局域矩阵最大本征值问题
E g = min ⁡ ⟨ φ ∣ φ ⟩ = 1   ⟨ φ ∣ H ^ ∣ φ ⟩ {{E}_{g}}=\underset{\left\langle \varphi \right|\left. \varphi \right\rangle =1}{\mathop{\min }}\,\left\langle \varphi \right|\hat{H}\left| \varphi \right\rangle Eg=φφ=1minφH^φ

不懂?我们看图说话。以更新第二个张量为例,定义有效哈密顿量 h ^ 2 {{\hat{h}}_{2}} h^2,如下图。
在这里插入图片描述

把需要更新的张量及其对应的共轭去除,未相连的部分之间进行直积运算,每一项收缩的结果为六阶张量,所以 h ^ 2 {{\hat{h}}_{2}} h^2就是六个六阶张量的求和,故也是六阶张量。最终最优化问题变成了:
E = min ⁡ ∣ A ( 2 ) = 1 ∣   ⟨ A ( 2 ) ∣ h ^ 2 ∣ A ( 2 ) ⟩ E=\underset{\left| {{A}^{(2)}}=1 \right|}{\mathop{\min }}\,\left\langle {{A}^{(2)}} \right|{{\hat{h}}_{2}}\left| {{A}^{(2)}} \right\rangle E=A(2)=1minA(2)h^2A(2)

其中 A ( 2 ) {{A}^{(2)}} A(2) h ^ 2 {{\hat{h}}_{2}} h^2的最小本征态,所以 A ( 2 ) {{A}^{(2)}} A(2)应被更新为 h ^ 2 {{\hat{h}}_{2}} h^2的最低本征态。

在这里插入图片描述

min ⁡ ∣ A ( 2 ) = 1 ∣   ⟨ A ( 2 ) ∣ h ^ 2 ∣ A ( 2 ) ⟩ \underset{\left| {{A}^{(2)}}=1 \right|}{\mathop{\min }}\,\left\langle {{A}^{(2)}} \right|{{\hat{h}}_{2}}\left| {{A}^{(2)}} \right\rangle A(2)=1minA(2)h^2A(2)

得到基态MPS后,利用中心正交形式简化对算符观测量的计算,如下面两种情况。
正交中心与观测量所在格点重合时,如下图,将观测量左/右两边的张量进行收缩以此来达到简化对算符观测量的计算的目的。
在这里插入图片描述

正交中心与观测量所在格点不重合时,如下图,将正交中心左边的张量进行收缩,观测量右边的算符进行收缩,从而简化对算符观测量的计算。
在这里插入图片描述

三、基于自动微分的基态变分算法

看了我张量网络算法基础第三篇博客的小伙伴一定会对这个感觉到莫名的亲切,但是这里针对的对象和之前是不同的。没看的小伙伴也没事,戳这里快速了解下:格点模型

与之前利用自动微分求解对称矩阵的最大本征向量不同的是,自动微分法求解多体系统基态,对应的优化问题写为:
E = min ⁡ { A ( n ) }   ⟨ φ ∣ H ^ ∣ φ ⟩ ⟨ φ ∣ φ ⟩ E=\underset{\left\{ {{A}^{(n)}} \right\}}{\mathop{\min }}\,\frac{\left\langle \varphi \right|\hat{H}\left| \varphi \right\rangle }{\left\langle \varphi \right|\left. \varphi \right\rangle } E={A(n)}minφφφH^φ

∣ φ ⟩ \left| \varphi \right\rangle φ写成MPS态的形式, H ^ \hat{H} H^写成 H ^ = ∑ ⟨ i , j ⟩ H ^ i j \hat{H}={{\sum\nolimits_{\left\langle i,\left. j \right\rangle \right.}{{\hat{H}}}}_{ij}} H^=i,jH^ij的形式,变分参数为MPS中的各个张量 { A ( n ) } \left\{ {{A}^{(n)}} \right\} {A(n)},梯度更新的公式为:
A ( n ) ← A ( n ) − η ∂ E ∂ A ( n ) {{A}^{(n)}}\leftarrow {{A}^{(n)}}-\eta \frac{\partial E}{\partial {{A}^{(n)}}} A(n)A(n)ηA(n)E

虽然表面上看起来不太一样,但实际上和之前的求解对称矩阵的最大本征向量的本质还是一样的。这里通过不断更新MPS的张量达到求解基态的目的。

四、矩阵乘积态与纠缠熵面积定律

由MPS的正交形式可以看出奇异谱的维数等于辅助指标的维数,且有 ∣ Λ ∣ =1 \left| \Lambda \right|\text{=1} Λ=1,设奇异谱维数为 χ \chi χ,当 Λ = [ 1 χ 1 χ 1 χ 1 χ ] \Lambda \text{=}\left[ \begin{matrix} \frac{\text{1}}{\sqrt{\chi }} & \frac{\text{1}}{\sqrt{\chi }} & \frac{\text{1}}{\sqrt{\chi }} & \frac{\text{1}}{\sqrt{\chi }} \\ \end{matrix} \right] Λ=[χ 1χ 1χ 1χ 1]时,纠缠熵
S = − ∑ k = 0 χ − 1 Λ k 2 ln ⁡ Λ k 2 S=-\sum\limits_{k=0}^{\chi -1}{{{\Lambda }_{k}}^{2}\ln {{\Lambda }_{k}}^{2}} S=k=0χ1Λk2lnΛk2达到极大值,我们可以尝试去证明一下这个结论:

前提: Λ 1 2 + Λ 2 2 + ⋯ + Λ x − 1 2 = 1 \Lambda_{1}^{2}+\Lambda_{2}^{2}+\cdots+\Lambda_{x-1}^{2}=1 Λ12+Λ22++Λx12=1
根据拉格朗日条件极值法求 S 的极值
证明:
f ( Λ 0 , Λ 1 , ⋯   , Λ x − 1 , p ) = Λ 0 2 ln ⁡ Λ 0 2 + Λ 1 2 ln ⁡ Λ 1 2 + ⋯ + Λ x − 1 2 ln ⁡ Λ x − 1 2 + p ( Λ 0 2 + Λ 1 2 + ⋯ + Λ x − 1 2 ) f({{\Lambda }_{0}},{{\Lambda }_{1}},\cdots ,{{\Lambda }_{x-1}},p)=\Lambda _{0}^{2}\ln \Lambda _{0}^{2}+\Lambda _{1}^{2}\ln \Lambda _{1}^{2}+\cdots +\Lambda _{x-1}^{2}\ln \Lambda _{x-1}^{2}+p(\Lambda _{0}^{2}+\Lambda _{1}^{2}+\cdots +\Lambda _{x-1}^{2}) f(Λ0,Λ1,,Λx1,p)=Λ02lnΛ02+Λ12lnΛ12++Λx12lnΛx12+p(Λ02+Λ12++Λx12)

{ 2 Λ 0 ln ⁡ Λ 0 2 + Λ 0 2 2 Λ 0 Λ 0 2 + 2 p Λ 0 = 0 2 Λ 1 ln ⁡ Λ 1 2 + Λ 1 2 2 Λ 1 Λ 1 2 + 2 p Λ 1 = 0 ⋮ 2 Λ x − 1 ln ⁡ Λ x − 1 2 + Λ x − 1 2 2 Λ x − 1 Λ x − 1 + 2 p Λ x − 1 = 0 Λ 0 2 + Λ 1 2 + ⋯ + Λ x − 1 2 = 1 \left\{\begin{array}{c}2 \Lambda_{0} \ln \Lambda_{0}^{2}+\Lambda_{0}^{2} \frac{2 \Lambda_{0}}{\Lambda_{0}^{2}}+2 p \Lambda_{0}=0 \\ 2 \Lambda_{1} \ln \Lambda_{1}^{2}+\Lambda_{1}^{2} \frac{2 \Lambda_{1}}{\Lambda_{1}^{2}}+2 p \Lambda_{1}=0 \\ \vdots \\ 2 \Lambda_{x-1} \ln \Lambda_{x-1}^{2}+\Lambda_{x-1}^{2} \frac{2 \Lambda_{x-1}}{\Lambda_{x-1}}+2 p \Lambda_{x-1}=0 \\ \Lambda_{0}^{2}+\Lambda_{1}^{2}+\cdots+\Lambda_{x-1}^{2}=1\end{array}\right. 2Λ0lnΛ02+Λ02Λ022Λ0+2pΛ0=02Λ1lnΛ12+Λ12Λ122Λ1+2pΛ1=02Λx1lnΛx12+Λx12Λx12Λx1+2pΛx1=0Λ02+Λ12++Λx12=1

{ ln ⁡ Λ 0 2 + 1 + p = 0 ln ⁡ Λ 2 2 + 1 + p = 0 ⋮ ln ⁡ Λ x − 1 2 + 1 + p = 0 Λ 0 2 + Λ 1 2 + ⋯ + Λ x − 1 2 = 1 \left\{\begin{array}{c}\ln \Lambda_{0}^{2}+1+p=0 \\ \ln \Lambda_{2}^{2}+1+p=0 \\ \vdots \\ \ln \Lambda_{x-1}^{2}+1+p=0 \\ \Lambda_{0}^{2}+\Lambda_{1}^{2}+\cdots+\Lambda_{x-1}^{2}=1\end{array}\right. lnΛ02+1+p=0lnΛ22+1+p=0lnΛx12+1+p=0Λ02+Λ12++Λx12=1

所以 Λ 0 = Λ 1 = ⋯ = Λ x − 1 = 1 χ \Lambda_{0}=\Lambda_{1}=\cdots=\Lambda_{x-1}=\frac{1}{\sqrt{\chi}} Λ0=Λ1==Λx1=χ 1

给定MPS的辅助指标维数后,其能容纳的纠缠熵上限为
S = − ∑ k = 0 χ − 1 1 χ ln ⁡ 1 χ = ln ⁡ χ S=-\sum\limits_{k=0}^{\chi -1}{\frac{1}{\chi }\ln \frac{1}{\chi }=\ln \chi } S=k=0χ1χ1lnχ1=lnχ

由此可见,在任意一处剪断MPS进行二分后,两部分之间的纠缠熵大小与各部分包含的格点个数无关,仅与边界处辅助指标的维数有关。

定义纠缠熵的面积定律:对于D维格点系统的量子态,将体系二分后,两部分之间的纠缠熵满足: S ∼ O ( l D − 1 ) S\sim O({{l}^{D-1}}) SO(lD1),其中 l l l 代表空间尺度。对于MPS态
S = ln ⁡ χ = l D − 1 ln ⁡ χ S=\ln \chi ={{l}^{D-1}}\ln \chi S=lnχ=lD1lnχ

在这里插入图片描述

对于一般的张量网络态,二分纠缠熵的上限一般是由穿过边界的辅助指标的总维数确定的,选取穿过辅助指标个数最小的边界进行二分,例如:
在这里插入图片描述
该体系二分后两部分之间的纠缠熵满足:
S ∼ ln ⁡ χ 1 χ 2 = ln ⁡ χ 1 + ln ⁡ χ 2 S\sim \ln {{\chi }_{1}}{{\chi }_{2}}=\ln {{\chi }_{1}}+\ln {{\chi }_{2}} Slnχ1χ2=lnχ1+lnχ2

所以对于一般的张量网络态纠缠熵的上限
S ∼ N ln ⁡ χ ( N ∼ O ( l D − 1 ) ) S\sim N\ln \chi(N\sim O({{l}^{D-1}})) SNlnχNO(lD1))

要构建满足二维纠缠熵面积定律的张量网络态,需要改变网络结构,例如定义在二维张量网络上的投影纠缠对态(PEPS),PEPS的 D=2,穿过边界的指标个数满足 O ( l 2 − 1 ) O({{l}^{2-1}}) O(l21)也就是 O ( l 1 ) O({{l}^{1}}) O(l1)
在这里插入图片描述

我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值