当前位置: 首页 > news >正文

Bernstein-Vazirani算法

B-V算法

(1) 问题描述

  给定布尔函数f:{0,1}n→0,1f:{\left\{ {0,1} \right\}^n} \to{0,1}f:{0,1}n0,1, 函数fff的值是由输入比特串xxx和确定的比特串sss做模2意义下的内积:f(x)=x⋅s(mod2),f\left( x \right) = x \cdot s\left( {\bmod 2} \right),f(x)=xs(mod2),其中x⋅s=∑i(xi⊕si)x \cdot s = \sum\limits_i {\left( {{x_i} \oplus {s_i}} \right)} xs=i(xisi)
前提:可以调用访问函数fff的黑盒
问题:计算出比特串sss

经典意义下
  依次输入比特串xxx:
00...0000...0100...10...01...0010...00\begin{array}{l} 00...00\\ 00...01\\ 00...10\\ ...\\ 01...00\\ 10...00 \end{array}00...0000...0100...10...01...0010...00
对于第iii次输入:
000100...00→x⋅s(mod2)=si000100...00 \to x \cdot s\left( {\bmod 2} \right) = {s_i}000100...00xs(mod2)=si
重复该流程nnn次,即可确定比特串sss,上述方法的查询复杂度为O(n)O\left( n \right)O(n)

(2) 量子算法核心思路:

基础知识:H⊗n∣s⟩=12n2∑x(−1)s⋅x∣x⟩H^{\otimes n}|s\rangle=\frac{1}{2^{\frac{n}{2}}} \sum_{x}(-1)^{s \cdot x}|x\rangleHns=22n1x(1)sxx

Step1:制备初始量子比特∣Φ0⟩=∣0⟩⊗n\left| {{\Phi _0}} \right\rangle ={\left| 0 \right\rangle ^{ \otimes n}}Φ0=0n
Step2:作用H⊗n{H^{ \otimes n}}Hn,得到量子态∣Φ0⟩=12n2∑x∣x⟩\left| {{\Phi _0}} \right\rangle = \frac{1}{{{2^{\frac{n}{2}}}}}\sum\limits_x {|x\rangle } Φ0=22n1xx
Step3:作用量子黑盒Of{O_f}OfOf:∣x⟩→(−1)x⋅s∣x⟩{O_f}:\left| x \right\rangle \to {\left( { - 1} \right)^{x \cdot s}}\left| x \right\rangleOf:x(1)xsx,此时系统状态为∣Φ1⟩=12n2∑x(−1)s⋅x∣x⟩\left| {{\Phi _1}} \right\rangle = \frac{1}{{{2^{\frac{n}{2}}}}}\sum\limits_x {{{\left( { - 1} \right)}^{s \cdot x}}|x\rangle }Φ1=22n1x(1)sxx
Step4:作用H⊗n{H^{ \otimes n}}Hn,系统状态变为∣s⟩|s\rangles
此时测量量子系统即可得到比特串sss,该算法的查询复杂为O(1)O(1)O(1)

备注:上述量子黑盒OfO_fOf的实现方法与Deutsh算法相似,具体方法如下

在这里插入图片描述

