Simon‘s算法

Simon’s问题

f f f是一个黑盒函数,当输入一个长度为 n n n比特的字符串,将得到长度同样为 n n n比特的字符串。我们对其唯一只晓得性质便是 f f f是一个一对一或者二对一函数。

注:所谓一对一函数是指,对于每一不同输入都将精确地映射出一个独一无二的输出。
注:所谓二对一函数是指,对于每一个输出都仅对应着两个不同的输入。

对于二对一函数存在着一个隐藏的比特串 b b b:给定 x 1 , x 2 x_1,x_2 x1,x2 f ( x 1 ) = f ( x 2 ) f(x_1)=f(x_2) f(x1)=f(x2)那么 x 1 + x 2 ( m o d 2 ) = b x_1+x_2(mod2)=b x1+x2(mod2)=b
Simon’s问题是,给定这样一个黑盒函数我们如何快速找到隐藏比特串 b b b?事实上对于一对一函数它的隐藏比特串 b b b显然为 ∣ 00 ⋯ 0 > |00 \cdots0> 000>

经典求解

在经典情况下,若想要得到函数 f f f的隐藏比特串 b b b,我们需要输入 2 n − 1 + 1 2^{n-1}+1 2n1+1种不同的比特串,其中 n n n代表输入的比特串长度。
这是因为长度为 n n n的比特串一共拥有 2 n 2^n 2n种不同的情况,那就意味着在 2 n − 1 + 1 2^{n-1}+1 2n1+1种不同的输入中一定存在着两个比特串 x 1 , x 2 x_1,x_2 x1,x2使得 f ( x 1 ) = f ( x 2 ) f(x_1)=f(x_2) f(x1)=f(x2)。若不然, 2 n − 1 + 1 2^{n-1}+1 2n1+1种不同的输入分别与隐藏比特串 b b b异或后又得到 2 n − 1 + 1 2^{n-1}+1 2n1+1种不同的输入。此时得到了 2 n + 2 > 2 n 2^n+2>2^n 2n+2>2n种不同的比特串。当比特串长度为 n n n时显然不可能。

量子求解

实现Simon’s算法的量子电路

在这里插入图片描述
在图中的左侧为两个 n n n比特的量子寄存器, Q f Q_f Qf是一个可以实现的硬件,它将作用在这两个寄存器上,起这样的作用:
在这里插入图片描述

在本算法中 ∣ a > = ∣ 0 > = ∣ 00 ⋯ 0 > |a>=|0>=|00\cdots0> a>=0>=000>,从而有:
在这里插入图片描述

实现Simon’s算法的步骤

步骤1

∣ 0 > |0> 0>态去初始化这两个量子寄存器得:
在这里插入图片描述

步骤2

对第一个寄存器施加 H H H变换得:
在这里插入图片描述

步骤3

对整个量子电路应用 Q f Q_f Qf得:
在这里插入图片描述

步骤4

对第二个量子寄存器进行测量,这时我们将得到确定的 f ( x ) f(x) f(x)输出,那么测量值 f ( x ) f(x) f(x)对应的两个等可能的输入记为: ∣ x > , ∣ y > |x>,|y> x>,y> x + y ( m o d 2 ) = b x+y(mod2)=b x+y(mod2)=b。因此此时第一个量子寄存器将变为:
在这里插入图片描述

步骤5

对第一个量子寄存器施加 H H H变换得:
在这里插入图片描述

步骤6

对于我们测得的第二个量子寄存器结果 f ( x ) f(x) f(x),一定对应着确定的 ∣ x > , ∣ y > |x>,|y> x>,y> x + y ( m o d 2 ) = b x+y(mod2)=b x+y(mod2)=b。那么当我们去测量第一个量子寄存器时得到的状态 ∣ z > |z> z>一定满足:
( − 1 ) x z = ( − 1 ) y z = 1 (-1)^{xz}=(-1)^{yz}=1 (1)xz=(1)yz=1

( − 1 ) x z = ( − 1 ) y z = − 1 (-1)^{xz}=(-1)^{yz}=-1 (1)xz=(1)yz=1

( − 1 ) x z = − ( − 1 ) y z (-1)^{xz}=-(-1)^{yz} (1)xz=(1)yz
那么 ∣ z > |z> z>的振幅为为零,也就意味着我们测得第一个量子寄存器的结果为 ∣ z > |z> z>的概率为零。换句话说我们不可能测出使得 ( − 1 ) x z = − ( − 1 ) y z (-1)^{xz}=-(-1)^{yz} (1)xz=(1)yz的状态 ∣ z > |z> z>
进一步来说:
( − 1 ) x z = ( − 1 ) y z (-1)^{xz}=(-1)^{yz} (1)xz=(1)yz
则:
在这里插入图片描述

这时我们测得的状态 ∣ z > |z> z>与隐藏比特串 b b b的内积为0,现在我们将这个量子电路上进行多次试验,得到 n n n个不同的状态 ∣ z > |z> z>,从而得到如下线性方程组:
在这里插入图片描述

显然我们可以利用高斯消元法迅速得到隐藏比特串 b b b

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值