量子计算的理论发展(三)

今天介绍几种重要的量子算法。

在量子计算的物理实现方面,最重要的莫过于DJ算法,因为它能非常简单地证明量子计算的加速能力。

在应用前景方面,莫过于可以破解RSA公钥体系的Shor算法,和可以解决大部分问题的Grover搜索算法。

所以接下来我们主要关注这三种算法。

一、DJ算法

全称是Deutsch-Jozsa算法,它解决的是这样一个问题:

一个函数f: \left\{ 0, 1 \right\}^n\rightarrow \left\{ 0, 1 \right\},已知它要么是常数函数要么是平衡函数,通过某种算法来确定f是何种类型的函数。

经典算法做多次访问,若做k次访问,输出结果不完全相同,则必为平衡函数;若做k次访问,输出结果都相同,则可能为常数函数。要想做出准确的判断,这个k必须超过2^(n-1),这个算法的复杂度是随着n的增大而指数增多的

但是采用DJ算法,只需要一步就可以判断是常数函数还是平衡函数,其逻辑门操作如图:

jylNRFMWkKGOhKBaIXnnsFYVpoh9FQd7XdlrfGd4

过程如下:

先对输入的n个比特|0>和辅助比特|1>作Hadamard变换,然后经过Uf变换,再对输出比特(不包括辅助比特)进行Hadamard变换即可得到一个可以判断是常数函数还是平衡函数的等式。

第一步Hadamard变换将输入的|0>^{\otimes n}|1>转换为

ABqPLTF0Cd3ZAAAAAElFTkSuQmCC

Hadamard变换实际上是将|0>转换为\frac{1}{\sqrt{2}} \left(  |0>+|1> \right),将|1>转换为\frac{1}{\sqrt{2}} \left(  |0>-|1> \right),多个比特的时候有如下公式:

BIkDCYfiFgiJB+03NjZaa0RwXvtLEyEeHh4eHh4r

然后进行Uf变换,这其中Uf起到了决定性作用,它常被称为是quantum oracle,它进行了如下转换|x>|y>\rightarrow|x>|y\oplus f(x)>,得到

RbU3dteKxnwAAAABJRU5ErkJggg==

因为f(x)要么是0要么是1,所以上式可以改写为

wfPlK0r2QLhWgAAAABJRU5ErkJggg==

再只对输入比特作Hadamard变换,

qiBisn8AAAAASUVORK5CYII=

然后我们以|0>^{\otimes n}为基进行测量,落到这个基上的概率是

wPSzK2X5k5zyAAAAABJRU5ErkJggg==

如果f(x)是常数函数,这个概率就是1;如果是平衡函数,这个概率就是0.

也就是说对于最后的测量,如果落在|0>^{\otimes n}上,就是常数函数;如果不落在|0>^{\otimes n}上,就是平衡函数,实现了一步解决问题,说明了量子计算相对于经典计算的强大之处。

打字蛮累的,今天就先写到这里,大家能对量子计算的威力有个印象~



原文发布时间为:2017.02.01
本文作者:Golden Horqin
本文来源:知乎,如需转载请联系原作者。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值