第 1 章量子计算入门

从经典计算说起:为什么需要量子计算

1.1 你熟悉的经典计算机

你用过的所有电脑、服务器、手机,本质上都是经典计算机。它们有几个共同特征:

  1. 信息单位是比特(bit)。一个比特只能是 0 或 1,就像电灯开关只有开和关。
  2. 计算靠逻辑门。AND、OR、NOT 等逻辑门由晶体管搭建,组成加法器、CPU 核心。
  3. 通用主机常按存储程序方式工作。CPU 从内存读取指令和数据,计算后写回内存;现代系统还包括缓存、GPU 和专用加速器,不能把所有经典设备都等同于一种冯·诺依曼架构。
  4. 硬件性能提升常靠两条路:一是单个部件更快,二是更多部件并行;算法、数据结构和软件优化同样重要。

做云计算的你一定很熟悉第 4 点:当单机不够用时,我们就横向扩展,加机器、加 GPU、上分布式。

1.2 经典计算的两个天花板

天花板一:摩尔定律放缓

摩尔定律描述的是晶体管集成规模的历史增长趋势,不等于 CPU 主频或程序速度必然同步翻倍。器件继续缩小会遇到漏电、功耗、散热和制造成本等限制;工艺节点名称也不能简单当成某个器件的真实尺寸。量子计算不是替经典芯片「续上摩尔定律」,而是探索另一类计算资源。

天花板二:指数墙——有些表示方式很难靠加机器扩展

这是更根本的问题。有些计算方法的资源需求会随规模指数级增长。一个清楚的例子,是用经典计算机以稠密全状态向量表示 n 个量子比特的纯态。下面分五步把它讲透;这不是所有量子模拟算法的统一成本。

第一步:经典系统和量子系统的「记账方式」完全不同

以 3 个比特为例,它们一共有 2^3 = 8 种组合:000、001、010、011、100、101、110、111。

  • 经典的 3 个比特:某一时刻只处于这 8 种组合中的一种,比如此刻就是 101。要记录它,只需记 3 个 0/1。
  • 量子的 3 个量子比特:一般纯态可用这 8 种组合的线性叠加表示,每种组合的系数叫「概率幅」(第 2、3 章会详细讲)。系数可以为 0,并不要求 8 种成分都出现。稠密模拟器给全部 8 个系数分配存储位置。

用 IT 人熟悉的数据库来类比:

记录一个经典配置,只需存「当前行」的行号;稠密状态向量则为整张表的每行都留一个值。每多一个量子比特,这张表的行数翻倍;但遇到可压缩的数据,未必非要用这张大表。

所以这种表示要记录 2^n 个复数。例如 |000⟩ 只有一个非零系数;而所有比特独立处于 |+⟩ 时,虽然 8 个系数都非零,也可以用 3 个单比特状态紧凑表示。非零分量多,不等于经典模拟一定困难。

第二步:为什么每个数要 16 字节

概率幅是复数,由「实部 + 虚部」两部分组成,比如 0.3 + 0.2i。若采用 complex128,每一部分用一个双精度浮点数(double,8 字节)存储,所以一个复数占 8 + 8 = 16 字节。于是:

稠密 complex128 纯态向量本体内存 = 2^n × 16 字节

16 字节是所选数值精度的成本,不是自然界给概率幅规定的大小;改用其他精度会改变系数,但不会改变这种表示随 n 指数增长的趋势。

第三步:把数字算出来

下表统一按十进制单位换算(1 KB = 1000 字节,1 GB = 10^9 字节,1 TB = 10^12 字节,1 PB = 10^15 字节):

比特数 n2^n(要存的数)× 16 字节 = 向量本体内存容量理解
101,02416.384 KB小型数组
20约 105 万约 16.78 MB常见设备可容纳的数组量级
30约 10.7 亿17.179869184 GB仅向量就占 16 GiB
40约 1.1 万亿约 17.592 TB仅向量就占 16 TiB
50约 1126 万亿约 18.014 PB仅向量就占 16 PiB
300约 2.037 × 10^90约 3.259 × 10^91 字节用于展示公式的增长趋势,不作设备容量承诺

这里 GB 是十进制单位,GiB 是二进制单位,1 GiB = 2^30 字节。因此 30 比特的 17.179869184 GB 恰好等于 16 GiB;50 比特的精确值为 18.014398509481984 PB。不要混用两套单位。

注意 n 从 40 到 50 只多了 10 个比特,内存却扩大到原来的 2^10 = 1024 倍。表中不含操作系统、临时缓冲、并行运行副本等开销:一台标称 16 GiB 的机器不能把全部内存交给向量,更不能据此保证 30 比特线路跑得动。容量够装下,也不代表运行时间可接受。

第四步:为什么「加机器」只能有限地推进规模

做云计算的人熟悉「水平扩展」:在理想、可分片的业务中,请求量翻倍,可以靠大约两倍资源应对。

