量子比特Qubit与叠加原理-P5

📑 目录

1. 量子比特(Qubit)与叠加原理 (Part 5)

Deutsch算法:量子计算的第一个算法

2. 三个基本量子算法及其量子门应用

Deutsch算法:量子计算的第一个算法

算法背景与目标

问题形式

  • 给定黑箱函数 f: {0,1} → {0,1},只能通过查询得到 f(0) 与 f(1)。
  • f 的类型只可能是两种:常数(constant)函数或平衡(balanced)函数。
    • 常数:f(0)=f(1)(两输入同值,可能是 00 或 11)。
    • 平衡:f(0)≠f(1)(两输入不同值,可能是 01 或 10)。
  • 经典上至少需要调用两次 f 才能区分常数与平衡。

量子目标

  • 仅调用一次“函数黑箱”U_f,完成对 f 的类型判定。
  • 这个“只查询一次”正是Deutsch算法的核心贡献,也是量子并行性与干涉首次在算法中发挥作用的可验证例子。

目标判定输出

  • 判定 f 是常数还是平衡。若为常数,测量第一个量子比特得到 0;若为平衡,测量第一个量子比特得到 1。

量子电路设计

电路概述

  • 体系:两个量子比特(q0 为输入寄存器,q1 为辅助比特)。
  • 黑箱:Oracle U_f 满足 |x⟩|y⟩ → |x⟩|y⊕f(x)⟩(等价地,也可理解为对 |x⟩|y⟩ 施加受控 f(x) 的翻转)。
  • 初始化:q0 置 |0⟩,q1 置 |1⟩。
  • 序列:H(q0) → H(q1) → U_f → H(q0) → 测量 q0。

电路图(ASCII风格)

  • 0: ──── H ─────────────────── H ── M(q0)
  • 1: ──── X ──── H ──── U_f ──── X ── (通常不测量 q1,图中用空端表示)

更形象的Qiskit风格电路图(可用Mermaid表达)

  • 图示:0: ──── H ─────────────────── H ── M
  •   1: ──── X ──── H ──── U_f ──── X ──
    
  •   辅助说明:U_f 为“受控加f(x)”的门
    

电路参数表

  • 元素 | 作用与位置说明
  • q0 输入寄存器 | 初始化 |0⟩,经历 H → U_f → H,最终被测量
  • q1 辅助比特 | 初始化 |1⟩,经历 X → H → U_f → X,用于引发相位反冲
  • H 门 | 在 q0 与 q1 上各一次(q1 的 H 前后各一次 X)
  • X 门 | 对 q1 前后各一次,把 |1⟩ 变为 |−⟩ 叠加的桥梁
  • U_f | 对 (x,y) 应用 |y⟩ → |y⊕f(x)⟩,产生相位反冲
  • 测量 | 仅对 q0 测量;q1 通常不测量

原理与结果分析

