跳到主要内容
Sandbox Physics
张量网络 · 边学边做实验

L2 · 第 3 章

把波函数变成一串小矩阵

先用一次奇异值分解把第一个自旋拆出来,左边的因子留作一个小矩阵,剩下的往后传。每个自旋重复一遍。最后每个振幅都是“每个自旋一个矩阵”的乘积,用哪个矩阵由该自旋朝上还是朝下决定。矩阵的大小就是每处切口的 Schmidt 项数,所以纠缠少的链只需要小矩阵。

一次拆下一个自旋

先把振幅排成两行的矩阵:行由第一个自旋标记,列由其余自旋标记。做一次奇异值分解,把左因子(一个 2 乘 2 矩阵)留作第一个自旋的张量。把奇异值乘进右因子,再把它重排一下,让第二个自旋也并到行里。

再分解一次,新的左因子留作第二个自旋的张量,其余继续往后传。拆完最后一个自旋,每个振幅都读作:行向量乘一串矩阵再乘列向量,每个自旋一个矩阵,按它朝上还是朝下挑选。Schollwöck 综述第 4.1.3 节就是这样一步步搭出这种分解的。

ψs1s2⋯sL=A[1]s1A[2]s2⋯A[L]sL,A[j]sj∈Cχj−1×χj,χ0=χL=1\psi_{s_1s_2\cdots s_L}=A^{[1]s_1}A^{[2]s_2}\cdots A^{[L]s_L},\qquad A^{[j]s_j}\in\mathbb C^{\chi_{j-1}\times\chi_j},\quad \chi_0=\chi_L=1

为什么这些矩阵保持正交归一

每个留下来的左因子都来自奇异值分解,所以它的各列彼此正交归一。对该自旋的两个取值求和,张量的共轭转置乘它自己就是单位矩阵。Schollwöck 把这样的张量叫作左正交化的。

这一点很实用。把切口左边的张量都左正交化,这个切口上的各列就成了左段的一组正交归一基。这时切口处的奇异值正是整个态的 Schmidt 系数。于是任何一处的纠缠熵和截断误差都能就地读出,不必碰链的其余部分。

∑sj(A[j]sj)†A[j]sj=1χj\sum_{s_j}\big(A^{[j]s_j}\big)^{\dagger}A^{[j]s_j}=\mathbb 1_{\chi_j}

完整例题

数一数:12 个自旋要存多少个数

不截断时,一处切口的 Schmidt 项数不会超过较短一侧的构型数。12 个自旋的链,各条连接最大可以依次是 2、4、8、16、32、64,再对称地降回来。数一数元素,一般量子态的精确矩阵乘积态要存 10920 个数,是原振幅表的两倍多。光换格式省不了什么,省下来的全靠截断连接。

现在把每条连接都限制在 4,这是压缩实验的默认值。连接大小变成 1、2、4,接着 8 条连接都是 4,最后 4、2、1。每个张量含两个矩阵(自旋上、下各一个),大小是“左连接乘右连接”。加起来是 296 个数,原来要 4096 个。实验对临界链报告的存储数就是 296。

N=∑j=1122 χj−1χj=2 (1⋅2+2⋅4+8⋅4⋅4+4⋅2+2⋅1)=296N=\sum_{j=1}^{12}2\,\chi_{j-1}\chi_j=2\,(1\cdot2+2\cdot4+8\cdot4\cdot4+4\cdot2+2\cdot1)=296

Vidal 的写法把权重摆在明处

Vidal 在 2004 年换了一种写法:在每两个格点张量之间,单独存下这处切口的 Schmidt 系数向量。这样,一条自旋链的态所需的参数个数,只随“链长乘最大连接大小的平方”增长,而不是指数增长。

这种写法让截断一目了然:每处切口的系数都摆在外面,要把一条连接截小,就丢掉它最小的几个系数。第六章用这种写法做时间演化。

ψs1⋯sL=Γ[1]s1Λ[1]Γ[2]s2Λ[2]⋯Λ[L−1]Γ[L]sL,Λ[j]=diag(s1[j],…,sχj[j])\psi_{s_1\cdots s_L}=\Gamma^{[1]s_1}\Lambda^{[1]}\Gamma^{[2]s_2}\Lambda^{[2]}\cdots\Lambda^{[L-1]}\Gamma^{[L]s_L},\qquad \Lambda^{[j]}=\mathrm{diag}\big(s^{[j]}_1,\dots,s^{[j]}_{\chi_j}\big)

带着问题动手

先预测,再改变,最后解释

  1. 在压缩实验里,先别动滑块,预测临界链在键维数为 8 时要存多少个数。
  2. 把滑块拉到 16,再一直拉到 64。
  3. 键维数 16 时实验存 2680 个数,误差已到舍入误差的量级;到 64 时存的数反而比完整振幅表还多。用每处切口 Schmidt 权重的大小解释这两件事。

这些实验模拟开放边界的自旋 1/2 链,能量以耦合常数为单位,时间以约化普朗克常数除以耦合常数为单位。每个实验在模型说明里写明模型和适用范围,并可导出读数背后的数据。

试着自己解释

1. 12 个自旋的精确矩阵乘积态,最大的连接需要多大?在哪一处切口?

展开答案与解释

在正中间。两边各有 6 个自旋、64 种构型,这条连接最多需要 64 项。

χmax⁡=2L/2=64\chi_{\max}=2^{L/2}=64

2. 12 个自旋、每条连接至多 8 项,要存多少个数?

展开答案与解释

连接大小依次是 1、2、4、8,中间 6 条都是 8,再到 8、4、2、1。把相邻连接大小之积乘 2 再求和,得 936。

N=2 (2+8+32+6⋅64+32+8+2)=936N=2\,(2+8+32+6\cdot64+32+8+2)=936

3. 上限固定为 4 时,在长链中间每多一个自旋,要多存多少个数?

展开答案与解释

多一个张量,含两个 4 乘 4 矩阵,即 32 个数。存储量随链长成正比增长。

可以放在旁边读的来源

  1. U. Schollwöck, The density-matrix renormalization group in the age of matrix product states, Annals of Physics 326, 96 (2011)

    这一领域的标准综述。第 3 节用面积律解释 DMRG 为什么在一维好用;第 4.1 节用一次次奇异值分解搭出矩阵乘积态,并在式 (58) 给出截断误差的上界;第 6 节把基态搜索写成变分扫描;第 7 节讲时间演化和它的极限。

  2. G. Vidal, Efficient simulation of one-dimensional quantum many-body systems, Physical Review Letters 93, 040502 (2004)

    提出时间演化块消减(TEBD):把哈密顿量拆成两格点门,逐个作用,每作用一次只保留最大的 Schmidt 系数。

反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策