本文分享自天翼云开发者社区《带你走进量子云平台(二)》,作者:Qubit
量子叠加和量子纠缠这两个基本特性,使得量子计算机在解决某些类型的问题时比经典计算机快得多。这两个属性从本质上决定了一个基本事实——量子计算天然地由概率主导。换句话说,这意味着量子程序本质上是概率性的、随机的。因此,要在量子计算机上实现业务逻辑或算法需要独特的编程模型。
量子程序和经典程序的本质区别是它们能够利用量子计算机的独特能力(即量子位的叠加和纠缠)。量子计算领域的研究人员目前已经开发了一些技术,包括振幅放大技术、量子傅立叶变换技术、相位回退技术、量子相位估计技术以及量子游走技术。这些技术利用量子计算机的特性来快速解决某些在经典计算机上需要更长时间才能解决的问题。比如,量子搜索算法就采用了振幅放大技术,大整数分解算法则采用了量子傅立叶变换技术等。构筑在这些巧妙技术之上的量子算法构正是让量子计算机的算力转化为生产力的关键。目前研究人员已经开发出了多种利用这些技术的算法,它们比经典计算机能更快地解决各种计算问题。为了从量子算力中获利,我们还必须将手头的问题映射到量子算法能解决的问题之一。
量子线路是量子计算的常见表达模型之一。与经典数字电路使用的数字逻辑门(与门、或门、非门)类似,量子门能够组成量子线路。在该表示模型下,量子算法的操作步骤可以映射为一系列量子逻辑门变换。量子逻辑门以明确的方式将输入的量子位(Qubit)进行转化。器定义是严谨的,通常表示为复矩阵和复向量的乘法运算。不少国内外著/名的量子计算云平台都采用这种方法来表示提交的量子计算任务。图1显示了在某超导量子计算机上实开发量子线路的屏幕截图。
图1 国内某知名量子计算机量子线路开发截图
量子计算云平台也需要提供编程抽象,即高/级编程语言库。使用这些高/级编程语言开发的量子程序通常由两部分组成,其中一部分计算在经典算力上执行,另一些计算则真正在量子处理单元(QPU)上执行。开发这些量子程序一般需要尊许以下步骤:首先,将输入/输出从经典比特表示映射到Qubit表示;其次,初始化Qubit的状态;再次,使用合适的量子逻辑门构建量子线路以表达量子算法的各个具体步骤(这些步骤会被重复适当的次数,以获得对计算结果的可靠测量);最后,测量并输出Qubit状态(测量Qubit会迫使其坍缩为经典比特),并将数据传送到数字电路中存储。
使用高/级编程API 来开发量子程序通常要依照上述编程范式。不同量子计算云平台基本均遵守该编程模型。下一次分享,我们将继续深入到量子软件的层面,探讨量子计算云平台的相关属性。