但这里的规模指标是量子比特数 n,而不是请求数。若固定采用稠密表示,只看总内存且忽略通信开销,机器资源扩大 k 倍,能多容纳的量子比特数只有 log2(k) 个:

总内存扩大到log2(k) 的连续估算
×2+1
×10约 +3.32
×100约 +6.64
×1000约 +9.97
×100 万约 +19.93

实际比特数必须是整数;若原容量刚好装满且严格只看内存,增量须向下取整。下文的「约 20 个」是增长量级,不是精确容量承诺。

也就是说,把原有总内存扩大 100 万倍,稠密向量可容纳的规模也只增加约 20 个比特;例如由 50 推进到约 70。这不意味着一台机器本来就装得下 50 比特,也不意味着云服务器完全无用,而是说单靠堆资源很难追上指数增长。

可以用数组扩容帮助理解:从长度 2^30 的数组增加到 2^31,元素数直接翻倍;不是在原数组末尾只加一个元素。量子比特数增加 1,对这种表示来说更像「地址增加一位」,不是「数据增加一位」。

第五步:不只是内存,时间和网络也一样

内存只是第一道墙。在直接稠密模拟中,一个一般单比特门通常要遍历数量与 2^n 成正比的概率幅;门数、线路深度与内存带宽也会影响总耗时。

如果用集群做分布式模拟,还会遇到 IT 人熟悉的网络瓶颈:需要混合不同分片上概率幅的门,可能触发跨节点交换;数据位于同一分片内的门可以本地完成。有些门还可借助对角结构等性质减少通信。不能说「每个门都要全局 Shuffle」,也不能用一个固定比特数概括所有模拟器的上限。

量子计算机为什么提供另一条路

回到下一节费曼的想法:既然自然界本身服从量子规律,就尝试直接控制量子系统,而不是总在经典内存里逐项记录它。

50 个量子比特可承载一个 2^50 维空间中的量子态,硬件不需要为每个概率幅再分配一个经典存储单元。但它可以只是简单的 |00...0⟩,并非天然就处在对算法有用的复杂叠加态中。

这也不等于可以免费装入任意 2^50 个数:一般态的制备本身可能需要指数多的操作。最后测量又不能把所有概率幅逐项读出。实际优势必须同时解决输入制备、受控演化、噪声管理和结果提取,并与最佳适用经典方法比较;「状态空间很大」只是起点,不是万能加速的证明。

三个补充说明

  1. n 不直接等于电子数。 这里 n 是两能级单元的个数;在一种常见的分子编码中,每个自旋轨道的「未占据 / 已占据」对应一个量子比特。选择多少轨道、需要多高精度,会影响实际资源。
  2. 并不是所有量子问题都会撞墙。 稳定子方法可高效模拟一类 Clifford 线路;张量网络能利用特定纠缠结构;化学中也有密度泛函等有效近似方法。强关联体系可能给经典方法带来困难,但不是只要贴上「强关联」标签就已证明量子优势。
  3. 纯态与含噪声状态要区分。 纯态的稠密向量有 2^n 个复数;一般混态可用密度矩阵表示,朴素稠密存储含 4^n 个复数。后者也不是所有含噪声模拟的必付成本,轨迹采样、结构化表示等方法可能降低特定任务的开销。
一句话总结: 稠密纯态模拟的内存随 n 指数增长,但可模拟规模取决于表示方式与线路结构;量子硬件提供另一种实现途径,是否更快仍要逐个问题验证。

1.3 费曼的灵感:用量子模拟量子

1981 年,物理学家费曼提出了一个想法:

自然界本身就是量子的。既然经典计算机模拟量子系统这么费劲,为什么不直接用一个可控的量子系统去计算?

这就是量子计算的起点。量子计算机不是「更快的 CPU」,而是换了一种计算的物理基础:不再用晶体管的开关,而是用量子态本身来承载和处理信息。

1.4 一个重要提醒

量子计算机不是万能加速器。只有一部分问题存在已知的量子优势,且优势的适用条件各不相同。对日常的 Word、浏览器、数据库、网站后台,并没有因为换成量子比特就自然加速的理由;成熟的经典架构仍是这类工作负载的合适选择。第 7 章和第 11 章会继续讨论。

本章小结

  • 经典计算机用比特(0 或 1)和逻辑门工作,靠「更快」和「更多」提升性能。
  • 稠密 complex128 纯态向量存 2^n 个复数,向量内存 = 2^n × 16 字节,30 比特约 17.18 GB、50 比特约 18.014 PB;并非所有模拟都要用这种表示。
  • 固定这种表示,只看内存,资源扩大 k 倍仅多容纳 log2(k) 个比特;扩容有用,但推进规模有限。
  • 量子计算的初衷是:用可控的量子系统去计算,尤其是模拟自然界。
  • 量子计算不是万能的,是特定问题的专用加速思路。

本章自测(5 题)

本章共 12 道练习题(含多选与计算题),去微我刷题完整练习 ›

读完了吗?

标记后会记录在本机浏览器,课程目录显示你的进度。