面向传统程序员的量子计算

新指南帮助初学者在IBM的量子计算机上运行量子算法。

量子计算机也许有一天能够快速解决普通计算机无望解决的问题,但与全球普通程序员的数量相比,量子程序员的数量几乎为零。现今,位于新墨西哥州的美国洛斯阿拉莫斯国家实验室的一组量子计算专家创建了一本初学者指南,名为《面向初学者的量子算法实现》(Quantum Algorithm Implementations for Beginners)。 该指南于2022年3月问世,现可在美国计算机协会的网站上免费获取,其宗旨是指导未来的量子程序员掌握基础知识。该新指南讲解了量子计算和量子编程的基础知识,包括量子算法。

其目的是在IBM公开可用的量子计算机的云端,帮助量子程序员新手准备实现量子算法。

传统计算机通过切换晶体管的开关状态来表示数据1或0,而量子计算机使用的是量子位(qubits)。 由于量子物理学的“非典型”特征,量子位可以叠加状态存在,同时为1或0。 这实际上允许每个量子位同时执行两个计算。 当许多量子位链接在一起,即在量子计算机中纠缠时,其计算能力将呈指数级提升。

目前,量子计算机是嘈杂的中级量子(NISQ)平台,这意味着,其量子位的数量最多只有几百个,同时还充满错误。尽管如此,人们普遍认为量子处理器能够提升量子位的数量和质量。最终,它们会获得量子优势,解决即便是最强大的传统超级计算机都无法解决的问题。

量子编程虽然始于20世纪90年代,但迄今形成的社区规模仍然很小。“量子计算机编程似乎是一项重大的挑战,需要量子力学和相关学科的多年训练。”该指南的资深作者、研究科学家安德烈•洛霍夫(Andrey Lokhov)说,“此外,该领域由物理学和代数标记法主导,有时会给主流计算机和经过数学训练的科技人员带来不必要的入门障碍。”

现在,洛霍夫和他的同事希望新指南能够为“未来的量子计算革命”铺平道路,他还说:“我们相信,我们的指南填补了量子计算领域中的空缺,向非量子计算专业的计算机科学家、物理学家和工程师介绍量子算法,并在现实世界量子计算机中实现。”

“传统算法可描述为需要在传统计算机上执行的指令序列,与之非常相似,量子算法可表示为多个步骤,每个步骤都需要在量子计算机上执行。”洛霍夫说,“不过,术语‘量子算法’常用于包含固有量子运算的算法,例如量子叠加或量子纠缠,计算能力非常强大。”

为了在量子计算机上执行这种量子运算,量子程序被表示为描述基本运算序列的电路,作用于一组量子位的基本运算也称为“门”。量子编程与传统编程之间的一个重大区别在于量子力学的一个核心原则,即当测量量子程序的结果时,该过程本身是概率性的,或受随机变化影响。

“量子编程与传统编程大相径庭,我们指南采用简单直接的代数解释量子编程的基本原理,能够让人容易理解迷人的量子力学原理。”洛霍夫说,“我们收到了来自很多科学家的积极反馈,他们是该领域的初学者,借助我们的指南,他们能够快速熟悉量子编程的基础知识。”

新指南为立即开始实现和运行量子算法提供了所需最少的必要知识。其中包含20个标准量子算法,包括整数因式分解的肖尔算法和数据库搜索的格罗夫算法。

“此外,我们的材料涵盖了大量成功的量子-经典混合算法,例如量子近似优化算法,以及用于验证量子算法性能的传统工具,如量子层析。”洛霍夫说,“因此,该指南综合概述了量子算法、经典算法和混合算法,这些算法是量子计算领域的基础。”

然后,该指南指导量子程序员如何在IBM公开可用的量子计算机(例如5量子位IBMQX4)的云端实现这些算法。指南讨论了算法实现的结果,并解释了在模拟器运行和在真实硬件运行之间的区别。

洛霍夫指出,目前为了证明新的量子算法是有效的,需进行数学证明。对比之下,在传统计算中,很多有效算法是通过启发试探发现的,即通过反复试验和试错,或者通过宽松的定义规则,理论证明的出现则晚得多。希望随着更多的量子程序员开始独立实验,能够游刃通过类似的方式发现新的量子算法。

“我们相信,新指南将有助于向更多的科学家介绍量子计算,并邀请他们未来使用量子位更多的量子计算机进行实验。”洛霍夫说。

作者:Charles Q. Choi