张量网络收缩本身是一个经典计算问题:给定一串张量与指标连接关系,找一个收缩顺序,使中间张量的规模峰值最小、总浮点运算量最小。它出现在量子计算里,是因为在”张量网络编译成量子线路”的视角下,两件事是同一件事的两面——张量对应量子线集合,收缩对应一次局部门调度,峰值张量规模对应同时存活的量子比特数。本词条讲清这个对应关系的边界、收缩顺序的取舍结构,以及无界 fan-out 门集给出的理论界在什么条件下可用。
一、这个应用需要哪种算术原语
在编译视角下,一次张量收缩用到的算术原语是固定的三样:
| 收缩动作 | 线路里的对应 | 本站对应卷 |
|---|---|---|
| 两个张量沿公共指标相乘并求和 | 一组受控门在若干线上的调度 | [[fundamentals/gate-cost-models |
| 沿一个指标置换两条线(交换 / swap / move) | 交换比特,或通过受控换位搬运 | [[exponentiation/windowed-exponentiation |
| 沿一个指标求和 | 累加器 / 加法器 | [[adders/constant-and-increment-adders |
需要说清楚的边界是:这个对应是编译视角下的,不是恒等式。它成立的条件是——每个张量的每个指标占用一条(组)量子线,指标收缩在量子侧用可逆方式实现(求和要用可逆加法器累加到输出线上,而不是就地消掉)。一旦这些条件不满足(张量太大装不下、指标维数不是 2 的幂),对应就只在原则上成立。这条限制是本词条与”张量网络量子模拟”之间的分界线,也是为什么两者不应该混为一谈。
第二个边界是度量的不同。收缩顺序优化的目标是浮点运算量与内存峰值,单位是 FLOP 与 GB;量子线路的成本单位是门数、深度、T 数。两者之间没有现成的换算系数——同一张网络的最优收缩顺序,给出的线路在门数上未必最优,因为量子侧还额外计入角度合成的 T 数成本。凡是给出”最优收缩顺序 = 最优量子线路”这类断言的,都缺了这一步换算。
二、收缩顺序的取舍:深度对峰值
设网络由 个张量串成一条链。两种极端顺序给出的代价结构完全不同:
链式收缩每次把当前结果与下一个张量相乘,串行 步。它的好处是峰值张量规模小——任何时刻只有两个张量存活,内存压力与并行度都最优;坏处是深度 ,没有任何并行度。
树形(平衡)收缩先并行地收缩互不相邻的子块,再合并。它的好处是深度降到 量级;坏处是某一层上同时存活多个中间张量,峰值张量规模上升,而且每个中间张量的指标数也更大。
图中两组 groups 标的是同一条网络,只换了收缩顺序。这个对照说明了一件在量子侧同样成立的事:用空间换延迟是算术线路的通用权衡,不是量子特有的。收缩顺序优化的算法(动态规划、贪心、局部搜索)本质上就是在解同一个问题,只是在目标函数里把”并行度”和”峰值张量规模”按不同权重加权。
三、无界 fan-out 门集给出的界
Høyer–Špalek(2003)研究的门集允许一个量子比特被无界复制(fan-out 是原语,门集中直接给出),并证明在这个模型下矩阵乘法与算术加法可达对数深度。把它平移到收缩问题上,能得到两条结论:
- 上界:在无界复制下,收缩的并行度至少可以做到对数级——因为”同一个中间张量同时喂给多个下游张量”正是 fan-out 允许的操作。这说明链式收缩的 深度远不是最优,树形的 也未必是终点。
- 失效条件:这条界的代价是无界比特与无界复制。真实的收缩计算要在有限的内存上做,真实的量子线路要在有限的比特数上做。
Gokhale 等(2021)正是把这条模型内的界往下搬的一步:它把 fan-out 从理想门集落到具体器件的技术与噪声模型上,并给出算术深度的换算。结论的方向是清楚的——复制带来的深度收益会被保真度损失吃掉一部分,因此”无界 fan-out 下的对数深度”应当被读作一个上界,而不是可交付的设计。
实践中的收缩优化算法(自动收缩顺序搜索、缓存友好的收缩实现、编译器工具链)在本 wiki 归入资源账本卷,本卷不引用其条目:那一卷负责”工具怎么测、基准怎么跑”,本卷只负责”收缩顺序与门调度为什么是同一类问题”。
论文依据
- Høyer–Špalek(2003) —— 无界 fan-out 门集的奠基论文;本词条第三节用它给出收缩并行度的对数深度上界,并同时标注该界依赖放宽的硬件模型。
- Gokhale 等(2021) —— 把 fan-out 从理想模型落到器件技术与噪声模型并给出算术深度换算;用于界定第三节两条结论的适用边界。
延伸阅读
- gate-cost-models —— 门数、深度、T 数三种度量的区别与换算条件
- arithmetic-complexity —— 收缩顺序优化与算术复杂度的一般框架
- index —— 基准套件与工具链所在卷,含收缩顺序优化的工具侧
- windowed-exponentiation —— 收缩里的指标置换对应的交换比特账