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

L1 · 第 1 章

自旋链为什么会撑爆计算机,它的基态却不会

一条自旋 1/2 链,每种“上、下”排列都要一个振幅,振幅总数是 2 的链长次方。每加一个自旋,这张表就翻一倍,几十个自旋之内就超出任何计算机的内存。局域相互作用链的基态能逃过这个数,是因为链的左右两半之间纠缠很少。大多数别的态做不到。

每多一个自旋,表就翻一倍

一排自旋,每个都可以沿选定的轴朝上或朝下。这排自旋的量子态给每种“上下排列”配一个复振幅,振幅模的平方就是测到这种排列的概率。两个自旋有 4 种排列,三个有 8 种,以后每多一个就翻一倍。

一个双精度复数占 16 字节。20 个自旋约需 1700 万字节,笔记本电脑装得下;32 个自旋约需 690 亿字节;40 个自旋约需 18 万亿字节。一百个自旋的一般量子态,没有哪台机器存得下。

∣ψ⟩=∑s1,…,sL∈{↑,↓}ψs1s2⋯sL ∣s1s2⋯sL⟩,#amplitudes=2L|\psi\rangle=\sum_{s_1,\dots,s_L\in\{\uparrow,\downarrow\}}\psi_{s_1s_2\cdots s_L}\,|s_1s_2\cdots s_L\rangle,\qquad \#\text{amplitudes}=2^{L}

这门课用到的两条链

第一条是横场 Ising 链。相邻自旋想沿同一个轴对齐,垂直方向的横场则想把每个自旋扳过去。耦合常数取作能量单位。横场小于耦合时链有序;大于耦合时,自旋顺着横场排,最低激发要付出一个能隙;两者相等时能隙降到零,这就是临界点。

第二条是自旋 1/2 的 Heisenberg 反铁磁链,相邻自旋在各个方向上都倾向于反向。两条链都取开放边界,首尾两个自旋各只有一个邻居。选这两个模型,是因为它们都有精确解:Ising 链可以化成自由费米子,Heisenberg 链有 Bethe 拟设。

HIsing=−J∑j=1L−1σjxσj+1x−h∑j=1Lσjz,HHeis=J∑j=1L−1Sj⋅Sj+1H_{\rm Ising}=-J\sum_{j=1}^{L-1}\sigma^x_j\sigma^x_{j+1}-h\sum_{j=1}^{L}\sigma^z_j,\qquad H_{\rm Heis}=J\sum_{j=1}^{L-1}\mathbf S_j\cdot\mathbf S_{j+1}

完整例题

算一算:32 个自旋的基态要多少内存

在“上、下”基里,上面两个哈密顿量的矩阵元都是实数,所以基态可以只用实振幅,每个 8 字节。即便如此,32 个自旋的完整振幅表仍要约 340 亿字节。

DMRG 实验存的是矩阵乘积态,第三章会讲怎样搭出它。默认设置下,相邻两个自旋之间最多保留 16 个态,靠近两端的地方更少。把算完后链上各个矩阵的元素数加起来,一共 11048 个实数,约 88 千字节。只用这么点存储,临界 Ising 链的能量与自由费米子精确值之差,不到耦合常数的百亿分之几。

省下来的不是格式的功劳。同样的格式拿去存一个同样长的随机态,几乎得存满整张表。下一节说明原因。

232×8 bytes≈3.4×1010 bytes,NMPS=∑j=1322 χj−1χj=11 0482^{32}\times8\ \text{bytes}\approx3.4\times10^{10}\ \text{bytes},\qquad N_{\rm MPS}=\sum_{j=1}^{32}2\,\chi_{j-1}\chi_j=11\,048

基态特别在哪里

在相邻两个自旋之间把链切开。第二章会定义一个量,叫纠缠熵,用来衡量两边互相牵连得多紧。如果态能写成“左态乘右态”,它就是零。12 个自旋的链从正中切开,纠缠熵最大是 6 倍的 2 的自然对数,约 4.16。

压缩实验里的基态都远低于这个上限。临界 Ising 链中间切口的纠缠熵是 0.40,横场为 2.5 的有能隙链只有 0.06,而一个 12 自旋的随机态有 3.66。Schollwöck 把这归结为面积律:在一维,有能隙基态的纠缠熵不随链长增长;随机态则不同,它的纠缠熵是广延量,随区块大小成正比增长。

Verstraete 和 Cirac 把这一点变成了关于误差的结论。他们用区块的纠缠熵,给出给定大小的矩阵乘积态能把一个态近似到什么程度,并据此说明一维链的基态能被如实地表示。压缩实验把对比摆在眼前:临界基态在 4096 个数里只留 296 个,误差平方约百万分之六;随机态留下 2728 个数,仍然丢掉约一半的模方。

Smax=ln⁡2L/2=L2ln⁡2≈4.16(L=12)S_{\rm max}=\ln 2^{L/2}=\tfrac{L}{2}\ln2\approx4.16\quad(L=12)

带着问题动手

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

  1. 打开压缩实验,选临界链。先预测:要存多少个数,误差平方才会降到百万分之一以下?
  2. 换成随机态,把键维数拉到最大。
  3. 解释为什么随机态的误差仍然很大,而临界基态只用几百个数就够了。

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

试着自己解释

1. 20 个自旋的一般复数态,用双精度存需要多少字节?40 个自旋呢?

展开答案与解释

2 的 20 次方是 1048576 个振幅,每个 16 字节,约 1680 万字节。40 个自旋约有 1.1 万亿个振幅,约 18 万亿字节。

220×16=16 777 216,240×16≈1.8×10132^{20}\times16=16\,777\,216,\qquad 2^{40}\times16\approx1.8\times10^{13}

2. 直积态让每个自旋各有各的态,互不相关。12 个自旋的直积态要多少个数?

展开答案与解释

每个自旋两个,共 24 个。压缩实验在键维数取一时报告的正是 24;这个设置只能描述直积态。

3. 随机态中间切口的纠缠熵是 3.66,最大可能值是 4.16。为什么这让它难以压缩?

展开答案与解释

纠缠熵高,说明跨切口的权重摊在许多大小相近的项上。只保留其中几项,态的大部分就丢了,所以要保留几乎所有项,误差才降得下来。

可以放在旁边读的来源

  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. F. Verstraete and J. I. Cirac, Matrix product states represent ground states faithfully, Physical Review B 73, 094423 (2006)

    引理 1 证明:截断到键维数 D 后,与原态距离的平方不超过各切口舍弃 Schmidt 权重之和的两倍;文中进而说明有能隙的基态为什么只需要不大的 D。

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

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