我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/28ead37d28f6c14fc1eed1ea980648a3.png#pic_center)
一、无穷大张量网络的本征自洽方法
无穷大张量网络的本征自洽方法,称为张量网络编码算法(TNE),其思想是将无穷大TN的收缩问题等价成为局域自洽本征方程组求解问题,对于这个自洽的含义不了解也没关系,后文会有介绍,可以放心往后看。
注释:张量网络简称TN
将一整行张量构成的MPO当作哈密顿量,则收缩计算可表示成如下“基态”极小化问题,即 min ⟨ φ ∣ φ ⟩ ⟨ φ ∣ M P O ∣ φ ⟩ \underset{\left\langle \varphi | \varphi \right\rangle }{\mathop{\min }}\,\left\langle \varphi \right|MPO\left| \varphi \right\rangle ⟨φ∣φ⟩min⟨φ∣MPO∣φ⟩
当变分达到极值点后,我们可以近似地认为,MPS就是MPO的本征态,于是本征方程
M
P
O
∣
φ
⟩
∼
∣
φ
⟩
MPO\left| \varphi \right\rangle \sim \left| \varphi \right\rangle
MPO∣φ⟩∼∣φ⟩。这个有什么用呢?请继续往下看。
只要MPO的基态对应于边界的MPS态,整个张量网络可被看成是无穷多层MPO,其收缩可以被等效为“基态”MPS与一层MPO的内积,一层一层地收缩,最后整个张量网络就被收缩为一层张量,如下图所示,这极大的简化了问题。
进行如上收缩以后,假设MPS满足中心正交形式,中心tensor左边的都是从左到右的正交形式,中心tensor右边的都是从右到左的正交形式。根据MPS态的平移不变性,假设中心tensor左边的张量都是一样的,中心tensor右边的张量都是一样的,所以中间有三个不等价张量。中心张量为有效哈密顿量的本征态,我们可以将这个无穷长的收缩问题转化成如下图的局域收缩问题:
注意:上图中左边的中心tensor (绿色张量) 和右边的中心张量不一样
左/右正交张量可通过对中心张量进行SVD分解或QR分解获得
左/右环境张量分别为左/右转移哈密顿量的本征态,有效哈密顿量由TN中的张量及左/右环境张量构成。
在iDMRG中可以不知道无穷大的张量网络,只需要知道局域张量,需要求解的张量为中心张量、左右正交张量、左右环境张量。通过如下的自洽方法,迭代求解上述张量,如图:
步骤:
(1) 构造有效哈密顿量,此时有效哈密顿量中的左右最大本征张量是不知道的,可以随机初始化;
(2) 通过构造的有效哈密顿量求本征态得到中心张量;
(3) 通过SVD或QR分解得到从左向右以及从右向左的满足正交条件的三阶张量;
(4) 用的到的三阶张量构造定义左/右转移哈密顿量;
(5) 用构造的左/右哈密顿量求左/右本征态;
(6) 用求得的左/右本征态定义有效哈密顿量;
(7) 重复步骤(2)~(6)直到收敛。
最后通过有效哈密顿量和左/右转移哈密顿量的本征值和最后达到收敛的张量进行收缩可以得到无穷大张量网络收缩的结果。
自洽的解释来了!
由上面我们可以看出对于局域自洽本征方程组求解问题,自洽体现在一组本征问题的定义是基于另一组本征问题的解,例如有效哈密顿量的定义是基于左/右转移哈密顿量本征问题的解,而左/右转移哈密顿量的定义是基于有效哈密顿量本征问题的解,有木有很神奇。
iTEBD算法对局部张量收缩和裁剪的操作如图所示:
当系统无穷大且满足平移不变性,那么算法中所有计算都是对不等价张量的计算。定义iTEBD中的“转移哈密顿量”,当MPS收敛时,易得该张量为转移哈密顿量的本征态。
让人头疼的来了!
当利用iTEBD收缩竖直方向指标来计算张量网络收缩,等效同时在水平方向上进行iDMRG计算。iTEBD计算得到的是水平方向上一行张量构成的MPO的基态,iDMRG计算得到的是竖直方向上一列构成的MPO的基态,如图:
整个iTEBD的自洽计算流程及其与iDMRG的对应关系如下图所示:
整个iDMRG的自洽计算流程及其与iTEBD的对应关系如下图所示:
如果看完很懵,那就休息会再从头开始看,认认真真多看几遍就懂了(ง •_•)ง
二、张量网络的梯度更新
在上面的介绍中,iTEBD和iDMRG算法将基态的计算转化成了TN的收缩计算,MPS态是作为计算TN收缩的工具,即一行张量构成的MPO的近似本征态。
实际上,张量网络的收缩问题与变分问题具有一定的等价性,梯度法求解张量网络收缩也是TN领域中一种常见的方法。要解决的就是,在MPS态归一条件下,极小化下图所示能量:
假设MPS中每一个张量相互独立,那么这个问题用梯度更新法来算,实际上就是求能量关于每一个局域张量的梯度。
对应局域张量的更新方法为 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。所以基于梯度法极小化能量的核心问题在于算出梯度。
实际上,对于任何闭合张量网络,其关于某张量的导数等于该张量从张量网络中移除之后所得的张量网络,如图:
由上面的图我们可以看出,代表导数的张量网络的开放指标即为被求导张量的指标,所以计算导数张量网络的收缩后得到的张量与被求导张量同阶同维,张量网络导数计算就是张量网络的收缩计算。
三、任意尺寸张量网络收缩算法
由前面的学习我们知道,无论是TN重整化群算法还是encoding算法,通常都要求张量网络的几何结构具有一定的规律,比如一维链、正方格子、三角格子等。并且,对于不同几何的张量网络对应的张量分解与收缩方程往往不同。那有没有一种通用的计算方法呢?有的,接下来引入一种计算任意张量网络收缩的算法,步骤如下:
(1) 为张量编号,并重新绘制成圈状网络,需要注意的是张量网络的定义只与节点之间的连接有关系,与网络的具体形状无关;
(2) 收缩掉仅有最近邻连接的张量,且收缩不会增加求和指标的维数,收缩之后张量个数减小,收缩方法不唯一;
如何解释最近邻连接的张量?我的判断方法就是当两个张量进行收缩得到的张量阶数小于或等于收缩前张量的最大阶数,那么它们就可以被称为最近邻张量。我们看图说话,比如张量2和张量3收缩后的张量阶数是4,等于收缩前张量3的阶数,所以张量2和张量3就是最近邻连接的张量,再比如张量7和张量8收缩后的张量的阶数为5,大于张量7的阶数也大于张量8的阶数,所以张量7和张量8不是最近邻连接的张量。
(3) 再次收缩掉仅有最近邻连接的张量,例如张量2和张量3;
(4) 若无仅有最近邻连接的张量,则进行交换操作,交换的目的是减小非最近邻连接的距离。交换方法:收缩掉张量之间的最近邻连接后,使用SVD分解成两个张量,并进行维数裁剪。为什么要进行分解?如果不进行分解,张量网络的指标的个数会不断增加;
(5) 交换操作后未出现仅有最近邻连接的张量则继续进行交换操作直到出现仅有最近邻连接的张量,然后回到步骤(2);若仅剩下两个张量则直接进行收缩完成全部计算。
交换操作会引入近似,所以需要尽量降低交换操作的次数。如果在交换操作的过程中,出现仅含有最近邻连接的张量,可以在SVD前先进行收缩。
四、张量网络中的有效哈密顿量思想
有效哈密顿量是张量网络中一个非常重要度的思想,在DMRG和TEBD算法中,已经用到了“有效哈密顿量”的思想。以iDMRG为例,其有效哈密顿量的基态给出的满足中心正交形式的MPS态的中心张量就是有效哈密顿量的基态。从密度矩阵方面考虑,从DMRG中有效哈密顿量的基态出发,可以近似的给出原系统相应的密度矩阵,以下图为例:
用DMRG算出整个系统的MPS态,如果用two-site的iDMRG,那么中心张量满足:左边满足左正则、右边满足右正则、中心满足归一化的张量。要观测这两个site上的局域能量,即计算它的约化密度矩阵。先把需要计算的site断开,然后把其它的所有物理指标收缩掉,得到约化密度矩阵。由此可以看出,由中心张量给出的约化密度矩阵为真实约化密度矩阵的最优近似。
由上述信息,可以定义量子纠缠模拟(QES),即利用少体系统最优地模拟无穷大多体系统性质。具体内容:引入纠缠库格点,即由中心张量给出的约化密度矩阵的几何自由度,构造包含少量物理及纠缠库格点的少体系统哈密顿量,使得将基态中纠缠库求迹后所得的物理约化密度矩阵为无穷大系统基态对应的约化密度矩阵的最优低秩近似。如下图,蓝色球之间的相互作用就是原哈密顿量之间的相互作用,蓝球和红球之间的相互作用需要用QES进行优化。
QES的一维版本就是DMRG或TEBD。再看看QES计算无穷大二维六角晶格上的自旋体系的基态,构造如下图所示有限的尺寸的体系:
蓝色格点之间的相互作用就是原哈密顿量之间的相互作用,蓝点和红点之间的相互作用需要用QES进行优化,优化的目标就是使得该有限尺寸体系的基态中的约化密度矩阵去最优地近似无穷大体系的基态中的待求site的约化密度矩阵。
我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!