news 2026/11/6 9:02:15

Bernstein–Vazirani 算法 的原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Bernstein–Vazirani 算法 的原理

1. 原理

1.1. 问题定义

有一个隐藏的二进制字符串,有一个黑盒(Oracle)​ 实现函数:,其中​ 是按位点乘模 2(奇偶性)。

经典上,如果只能通过输入得到,那么需要 n 次查询才能确定(每次查询确定一个比特,例如输入在第 j 位为 1 可以得到​)。

Bernstein–Vazirani 算法用量子计算,只用 1 次查询就得到。

1.2. 量子 Oracle 的实现

我们实现一个量子门​ 满足:

其中是 n qubit 寄存器,是 1 qubit 辅助寄存器。

1.3. 算法步骤

步骤 1:初始化

  • 第一寄存器(n 个 qubit):

  • 第二寄存器(1 个 qubit):

系统初态:

步骤 2:在辅助比特和输入寄存器上加 Hadamard 门

对每个 qubit 作用:

我们知道:

所以:

步骤 3:调用 Oracle​

因为:

这里。

验证:
若:
若:

所以:

代入:

关键点:辅助比特依然是态,没有被纠缠,所以我们可以只看第一寄存器状态:

这个态称为s 的 Hadamard 基编码态(类似傅里叶对偶)。

步骤 4:对第一寄存器再作用 H^{\otimes n}H⊗n

回忆 Hadamard 门的性质:

逆变换相同(因为是自逆):

交换求和顺序:

步骤 5:利用正交性

对于二进制向量,有恒等式:

其中是 n qubit 向量,当且仅当,否则为 0。

这里,所以:

即只有的那一项系数为 1,其它为 0。

因此:

步骤 6:测量

测量第一寄存器的 n 个 qubit,得到结果即为(确定性的,不是概率性的),因为量子态正好是。

1.4. 总结

算法步骤简记:

  1. 初始:

  2. 对所有 qubit 作用 Hadamard:

  3. 调用 Oracle​:

  4. 对前 n 个 qubit 再次作用 Hadamard:

  5. 测量前 n 个 qubit,得到。

1.5. 与 Deutsch–Jozsa 的区别

  • Deutsch–Jozsa:区分常数函数与平衡函数,也需要 1 次量子查询(经典最坏次)。

  • Bernstein–Vazirani:找到一个隐藏的二进制字符串,经典需要 n 次查询,量子 1 次。

  • BV 可以视为 DJ 的一个特例(但目标不同)。

最终,BV 算法的量子加速来自于量子并行 + 相位反冲 + 量子傅里叶(Hadamard)变换的配合,让 Oracle 一次调用就在叠加态中标记所有的相位,再通过 Hadamard 变换把相位信息变成基态。

2. 深入

我们来具体构造​,让它实现。

2.1. 函数定义

给定一个固定的二进制字符串​,其中。
定义:

这是线性函数(模 2 加法)。

2.2. 量子 Oracle 形式

我们需要一个幺正算符 U_fUf​ 使得:

对于 BV 算法,辅助比特初始为时会触发相位反冲,使得:

所以对第一寄存器来说,​ 在这种特殊情况下表现为一个相位 Oracle:

2.3. 电路构造

情况 1:只有一个 1(比如,第 j 位为 1)

那么​。

实现方式:

  • 如果且其它位,则​ 只需在辅助比特上加一个受控于第 j 个 qubit 的 CNOT。

电路:

这就是 CNOT 门,控制位是第 j 个 qubit,目标位是辅助比特。


情况 2:一般有多个 1

例如,则​(假设 n=3)。

实现方法:

  • 对于每个 i,如果,就对辅助比特做一个CNOT,控制位是第 i 个 qubit。

  • 因为这些 CNOT 都目标在同一个辅助比特上,最终效果是:

    ​

    这正是。


例子:
电路(第一寄存器,辅助比特):

  1. CNOT:控制​,目标

  2. CNOT:控制​,目标
    (​ 因为不参与)

检查对的效果

辅助比特初始为​。

CNOT 门作用在目标为时的性质:
控制比特,目标比特:

因为是 X 的本征值为的本征态:

所以:

即,控制比特为时,整个态乘上。


