初识量子算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
初识量子计算
——宋红芳
摘要:量子计算是利用量子力学原理实现的一种新型计算。量子力学特性使得该算法相比于经典算法具有极大的优势,作为一个量子计算的初学者,作者将借由本文从量子比特出发简单介绍量子线路、量子算法的实现机制并引几个例子加强理解,同时介绍一下量子算法比经典算法快得多的原因。
关键词:量子计算量子比特量子逻辑门量子线路量子并行性
引言
量子计算在70年代由IBM的科学家R. Landauer及C. Bennett提出以后就引起了科研人士广泛的兴趣,40年来该领域有了一定的发展,但是离人们的期望——实现大规模量子计算还有着很大的距离。
那么,量子计算是如何利用量子力学知识实现的呢?能够实现的量子计算有哪些?量子计算与经典计算有什么区别?为什么比经典算法有绝对的优势?我们通过此文给出简要的回答。
1.量子比特
1.1量子比特的概念
比特(bit)是经典计算与经典信息的基本概念,相应的,在量子计算与量子信息中也有类似的概念,称为量子比特(quantum bit或qubit)。就像经典比特有两个可能状态(0态或1态)一样,量子比特也有两个可能状态,分别记为|0>态和|1>态。
那么,量子比特究竟是一个什么样的概念呢?它和经典比特一样,真实存在吗?实验证明,量子比特是真实存在的,并且可以用很多不同的物理系统实现。只要这个物理系统有两个不相干的状态,就可以用来表征量子比特的两个不同状态,比如:光子的两个不同的极化,均匀电磁场中核自旋的取向等。
1.2量子比特与经典比特的区别
我们知道经典计算机中的比特只能处于0态和1态中的一个,不是处于0态就是处于1态,而量子比特的状态可以落在|0>和|1>之外,处于二者的线性
叠加态上:|Ψ>=α|0>+β|1>,其中α和β是复数并满足|α|2+|β|2=1,也就是说量子比特的状态是二维复向量空间中的向量,而这个向量的基底是|0>和|1>态。
在经典计算机中,我们可以通过检查知道比特是处于0还是处于1,但是却不可以通过测量得到量子比特所处的状态。由量子力学知识知道,如果我们测量状态|Ψ>,那么我们有|α|2的概率得到|0>态,|β|2的概率得到|1>态,并且在我们测到结果的时候叠加态就坍缩到与测量结果相容的状态上了,我们测到的是状态|0>或|1>而无法知道分别处于这两个态的概率是多少,因而量子比特具有不可测量性。
1.3量子比特的几何表示
因为|α|2+|β|2=1,所以叠加态可以改写为
|Ψ>=cosθ
2|0>+e iφsinθ
2
|1>(1.3.1),
其中的ϕ和θ定义了单位球面上的一个点,这个球称为Bloch球,如下图所示:
图1.1 量子比特的Bloch球表示
每取一对ϕ和θ值就对应着球面上的一个点,连接原点与该点就可以得到一个向量,这个向量就表征着一个量子比特,也就是说球面上的每一个点都对应着一个量子比特。将这个向量与z轴的夹角θ,其在x-y平面内投影与x轴的夹角ϕ代入1.3.1就可以得到量子比特的解析表示。
1.4多量子比特
多量子比特是对单量子比特的推广,单量子比特所表征的态是由两个基底线性叠加而成。类似的,双量子比特所表示的态由四个基底线性叠加而成,这四个基态分别记为:|00>,|01>,|10>和|11>。双量子比特的态表示为:
|Ψ>=α00|00>+α01|01>+α10|10>+α11|11>
满足归一化条件:|α00|2+|α01|2+|α10|2+|α11|2=1。
同样,对系统进行探测的时候就会发生坍缩,探测第一个量子态为|0>的概率为|α00|2+|α01|2,这个时候系统就坍缩在了|00>态或者是|01>态上,对第二个量子态进一步探测的时候,系统就会进一步坍缩,或为|00>态,或为|01>态。
下面介绍一个特殊的双量子态:
|00>+|11>
√2
这个量子态看起来很不起眼,但是确是量子隐形传态和超密编码的关键因素,还是其他很多有趣量子状态的原型。这个状态的特殊之处在于,测得第一个结果之后第二个结果就知道了:测第一个量子比特的时候有1/2的概率得到|0>,进入的是|00>态,也就是说再测第二个量子比特的时候得到的也是|0>态;同样有1/2的概率测第一个量子比特得到|1>,测第二个量子比特的时候结果和第一个一样。
更一般的,n量子比特系统的基态由2n个|x1x2x3.....x n>形式的基矢组成。n=500的时候,2n就超过了整个宇宙原子的估计总数,这用传统的经典计算机是不可能实现的,远远超出我们的相像。
2.量子逻辑门
量子状态的变化可以用量子计算的语言来表示,类似于经典计算机是由包含连线和逻辑门的线路建造起来的,量子计算机由包含量子门和连线的量子线路营造而成。连线实现量子信息的传导,量子逻辑门实现的是信息的转换与处理。2.1单量子比特门
2.1.1单量子比特门的表示
量子比特可以用向量来描述:
Ψ=(αβ)
那么,量子比特门就可以用一个2*2的矩阵来表示,记为
G=[a b
c d
],
量子门作用在量子比特上就相当于是一个2*2的矩阵作用在一个2*1的向量上,在计算时就是二者相乘。
2.1.2几个具体的单量子比特门
(1)量子非门(NOT gate/X gate )
要实现的功能是把|0>态和|1>态互换。也就是说,|0>态经过量子非门之后变成|1>态,|1>态经过量子非门之后变成|0>态。
那么当系统处在线性叠加态时会发生什么样的变化呢?其实,量子非门是一个线性矩阵,只要把叠加态中的|0>与|1>互换就好了,即Ψ=α|0>+β|1>经过量子非门之后变成Ψ’=α|1>+β|0>。
基于量子非门的线性,我们可以将其用一个矩阵表示为:
X ≡[0110
] 符号表示为
,作用在单量子比特上的效果是:
X (αβ)=(βα
) (2)Hadmard 门
把|0>态和|1>态变成|0>与|1>的中间态,具体如下:
H|0>=|0>+|1>√2 H|1>=|0>−|1>√2
Hadmard 门的矩阵表示为:H ≡√2111−1
],符号表示为,很容易证明H 2=I ,也就是说对一个状态进行两次Hadmard 门操作就相当于什么都没干。
(3)Z 门
保持|0>不变,而使|1>发生反转,即:
Z|0>=|0>
Z|1>=−|1>
Z 门的矩阵表示为:Z ≡[100−1
],符号表示为,同样Z 2=I 。 对于一些简单的量子门,我们可以根据其所要实现的功能利用待定系数法求出其矩阵表示。
2.1.3量子比特门所要满足的条件
根据量子比特的归一化条件很容易证明量子门需要满足酉性条件,也就是说量子比特门对应的矩阵G 是一个酉矩阵,即: G ∙G ∗=I 。
而且,这是对量子门的唯一限制,只要是量子门就一定是酉矩阵,每一个酉