Bernstein-Vazirani算法及实践

概述

本文将主要介绍Bernstein-Vazirani算法的基本概念、Bernstein-Vazirani问题以及该问提的经典与量子解决方式。本文对Bernstein-Vazirani算法的实现将主要使用启科量子的配套产品量子编程框架QuTrunk、可视化量子编程软件QuBranch以及启科量子自研的量子后端设备QuBox。

1.Bernstein-Vazirani算法

Bernstein-Vazirani算法是由Ethan Bernstein和Umesh Vazirani于1992年提出的一个算法。该算法主要用于求解编码函数,是一个条件限制版的Deutsch-Jozsa算法。也就是说Bernstein-Vazirani的工作建立在Deutsch和Jozsa早期工作理论上来探索量子查询复杂度。他们对该领域的贡献主要为编写出一个用于隐藏字符串问题的量子算法。已经有人证明了Bernstein-Vazirani算法时间复杂度在BQP和BPP之间,该算法的非递归量子查询复杂度仅为11。这一量子算法的最核心价值在于加快了查询速度, 而不是执行时间本身。

那么何为BQP复杂度和BPP复杂度?
在计算复杂性理论中,BQP(bounded-error quantum polynomial time)是量子计算机在多项式时间内可以解决的一类决策问题,所有实例的错误概率最多为1/3。BPP这个每个字母分别代表"Bounded-error"(有限错误),“Probabilistic”(机率的),“Polynomial time”(多项式时间)。BPP是在多项式时间内以概率图灵机解出问题的集合, 并且对所有的输入、输出结果出错的概率在1/3之内。当一个问题属于BPP问题集合时,则存在一个多项式时间内的算法允许随机决定,且对于该算法的任何输入都必须在错误率为1/3的概率下给出正确判断。

2.Bernstein-Vazirani问题

假设一个函数f(x)满足 ‘ f ( x 0 , x 1 , x 2 … … ) ‘ `f({x₀,x₁,x₂……})` f(x0,x1,x2……),以x作为输入,并返回结果0或1。现在给定一个输入x,函数 ‘ f ( x ) = x ⋅ s m o d 2 ‘ `f(x)=x·s mod 2` f(x)=xsmod2‘,其中 ‘ x ∈ 0 , 1 , s ∈ 0 , 1 n ‘ `x∈{0,1},s∈{ {0,1}}^n` x0,1,s0,1n,最终预计会找到s。因此,Bernstein-Vazirani算法目标为求解s。

2.1经典方式求解

采用经典方式求解Bernstein-Vazirani问题,所列表达式为 ‘ f s ( x ) = s ⋅ x m o d    2 ‘ `f_s(x) = s \cdot x \mod 2` fs(x)=sxmod2‘。给定一个输入x,隐藏位串 s 可以按输入序列使用算子oracle查找。如输入x为100…0,010…0,001…0,000…1,经典算法求解方式只能查询生成1位信息,任意隐藏字符串s具有n位信息,所以经典查询的复杂度为O(n)。

示例:当n=2时的Bernstein-Vazirani问题。经典设元素为两位 ‘ x 0 x 1 ‘ `x_0x_1` x0x1,s向量表示为 ‘ s 0 s 1 ‘ `s_0s_1` s0s1,所代表函数为4种类(00,01,10,11)。此时的Bernstein-Vazirani问题为 ‘ f s ( x 0 x 1 ) = 〈 s , x 〉 = s 0 x 0 ⊕ s 1 x 1 ‘ `f_s(x_0x_1)=〈s,x〉=s_0x_0⊕s_1x_1`

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值