数学推导要点

  1. 初始态
  • |ψ0⟩ = |0⟩|1⟩ = |01⟩。
  1. 第一次 H 门
  • H|0⟩ = (|0⟩+|1⟩)/√2,H|1⟩ = (|0⟩−|1⟩)/√2。
  • 因此:H(q0)H(q1)|01⟩ = |+⟩|−⟩,其中
    • |+⟩ = (|0⟩+|1⟩)/√2,
    • |−⟩ = (|0⟩−|1⟩)/√2。
  1. Oracle U_f 作用
  • 以“相位反冲”视角理解:对每个输入 |x⟩,U_f 会将辅助比特由 |−⟩ 变为 (−1)^{f(x)}|−⟩。
    • 若 f(x)=0,|−⟩ 不变;
    • 若 f(x)=1,|−⟩ 获得一个全局相位因子 −1。
  • 因此:U_f|+⟩|−⟩ = (|0⟩+(−1)^{f(0)}|−⟩)/√2 ⊗ |−⟩ 加上 (|1⟩+(−1)^{f(1)}|−⟩)/√2 ⊗ |−⟩ 的叠加。换言之,U_f 改变了 q0 的振幅相位,具体为:对 |x⟩ 的振幅乘以 (−1)^{f(x)}。
  1. 第二次 H 门(作用于 q0)
  • 对 q0 应用 H:H|+⟩=|0⟩,H|−⟩=|1⟩。
  • 分两种 f 类型观察最终状态。
  • 常数 f:
    • 若 f(0)=f(1)=0:U_f 不改变 q0 相位,U_f|+⟩|−⟩ = |+⟩|−⟩ → H 后 = |0⟩|−⟩。测量 q0 恒得 0。
    • 若 f(0)=f(1)=1:U_f 对所有 |x⟩ 引入相同相位因子 (−1),U_f|+⟩|−⟩ = −|+⟩|−⟩ → H 后 = −|0⟩|−⟩。测量 q0 恒得 0。
    • 结论:常数时 q0 输出 0。
  • 平衡 f:
    • 若 f(0)=0, f(1)=1:U_f 对 |1⟩ 分量施加 −1,得到状态 (|0⟩−|1⟩)|−⟩/√2 = |−⟩|−⟩ → H 后 = |1⟩|−⟩。测量 q0 恒得 1。
    • 若 f(0)=1, f(1)=0:U_f 对 |0⟩ 分量施加 −1,得到状态 (−|0⟩+|1⟩)|−⟩/√2 = −|−⟩|−⟩ → H 后 = −|1⟩|−⟩。测量 q0 恒得 1。
    • 结论:平衡时 q0 输出 1。

判定表

  • f 类型 | 常见真值表形式 | 最终测量 q0 的概率分布
  • 常数 | 00 或 11 | 恒为 0(100%)
  • 平衡 | 01 或 10 | 恒为 1(100%)

结果解释

  • 量子算法仅调用一次 U_f(一次函数查询),即可通过测量 q0 得到可靠结论。
  • q1 的 |−⟩ 态在 U_f 作用下引发“相位反冲”,在第二次 H 门之后通过干涉把两种 f 类型区分开来。
  • 这种通过相位编码信息并依赖干涉完成判定,是量子算法的标志性范式。

量子门详细分析

门作用机制

  • H 门:创建与销毁叠加态的关键。
    • 第一次 H(q0) 把 |0⟩ 变为 |+⟩,使输入处于“并行”的两个基态叠加。
    • 第二次 H(q0) 将“编码的相位信息”转换回可观测的 0/1 分布。
  • Oracle U_f:算法特异性组件。
    • 目标是将 f(x) 的信息通过“相位反冲”刻入 q0 的振幅相位中。

算法背景与目标

本章从三个经典“基准问题”出发:常数/平衡判定(Deutsch)、无序数据库搜索(Grover)、周期发现(Simon)。通过这些问题的设定、复杂度边界与量子优势对比,帮助读者理解“叠加 + 干涉 + Oracle(黑盒)”的通用范式,并明确后续章节将具体展开的门级实现与电路图。

