量子那些事儿 关注
手机版

量子计算

  1. 云栖社区>
  2. 量子那些事儿>
  3. 博客>
  4. 正文

量子计算

雪花又一年 2018-05-17 15:10:10 浏览188 评论0

摘要: 量子尚未经历足够的测试。正如麻省理工学院的计算机科学家斯里尼·戴瓦达斯所说“对于量子之类的东西我连一块钱的赌注都不会押的。”,“这类东西听起来那么不现实。”但是量子所代表的思维方式是值得学习的 一、量子力学 为了方便讨论,需要引入狄拉克符号 这称作狄拉克符号,A代表某种状态。

量子尚未经历足够的测试。正如麻省理工学院的计算机科学家斯里尼·戴瓦达斯所说“对于量子之类的东西我连一块钱的赌注都不会押的。”,“这类东西听起来那么不现实。”但是量子所代表的思维方式是值得学习的

一、量子力学

为了方便讨论,需要引入狄拉克符号

|A>

这称作狄拉克符号,A代表某种状态。

量子力学里面有个重要的概念,叫做测量,在测量某个物理量之前,你是无法确定系统的该物理量的。比如说,对于著名的薛定谔的猫,猫放在箱子里面,箱子里面的放射性元素是否衰变决定着猫的死活,但是在你打开箱子之前(或者任何尝试测量猫死活状态、放射性元素是否衰变的举动),你无法确定。这时有

|mao>=a|sile>+b|meisi>

其中a代表死了的概率幅,b代表没死的概率幅。概率幅(概率幅是个复数)乘以概率幅的共轭,是该状态的概率。

这个式子表示猫处于在一个叠加的状态,又死又活。当你进行测量之后,才会具体的变成 |sile> 或者 |meisi> (测量之后变成的这个特定的状态称作基)。而假设你制备完全相同的若干个此系统,都进行测量,那么死活的统计结果就是式子里面的概率幅算出的概率。

你可能会说,这看起来就只是个数学技巧而已。但其实不是,又死又活的叠加态是真实的物理,这一点,实验可以证明,比如单光子的杨氏干涉实验。

二、量子计算

大家知道,电子计算机其实基于一些基础的逻辑门,比如或门,与门,非门。换句话说,只要你通过物理方法实现了这些门,那么原则上就可以做出电子计算机了(暂时忽略时序电路的实现)。

量子计算机也有类似的性质。基于某些证明,有了受控非门和单量子比特门就可以原则上实现所有量子门(定义在后面给出)。下面我会一个个介绍

单量子比特门,顾名思义,就是对于单个量子比特进行操作的门。由于我们刚才说,量子力学里面存在叠加态这种状态,所以这个门相当于

(|\psi>=a|0>+b|1>)\mapsto(|\psi\prime>=a\prime|0>+b\prime|1>) 的映射

也就是

\begin{pmatrix}a&b\end{pmatrix}U=\begin{pmatrix}a\prime&b\prime\end{pmatrix}

为了满足物理意义(变换之后, |0>  |1> 的概率和还是1),还要求U是个酉矩阵。

比如

U:|0>\mapsto\frac{1}{\sqrt2}(|0>+|1>),|1>\mapsto\frac{1}{\sqrt2}(|0>-|1>)

(给出了单个 |0>  |1> 的变换,也就是给出了 |\psi>  |\psi\prime> 的)

就是一个单量子比特门(这个门叫做Hadamard门)。

(单量子比特门其实又可以分成几种独立的操作的结合,也就是 2\times2 酉矩阵的所有基对应的操作)

受控非门,是对于多量子比特来说的,下面以双量子比特为例。

我们用 |AB> 或者 |A,B> 表示 |A>  |B> 两个单量子比特

受控非门是如下的映射

|A,B>\mapsto|A,A\oplus B>

其中A为控制比特,B为目标比特。控制比特为0时,目标比特不变,为1时,目标比特翻转。

|00>\mapsto|00>,|01>\mapsto|01>,|10>\mapsto|11>,|11>\mapsto|10>

(和之前类似,给出了单个的基的变换,也就是给出了任意双量子比特,包括叠加态,的受控非门操作。顺便一提,受控非门也是酉矩阵)

任意量子门,也就是任意n个量子比特到n个量子比特之间,满足概率总和不变(也就要求是酉矩阵)的操作,都可以由单量子比特门和受控非门实现。

好了,说了这么多,在量子比特上进行的计算,到底和经典比特有什么不同呢?

下面会说到量子并行性特点

