技术文章

使用 MATLAB 增强多体量子系统的张量网络算法

作者 : Anna Francuz 博士,维也纳大学


“利用 MATLAB,我的团队开发了一种更稳定、更高效的张量网络算法微分方法……我们正在积极应用这种工作流来加深对强纠缠量子系统的理解。”

量子计算研究的领航者已经实现了量子优势:展示量子计算机在优化、密码学或药物发现等实际任务方面可以超越传统系统。然而,在构建大规模量子计算机之前,有必要运行小规模测试,并将测试结果与理论进行比较。这项工作重点关注强纠缠的多体量子系统,是我在维也纳大学研究的主要重点。

在过去的 20 年左右的时间里,张量网络已被证明是研究强纠缠系统的最佳工具之一。这在很大程度上是因为它们通过利用纠缠结构来降低计算复杂度(例如与量子蒙特卡罗方法相比)。利用张量网络,研究人员可以采用优化技术来找到量子系统的基态,从而计算磁化强度和其他可观测值,以了解系统的特性,并将结果与实验数据直接进行比较。

直到最近,执行这种优化一直是个问题,因为以前的方法依赖于梯度的近似计算,而梯度是推动优化的微分过程中的一个关键要素。除了重大错误之外,这个缺陷还经常导致优化无法找到全局最小值。研究人员通过转向自动微分 (AD) 解决了其中的一些缺陷,但其他问题也随之出现,例如在对奇异值分解 (SVD) 求导时出现发散,以及 AD 在代码实现方式上的根本性问题。

使用 MATLAB®,我的团队开发了一种更稳定、更高效的张量网络算法的微分方法。我们将这种新颖的 AD 实现与另外两个关键元素相结合:使用 MATLAB 社区工具箱进行张量网络收缩和使用 MATLAB Parallel Server™ 进行高性能计算。我们正在积极应用这种工作流来加深我们对强纠缠量子系统的理解。

量子物理学中的 MATLAB 和张量网络

作者:Temo Vekua,MathWorks

张量网络在量子物理中的应用是由杰出的物理学家和量子信息理论领域的领军人物、慕尼黑马克斯普朗克量子光学研究所的 Ignacio Cirac 博士率先提出的。二十年前,Cirac 博士和 Frank Verstraete 博士提出了张量网络理论来描述量子多体系统。Francuz 博士将她的学术渊源追溯到 Cirac 博士:她的导师 Norbert Schuch 博士曾担任马克斯·普朗克研究所的博士后研究员,与 Cirac 博士一起担任慕尼黑工业大学的讲师,后来担任加兴马克斯·普朗克量子光学研究所的终身研究小组负责人,之后成为维也纳大学的教授。

Cirac 博士最早依靠 MATLAB 实现张量网络。他和他的大约 40 名研究人员组成的团队至今仍在使用它。“我主要使用 MATLAB 进行科学编程,”他解释道。“MATLAB 对我来说非常好用,如果使用得当,它可以像编译语言一样高效。”MATLAB 作为该领域重要工具的地位,也得到了 Francuz 博士的认可,她指出:“我不认为自己是一名出色的程序员。相反,我是一名物理学家,使用 MATLAB 来做以前从未做过的张量网络工作。”

在展示了张量网络对于研究低维(一维和二维)、强相关量子系统的价值之后,Cirac 博士和他的团队目前正致力于将该方法扩展到三维系统。

张量网络收缩、自动微分和优化

当量子物理学研究人员使用张量网络时,我们经常使用平移不变无限系统。这样的系统无限延伸,并且当移动(平移)一定距离时,每个点的属性都是相同的。这意味着哈密顿量(代表量子系统总能量的算子)在整个系统中表现出周期性重复或保持均匀性。因此,每当我们计算其中一个可观测值时,我们必须首先将张量网络收缩为可处理的值(图 1)。在我们的工作流中,为了做到这一点,我们使用 ncon,这是由 Robert NC Pfeifer、Glen Evenbly 及其同事开发并与社区共享的 MATLAB 函数。ncon 函数使我们能够有效地收缩张量网络并用有限值逼近局部可观测值的无限环境。

该图显示了如何将张量网络收缩为张量的虚拟索引。

