IT是一个繁荣的行业,寄托着无数人的梦想,充斥着无数的造梦神话。
IT是一个悲催的行业,层出不穷的新概念让人应接不暇,几乎只要有一天不学习,都可能让你寝食不安。
量子计算机是一个炒的比较热的概念,目前还处于上升期,感觉上已经到了爆发的边缘,似乎随时可以呼之欲出。
通常对于量子计算机的理解就是,因为量子计算机的存储特征,可以处理很大的数据,而不是像传统计算机那样只是处理1、0二进制数,因此计算效率更高。从而有可能颠覆现有的计算机架构,甚至现有的所有的加密算法,因为新的、高速的量子计算机的出现,都将因为可能会被快速的解密而失去效用。
这个概念对,但也不全对,并且可能丢失了很多重要的内容。所以这里试图更通俗的解释一番。
说量子计算之前,我们首先要看一下传统的计算机是如何工作的:
体系结构、硬盘、内存、CPU啥的就不用说了,对于计算本身来说,这些体现不出来什么不同。
我们要从CPU来解析,当前不管多么复杂的计算机,计算的根本来自于两个部件:
寄存器 :用于存储计算用的数据,及计算的结果,比如当前的64位CPU,其实就代表寄存器是由64位二进制数组成的。
逻辑门 :用于通过各种复杂拼接、组合,从而完成所需的计算。常见的逻辑有:与、或、非。
下面对应传统的计算机,我们说说量子计算机的的原理。
对于传统计算机来讲,测量就是读取,读取又是所有运算的基础,功能没啥好多说的,就是知道寄存器中保存的数值是什么。
量子计算机就复杂了,你应当听说过薛定谔的猫,猫放在箱子里面,箱子里面的放射性元素是否衰变决定着猫的死活,但是在你打开箱子之前,你无法确定,而在打开箱子的瞬间,你实际也改变了箱子的状态,也就是影响了猫的生死,这是量子物理重要的一个特征。
这个特征产生了以下几个重要的概念,或者说重要的特征,这些特征决定了量子计算机的几个重要功能。
传统的计算机,无论是寄存器还是存储器,很重要的一个指标就是确定性或者说稳定性。在寄存器方面,其中的每一位(bit),可以确定是1或者是0,64位计算机,寄存器保存的数值最大是2的64次方(2^64)。
量子计算机采用叠加态在寄存器中保存数据,因此同一个寄存器,可能保存了多个数据,这导致量子寄存器可以保存的数值,在同样位数下,比传统计算机保存的数据更多。
当前的量子计算机,每一位(bit),通过叠加态可以保存2对可以互相转换的状态,可以分别表示两位二进制数字。因为两位二进制数共有4个状态,因此量子计算机寄存器指定位长下,可以最大表达4的N次方(4^N)的数字。
而同时因为叠加态及可互相转换的特征,实际上每个指定位长的寄存器,都可能存储2^N个数据,而不是1个,这就是量子计算机的超强存储能力(本项能力只是基于理论设想,在当前的各种量子机实现中,还没有看到资料介绍实际的实现)。
因为叠加态和测量也会对其中数值造成的影响,实际其中的值是由概率决定的。这在量子计算机的制造和算法的研究中,都必须考虑到的问题。
量子密码因为不可测的特征带来的无法窃听和不可克隆特征,强大的量子计算能力虽然对传统的密码学是一个灾难,但同时也会出现新的、更强大的加密算法。从公开资料上看,我们国家所实现的星-地量子通讯的主要基础就是来自于此。
向量计算和并行计算因为上面说的叠加态的两对状态,每一个计算实际都转换为了向量运算。现在计算机中最耗能的几项运算:挖矿、图形图像、深度学习等,都是转换成向量和矩阵进行运算的。在传统的计算中,因为二进制的特征,一般复杂度都是O(2^N),而在量子计算机中,因为这种特征,每次是两个数据参与运算,所以复杂度是O(N)。所以运算量不再呈现指数飙升,而是线性增加。
此外,因为叠加态的存在,我们在量子运算中,不必像传统计算一样同时只处理一个数值,而是同时处理叠加的多个数值,实现了真正的并行计算。而传统计算中的并行,不过是把大的并行转换成多个小的时间片再串行而已。这更进一步的提高了运算能力。当然这也需要更复杂的并行算法来支持。
如同传统计算机一样,量子计算机也是通过逻辑门的运算来完成实际运算的。
同时因为上面说过的那些特征,单量子比特门也有一个很重要的特征:可逆性,我们知道,传统计算机的逻辑门是不可逆的,而单量子比特门的各种运算都可逆;另外一个重要特征就是上面说过的:可并行。
这些常用的门中,包括以下几个:
Hadamard:旋转门
CNOT:受控非门,如果第一位置1,倒置第二位,否则保持不变。
Toffoli:控-控-非门,也叫CCNOT,如果前两位置1,它将倒置第三位,否则所有位保持不变
noop:单位门,等于不做任何操作。
X门:求非变换,NOT门
Z门:相位移动操作
Y门:相当于上面两个门的组合,Y=ZX