1) Deutsch算法:量子计算的第一个算法

  • 问题描述

    • 给定黑盒函数 f: {0,1} → {0,1},只允许对其输入/输出进行查询(不暴露实现)。任务是判断 f 是否为常数(对所有 x,f(x) 全相同),还是平衡(对所有 x,f(x) 恰好各半)。
    • 形式化目标:只需输出“常数”或“平衡”。
  • 经典复杂度

    • 最坏情况需要两次查询:先问 f(0),再问 f(1)。若一次查询,得到的输出无法区分常数与平衡。例如:
      • 若问得 f(0)=0,f 可能为常数函数 f(0)=f(1)=0;也可能是平衡函数 f(0)=0, f(1)=1。一次查询无法确定。
    • 若只问一次,无论如何,总存在至少一种常数函数与一种平衡函数能给出相同输出,故无法确定答案。
    • 随机化(抛硬币)可降低期望查询数,但无法保证确定性。
  • 量子优势

    • Deutsch 量子算法只需一次 Oracle 查询,即可保证正确判断常数/平衡。
    • 典型电路结构(输入 qubit = x,辅助 qubit = |−⟩):
      • 初态:|x⟩|−⟩ = |0⟩|−⟩
      • 叠加:H ⊗ I 后,x 进入均匀叠加|+⟩,y 为|−⟩
      • Oracle:U_f 施加相位反冲,y 为|−⟩ 时会将 f(x) 的值以全局相位注入到 x
      • 叠加:再次对 x 做 H 门,利用干涉将信息集中到测量
      • 测量:常数函数必测得 0,平衡函数必测得 1
    • 核心思想:利用叠加将“所有输入”并行访问,再通过 Oracle 的相位反冲在叠加态上写入信息;最后以 H 门做干涉放大该信息的可读性。
  • 量子电路示意

    • 说明:此为Deutsch算法最小形态,x 为 1 个输入 qubit,y 为 1 个辅助 qubit。图中 y 初始化为 |1⟩,随后 H 门得到 |−⟩。
    • 量子电路图(文本/字符示意):
      • q[0]: ──H──●──H──
      • q[1]: ──H──⊕──
      • 说明:q[0] 为 x,q[1] 为 y;H 为 Hadamard 门;●⊕ 表示 U_f: |x⟩|y⟩ → |x⟩|y⊕f(x)⟩。其中 y 初始设为 |1⟩,则 H 后变为 |−⟩,相位反冲生效。
    • Mermaid 示意(便于复制到文档中)
          graph LR
        subgraph "Deutsch 电路"
          direction TB
          q0["q0: |0⟩"] --> q0_H["H"] --> q0_U["U_f (x,y→x,y⊕f(x))"] --> q0_H2["H"] --> m0["measure x → 0:常数, 1:平衡"]
          q1["q1: |1⟩"] --> q1_H["H"] --> q1_U["U_f (x,y→x,y⊕f(x))"]
        end

2) Grover搜索算法:数据库搜索的量子加速

  • 问题描述

    • 在 N 个无序项目中给定唯一“目标项”T。只允许通过黑盒 Oracle 访问“是否命中目标”的信息(即给定索引 x,可查询 T 是否为 x)。
    • 目标:在尽可能少的查询内,以高概率找到 T。
  • 经典复杂度

    • 确定性最坏情况需 N 次查询;随机化期望查询数约 N/2。
    • 经典搜索无法在确定性意义下少于 O(N) 次查询(除非对问题结构有额外先验信息)。
  • 量子优势

    • 在无序搜索场景,量子算法可将查询复杂度降至 O(√N),通过多次迭代的“标记目标态相位翻转”(Oracle)与“围绕平均值的振幅反转”(扩散算子)实现振幅放大。
    • 最优迭代次数约为 ⌊π√N/4⌋,最终测量高概率命中目标态。
  • 量子电路示意

    • 说明:q[0…n-1] 编码 N=2^n 个索引;Oracle 将目标态相位翻转 −1;扩散算子围绕全体态的振幅平均值做对称反转。
    • 量子电路图(文本/字符示意):
      • q[0…n-1]: ──H^{⊗n}──Oracle──Diffuser──Oracle──Diffuser── … ──measure
      • 注:交替执行 Oracle 与 Diffuser,直到迭代次数接近 π√N/4。
    • Mermaid 示意(便于复制到文档中)
          graph LR
        subgraph "Grover Circuit"
          direction TB
          start["Initial: |0⟩^{⊗n}"] --> init["H^{⊗n} (Uniform Superposition)"]
          init --> GroverIter["Oracle + Diffuser"]
          GroverIter --> GroverIter2["Oracle + Diffuser (Repeat)"]
          GroverIter2 --> GroverIterN["Oracle + Diffuser (Optimal ≈ π√N/4)"]
          GroverIterN --> measure["Measurement"]
        end

