3. 张量网络语言入门
要理解张量网络如何模拟量子电路,第一步不是写代码,而是学会用张量网络的语言“看”量子态和量子门。张量网络本质上是一套把高维数组拆成小块、再用缩并运算重新组合的表示方法。它的核心价值在于:当量子比特数增加时,完整状态向量的维度呈指数增长,而张量网络通过局部张量和受控的缩并顺序,把这种指数增长限制在可控范围内。
张量:从标量到高阶数组
在张量网络语境中,张量就是带有一组指标的多维数组。零阶张量是标量,例如一个复数 c;一阶张量是向量,例如 v[i];二阶张量是矩阵,例如 M[i][j];更高阶张量则带有更多指标,例如三阶张量 T[i][j][k]。每个指标对应一个维度,指标的大小称为该维度的维数。量子计算中,单个量子比特的维数通常为 2,因此一个 n 量子比特的态向量有 2^n 个分量,可视为一个 n 阶张量,每个指标取值 0 或 1。
关键区别在于:普通数组把所有指标放在一起存储,而张量网络把高阶张量分解为若干低阶张量的缩并。例如,一个两量子比特态 ψ[i][j] 可以写成矩阵形式,也可以分解为两个向量与一个矩阵的缩并。分解后的每个张量只涉及少量指标,存储和计算代价大幅降低。
指标:连接与开放的区分
指标分为两类。第一类是开放指标,也叫外部指标,它们不被缩并,直接对应最终结果的自由度。例如量子态 |ψ⟩ 的物理指标就是开放指标,每个开放指标对应一个量子比特。第二类是连接指标,也叫内部指标或虚拟指标,它们出现在两个张量之间,被求和消去。连接指标的维数称为键维数(bond dimension),记作 χ。键维数越大,张量网络能表达的纠缠越强,但计算代价也越高。
约定:本文中所有连接指标默认采用爱因斯坦求和约定,即同一指标名在同一表达式中出现两次时,对该指标所有取值求和。例如 A[i][k] B[k][j] 表示对 k 求和,结果为 C[i][j]。开放指标保留在结果中,连接指标被消去。
缩并:张量网络的基本运算
缩并是两个或多个张量共享指标并求和的过程。最简单的缩并是矩阵乘法:C[i][j] = Σ_k A[i][k] B[k][j],其中 k 是连接指标。更一般地,多个张量可以按任意顺序缩并,只要最终把所有连接指标都消去。缩并顺序直接影响计算代价。例如三个矩阵相乘 ABC,先算 AB 还是先算 BC,中间张量的规模可能相差很大。张量网络模拟器通常使用启发式算法寻找较优的缩并顺序,以降低时间和内存开销。
缩并的图形表示非常直观:每个张量画成一个节点,每个指标画成一条从节点伸出的线。开放指标是悬空的线,连接指标是连接两个节点的线。缩并就是把这些线连接起来,最终得到一个没有内部连线的图,其悬空线的数量等于结果的阶数。
量子态的张量网络表示
一个 n 量子比特的纯态可以写成计算基的线性组合:|ψ⟩ = Σ_{i₁…iₙ} C[i₁…iₙ] |i₁…iₙ⟩。系数张量 C 有 n 个指标,每个指标维数为 2,总共 2^n 个分量。直接存储这个张量在 n=50 时就需要约 10^15 个复数,远超当前计算机内存。张量网络的做法是把 C 分解为多个低阶张量的缩并,例如矩阵乘积态(MPS):C[i₁…iₙ] = Σ A^{[1]}_{α₁}[i₁] A^{[2]}_{α₁α₂}[i₂] … A^{[n]}_{α_{n-1}}[iₙ]。每个 A^{[k]} 是一个三阶张量,带一个物理指标 i_k 和两个虚拟指标 α_{k-1}, α_k。虚拟指标的维数就是键维数 χ。当 χ 较小时,存储量从 2^n 降到 n·2·χ²,这就是张量网络能够处理大量子比特的根本原因。
量子门的张量网络表示
量子门是作用在量子比特上的酉变换,在张量网络中表示为带输入和输出指标的张量。单量子门 U 是一个二阶张量 U[out][in],作用在态张量的某个物理指标上时,就是把该指标与 U 的 in 指标缩并,得到新的 out 指标。双量子门如 CNOT 是四阶张量 CNOT[c′][t′][c][t],带两个输入指标和两个输出指标,分别与两个量子比特的物理指标缩并。
把量子电路映射为张量网络时,每个量子门对应一个张量节点,每条量子线对应一个物理指标。门与门之间的连接通过共享物理指标实现。电路的时间顺序在张量网络中表现为指标连接关系,而不是必须按时间顺序缩并。这意味着模拟器可以自由选择缩并顺序,例如优先缩并相邻的门,或先缩并纠缠较强的部分,从而控制中间张量的规模。
图形表示法的阅读规则
阅读张量网络图时,可以遵循以下规则:节点代表张量,线的数量代表张量的阶数;悬空的线是开放指标,对应最终结果的物理自由度;连接两个节点的线是连接指标,表示这两个张量在该指标上缩并;线的粗细或标注可以表示键维数大小。一个完整的量子电路张量网络图,通常左侧是初始态 |0…0⟩ 的张量,中间是各层量子门张量,右侧是测量或最终态的输出指标。通过数开放指标的数量,可以快速判断网络表示的是多少量子比特的态;通过观察连接指标的分布,可以判断哪些量子比特之间存在纠缠或门操作。
掌握张量、指标、缩并和图形表示法之后,就可以把任意量子电路系统地转换为张量网络,并在此基础上讨论缩并顺序优化、键维数截断和近似模拟等更深入的主题。