[量子计算]量子搜索Grover算法

栏目: 编程工具 · 发布时间: 5年前

内容简介:搜索算法是最常用的一类算法了,然而传统计算机对非结构化数据的搜索其实是比较低效的。一般情况下,算法复杂度为

Post Views: 17

搜索算法是最常用的一类算法了,然而传统计算机对非结构化数据的搜索其实是比较低效的。一般情况下,算法复杂度为 \Omicron(N)N 为数据规模。而量子计算机中存在着量子搜索算法,也称为 Grover’s 算法,它的时间复杂度是 \Omicron(\sqrt N) 。听起来似乎提升不是非常大,然而在数据规模较大的情况下,量子搜索算法的优越性还是非常惊人的。例如,用Grover算法破解通用的56位加密标准(DES),只需要 2^{28} \approx2.68 * 10^{8} 步,而经典算法则需要 2^{55} \approx3.6 * 10^{16} 。如果每秒钟计算十亿次,则经典计算需要11年,而量子算法则只需要3秒钟【参考北大物理学院讲义】。

1、 Grover算法理论基础

Grover’s 算法的基本思路其实非常容易理解,而且存在非常直观的可视化解释(这一点是非常棒的!)。Grover算法的量子线路有一个重要的基本单元,也称为Grover迭代。一个完整的Grover量子线路会包含一个或者多个Grover迭代单元。Grover算法的量子线路图如下所示:

[量子计算]量子搜索Grover算法

不算测量的话,Grover算法量子线路其实也就两个部分,一个是量子态准备,另一个是多次Grover迭代。而每一次的Grover迭代,也可以分为两个部分——一部分是 U_{\omega} ,这部分是为了实现指定态的相位翻转,另一部分就是上图中所示的Grover diffusion operator,其实叫它Invasion abort mean会更贴切一些,至于为啥这样叫,稍后就知道了。

1.1、定性分析

上面很粗略地介绍了下Grover’s algorithm的整体结构,接下来就需要分析下核心部件——Grover迭代单元的工作原理了。Grover迭代单元的工作原理其实朴素,就是指定态翻转和关于平均值翻转(先关注下面几张图的右侧)。

1、首先,假设假设Grover迭代单元的输入是很多态的均匀叠加,如下图右侧所示:

[量子计算]量子搜索Grover算法

2、然后,我们可以通过 U_{\omega} 的作用,把想要搜索的态的幅值翻转过来,其他正交的态完全不变。然后可以得到下图的效果:

[量子计算]量子搜索Grover算法

3、最后,可以根据各个基态的幅值计算出均值,然后按照这个均值镜像翻转各个基态的幅值,就可以得到如下图所示的结果。

[量子计算]量子搜索Grover算法

可以直观发现,通过上面三个步骤,目标态的幅值增大了。事实上,使用Grover迭代一定次数,目标态的幅值可以比较接近1。然后进行测量,可以大概率地测量到目标态,也就是说搜索到了目标态。

1.2、定量分析

上面形象、定性地分析了Grover算法的重要步骤,接下来进行更严谨的推导。首先还是说 U_{\omega} ,这里我们记要搜索的目标态为 \omega ,则可以简单的得到 U_{\omega} 的表达式如下所示:

U_{\omega} = I – 2|\omega \rangle \langle \omega |

其实非常容易理解, |\omega \rangle 左乘以 U_{\omega} ,其幅值符号就会翻转,而其他正交向量就完全不会改变。矩阵的表达式是找到了,怎么转化成量子线路呢?其实是有技巧的,考虑如下图所示的结构。

[量子计算]量子搜索Grover算法

由于最下面的量子比特经过状态准备之后,进入了 \frac {|0\rangle-|1\rangle} {\sqrt 2} 这个态。这个态有一个特点,就是取反操作等效于幅值符号翻转。因此,只需把Oracle构造成相应的条件非门就可以。比如Toffoli gate,Toffoli gate的作用是两个控制比特全部为1的时候,翻转受控比特,其他时间不起作用。因此,Toffoli gate构成的Oracle线路就指定了 (|1\rangle)( | 1 \rangle) 这个目标态。Toffoli gate的实现线路如下图所示:

[量子计算]量子搜索Grover算法

我没仔细推导这个线路,而是参考了维基百科。

上面的分析对应于第二个步骤——按指定向量翻转,接下来就该看另一个步骤——绕均值翻转(inversion abort mean)。其实这个步骤非常容易理解,Grover diffusion operator的公式如下:

H^{\otimes n}(2|0\rangle \langle 0 | – I)H^{\otimes n} = 2|\psi\rangle \langle \psi | – I

至此,单个Grover迭代的过程都分析了,接下来就看看Grover多次迭代的过程。由于推导过程稍微比较麻烦,这里就直接给近似公式了。

| \phi_{r}\rangle \approx sin(\frac {2r} {\sqrt N})|x \rangle + \frac {cos(\frac{2n} {\sqrt N})} {\sqrt N} \sum_{i = 0 ,i !=x}^{N-1}|i \rangle

从公式可以看出来, r=[\frac {\pi}{4}\sqrt N] 的时候,测量到的概率最大(这里r是指的迭代次数)。

2、 Grover算法实践

接下来,还是在IBM量子计算平台上来做一下Grover’s algorithm的实验。这个实验里,取n=2,即实验两个两字比特。

[量子计算]量子搜索Grover算法

[量子计算]量子搜索Grover算法

这里的线路和前文描述的是一样的,Oracle是Toffoli gate构成的,因此这个线路的输出应该大概率是q[1]、q[2]都是 |1\rangle 。可能是硬件原因吧,IBM的物理硬件不让跑这个线路,所以我只能跑模拟了,结果如下,符合实验预期:

[量子计算]量子搜索Grover算法

那量子搜索算法就先写到这里了。。。

参考文献

【1】.《量子计算与量子信息》Michael A. Nielsen

【2】.《量子力学》列文.朗道

【3】.《量子力学原理》P.A.M. Dirac

【4】. IBM量子计算实验平台


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

不止情感设计

不止情感设计

陈华 / 电子工业出版社 / 2015-5-21 / 59.00

本书着眼于“设计&心理”两个主要的维度,围绕“创新式思维2.0”(共情—移情—定义—构思—建模—测试)的模式,分析如何“理解一款好的产品设计”、“如何了解用户需求”、“如何从需求来定义产品”的几个步骤,由浅入深地介绍设计师通过洞察和理解用户内在需求来指导产品创新和设计的理念。一起来看看 《不止情感设计》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具