量子电路设计

好的,这是您量子计算入门系列文章的第2章节内容。

# 2. 量子电路设计

在前一章中,我们深入理解了量子比特和叠加的核心原理——量子计算的巨大潜力正源于此。现在,我们将从“设计蓝图”跃迁到“物理实现”,学习如何运用量子门来构建和操纵量子态,从而真正执行计算。量子电路设计是连接抽象理论与具体算法的桥梁。

核心任务:构建量子计算的“程序”

量子电路的设计,本质上是通过一系列精心编排的量子门操作,将输入的初始态(如全 |0⟩ 态)变换成我们期望的输出态(通常是一个包含问题答案信息的态),随后通过测量提取结果。这个过程可以类比经典计算机中的门级电路设计,但量子门操作利用了叠加、纠缠和干涉这些独特的量子效应。

设计基础:从态到门到电路

  1. 态的制备:

    • 通常,系统从易于实现的初始态开始,如每个量子比特都处于 |0⟩ 态。
    • 设计的核心在于如何从这个简单的、可控的起点,制备出蕴含计算所需的特定叠加或纠缠态。例如:
      • 使用 Hadamard 门 (H) 制备均匀叠加态:H |0⟩ = (|0⟩ + |1⟩)/√2
      • 使用 受控门 (如 CNOT, CCNOT) 构建纠缠态:CNOT(H|0⟩ ⊗ |0⟩) = (|00⟩ + |11⟩)/√2 (Bell态)。
      • 使用 旋转门 (如 R_x, R_y, R_z) 在Bloch球面上精确控制量子态的相位和振幅。
      • 使用相位估计幅度放大等子例程构造复杂态。
  2. 核心门序列 (关键构件):

    • 单比特门:X, Y, Z (Pauli门), H (Hadamard), S (相位门), T (π/8门), R_x(θ), R_y(θ), R_z(θ) (绕特定轴旋转)。这些门用于局部态变换和相位操控。
    • 多比特门:CNOT (受控非门), Toffoli (受控受控非门), SWAP (交换门)。这些门用于构建纠缠态和实现条件逻辑。
    • 受控版本: U 是任意单比特或更高阶门。受控门 CU 的作用是:当且仅当控制比特处于特定态(如 |1⟩)时,对目标比特应用 U。这是量子计算实现条件逻辑的关键机制。
    • 特定问题门 (Oracle): 这是为特定问题量身定制的特殊“黑箱”门。它通常封装了对问题输入(如函数 f(x))的评估操作。其标准作用形式之一是 U_f |x⟩ |y⟩ = |x⟩ |y ⊕ f(x)⟩ (使用辅助比特 |y⟩ 存储函数结果),或者更巧妙地在输入态上施加基于 f(x) 的相位翻转 (-1)^{f(x)},如Deutsch和Simon算法中的做法。设计一个高效的Oracle是算法实现的关键环节。
  3. 电路的构建与可视化:

    • 量子电路图是设计量子算法的标准语言和可视化工具。
    • 基本元素:
      • 量子比特线路: 用水平线表示,每条线代表一个量子比特。
      • 量子门: 用标准符号(如 H, X, CNOT)标注在对应线路上方(或门框内),表示作用在哪个比特上及其类型。
      • 测量符号: 用仪表盘图标表示,通常连接在被测量的比特线上,表示在何时以及如何测量该比特。
      • 导线与连接: 多比特门的控制位和目标位用垂直线连接。复合门(如CCNOT)可能包含多个控制位。
      • 时间流: 时间从左向右流动,门按顺序作用于比特。
      • 辅助比特: 额外的比特通常单独放置在电路图底部,常用于存储中间计算结果(如函数输出)或辅助操作(如相位估计)。
    • 设计原则:
      • 清晰性: 电路图应尽可能直观地展示算法的逻辑流。
      • 效率: 追求门数最少、电路深度(关键路径)最短的设计。
      • 可实现性: 设计应考虑当前硬件的物理限制(如可用的门集、门保真度、拓扑连接等)。
      • 可测试性: 包含验证中间态正确性的手段(如模拟)。

