突破 0 和 1 的思维:量子计算介绍
1 什么是量子计算?
量子计算是一种使用量子逻辑进行通用计算的方法,被普遍认为是一种更新型的计算机技术。
在传统计算机中,信息量的基本单位是比特,它只能取 0 或 1 中的一个值。在量子计算机中,信息量的基本单位为量子比特或量子位。通过量子力学现象,这些量子位可以同步进行大量计算。理论上,利用量子力学现象,量子计算可以极大地改进信息存储和处理方式,算法比传统计算更高效,从而能更快地解决各种难题。
这会带来巨大的影响,比如说,今天我们使用的很多加密方法并不是理论上不可攻破的,而是由于目前计算机的物理限制,攻破的时间可能需要10000年,时间太长,我们也就认为这些加密是安全的了。但是,对于量子计算机而言,攻破可能就是分分钟的事情,你存在银行的钱都不安全了,影响之大不言而喻。
2 量子计算历史?
- 1982年,理查德·费曼在一个著名的演讲中提出利用量子体系实现通用计算的想法,开启了量子计算的研究
- 1985年,大卫·杜斯提出了量子图灵机模型,证明了通用量子计算机的理论可行性
- 1994年,彼得·秀尔提出量子质因数分解算法后[9],证明量子计算机能做出离散对数运算[10],而且速度远胜传统计算机。这个算法对于量子计算的发展起到了很大的推动作用,因其对于现在通行于银行及网络等处的RSA加密算法可以破解而构成威胁之后,量子计算机变成了热门的话题,除了理论之外,也有不少学者着力于利用各种量子系统来实现量子计算机。
- 1996年,Lov Grover提出了可以用于数据库搜索和函数取反的 Grover 算法,进一步证明了量子计算相比于传统计算机的优势。
- 2011年,加拿大的D-Wave 系统公司发布了一款号称“全球第一款商用型量子计算机”的计算设备“D-Wave One”,含有128个量子位。
- 2019年,Google 在 nature 上发表文章,表明他们利用 54 量子比特的 Sycamore 量子计算机在 200 秒内完成了一个计算,而同样的计算用当今最强大的超级计算机 Summit 执行,需要约 10000 年。这也就是之前被广泛报道的 Google 实现了量子霸权(所谓量子霸权,指的就是量子计算机能够解决“经典(非量子)”计算机在合理时间范围之内无法解决的复杂难题这一关键性节点),这项成就被多方认为是量子计算领域的重大里程碑事件。
3 量子计算机如何工作?
一般来说,完成一次计算,需要三个步骤:
提供输入 -> 执行计算 -> 提取输出
提供输入
在传统计算机中,计算机运行的单位是比特,取值为 0 或 1。而量子计算机中,运行单位是量子比特(Qubit),但它的取值比 0 或 1更加复杂,可以处于不同的状态。
量子比特,以及它们所处于的不同状态,用于量子计算机的信息存储和表达。
执行计算
在传统计算机中,通过一些逻辑门(与门、或门、非门等),比特按照顺序被处理,实现一些逻辑运算。而在量子计算机中,也存在一些功能类似的门作用在 Qubit 上,设计不同门的组合实现算法逻辑,实现计算的执行。
量子门,通过修改量子比特的状态,实现计算。
提取输出
在传统计算机中,计算的结果是一个确定的单一取值,可以直接获取。而在量子计算机中,由于量子状态存在叠加和纠缠,量子计算的结果需要一个特定的观测操作,获取到单一的结果,而同时这个计算结果又有一定的概率性,需要多次计算获得答案的样本,并累积对所提供最佳答案的信息,结合统计学可以得到某一答案为正确答案的可能性。通过调整置信度阈值来提供最佳的速度和准确度。
观测操作和结果统计,实现了量子计算的输出提取。
4 量子比特及其状态用于信息表达
基底
传统计算机中,0 和 1 构成比特取值空间中的基础取值。类似的,在量子态空间中,也存在一组基,是量子比特的基础取值。对于一个量子比特的空间,这组基底是(使用狄拉克标记右括向量表示,也叫 ket),也就是量子比特的 0 和1 :
∣ 0 ⟩ = [ 1 0 ] | 0 \rangle = \left[ \begin{array}{c} 1 \\ 0 \end{array} \right] ∣0⟩=[10]
∣ 1 ⟩ = [ 0 1 ] | 1 \rangle = \left[ \begin{array}{c} 0 \\ 1 \end{array} \right] ∣1⟩=[01]
叠加态
不同于传统计算机,一个比特的取值非0即1,在一个时间只存在一种状态。而量子比特则可以是1 同时也可以是 0,两种状态同时存在,可以表达成如下的形式,其中 α \alpha α he β \beta β 是两个复数。
当 α \alpha α 和 β \beta β 其中一个为 0 时,处于基态,而都不为 0 时则处于叠加态。
纠缠态
对于两个及以上的量子比特,还存在一种特殊的叠加态,叫做纠缠态。当几个粒子在彼此相互作用后,由于各个粒子所拥有的特性已综合成为整体性质,无法单独描述各个粒子的性质,只能描述整体系统的性质,这种现象叫做量子纠缠。
其定义如下,两个量子比特的基如下:
对于一个 2-qubit 的量子态
如果不能够表达成 product state 的形式,则称为纠缠态,例子如下:
在量子计算中,量子纠缠的意义很大,它可以使空间上分离的多个量子比特之间发生了联系