(1) 制备量子态∣Ψ0⟩=∣0⟩n∣1⟩\left| {{\Psi _0}} \right\rangle = {\left| 0 \right\rangle ^n}\left| 1 \right\rangleΨ0=0n1
(2) 作用H⊗n{H^{ \otimes n}}Hn,量子系统变为∣Ψ1⟩=12n2∑x∣x⟩∣−⟩\left| {{\Psi _1}} \right\rangle = \frac{1}{{{2^{\frac{n}{2}}}}}\sum\limits_x {|x\rangle } \left| - \right\rangleΨ1=22n1xx
(3) 作用Uf:∣x⟩∣y⟩→∣x⟩∣y⊕f(x)⟩U_f:\left|x\right\rangle\left|y\right\rangle \to\left|x\right\rangle\left|y\oplus f\left( x \right)\right\rangleUfxyxyf(x),量子系统演变为∣Ψ2⟩=12n2∑x∣x⟩1212(∣0⊕f(x)⟩−∣1⊕f(x)⟩)\left| {{\Psi _2}} \right\rangle = \frac{1}{{{2^{\frac{n}{2}}}}}\sum\limits_x {|x\rangle } \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| {0 \oplus f\left( x \right)} \right\rangle - \left| {1 \oplus f\left( x \right)} \right\rangle } \right)Ψ2=22n1xx2211(0f(x)1f(x))
f(x)=0{f\left( x \right)}=0f(x)=0时,∣x⟩1212(∣0⊕f(x)⟩−∣1⊕f(x)⟩)=∣x⟩1212(∣0⟩−∣1⟩)=∣x⟩∣−⟩\left|x\right\rangle \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| {0 \oplus f\left( x \right)} \right\rangle - \left| {1 \oplus f\left( x \right)} \right\rangle } \right) = |x\rangle \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| 0 \right\rangle - \left| 1 \right\rangle } \right) = |x\rangle \left| - \right\ranglex2211(0f(x)1f(x))=x2211(01)=x
f(x)=1{f\left( x \right)}=1f(x)=1时,∣x⟩1212(∣0⊕f(x)⟩−∣1⊕f(x)⟩)=∣x⟩1212(∣0⟩−∣1⟩)=−∣x⟩∣−⟩\left|x\right\rangle \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| {0 \oplus f\left( x \right)} \right\rangle - \left| {1 \oplus f\left( x \right)} \right\rangle } \right) = |x\rangle \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| 0 \right\rangle - \left| 1 \right\rangle } \right) = -|x\rangle \left| - \right\ranglex2211(0f(x)1f(x))=x2211(01)=x
不难发现UfU_fUf的作用为:∣x⟩∣−⟩→(−1)f(x)∣x⟩∣−⟩=(−1)s⋅x∣x⟩∣−⟩|x\rangle \left| - \right\rangle \to {\left( { - 1} \right)^{f\left( x \right)}}|x\rangle \left| - \right\rangle={\left( { - 1} \right)^{s \cdot x}}|x\rangle \left| - \right\ranglex(1)f(x)x=(1)sxx
舍弃掉最后一个量子比特(辅助比特)∣−⟩\left| - \right\rangle,即实现了Step3中的黑盒OfO_fOf

参考资料
[1] Bernstein-Vazirani Algorithm 学习笔记
[2] 量子计算【算法篇】第7章 Deutsch-Josza算法及实现
(3) 由 Fourier Sampling 到 Deutsch-Jozsa Algorithm & Bernstein-Vazirani Algorithm

http://www.lryc.cn/news/9851.html

相关文章:

  • 华为OD机试 - 相对开音节 | 备考思路,刷题要点,答疑 【新解法】
  • MyBatis
  • 良好的作息表
  • 【郭东白架构课 模块一:生存法则】01|模块导学:是什么在影响架构活动的成败?
  • webshell免杀之函数与变量玩法
  • 【新解法】华为OD机试 - 去重求和 | 备考思路,刷题要点,答疑,od Base 提供
  • MySQL 服务正在启动.MySQL 服务无法启动.服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。总结较全 (已解决)
  • 【数据结构与算法】数组2:双指针法 二分法(螺旋矩阵)
  • librtmp优化
  • 数据结构与算法(二):线性表
  • IOS安全区域适配
  • 在Java 中 利用Milo通信库,实现OPCUA客户端,并生成证书
  • 三分钟学会用Vim
  • 编译链接实战(8)认识elf文件格式
  • 新手小白如何入门黑客技术?
  • 【java】Spring Boot --深入SpringBoot注解原理及使用
  • 一文掌握如何对项目进行诊断?【步骤方法和工具】
  • 系统分析师真题2020试卷相关概念二
  • <<Java开发环境配置>>5-MySQL安装教程(绿色版)
  • 空间复杂度与时间复杂度
  • javaEE 初阶 — 延迟应答与捎带应答
  • Twitter账号老被封?一文教会你怎么养号
  • 当遇到国外客户的问题,你解决不了的时候怎么办
  • 算法刷题打卡第93天: 最大的以 1 为边界的正方形
  • python语言基础(最详细版)
  • Java小技能:字符串
  • 2023美赛D题:可持续发展目标
  • openwrt开发板与ubuntu nfs挂载
  • 【Redis】Redis持久化之AOF详解(Redis专栏启动)
  • Git小乌龟每次推送拉取都弹窗和用户名密码报错(解决办法)