经典算法电路设计入门:电路蓝图实例

接下来,我们通过三个经典算法电路的设计蓝图,深入理解量子电路设计的核心思想。这些电路展示了如何通过叠加、干涉和特定Oracle来达成量子优势。

1. Deutsch-Jozsa 算法:量子电路的简洁性与力量

  • 问题: 判断一个输入为 n 比特二进制数 x 的函数 f: {0,1}^n → {0,1}常数函数(对所有 x 输出相同值)还是平衡函数(对恰好一半的输入 x 输出 0,对另一半输出 1)。经典算法在最坏情况下需要 2^{n-1} + 1 次函数调用才能确定。
  • 量子电路设计:
        graph TD
        subgraph "Deutsch-Jozsa 量子电路"
            subgraph "辅助比特 (y)"
                Y1["|0⟩"] --> Y1H[H]
                Y1H --> Y1ORC["U_f
    Oracle"] Y1ORC --> Y1H2[H] Y1H2 --> Y1MEAS[Measure] end subgraph "输入比特 (x_1 ... x_n)" X1["|0⟩"] --> X1H[H] X2["|0⟩"] --> X2H[H] X3[... ... ...] Xn["|0⟩"] --> XnH[H] X1H --> XnH2["H
    ... ... ...
    H ⊗ n"] XnH2 --> XnORC["U_f
    Oracle"] XnORC --> XnH3["H
    ... ... ...
    H ⊗ n"] XnH3 --> XnMEAS[Measure] end end
    • 设计要点:
      1. 态制备: 输入寄存器(n 比特)全部制备在 |0⟩ 态。辅助比特(1 比特)制备在 |1⟩ 态。
      2. 均匀叠加: 对输入寄存器和辅助比特同时施加 H 门:H^{⊗n} ⊗ H。此时输入寄存器处于所有 2^n 个基态的均匀叠加 ∑_{x} |x⟩ / √{2^n},辅助比特处于 |−⟩ = (|0⟩−|1⟩)/√2 态。
      3. Oracle 作用: U_f 将函数信息通过相位反冲编码到输入寄存器中。
      4. 再次 H 门: 对输入寄存器再次施加 H^{⊗n},利用干涉效应将相位信息转化为可测量的概率差异。
      5. 测量: 若测得全 0,则 f 为常数函数;否则为平衡函数。

原理与结果分析

2. Deutsch算法:原理与结果分析

下面从状态演化、相位反冲、干涉与测量四个核心维度,系统拆解 Deutsch 算法的原理,并给出严格的数学推导与工程视角的可复现实现。

1) 电路结构与输入初始化

  • 量子比特数目:2 比特(x:计算比特,y:辅助比特)
  • 初始态:|0⟩_x ⊗ |1⟩_y
  • 门序列:H⊗H → Oracle U_f → H⊗H → measure x
  • Oracle 定义:U_f|x⟩|y⟩ = |x⟩|y ⊕ f(x)⟩,其中 f: {0,1} → {0,1}

电路图(符号化):

  • q0: x(计算寄存器)
  • q1: y(辅助寄存器,置初态 |1⟩)

门序列:

  • q0: H → [U_f 作用] → H
  • q1: H → [U_f 作用] → H

状态演化要点:

  • 在两次 Hadamard 作用与 U_f 的组合下,x 寄存器的最终态以确定性形式出现 0 或 1,从而一次性判定 f 是否为常数。

2) 状态演化(Step-by-Step)

