JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

测量与坍缩

一个量子比特可以同时承载 |0> 和 |1> 的混合,但你一旦去读它,得到的就是一个普通的比特。本指南解释测量如何把振幅变成结果(玻恩定则)、为什么读取会摧毁原本的混合(坍缩),以及为什么你不能悄悄复制一个态先拿去检查(不可克隆)。一旦你看懂这些规则,就会明白为什么好的量子算法要在那唯一一次窥视之前,先想方设法让正确答案变得*更可能*出现。

你只能窥视一次

这条规则决定了量子计算里其他的一切:当你读取一个 量子比特 时,你拿回来的是一个朴素的、经典的比特——一个 0 或一个 1。不是分数,不是混合,也不是一串可能性的清单。就是一个比特。

这感觉很不公平,因为量子比特在你读取它之前,可以处于一种 叠加态——也就是 |0> 和 |1> 真正同时存在的混合。你也许指望把这个丰富的 量子态 整个掏出来检查一番。但你做不到。测量 只递给你一个比特,再无其他,而且你没法倒带重问。

玻恩定则

那么,既然读取给你的是一个看似随机的比特,是什么决定了它究竟是哪一个呢?是态本身。一个量子比特由两个被称为振幅的数写成,一个挂在 |0> 上,一个挂在 |1> 上:

|psi> = a|0> + b|1>
a 是结果 0 的振幅,b 是结果 1 的振幅。振幅可以是负数或复数——正是这种符号与相位,才让之后的干涉成为可能。

玻恩定则说:读到 0 的概率是 |a|^2,读到 1 的概率是 |b|^2。你把振幅的大小取平方,就得到那个概率。因为测量时总得发生*某件事*,这些概率必须加起来等于 1:|a|^2 + |b|^2 = 1

坍缩

测量不只是*报告*一个值——它会改变这个态。在你读到 0 的那一瞬间,量子比特真的就变成了 |0>。你再读一次,每次都会得到 0。叠加态消失了;这种不可逆的跳变就叫做坍缩

这给单次运行能告诉你的东西划了一道硬上限。无论量子比特原本承载着 |0> 和 |1> 怎样精微的混合,坍缩都会把它压成一个确定的比特,另一种可能性就这么没了。你永远看不到振幅本身——只能看到它们让其变得可能的那个结果。

不可克隆:你没法先复制一份

有一条诱人的脱身之路:既然测量会摧毁这个态,那何不先把量子比特复制上一百份,再去测量这些副本、把原本的混合重建出来呢?这在经典计算机上是行得通的。但在这里,它是不可能的。

[[no-cloning-theorem|不可克隆定理]] 证明了:不存在任何操作,能拿一个未知的量子态,再造出它的第二份独立副本。那些让量子 信息 变得有用的定律,同时也禁止复制一个未知的态。所以你得到的那唯一一次测量,真的就是你唯一的窗口——根本没有备份副本可以拿到一旁研究。

围绕测量来设计

把这三条规则合在一起,设计上的难题就清楚了。你只有一次窥视(每次运行得到一个坍缩后的比特),你得到的那个比特由 |振幅|^2 决定(玻恩定则),而且你没法先复制一个未知的态来检查它(不可克隆)。量子计算机不是一颗暗地里把每个选项都算一遍的、更快的经典 CPU——它是一台用来塑造振幅的机器。

所以一个量子算法的全部工作,就是通过干涉,安排好让正确答案的振幅在你测量*之前*就变得很大。Grover 搜索温和地做这件事,在许多步里一点点把目标的振幅往上推,从而带来二次方(平方根)的加速——而不是什么神奇的指数级加速。Shor 算法之所以能拿到它那著名的指数级优势,只是因为因数分解有一种隐藏的结构,可以被它的干涉图样所利用;而大多数问题并没有这样的结构。