虽然曾经在上学的时候学习过量子化学,不过,早就全部还给老师了。听到量子通信和量子计算机的时候,难免有好奇,想了解一下咋回事,比如,对我们这些小老百姓以及程序员会有什么影响。
首先得了解一下什么叫量子,量子(quantum)是能表现出物理特性的最小单元,是能量的最基本携带者;一个物理量如果存在最小的不可分割的基本单位,则这个物理量是量子化的,比如光的量子就是光子。这样子我们就容易理解为什么在量子通信中光子和量子两个词经常混着用。
不论是量子通信还是量子计算机,最重要的一点就是如何表示信息单元bit 0和bit 1。电子计算机使用高电平和低电平表示0或1,而量子世界里面用量子的状态来表示0或者1,比如光子,通常把光子偏振态的水平振动方向表示为1,竖直方向表示为0,不过,如果这个光子沿着45度方向振动的话,就成了“0+1”的状态,表示是两个状态的叠加,和电子信息单元的概念不一样了。对于光子来说,极化态还可以处于水平偏振和竖直偏振之外的某个状态,这就导致了未知的量子态没有办法进行克隆,即量子不可克隆,这是量子通信在原理上无条件安全的重要前提,因为窃听者首先没有办法把光子分开拿走(光子已经是最小单位),也没有办法精确克隆一个一摸一样的光子(量子态无法精确克隆),复制时必然引入噪声,通过噪声检测就可以发现窃听者的存在。
我们再看一下量子态,量子态具有叠加的特性(量子力学第一公设),任一量子态可表示和存储为量子基态0和量子基态1的线性叠加,这意味着,一个量子位(即单量子态)它可以表示一串的0和1啊,是不是很神奇,很吸引人?那么基于量子进行计算1次,就等于我们电子计算机的n次啊,存储起来也是极高的效率啊。根据量子力学的公设,1次计算即可以完成对所有叠加值的计算,即量子并行。如果一个系统里面多个量子位的态不能表示成子状态的张量积的形式,这多个量子位就变成处于纠缠态,处于纠缠态的量子态有个好玩的特性,相隔很远的两个处于纠缠态的量子态具有瞬时相关性,改变其中一个的状态,则另外一个的状态也跟着改变,有点传送门的感觉吧。。。如果用来通信,那就叫做量子隐态传输,已经有实验取得成功。如果用于计算的话,那就意味着量子位的组合状态又是指数暴增。
把镜头拉回到现实世界,前段时间新闻说我们国家放了个量子通信卫星是咋回事呢?我们国家呢,已经实现了城域的量子通信,也已经有投入实际使用,因为这个光子是通过光纤来传输的,在光纤这个介质里面能量会不断地损耗,这就要有个中继来连接,这样子才能像水管一样连接的够远够长,这个中继当然可以建立在地面,但是人们发现一个特点,就是我们地球的大气层外面就是外太空啊,光子在这个外太空里面基本没有能量损耗,而且光子的状态不会被干扰,如果我们放个卫星上去,透过大气层之后的那些光子就可以不考虑损耗和干扰了啊,那样子的话就可以弄个卫星在上面做中继,然后就可以玩广域网了。有了这个量子通信卫星,能拿来帮我传个视频不?这玩意我们老百姓是用不大着的,这玩意主要用来传输密钥,保障的是国家的信息安全。
那这个量子计算机对我们写程序的人会有多大影响呢?首先,这个具体的通用量子计算机还没有造出来,啥时候能造出来没有人能打包票,而且思路上倾向于先制造专用的量子计算机,用于比如需要高密度矩阵计算的机器学习等,目前设计的量子计算机程序设计语言也都是基于现有程序设计语言进行扩展的。即使通用量子计算机造出来了,人们还是需要使用经典计算机的方式先整理好适合量子计算机使用的数据,然后提交给量子计算模块计算,得到计算结果之后再用经典计算机的方式后续处理。
原文发布时间为:2016-05-08
本文作者:Mr.Coder
本文来源:博客园,如需转载请联系原作者。