先忽略物理实现的方法,假设我们存在一个量子逻辑门,可以实现映射

|x,y>\mapsto|x,y\oplus f(x)>

其中f(x)是一个对我们有用的函数f:\{0,1\}\mapsto\{0,1\},而当输入的x为两个量子比特时(这个时候大概是 |x,z,y>\mapsto|x,z,y\oplus f(x,z)> ), f:\{00,01,10,11\}\mapsto{0,1} 。特别的,当y=0时,有

|x,0>\mapsto|x,f(x)>

想象一个黑箱子,有两个输入比特,两个输出比特

现在我们输入两个量子比特,一个 |0> ,一个 |x> (注意,这个地方x可能是叠加态)

那么黑箱子就会返回给我们两个量子比特, |f(x)>  |x>

关于这个黑箱子的实现方法,很长,我就不细说了。大概的逻辑就是,我们可以构造一个量子门(Fredkin门),以多用一些比特的代价,实现经典逻辑门(量子门可逆,而经典逻辑门不可逆)。然后找到f(x)的经典逻辑门实现方法,用Fredkin门替换,也就是f(x)的量子门实现了。

现在我们对输入的 |x> 做一些操作,比如让 |0> 通过Hadamard门变换成 \frac{1}{\sqrt2}(|0>+|1>) 

也就是说现在黑箱子输入的两个量子比特,一个是 |0> ,一个是 \frac{1}{\sqrt2}(|0>+|1>)

那么我们会发现,输出的 |f(x)> 量子比特变成了

\frac{1}{\sqrt2}(|f(0)>+|f(1)>)

而另一个输出的 |x> 自然是

\frac{1}{\sqrt2}(|0>+|1>)

因为输出的是 |x,f(x)> ,所以把两个写一起,此时输出就是

\frac{1}{\sqrt2}(|0,f(0)>+|1,f(1)>)

如果输入x是两个量子比特,那么同理,输出是

\frac{1}{2}(|00,f(00)>+|01,f(01)>+|10,f(10)>+|11,f(11)>)

这说明了什么?

我们的量子比特只通过了一个计算f(x)的量子门,就同时计算了 2^n f(x)的值(其中假设x输入的是n个量子比特。当然,还是有些额外开销,比如n个Hadamard门,和Fredkin门实现f(x)量子门时的额外开销,但这些都是n量级的。)


但这里有个小小的问题,虽然所有的f(x)都被计算了,原则上,我们对输出进行测量,如果 |x,f(x)> 中x为x0,那么就可以知道后面那个量子比特为f(x')的值。但是,我们测量,最终得到的只是一个 |x,f(x)> ,不可能同时测量到所有的 |x,f(x)> 。听起来似乎相当的绝望,不过,好消息是,通过构造一些特别的量子算法,可以间接的利用到量子并行性的额外信息,从而加快某些算法。换句话说,如果需要量子计算机真的全面替代电子计算机,而不是只在某些特定的算法上面加速,那么需要一个通用的量子算法。


三、物理实现

注意到之前的所有讨论,其实可以看出物理实现有这么几个要求。

在需要测量(或者说是计算完成)之前,要保持量子比特的叠加态(叠加态使量子算法具有优势)。

需要实现基本的,单量子比特门和受控非门(这两个是量子门的基础)

要能产生基,也就是说产生 |0>  |1>

在这之前,先提一下物理实现酉矩阵的原理。在量子力学中,测量被刻画为一个算符,其中测量系统能量的算符为H,比如

\hat{H}|\psi>=E|\psi>

就表示对 |\psi> 系统的能量测量,测量结果为E。

根据量子力学的另外一个结论, |\psi> 体系随着时间的演化可以写成

|\psi(t)>=e^{\frac{-i\hat{H}t}{\hbar}}|\psi(0)>

如果我们找到H,使得 e^{\frac{-i\hat{H}t}{\hbar}} 的作用相当于酉矩阵的话,那么量子比特在这系统中就相当于通过了对应的量子门。


原文发布时间为:2017.02.01
本文作者:芦金宇
本文来源:CSDN,如需转载请联系原作者。

用云栖社区APP,舒服~

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击

网友评论

雪花又一年
文章1320篇 | 关注29
关注
快速、完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分... 查看详情
阿里云流计算(Aliyun StreamCompute)是运行在阿里云平台上的流式大数据分析... 查看详情
提供一种性能卓越、稳定、安全、便捷的计算服务,帮助您快速构建处理能力出色的应用,解放计算给服... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云9.10会员日

阿里云9.10会员日