以下有些表述可能不那么严谨,毕竟只是一个科普。不过如果发现有不对的地方,还是希望可以提出来,指正或者一起探讨。主观表述仅代表个人看法。
1 几个问题
现在有没有量子计算机?
严格的说,截止到2018年1月,没有。那D-Wave是什么?
是一家加拿大声称做量子计算机的创业公司,截止现在为止卖出去两台,一台被google买走、一台被Lockheed Martin买走,并且不是通用计算机,只解决一些寻找极值的优化问题,并且核心部件工作在极端低温的环境下,20 mK。对这台机器的具体工作模式,公司自己也表示解释不太清楚。后面会详细说一下这中间的争议,已及他们对探索量子计算机的贡献。
20 mK是什么概念,-273.15 K是绝对零度,20 mK只比绝对零度高0.02度。物理领域以及计算机领域的科学家对量子计算机什么看法?
计算机领域有持悲观态度的,认为瞎搞。比较活跃的还是物理领域的科学家,但没人能够很肯定的说出用多长时间可以造出一台真正的量子计算机来。如果有量子计算机,使用者需不需要明白量子力学?
不需要。就像我们现在用计算机的人,即便是做上层工程以及算法的,又有几个人真正清楚计算机是怎么工作的呢?量子计算机的优势?
降低一些问题的时间复杂度。
2 量子计算机及其理论基础
量子计算机的概念是在1980年代开始比较多的讨论。为解决物理问题,需要用传统的计算机模拟量子现象,但数据空间会很大,那如果有一个基于量子现象构造成计算机的话,它就可以天然的表示量子状态,而不需要去模拟。比如一个粒子的自旋有两种状态和,如果用传统计算机去模拟,那我们就需要两个比特去描述;假如我们有一个基于粒子自旋的状态构造成的一个计算机,那我们用一个自旋比特就够了。
以上说的其实就是一个概念,至少在2000年以前没人知道怎么实现这样的一个事情。从概念到可操作的量子计算机之间有一个很大的gap,如果你对我们现在的计算机的构造有了解的话,就会明白量子计算机有着不同于我们现在熟知的计算机的体系结构,通俗的说就是这种计算机有另一种工作原理。
下图示意了经典计算机与量子计算机的区别。会着重讲一下绿色对应的两部分,上层应用及底层实现。
第一台计算机出现在1946年,无论是底层的硬件还是上层的应用都和我们现在看到的计算机有很大的差别,但是基本原理是一样,就是用可控制的0和1来完成任务的。下图中红色框内所示意的是现在基于硅半导体材料制作的芯片的计算机。
量子计算机的概念自从提出以来,大多数的研究集中在理论研究上,就是假设现在已经有一种系统可以承载想要的这些量子状态所具有的性质,并且也假设了对这些量子状态的操纵可以通过算子(operator)来实现,通俗的说现在有两个可互相转变的状态 |ψ⟩ 和 |ϕ⟩ ,则存在幺正变换(unitary transformation)U使 |ϕ⟩=U|ψ⟩ ,幺正变换是可逆的这个U就叫做一个算子(operator),把U和 |ψ⟩ 的一次相乘就叫做一个操作。量子算法就是说我已经有了这样的一些状态 |ψ⟩ ,以及一些可以满足我需要的算子U,这些状态之间可以线性叠加,这些算子可以操作状态,算法就是通过把一个问题的初始状态通过设计映射到这些状态可以表示的形式,然后通过一系列的算子操作及叠加运算,使得这些初始状态可以变换到期望的final state,最后通过测量这个final state得到问题的答案。
这个状态该怎么理解呢?拿自旋来说,再具体一点,以电子的自旋为例,一个物理事实是电子具有自旋,并且只有两种状态,向上和向下,在物理中一般用 |↑⟩ 和 |↓⟩ , |1⟩ 或 |0⟩ 和表示,这些是算符表示,可以等价的用向量来表示,就是