对于多个 CNOT(都目标在同一辅助比特上),每个 CNOT 的相位因子是​ 当。
总的相位因子是:

这正是我们要的相位 Oracle。

4. 完整电路图(BV 算法)

以为例:

┌───┐ ┌───┐ q0: |0>┤ H ├──■───────┤ H ├─── M ───> s1 ├───┤ │ ├───┤ q1: |0>┤ H ├──┼───────┤ H ├─── M ───> s2 ├───┤ │ ├───┤ q2: |0>┤ H ├──┼──■────┤ H ├─── M ───> s3 ├───┤┌─┴─┐│ ┌──┴──┐ q3: |1>┤ H ├┤ X ├┤ ├─ X ─┤ └───┘└───┘│ └─────┘ └───────

(注:q3 是辅助比特,初始,经过 H 变成;两个 CNOT 的控制分别是 q0 和 q2,目标都是 q3,对应)

5. 为什么经典查询需要 n 次?

经典只能输入得到。
要确定,需选取个线性无关的,例如:

…

每个查询得到的一个比特,所以需要次。

6. 量子一次查询的原因

量子可以输入叠加态:

Oracle 一次作用在叠加态上,同时对所有计算并编码为相位。
然后通过 Hadamard 变换把相位模式​ 变成。

Hadamard 变换在这里起到二进制傅里叶变换的作用,把线性相位的叠加变成单个基态。


总结

​ 的具体实现是,对每个满足的比特 i,在辅助比特上加一个 CNOT 门(控制位是第 i 个 qubit)。当辅助比特初始化为时,这些 CNOT 共同给态加上相位。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/5 6:26:57

Excalidraw竞品对比表格制作:差异化呈现

Excalidraw 与镜像版本的差异化呈现:从基础绘图到智能协作的演进 在技术团队频繁进行架构设计、方案评审和头脑风暴的今天,一张清晰的手绘风格草图往往比千言万语更有效。然而,当会议节奏加快、跨地域协作常态化,传统的“手动拖拽…

作者头像 李华
网站建设 2026/11/5 17:58:04

Excalidraw免费额度设置:吸引个人用户

Excalidraw的免费额度策略:如何用“克制”赢得用户信任 在AI绘图工具纷纷闭源、订阅制动辄每月数十美元的今天,一个开源白板项目却靠着“不赚钱”的姿态悄然走红——Excalidraw。它没有华丽的营销页面,也不靠投资人烧钱补贴用户,而…

作者头像 李华
网站建设 2026/11/6 5:54:40

Excalidraw技术支持响应时间承诺:分级处理

Excalidraw技术支持响应时间承诺:分级处理 在远程协作成为常态的今天,技术团队对工具的期待早已超越“能用”——他们需要的是快速、可靠、可预期的服务体验。尤其当一款工具被广泛用于架构设计评审、敏捷会议记录或产品原型构思时,任何一次同…

作者头像 李华
网站建设 2026/11/5 11:22:04

Excalidraw GDPR合规性检查:用户数据权利响应

Excalidraw GDPR合规性检查:用户数据权利响应 在远程协作日益普及的今天,一款轻量级白板工具是否能在不牺牲隐私的前提下支持高效共创?这个问题在欧盟《通用数据保护条例》(GDPR)严格监管背景下尤为关键。Excalidraw 作…

作者头像 李华
网站建设 2026/11/6 5:38:03

Excalidraw SSO单点登录实现路径探讨

Excalidraw SSO单点登录实现路径探讨 在现代企业协作环境中,一个看似简单的工具——比如手绘风格的白板应用——也可能成为安全与效率博弈的关键节点。Excalidraw 作为一款极简却强大的开源绘图工具,已被广泛用于架构设计、产品原型和团队头脑风暴。但当…

作者头像 李华
网站建设 2026/11/5 8:20:39

腾讯开源混元0.5B:轻量化AI的高效部署新选择

腾讯正式开源混元0.5B指令微调模型(Hunyuan-0.5B-Instruct-AWQ-Int4),这款专为高效部署设计的轻量化模型支持4位整数量化技术,在显著降低计算资源需求的同时,保持了优异的推理性能,为端侧及资源受限场景提供…

作者头像 李华