设初始 |ψ0⟩ = |0⟩_x |1⟩_y

  1. 第一次 H⊗H:
    H|0⟩ = (|+⟩),H|1⟩ = (|−⟩)
    → |ψ1⟩ = (|+⟩_x) ⊗ (|−⟩_y)

  2. 施加 Oracle U_f:
    对任意 |x⟩,有 |y ⊕ f(x)⟩ 的映射。若 y = |−⟩,则:

  • 若 f(x) = 0:|−⟩ → |−⟩
  • 若 f(x) = 1:|−⟩ → −|−⟩
    即 U_f 作用到 |x⟩|−⟩ 上表现为对整体附加相位 (−1)^{f(x)}:
    → |ψ2⟩ = [∑_{x∈{0,1}} (−1)^{f(x)} |x⟩] ⊗ |−⟩_y
  1. 第二次 H⊗H(仅测量 x):
    H 作用于叠加态得到
    H∑_{x} a_x |x⟩ = ∑_{z} [∑_{x} a_x (−1)^{xz}] |z⟩ / √2
    取 z=0 可得幅度
    A_0 = [a_0 + a_1] / √2

将 a_x = (−1)^{f(x)} 代入:
A_0 = [ (−1)^{f(0)} + (−1)^{f(1)} ] / √2

  • 若 f(0)=f(1)(常数):(−1)^{f(0)} = (−1)^{f(1)},因此
    A_0 = ±2/√2 = ±√2 ⇒ P(x=0)=|A_0|^2=1
  • 若 f(0)≠f(1)(平衡):(−1)^{f(0)} = −(−1)^{f(1)},因此
    A_0 = 0 ⇒ P(x=0)=0 ⇒ x 必然为 1

由此得出判定规则:

  • x 测量结果为 0 → f 是常数
  • x 测量结果为 1 → f 是平衡

要点总结表:

步骤输入态作用门输出态备注
初始化0⟩_x1⟩_y
第一次 H0⟩1⟩H⊗H
Oracle U_f+⟩−⟩U_f
第二次 Hψ2⟩H⊗H
测量 xψ3⟩_xmeasure0 或 1

3) 相位反冲与干涉:为什么一次查询足够

  • 相位反冲(phase kickback):由于辅助比特 y 被初始化为 |−⟩,Oracle 在 y 上的操作转化为 x 空间的相位 (−1)^{f(x)},而不对 x 做确定性翻转。这一步将“函数值信息”编码为相位。
  • 干涉(interference):第二次 Hadamard 将相位信息变为幅度干涉,使得常数函数与平衡函数在 |0⟩ 处的概率分布截然不同(常数函数概率为1,平衡函数概率为0),从而实现一次查询即可判定。

量子门详细分析

2. 三个基本量子算法及其量子门应用

Deutsch算法:量子计算的第一个算法

量子门详细分析

在Deutsch算法中,量子门序列是实现算法核心功能的关键。每个门操作不仅改变量子态,还通过叠加、干涉和测量提取结果。以下是详细分析,结合量子电路图(使用Mermaid图表展示)和操作示例。


1. H门(Hadamard门)的作用
  • 功能概述:H门是量子计算中最基础的单量子比特门,用于创建和消除叠加态。它将量子比特从基态转换为均匀叠加态,或从叠加态回转到基态,从而实现量子并行性的关键步骤。
  • 在Deutsch算法中的作用
    • 初始态制备:算法开始时,量子比特1(控制比特)初始于|0⟩,量子比特2(辅助比特)初始于|1⟩。H门应用于这两个比特,分别制备均匀叠加态:
      • 对量子比特1:H|0⟩ = (|0⟩ + |1⟩)/√2(即|+⟩态),使输入均匀覆盖所有可能值(x=0和x=1)。
      • 对量子比特2:H|1⟩ = (|0⟩ - |1⟩)/√2(即|-⟩态),引入相位差,为后续相位反冲做准备。
    • 消除叠加:在算法末尾,H门再次应用于量子比特1,将叠加态转化为可测量基态(|0⟩或|1⟩),使测量能区分常数函数和平衡函数。
  • 数学表示:H门的矩阵形式为:
    [
    H = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \ 1 & -1 \end{pmatrix}
    ]
    例如,H门作用于|0⟩:H|0⟩ = (|0⟩ + |1⟩)/√2;作用于|1⟩:H|1⟩ = (|0⟩ - |1⟩)/√2。
  • 直观比喻:H门如同“量子硬币投掷”,将确定性状态转换为随机叠加,类似于经典概率中的均匀分布,但量子态允许干涉。