图 1. 通过收缩 A(左侧)中张量的虚拟(黑色)指标,可以生成 B(右侧)中方格子中的状态 |Ψ(A)⟩。(图片所有权:Francuz, A.、Schuch, N. 和 & Vanhecke, B. (2025). Stable and efficient differentiation of tensor network algorithms.Phys.Rev. Res.,7(1),013237.American Physical Society. https://doi.org/10.1103/PhysRevResearch.7.013237. 依据 CC BY 4.0 协议授权。)

一旦我们收缩了张量网络,它就表示为 MATLAB 中的 dlarray 对象,下一步是使用 AD 计算能量的梯度,该梯度在计算基态时要最小化。在 MATLAB 中实现我们的 AD 方法时,我们解决了现有 AD 实现的三个关键问题:高内存使用率、梯度计算不稳定以及反向传播梯度不准确。

第一个问题是与 AD 相关的高内存使用率。通用 AD 方法需要大量内存来存储迭代角传递矩阵 (CTM) 过程中生成的中间对象,以便有效地计算局部可观测值。(CTM 是一种迭代方法,用于逼近二维张量网络的收缩,特别是在投影纠缠对态或 PEPS 中。)虽然涉及定点方程微分的替代方法可以缓解这种内存问题,但它引入了与以下方面相关的复杂性:规范固定。规范固定通过解决歧义来确保张量表示的一致性,但一直难以可靠地实现。我们找到了这些困难的根本原因,并提出了两种切实可行的方法来可靠地实现规范固定,从而解决内存问题。

第二个重要问题是 SVD(CTM 算法的关键组成部分)的梯度计算不稳定性。在存在简并(即多个奇异值相等)的情况下,梯度条件较差,甚至会变得未定义。这些退化会破坏梯度计算的稳定性,因为即使输入发生微小变化,也会导致奇异向量发生不成比例的巨大变化。为了解决这个问题,我们发现并利用了 CTM 张量网络中隐藏的规范对称性。虽然这种方法超出了 AD 的传统范围,但它使我们能够开发出与 AD 框架兼容的稳定解决方案。

最后,我们解决了先前使用的通过截断 SVD 进行梯度反向传播的方程中的不准确性。这些方程错误地假设截断谱为零,从而忽略了一个重要项并导致了严重的错误。反向传播梯度涉及计算参数变化如何通过一系列操作传播,需要精确的梯度计算才能实现准确的优化。我们推导出截断 SVD 的校正梯度公式,以考虑截断谱。这次修正大大提高了准确性,同时只需要对现有的 AD 代码进行少量修改。

在 MATLAB 中实现 AD 改进之后,我们准备在优化任务中使用由 AD 实现生成的梯度,例如最小化能量以找到量子系统的基态。对于工作流的这一部分,我们使用 Optimization Toolbox™ 中基于 fminunc 函数的有限内存 Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) 算法,传入我们编写的用于计算梯度的自定义函数(图 2)。

该图显示了使用改进的 AD 实现的梯度,优化收敛到全局最小值。

图 2. 优化图显示两个不同的梯度。通过使用传统 AD(橙色方块)的梯度,优化很快就会陷入困境。通过使用改进的 AD 实现(绿色圆圈)的梯度重新开始优化,优化收敛到全局最小值。(图片所有权:Francuz, A.、Schuch, N.,& Vanhecke, B. (2025). Stable and efficient differentiation of tensor network algorithms.Phys.Rev. Res.,7(1),013237.American Physical Society. https://doi.org/10.1103/PhysRevResearch.7.013237. 依据 CC BY 4.0 协议授权。)

在奥地利科学计算平台上使用 MATLAB 进行并行计算

相图是研究量子多体系统的重要工具,因为它们能够直观地展示系统在不同参数(包括时间)作用下的各种相(状态)。为了创建相图,我们需要在一定范围内改变哈密顿量中的一个参数,并计算每个参数值的基态。这使我们能够识别系统行为突然变化时的相变,例如从超导态转变为绝缘态。

由于在单台笔记本电脑上依次计算大量参数值对应的基态会非常缓慢,而且所需内存往往超出普通笔记本电脑的能力,因此我们计划使用 MATLAB Parallel Server™ 在奥地利科学计算 (ASC) 平台上执行此处理。ASC 拥有奥地利最强大的超级计算机,其中包括拥有 790 个节点、总计 37,920 个核心的 VSC-4 和拥有 710 个节点、总计 98,560 个核心的 VSC-5。

首先,我参加了由 MathWorks 工程师举办的研讨会,内容涉及使用 MATLAB 进行并行计算以及在 ASC 的 HPC 系统上使用 MATLAB。在 ASC 上运行并行基态计算将使我们的团队能够快速计算虚拟量子系统的属性,并将其与实验测量的真实系统的属性直接进行比较。

事实上,我们目前正计划在 ASC 上使用 MATLAB Parallel Server 来研究可使用 256 个量子比特进行操作的可编程量子模拟器的相图。使用二维张量网络探索该系统和其他类似系统是我们正在进行的研究的重点。

关于作者

Anna Francuz 博士是维也纳大学量子信息和量子多体物理小组的博士后研究员,她利用张量网络研究物质的相态,以了解量子多体系统的纠缠特性如何引起物理现象。

2025 年发布

查看文章,了解相关功能