全文共1680字,预计学习时长6分钟
图源:unsplash
即使谷歌在去年就宣布了在量子计算机上的重大突破,并对其前景极其乐观,当前人们仍普遍认为量子计算机尚未做好实际应用的准备,谈实用化为时尚早。
本文将从量子计算机编程的基本原理谈起,为你解开误解。量子计算机编程的免费开源软件可不少,如IBM的QISKit以及量子机器学习软件PennyLane。本文还将告诉你如何在IBM云的量子计算机上运行程序。
量子时代,其实离我们并不遥远。
什么是量子计算机?
先来谈谈量子计算技术。目前,手机、笔记本电脑或者平板电脑中的芯片都是由硅构成的。最常见的技术之一是使用一种特殊的光刻技术将细小的微观图案蚀刻到硅芯片上。这些微小的图案使得芯片能够以可控的方式传输电子。
目前这些图案已经尽可能小了,达到了物理极限。这些图案能以纳米级的精度进行批量制造,其典型结构大小大约为10纳米,即20到50个原子长度。
图源:spectrum
现在已存在能操纵单个原子的更精确的技术,利用该技术创造出的架构,可以做到更小。但这种制造过程会更慢一些,所以批量生产这些小得多的、原子精度更高的芯片会更困难。
构造精度如此之高的芯片时会遇到一个困难,即电子和原子的量子行为。电子具有波粒二象性。这意味着在某些情况下,电子的行为更像波而不是粒子,因此当蚀刻图案太小时,将电子限制在该图案上就变得更加困难。电子会“扩散”并发生泄漏,导致流过硅芯片中微小通道的电流出现问题。
这种泄漏意味着芯片不能正常工作,电子的类波行为成为问题,被称为“摩尔定律之死”,这意味着过去几十年人们所期待的计算机性能的增长的停止。计算机芯片的生产规模和效率确实存在着物理限制,市场不会一直增长。
而量子计算机旨在将量子力学行为“问题”作为处理信息的计算优势,其处理方式常用的二进制(1和0)完全不同。可把量子计算机看作专用集成电路(ASIC),虽然形容不够准确,但足以解释问题。将量子计算机当作一种特殊的计算机芯片,旨在比标准硅芯片更高效地执行特定计算。下文将展示如何表示QISKit中的基本计算单位。
图源:unsplash
QISKit中的量子位状态
首先,下载一个免费的Anaconda以便使用Jupyter Lab。下载完成后,打开Anaconda 导航,并且打开Jupyter Lab的一个实例。可在Jupyter notebook或Jupyter Lab中使用pip安装QISKit。
接下来,导入qiskit和matplotlib。
现在,如果想要在布洛赫球上绘制“自旋向上”状态,可以键入以下命令。
键入以下命令,可绘制量子位的“自旋向下”状态。
一般来说,量子位状态不再像经典的二进制信息位那样局限于简单的0或1。量子位可以处于无限多的状态,每个状态都表示为布洛赫球上的一个点。自旋向上对应于0态,自旋向下对应于1态,但量子位也可以是这两种状态的组合。布洛赫球上的每一点,就像地球表面的坐标一样,代表着一种独特的量子位状态。
量子位处于无限多个不同状态,这种能力与量子物理学中的“叠加”概念有关。例如,布洛赫球上的如下状态是0态和1态的均匀混合,所以它是这两个状态的叠加。
这个“向右旋转”的位置表示为0态和1态的“叠加”:
或者是0态和1态的“线性组合”。
不懂线性代数的引用也没关系。现在,如果想对自旋上升状态(或0态)的单个量子位进行操作,将其翻转为自旋下降状态(或1态),可以使用非门(NOT-gate)。
非门或“泡利-X 门”(Pauli X-gate)是量子逻辑门。量子逻辑门在概念上与经典逻辑门相似,但并不完全相同。量子逻辑门在量子位上工作,就像经典逻辑门在位上工作一样,但量子逻辑门总是可逆的,并由(酉)矩阵乘法表示。可在QISKit中创建量子电路,如下所示:
现在,如果想要使用非门对单个量子位进行操作,可在QISKit中使用以下代码。
这表明量子位状态已经翻转为自旋向下。这是量子算法背后的基本思想。量子逻辑门也可以通过IBM软件实现,相当于对用于量子计算机芯片的微波脉冲进行编程。
利用量子计算机进行程序设计,也将会是这样实现的。
留言点赞关注
我们一起分享AI学习与发展的干货
如转载,请后台留言,遵守转载规范
,