量子计算的基本原理——本质上是在操作薛定谔的猫(同时去运算和操作死+不死两种状态)
摘自:https://www.zhihu.com/question/26933442/answer/34797301
更新了!~更新了!稍微写的更详细一点。我觉得这样应该能懂了。
请专家指正。下面论述是我个人的理解。这里是谈量子计算所以和纠缠瞬间塌缩关系不大。(当然我们也知道不能超光速传递信息。) 当然这是一种委婉的说法其实就是没有关系。量子通信是另外一个问题与这个问题无关。
量子比特的基本原理:这一部分我们会阐述二进制,二进制序列和对二进制序列的操作。
我们首先来看计算机是怎么保存数据的。计算机中,用0和1二进制序列保存数据。抽象的来看,二进制0和1分别代表了系统的两种“状态”。也就是说,我们只要能够找到一个有两个可以区分的状态的系统,就可以抽象的实现计算机的二进制。因此我们首先讨论如何在系统中实现二进制。
在经典计算机中,01由不同的电压实现,0代表低电压信号,1代表高电压信号。
在量子力学中,我们有很多天然的双态系统来实现这种两个可区分的状态(不需要太纠结量子力学的态表示什么)。比如自旋1/2系统,这在量子力学中对应自旋向上/向下两种状态的系统;或者更经典的光子的极化,比如一束光具有不同的偏振状态(比如左旋/右旋偏振光)。总之,我们能够在量子力学中找到实现二进制的系统。
在实现二进制之后,我们的下一步是需要得到二进制序列。
在经典计算机中,二进制序列由一个高低电压交错的脉冲实现。比如001对应于一个低电压-低电压-高电压的信号。在量子力学中,我们通过纠缠态实现二进制序列。具体而言,比如某个光子处于态上, 我们可以把这个光子和其它光子纠缠起来得到一个N光子纠缠态 ,这样我们就实现了一个二进制的序列。
在这里,量子世界和经典世界出现了不同。在经典世界中,我们只能同时拥有一个状态。比如,如果我们拥有了001态,我们就不能同时拥有010态,这是因为两个态的电压会叠加,如果同时拥有这两个态的话我们只能够得到011态。但是在量子世界中,我们可以得到叠加态。具体来说,系统的状态可以同时处于态。其中叠加系数a,b的模方表示我们在测量中得到相应态的概率。比如,我们得到的概率是。当然概率归一化要求。
我们阐述的态叠加原理会导致什么后果呢?比如我们通过Hadamard门制备了一个态,并用这个态制备一个N光子纠缠态, 那么我们看到,这个态就同时处于 到的等概率叠加态。(最简单的例子,比如)
这个事实说明了什么呢?与经典算法不同,我们的操作可以同时对上面的所有态进行。因此,如果我们能够找到一种有效的算法来同时处理这些态,那么我们就能够进行并行计算,因此我们算法的速度比起经典就大大提高了。这个并行与经典的并行算法的区别在于,经典的并行是把任务分成小的部分(比如算一个加法12+34,我们可以同时加十位和加各位然后最后加上两个结果),量子并行是同时处理了很多不一样的状态(同时计算了12+34,23+45, ...)。