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

量子电路

[[quantum-circuit|量子电路]]其实就是一份配方:横线代表量子比特,门方块从左到右依次施加,末尾再做一次测量。在本指南中,你会学会读懂这些图,看清 CNOT 门如何制造[[entanglement|纠缠]],理解为什么一小组门就足以搭建出任何电路,以及如何组装你的第一个真正的电路——一个贝尔对。不夸大:电路只是一连串精心安排的操作,而不是一台同时尝试所有答案的机器。

读懂电路图

量子电路就像读乐谱:时间从左到右流动,每一条横线都是一个量子比特在电路中穿行。横线上的方块是——你按顺序施加的操作。经典电路图是把比特沿导线推送,而量子电路图则是把一个量子态推过一连串可逆的变换。

每个量子比特通常从 |0> 态开始,画在最左端。像 H(Hadamard)或 X(一种 Pauli 门)这样的单量子比特门,就是某一条横线上的一个方块。看下面这张图:横线就是量子比特,[H] 是施加在它上面的一个门,最右边的仪表符号代表一次测量

        ┌───┐ ┌───┐
|0> ────┤ H ├─┤ X ├──── 📏
        └───┘ └───┘

  ^wire     ^gates    ^measure
(the qubit) (applied  (read out
            in order)  a result)
一个量子比特,两个门从左到右依次施加,然后做一次测量。纯文本写法:|0> ---[H]---[X]---(测量)。

CNOT 与纠缠门

单量子比特门能做的事毕竟有限。要搭建有意思的电路,你需要一个双量子比特门,而最主力的就是 CNOT(受控非门,controlled-NOT)。它有一个控制比特和一个目标比特:如果控制比特是 |1>,就翻转目标比特;如果控制比特是 |0>,就保持目标比特不变。在图中,控制比特画成一个实心圆点,目标比特画成一个 ⊕(带圈的加号),两者由一条竖线相连。

control ───●───
           │
target  ──⊕──

  ● = control qubit   ⊕ = target (flips if control is |1>)
一个 CNOT 门。ASCII 写法:控制比特 = ---●---,目标比特 = ---⊕---,由一条竖直导线相连。

CNOT 真正的威力,要在控制比特处于叠加态时才显现出来——也就是 |0> 与 |1> 的混合。这时对于“控制比特究竟是 0 还是 1?”并没有唯一的经典答案,于是这个门把两个量子比特连结成一个无法分开描述的共享态。这种连结就是纠缠:测量其中一个量子比特,会立刻告诉你另一个的某些信息——这是因为它们的结果是相关联的,而不是因为有什么信号在它们之间传递。

通用门集

可能的量子操作有无穷多种,所以想把它们全都造出来,似乎是没有指望的。好消息和经典计算如出一辙:你并不需要每一种门,只要一小套通用工具就够了。一个通用门集就是少数几个门,只要叠加足够多的层数,它们就能把任何量子操作逼近到你想要的任意精度。

一个常见的通用门集是 {H, T, CNOT}Hadamard、T 门(一个小小的相位旋转)以及 CNOT。仅凭这三个门,你就能搭建出任意复杂的电路。H 和 T 给你所有的单量子比特操作;CNOT 则在量子比特之间提供纠缠的“黏合剂”。

还有一个值得认识的特殊门:Toffoli,也就是受控受控非门(controlled-controlled-NOT)。它只有在两个控制比特都为 |1> 时才翻转目标比特,这让它能够在量子电路内部重现普通经典逻辑(比如 AND)的可逆版本——当一个算法在通往量子结果的路上需要做些老式的算术时,它就是一座好用的桥。

末尾的测量

所有这些可逆的门,最终总得给你一个答案,而取出答案的唯一办法就是测量。这是量子计算最诚实的核心,所以值得把话说清楚:当你测量一个处于 alpha|0> + beta|1> 态的量子比特时,你得到的要么是 0(概率为 |alpha|^2),要么是 1(概率为 |beta|^2)。你永远读不出 alpha 和 beta 本身——只能得到一个经典比特。

仅这一个事实,就重塑了量子算法的设计方式。由于每次运行你只能得到一个结果,一个好的电路会利用干涉,在你测量*之前*让正确的答案彼此加强、错误的答案相互抵消——这样你读到的那个比特就很可能是有用的。这正是为什么“量子计算机同时尝试所有答案”这种说法会误导人:那种并行性在数学内部确实存在,但测量只会交给你恰好一个结果,而整门手艺的关键,就是去调控振幅,让那一个结果正好是你想要的。

第一个电路:贝尔对

我们来把这一切组装起来。贝尔对是最简单的纠缠态,它只需要在两个量子比特上施加两个门:先对第一个量子比特施加一个 Hadamard,再施加一个 CNOT,以第一个为控制、第二个为目标。两个量子比特都从 |0> 开始。

  1. 从两个量子比特开始,二者都处于 |0>(即 |00> 态)。
  2. 对量子比特 0 施加 H。它进入叠加态,给出 |00> 与 |10> 的等量混合。
  3. 施加 CNOT,以量子比特 0 为控制、量子比特 1 为目标。这时 |10> 的那一部分会把目标翻转成 |11>,于是留下 |00> 与 |11> 的等量混合。
  4. 测量这两个量子比特。你会得到 00 或 11——各约一半的几率——但绝不会得到 01 或 10。
           ┌───┐
q0 |0> ────┤ H ├──●──── 📏
           └───┘  │
q1 |0> ───────────⊕──── 📏

Result over many runs:  00 ~50%   11 ~50%   (01, 10 never)
贝尔对电路:先对 q0 施加 H,再施加 CNOT(q0 为控制、q1 为目标),然后测量。ASCII:q0 |0>--[H]--●-- ,q1 |0>------⊕-- 。

所得到的态是 (|00> + |11>)/√2。诚实地解读这些结果:每个量子比特单看都像一枚随机的硬币(五五开),可这两枚硬币总是一致。这种完美的关联——保证一致,且任何一个量子比特内部都没有预先藏好的答案——就是你亲手用一个 Hadamard 和一个 CNOT 搭建出来的纠缠