当前,人们普遍认为量子计算机尚未做好实际应用的准备,且实现实用化仍需时日。本文将首先介绍量子计算机编程的一些基本原理,并解开误解。然后介绍一些免费的开源软件,如IBM的QISKit以及量子机器学习软件PennyLane。本文还将解释如何在IBM云的量子计算机上运行程序。在后续文章中,还将会讨论机器学习中的一些应用程序,这些应用程序可供任何人或感兴趣的人使用。
什么是量子计算机?
首先来谈一下量子计算技术及其前景。目前,出现在手机、笔记本电脑或者平板电脑中的计算机芯片都是由硅构成的。最常见的技术之一是使用一种特殊的光刻技术将细小的微观图案蚀刻到硅芯片上。这些微小的图案使得芯片能够以可控的方式传输电子(电流)。目前这些图案的大小已经达到了物理极限(尽可能小)。这些图案能以纳米级的精度进行批量制造,其典型结构大小大约为10纳米,即20到50个原子长度。
现在已存在能操纵单个原子的更精确的技术,利用该技术创造出的架构,可以做到比现在电脑和手机中更小的架构。这种制造过程会更慢一些,所以批量生产这些小得多的、原子精度更高的芯片会更困难。构造精度如此之高的芯片时会遇到一个困难,即电子和原子的量子行为。电子具有波粒二象性。这意味着在某些情况下,电子的行为更像波而不是粒子,因此当蚀刻图案太小时,将电子限制在该图案上就变得更加困难。电子会“扩散”并发生泄漏,导致流过硅芯片中微小通道的电流出现问题。这种泄漏意味着芯片不能正常工作,电子的类波行为成为问题。这通常被称为“摩尔定律之死”,意味着过去几十年人们所期待的计算机性能的增长的停止。如果你赌市场一直持续增长,那么这将是个大麻烦,因为计算机芯片的生产规模和效率确实存在着物理限制。
量子计算机旨在将量子力学行为“问题”作为处理信息的计算优势,其处理方式与在手机和笔记本电脑中常用二进制(1和0)处理方式完全不同。可把量子计算机看作专用集成电路(ASIC),虽然形容不够准确,但是足以用于解释。将量子计算机当作一种特殊的计算机芯片,旨在比标准硅芯片更高效地执行特定计算。下文将展示如何表示QISKit中的基本计算单位。
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软件实现,相当于对用于量子计算机芯片的微波脉冲进行编程。