2. Oracle门(U_f)的作用
  • 功能概述:Oracle门U_f是问题依赖的量子黑盒,实现函数f: {0,1} → {0,1}的映射。它通过相位反冲机制改变辅助比特的相位,而不直接改变控制比特的幅度,从而标记函数类型。
  • 在Deutsch算法中的作用
    • 映射操作:U_f作用于组合态|x⟩|y⟩,输出|x⟩|y ⊕ f(x)⟩。这相当于对辅助比特应用条件性翻转(如果f(x)=1,则翻转|y⟩)。
    • 相位反冲:关键在于,当控制比特处于叠加态时,Oracle通过辅助比特的相位变化间接影响控制比特的相位。例如:
      • 如果f是常数函数(f(0)=f(1)=c),则U_f只改变辅助比特,不影响控制比特相位。
      • 如果f是平衡函数(f(0)≠f(1)),则Oracle导致控制比特相位反转,实现干涉。
  • 数学表示:Oracle门的操作可表示为:
    [
    U_f |x\rangle|y\rangle = |x\rangle|y \oplus f(x)\rangle
    ]
    例如,对于f(0)=0, f(1)=1的平衡函数,Oracle门使辅助比特| -⟩在控制比特|x⟩为1时翻转,导致整体态出现相位差。
  • 直观比喻:Oracle门如同“量子问询函数”,它不直接给出答案,但通过状态变化传递信息,类似于经典算法中的函数调用。

3. 测量操作的作用
  • 功能概述:测量是量子计算中提取经典信息的步骤。在Deutsch算法中,测量第一个量子比特的结果直接决定函数类型,避免了重复调用函数。
  • 在Deutsch算法中的作用
    • 结果提取:算法结束后,测量量子比特1:
      • 如果测量结果为|0⟩,则f是常数函数(概率高)。
      • 如果测量结果为|1⟩,则f是平衡函数(概率高)。
    • 干涉验证:通过H门后的干涉效果,测量能以高概率区分两种情况。测量导致状态坍缩,但结合量子并行性和干涉,实现一次函数调用完成任务。
  • 概率解释:测量结果的概率基于Born规则(|系数|²)。例如,在常数函数情况下,测量|0⟩的概率为1;在平衡函数情况下,测量|1⟩的概率为1(理想情况)。
  • 直观比喻:测量如同“量子读数”,它从概率云中提取确定结果,但依赖之前门的操作来放大信号。

量子电路图(Mermaid格式)

以下是Deutsch算法的量子电路图,展示了门序列:H门应用于两个量子比特,然后Oracle门U_f,最后H门应用于量子比特1并测量。

graph LR
    A["|0⟩"] --> H1[H]
    H1 --> B1["|+⟩"]
    B1 --> Uf[Oracle U_f]
    
    C["|1⟩"] --> H2[H]
    H2 --> B2["|-⟩"]
    B2 --> Uf
    
    Uf --> D[H]
    D --> E[Measure]
    E --> F[Result: 0/1]

图解

  • 初始态:量子比特1(控制)为|0⟩,量子比特2(辅助)为|1⟩。
  • 门序列:
    • H1和H2:制备叠加态|+⟩和|-⟩。
    • Oracle U_f:执行函数映射和相位反冲,将函数信息编码到量子态的相位中。