CN114372583B - 基于机器学习框架的量子程序优化方法及相关设备 - Google Patents
基于机器学习框架的量子程序优化方法及相关设备 Download PDFInfo
- Publication number
- CN114372583B CN114372583B CN202210280789.5A CN202210280789A CN114372583B CN 114372583 B CN114372583 B CN 114372583B CN 202210280789 A CN202210280789 A CN 202210280789A CN 114372583 B CN114372583 B CN 114372583B
- Authority
- CN
- China
- Prior art keywords
- quantum
- logic gate
- candidate
- program
- replaced
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000006870 function Effects 0.000 claims abstract description 158
- 230000005283 ground state Effects 0.000 claims abstract description 15
- 239000011159 matrix material Substances 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 10
- 239000002096 quantum dot Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005610 quantum mechanics Effects 0.000 description 2
- 241001436679 Adama Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computational Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开了一种基于机器学习框架的量子程序优化方法及相关设备,所述方法包括:调用量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门;调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序;在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。通过该技术方案,可以实现对量子程序的优化。
Description
技术领域
本发明属于量子计算技术领域,特别是涉及一种基于机器学习框架的量子程序优化方法及相关设备。
背景技术
量子计算是一种遵循量子力学规律调控量子比特进行计算的新型计算模式,由于量子力学叠加性的存在,在进行量子计算时可以执行并行计算,在处理部分问题时采用量子计算的相关算法进行计算,可以更快的得到计算结果。
相关技术中,通过运行具有一定结构的量子程序实现量子计算,通过运行量子程序得到符合预期的输出,为使得量子程序的输出符合预期,如何对量子程序进行优化至关重要。
发明内容
本发明的目的是提供一种基于机器学习框架的量子程序优化方法及相关设备,旨在对量子程序进行优化,使得量子程序的输出符合预期。
为了实现上述目的,本发明实施例的第一方面,提供一种基于机器学习框架的量子程序优化方法,所述机器学习框架包括量子模块,所述方法包括:
调用所述量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门;
调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序;
在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。
可选地,所述机器学习框架还包括数据结构模块,所述候选量子逻辑门为含参量子逻辑门,所述确定替换后的所述量子程序为优化后的量子程序之前,所述方法还包括:
计算所述候选量子逻辑门的参数的候选值,并调用所述数据结构模块将所述参数的初始值替换为所述候选值;
在所述参数为所述候选值对应的所述目标函数值小于所述参数为初始值对应的所述目标函数值时,确定所述参数的所述候选值为所述参数的优化值。
可选地,所述候选值为多个,所述确定所述参数的所述候选值为所述参数的优化值,包括:
将最小所述目标函数值对应的所述参数的候选值确定为所述参数的优化值。
可选地,所述计算所述候选量子逻辑门的参数的候选值,包括:
计算所述候选量子逻辑门的参数取不同参数值时所述量子程序的不同输出对应的不同所述目标函数值;
基于不同所述目标函数值计算反三角函数;
基于所述反三角函数计算所述候选量子逻辑门的参数的候选值。
可选地,所述候选量子逻辑门包括RX门、RY门和RZ门中的至少一者。
可选地,所述目标函数值为基态能量时,所述目标函数值为所述目标系统的哈密顿量、所述量子程序的输出以及目标矩阵的乘积之迹,所述目标矩阵为所述量子程序中量子逻辑门的等价酉矩阵的转置共轭矩阵。
可选地,所述候选量子逻辑门为多个,所述调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序,包括:
针对每一所述候选量子逻辑门,计算该候选量子逻辑门替换所述待替换量子逻辑门后所述量子程序的输出对应的目标函数值;
选择最小的所述目标函数值,并调用所述量子模块接受该目标函数值对应的所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序。
本发明实施例的第二方面,提供一种基于机器学习框架的量子程序优化装置,所述机器学习框架包括量子模块,所述装置包括:
创建获取模块,用于调用所述量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门;
替换模块,用于调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序;
第一确定模块,用于在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。
可选地,所述机器学习框架还包括数据结构模块,所述候选量子逻辑门为含参量子逻辑门,所述装置还包括:
计算模块,用于在确定替换后的所述量子程序为优化后的量子程序之前,计算所述候选量子逻辑门的参数的候选值,并调用所述数据结构模块将所述参数的初始值替换为所述候选值;
第二确定模块,用于在所述参数为所述候选值对应的所述目标函数值小于所述参数为初始值对应的所述目标函数值时,确定所述参数的所述候选值为所述参数的优化值。
可选地,所述候选值为多个,所述第二确定模块还用于:
将最小所述目标函数值对应的所述参数的候选值确定为所述参数的优化值。
可选地,所述计算模块还用于:
计算所述候选量子逻辑门的参数取不同参数值时所述量子程序的不同输出对应的不同所述目标函数值;
基于不同所述目标函数值计算反三角函数;
基于所述反三角函数计算所述候选量子逻辑门的参数的候选值。
可选地,所述候选量子逻辑门包括RX门、RY门和RZ门中的至少一者。
可选地,所述目标函数值为基态能量时,所述目标函数值为所述目标系统的哈密顿量、所述量子程序的输出以及目标矩阵的乘积之迹,所述目标矩阵为所述量子程序中量子逻辑门的等价酉矩阵的转置共轭矩阵。
可选地,所述候选量子逻辑门为多个,所述替换模块还用于:
针对每一所述候选量子逻辑门,计算该候选量子逻辑门替换所述待替换量子逻辑门后所述量子程序的输出对应的目标函数值;
选择最小的所述目标函数值,并调用所述量子模块接受该目标函数值对应的所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序。
本发明实施例的第三方面,提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述第一方面中任一项所述方法的步骤。
本发明实施例的第四方面,提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述第一方面中任一项所述方法的步骤。
基于上述技术方案,对于调用量子模块创建的量子程序,获取该量子程序中的待替换量子逻辑门的候选量子逻辑门,并调用数据结构模块利用候选量子逻辑门替换该待替换量子逻辑门,得到替换后的量子程序,由于目标函数值为损失函数值或目标系统的基态能量,其越小则量子程序的输出越符合预期,故当替换后的量子程序的输出对应的目标函数值小于替换前时,说明本次替换得到的量子程序的输出更加符合预期,进而确定替换后的量子程序为优化后的量子程序,完成对量子程序的优化。
附图说明
图1是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化方法的计算机终端的硬件结构框图。
图2是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化方法的流程图。
图3是根据一示例性实施例示出的一种量子线路的示意图。
图4是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化方法的另一流程图。
图5是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化方法中步骤S43的流程图。
图6是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化方法中步骤S22的流程图。
图7是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化装置的框图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明实施例首先提供了一种基于机器学习框架的量子程序优化方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图1是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储基于量子线路的基于机器学习框架的量子程序优化方法的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输装置106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的基于机器学习框架的量子程序优化方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责运行量子程序进而实现量子计算。而量子程序是由量子语言如QRunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现量子计算。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,因受限于量子设备硬件的发展,通常需要进行量子计算模拟以验证量子算法、量子应用等等。量子计算模拟即借助普通计算机的资源搭建的虚拟架构(即量子虚拟机)实现特定问题对应的量子程序的模拟运行的过程。通常,需要构建特定问题对应的量子程序。本发明实施例所指量子程序,即是经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路作为量子程序的一种体现方式,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线)、以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序可以由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至成千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,量子逻辑门包括单比特量子逻辑门,如Hadamard门(H门,阿达马门)、泡利-X门(X门,泡利X门)、泡利-Y门(Y门,泡利Y门)、泡利-Z门(Z门,泡利Z门)、RX门(RX旋转门)、RY门(RY旋转门)、RZ门(RZ旋转门)等等;多比特量子逻辑门,如CNOT门、CR门、iSWAP门、Toffoli门等等。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的向量进行计算。例如,量子态右矢|0>对应的向量可以为,量子态右矢|1>对应的向量可以为。
图2是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化方法的流程图,该机器学习框架包括量子模块,如图2所示,该方法包括
S21,调用所述量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门。
S22,调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序。
S23,在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。
具体来讲,机器学习框架集成了众多用于创建和训练机器学习模型的函数,通过其定义的接口可以方便的调用这些函数实现对机器学习模型的相关操作。
在一种可能的实施方式中,所述机器学习框架可以包括:
量子模块,被配置为创建用于创建机器学习模型的量子计算层。
当然,在其它可能的实施方式中,所述机器学习框架还可以包括以下至少一者:
数据结构模块,被配置为创建用于输入机器学习模型的张量数据,以及对所述张量数据执行运算;
经典模块,被配置为创建用于创建机器学习模型的经典计算层、用于封装所述量子计算层和所述经典计算层的抽象类层、用于训练优化所述机器学习模型的训练层。
具体来讲,数据结构模块定义了张量数据的数据结构,通过调用数据结构模块,可以将输入的数据转化为张量数据,以用于输入机器学习模型进行正向计算。当然,数据结构模块还可以被配置为对张量数据执行运算,例如数据结构模块还可以定义张量数据之间的数学运算和逻辑运算等,进而可以调用数据结构模块基于张量数据之间的运算关系创建机器学习模型的经典计算层,例如经典神经网络的全连接层通过函数y=w*x+b定义了输入全连接层的数据x和输出全连接层的数据y之间的关系,其中w和b为参数,通过将数据x、参数w、参数b转化为张量数据,并调用数据结构模块对这些张量数据执行与该函数对应的运算,可以构建全连接层。
在一种可能的实施方式中,数据结构模块可以用于将输入的数据按照预设的数据结构排列以创建用于输入所述机器学习模型的张量数据,以及创建以所述预设的数据结构排列且数值确定的用于输入所述机器学习模型的张量数据。例如可以将获取的数据1,2,3按照预设的列表数据结构[1,2,3]排列创建新的张量数据,也可以直接创建按照预设的列表数据结构[1,1,1]排列的元素全为1的张量数据。
需要说明的是,张量数据除包括按照预设的数据结构排列的数据值外,还可以包括计算得到该数据值的其它张量数据的信息以及包含所述数据值的张量数据相对于所述其它张量数据的梯度函数,其中计算得到该数据值的其它张量数据的信息可以包括该其它张量数据的变量、数据值存储地址以及数据值等,只要其表明该其它张量数据对应节点是计算得到该数据值的张量数据对应节点的前驱节点即可。以上述函数关系y=w*x+b为例,对于张量数据y,其包括y对应的数据值如[1,2,3],还包括计算得到y的w、x、b的张量数据的信息以及y分别相对于w、x、b的梯度函数,在一种可能的实施方式中,该信息可以包括w、x和b的数据值存储地址,张量数据y包括y相对于w的梯度函数x,y相对于x的梯度函数w,以及y相对于b的梯度函数1,进而在训练机器学习模型时,通过反向传播计算y分别相对于w、x、b的梯度值,具体可以直接从张量数据y中获取y的数据值,以及w、x、b的数据值和对应的梯度函数,通过这些数据值和对应的梯度函数计算y分别相对于w、x、b的梯度值。
除用于创建经典数据外,数据结构模块还被配置为对张量数据执行各种运算,例如数学运算、逻辑运算、变换运算等,对于逻辑运算,其可以包括在一个或多个张量数据中选择最大或最小的张量数据的运算,待选择的张量数据只有一个时,最大及最小的张量数据均为这个张量数据。逻辑运算还可以包括赋值运算,其通过赋值运算可以对量子逻辑门中的参数进行替换,即将一个新的张量数据作为参数传入量子逻辑门中替换之前的参数。
可选地,所述数据结构模块包括以下至少一者:
数学运算单元,被配置为对所述张量数据执行数学运算;
逻辑运算单元,被配置为对所述张量数据执行逻辑运算;
数据变换单元,被配置为对所述张量数据执行变换运算,以变换所述张量数据的数据结构。
具体来讲,数学运算单元可以对张量数据执行如加、减、乘、除等数学运算,逻辑运算单元可以对张量数据执行与、或、非等逻辑运算,数据变换单元可以对张量数据执行转置、逆序等变换运算,以改变张量数据的数据结构。数据结构模块可以包括上述三个单元中的任意一者,也可以包括全部三个单元。
具体来讲,可以通过调用该量子模块创建量子逻辑门,例如含参量子逻辑门、测量逻辑门等,并通过对创建的量子逻辑门按照一定顺序排列创建量子程序,量子程序运行时,其中的量子逻辑门按照预设的顺序作用于指定的量子比特,以使得指定的量子比特根据量子程序进行演化,得到符合要求的输出。当然,在其它可能的实施方式中,还可以调用量子模块创建量子计算层,量子计算层为包含量子程序的程序模块,通过对量子程序按照一定的标准进行封装,使得量子计算层便于在创建和训练机器学习模型时进行使用,例如可以在量子程序中封装有正向运算量子程序的运行程序以及计算量子程序的输入相对于量子程序的参数的梯度的计算程序。对于创建好的量子程序,通过调用量子模块创建新的量子逻辑门并将该新的量子逻辑门置于创建好的量子程序中一自身的量子程序的位置,并删除该自身的量子程序,可以完成对量子程序中指定的量子逻辑门的替换。
具体来讲,对于经典模块,可以用过调用该经典模块创建机器学习模型的经典计算层,经典计算层为机器学习模型中的经典计算部分,其可以是通过经典模块对创建好的经典计算程序按照一定标准进行封装得到,使得经典计算层便于在训练机器学习模型时进行使用。在创建好量子计算层和经典计算层后,可以通过经典模块对其进行封装,创建符合一定标准的抽象类层,抽象类层通过编程语言中的类(class)的方法实现,通过对量子计算层和经典计算层封装以创建符合一定标准的机器学习模型,例如创建的抽象类层定义了正向运算机器学习模型的方式,当然也可以只对量子计算层或经典计算层进行封装,抽象类层通过封装便于在训练机器学习模型时对机器学习模型进行正向运算以得到用于计算损失函数的计算结果,同时也可以得到反向计算时进行梯度计算的顺序关系。经典模块还可以用于创建机器学习模型的训练层对机器学习模型进行训练。
在步骤S21中,可以事先确定需要创建的量子程序的结构,例如量子程序包含的量子逻辑门的个数,每个量子逻辑门的作用对象等,而量子逻辑门的类型待定,之后可以随机确定其量子逻辑门的类型或指定量子逻辑门的类型,得到创建的量子程序。以图3中的量子线路对应的量子程序为例,其对应目标系统的哈密顿量为H=0.5Y2+0.8Z1−0.2X1,Y2表示作用于目标系统中第二个量子比特的泡利算符Y,Z1表示作用于目标系统中第一个量子比特的泡利算符Z,X1表示作用于目标系统中第一个量子比特的泡利算符X。为创建该量子程序,可以事先确定该量子程序包括待替换量子逻辑门311和待替换量子逻辑门312,同时还包括一CNOT门313,其中,待替换量子逻辑门311作用于量子比特321,待替换量子逻辑门312作用于量子比特322,CNOT门313作用于量子比特321和量子比特322,其中,对于CNOT门313,量子比特321为控制比特,量子比特322为目标比特。为对该量子程序进行优化,可以先随机指定待替换量子逻辑门311和待替换量子逻辑门312的类型,例如可以先随机指定待替换量子逻辑门311和待替换量子逻辑门312均为H门,调用量子模块创建两个H门分别作为待替换量子逻辑门311和待替换量子逻辑门312,指定其作用对象,再创建CNOT门313,并指定其作用对象,以创建对应图3的量子线路的量子程序。
此外,在步骤S21中,除创建量子程序外,还可以获取量子程序中待替换量子逻辑门的候选量子逻辑门,候选量子逻辑门可以为一个或多个,用于对待替换量子逻辑门进行替换,其可以为含参量子逻辑门或不含参量子逻辑门,可以是单量子逻辑门或作用于2个量子比特或2个以上量子比特的多量子逻辑门,本发明对此不做具体限制。需要说明的是,创建的量子程序中并非每个量子逻辑门均为待替换量子逻辑门,例如在图3所示的量子线路对应的量子程序中CNOT门313并非待替换量子逻辑门,在优化量子程序的过程中保持不变,至于如何确定量子程序中哪些量子逻辑门需要替换,可以根据具体情况决定,例如可以确定量子程序中所有量子逻辑门均为待替换量子逻辑门。
在步骤S22中,针对量子程序中的每一个待替换量子逻辑门,若其对应的候选量子逻辑门为一个,则用该候选量子逻辑门替换该待替换量子逻辑门,若其对应的候选量子逻辑门为多个,则可以从中挑选一个进行替换。
在步骤S23中,目标函数值是根据量子程序的输出计算的目标函数的输出值,可以为损失函数值或目标系统的基态能量,此时,目标函数值越小,说明量子程序的输出更加符合预期。可选地,目标函数值为基态能量时,所述目标函数值为所述目标系统的哈密顿量、所述量子程序的输出以及目标矩阵的乘积之迹,所述目标矩阵为所述量子程序中量子逻辑门的等价酉矩阵的转置共轭矩阵,具体计算公式如下:
其中,为目标函数值,M为目标系统的哈密顿量,U为量子程序中量子逻辑门的等价酉矩阵,为量子程序作用的量子比特的初始状态,进而为量子程序的输出,为量子程序中量子逻辑门的等价酉矩阵的转置共轭矩阵。当然在其它可能的实施方式中,目标函数值也可以是其它函数值,例如余弦距离,目标系统的最大能量值等。
替换所述待替换量子逻辑门后,进入执行步骤S23,可以计算替换前后的量子程序的输出对应的目标函数值,并将两者进行比较。若替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值,说明替换后的量子程序更加符合预期,确定替换后的量子程序为优化后的量子程序,优化后的量子程序即相比初始创建的量子程序更加符合预期的量子程序,例如优化后的量子程序的损失函数值更小,说明优化后的量子程序的输出更接近预期,优化后的量子程序可以被投入到实际应用场景中。
基于上述技术方案,对于调用量子模块创建的量子程序,获取该量子程序中的待替换量子逻辑门的候选量子逻辑门,并调用数据结构模块利用候选量子逻辑门替换该待替换量子逻辑门,得到替换后的量子程序,由于目标函数值为损失函数值或目标系统的基态能量,其越小则量子程序的输出越符合预期,故当替换后的量子程序的输出对应的目标函数值小于替换前时,说明本次替换得到的量子程序的输出更加符合预期,进而确定替换后的量子程序为优化后的量子程序,完成对量子程序的优化。
可选地,所述候选量子逻辑门为含参量子逻辑门,在一种可能的实施方式中,候选量子逻辑门包括RX门、RY门和RZ门中的至少一者。当然在其它可能的实施方式中,候选量子逻辑门可以为其它含参量子逻辑门,本发明对此不做具体限制。
图4是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化方法的另一流程图,如图4所示,该方法可以包括:
S41,调用所述量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门。
S42,调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序。
S43,计算所述候选量子逻辑门的参数的候选值,并调用所述数据结构模块将所述参数的初始值替换为所述候选值。
S44,在所述参数为所述候选值对应的所述目标函数值小于所述参数为初始值对应的所述目标函数值时,确定所述参数的所述候选值为所述参数的优化值。
S45,在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。
其中,步骤S41可以参见步骤S21,步骤S42可以参见步骤S22,步骤S45可以参见步骤S23。
在得到替换后的量子程序后,可以进入执行步骤S43,计算候选量子逻辑门的参数的候选值,并利用该候选值对候选量子逻辑门的参数的初始值进行替换,参见前述对于数据结构模块的描述,具体可以调用数据结构模块将候选值赋值给参数,以替换初始值。
在步骤S44中,替换候选值后,计算量子程序的输出对应的目标函数值,并将该目标函数值,与候选量子逻辑门的参数为初始值时的量子程序的输出对应的目标函数值进行比较,若替换候选值后,量子程序的输出对应的目标函数值减小,说明替换候选值后的量子程序的输出更加符合预期,进而确定该候选值为参数的优化值。优化值即能起到对量子程序的优化作用的参数值,只要候选值替换初始值后,目标函数值减小,该候选值就可以视为对量子程序起到优化作用,进而可被视为优化值,并将该优化值作为量子程序在应用场景使用时,其中的候选量子逻辑门的参数值。
之后在步骤S45中,对于用于替换待替换量子逻辑门的候选量子逻辑门,可以确定该候选量子逻辑门的参数为得到的优化值,并计算待替换量子逻辑门被替换后的量子程序的输出对应的目标函数值,并将其与待替换量子逻辑门替换前的量子程序的输出对应的目标函数值进行比较,以得到优化后的量子逻辑门。如此可以对候选量子逻辑门的参数进行优化,进而通过优化参数实现对量子程序的优化。
可选地,候选值可以为多个,在步骤S44中,确定所述参数的所述候选值为所述参数的优化值,包括:
将最小所述目标函数值对应的所述参数的候选值确定为所述参数的优化值。
具体来讲,候选值有多个时,可以在替换候选量子逻辑门的参数的初始值后,从得到的量子程序的输出对应的目标函数值中选择最小的目标函数值所对应的候选值作为优化值,如此替换后的量子程序的输出对应的目标函数值最小,最符合预期,对量子程序的优化效果最好。例如,候选值有3个,分别为x1、x2、x3,将其分别替换初始值后,得到的量子程序对应的目标函数值分别为y1、y2、y3,其中y2最小,则将y2对应的x2作为优化值。
可选地,参见图5,在步骤43中,计算所述候选量子逻辑门的参数的候选值,包括:
S431,计算所述候选量子逻辑门的参数取不同参数值时所述量子程序的不同输出对应的不同所述目标函数值。
S432,基于不同所述目标函数值计算反三角函数。
S433,基于所述反三角函数计算所述候选量子逻辑门的参数的候选值。
在步骤S431中,候选量子逻辑门的参数取不同参数值例如,,,可以为任意实数,然后尝试用每个参数值替换候选量子逻辑门的参数的初始值,并在替换后计算量子程序的输出对应的目标函数值,得到不同的目标函数值。例如分别计算、、,其分别为参数取值为,,时的目标函数值。
在步骤S432中,可以先对不同的目标函数值进行运算,然后再将运算结果作为反三角函数的输入参数计算反三角函数。例如对不同的目标函数值运算得到运算结果:
在步骤S433中,可以再进一步对反三角函数进行计算,通过其周期调整其大小。沿用前述例子,计算,为计算得到的参数的候选值,k可以为任意整数,通过调整k的大小,可以使得的取值范围为。通过该方式,可以计算出取得最小目标函数值所对应的候选值,而无需多次计算再进行选择,提高优化效率。
可选地,所述候选量子逻辑门为多个,参见图6,在步骤S22中,调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序,包括:
S221,针对每一所述候选量子逻辑门,计算该候选量子逻辑门替换所述待替换量子逻辑门后所述量子程序的输出对应的目标函数值。
S222,选择最小的所述目标函数值,并调用所述量子模块接受该目标函数值对应的所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序。
为从多个候选量子逻辑门中选择合适的候选量子逻辑门,执行步骤S221,对于待替换量子逻辑门对应的多个候选量子逻辑门,尝试选择一候选量子逻辑门替换量子程序中的待替换量子逻辑门,并计算替换后的量子程序的输出对应的目标函数值。之后,对于多个候选量子逻辑门中剩余的每一候选量子逻辑门,均重复前述操作,计算每个候选量子逻辑门替换待替换量子逻辑门后,量子程序的输出对应的目标函数值。以图3所示的量子线路对应的量子程序为例,待替换量子逻辑门311对应的候选量子逻辑门可以包括RX门,RY门和RZ门,待替换量子逻辑门312对应的候选量子逻辑门可以包括RX门,RY门和RZ门。对于待替换量子逻辑门311,可以尝试分别用RX门,RY门和RZ门替换待替换量子逻辑门311,对于待替换量子逻辑门312则执行与待替换量子逻辑门311相同的操作。替换后,可以利用前述方法计算每个候选量子逻辑门的参数的候选值,并得到优化值,然后计算替换后的量子程序的输出对应的目标函数值。
在步骤S222中,从多个目标函数值中选择最小的目标函数值,并通过调用量子模块完成对量子程序中待替换量子逻辑门的替换,将最小的目标函数值对应的候选量子逻辑门加入量子程序中,并删除待替换量子逻辑门。沿用前述例子,通过计算,发现待替换量子逻辑门311为RY门,参数的优化值为3.14,待替换量子逻辑门312为RX门,参数的优化值为-1.57时,目标函数值最小,进而调用量子模块将RY门替换待替换量子逻辑门311,确定其参数取值为3.14,用RX门替换待替换量子逻辑门312,确定其参数取值为-1.57,得到替换后的量子程序。最后在步骤S23中,再将替换后的量子程序的目标函数值与替换前的量子程序的目标函数值比较,以确定替换后的量子程序为优化后的量子程序。
图7是根据一示例性实施例示出的一种基于机器学习框架的量子程序优化装置的框图,所述机器学习框架包括量子模块,所述装置700包括:
创建获取模块710,用于调用所述量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门;
替换模块720,用于调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序;
第一确定模块730,用于在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。
可选地,所述机器学习框架还包括数据结构模块,所述候选量子逻辑门为含参量子逻辑门,所述装置700还包括:
计算模块,用于在确定替换后的所述量子程序为优化后的量子程序之前,计算所述候选量子逻辑门的参数的候选值,并调用所述数据结构模块将所述参数的初始值替换为所述候选值;
第二确定模块,用于在所述参数为所述候选值对应的所述目标函数值小于所述参数为初始值对应的所述目标函数值时,确定所述参数的所述候选值为所述参数的优化值。
可选地,所述候选值为多个,所述第二确定模块还用于:
将最小所述目标函数值对应的所述参数的候选值确定为所述参数的优化值。
可选地,所述计算模块还用于:
计算所述候选量子逻辑门的参数取不同参数值时所述量子程序的不同输出对应的不同所述目标函数值;
基于不同所述目标函数值计算反三角函数;
基于所述反三角函数计算所述候选量子逻辑门的参数的候选值。
可选地,所述候选量子逻辑门包括RX门、RY门和RZ门中的至少一者。
可选地,所述目标函数值为基态能量时,所述目标函数值为所述目标系统的哈密顿量、所述量子程序的输出以及目标矩阵的乘积之迹,所述目标矩阵为所述量子程序中量子逻辑门的等价酉矩阵的转置共轭矩阵。
可选地,所述候选量子逻辑门为多个,所述替换模块720还用于:
针对每一所述候选量子逻辑门,计算该候选量子逻辑门替换所述待替换量子逻辑门后所述量子程序的输出对应的目标函数值;
选择最小的所述目标函数值,并调用所述量子模块接受该目标函数值对应的所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明的再一实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述基于机器学习框架的量子程序优化方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的再一实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述基于机器学习框架的量子程序优化方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
调用所述量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门;
调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序;
在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (8)
1.一种基于机器学习框架的量子程序优化方法,其特征在于,所述机器学习框架包括量子模块和数据结构模块,所述方法包括:
调用所述量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门,所述候选量子逻辑门为含参量子逻辑门;
调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序;
计算所述候选量子逻辑门的参数取不同参数值时所述量子程序的不同输出对应的不同目标函数值;
在所述参数为所述候选值对应的所述目标函数值小于所述参数为初始值对应的所述目标函数值时,确定所述参数的所述候选值为所述参数的优化值;
在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。
2.如权利要求1所述的方法,其特征在于,所述候选值为多个,所述确定所述参数的所述候选值为所述参数的优化值,包括:
将最小所述目标函数值对应的所述参数的候选值确定为所述参数的优化值。
3.如权利要求1所述的方法,其特征在于,所述候选量子逻辑门包括RX门、RY门和RZ门中的至少一者。
4.如权利要求1所述的方法,其特征在于,所述目标函数值为基态能量时,所述目标函数值为所述目标系统的哈密顿量、所述量子程序的输出以及目标矩阵的乘积之迹,所述目标矩阵为所述量子程序中量子逻辑门的等价酉矩阵的转置共轭矩阵。
5.如权利要求1所述的方法,其特征在于,所述候选量子逻辑门为多个,所述调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序,包括:
针对每一所述候选量子逻辑门,计算该候选量子逻辑门替换所述待替换量子逻辑门后所述量子程序的输出对应的目标函数值;
选择最小的所述目标函数值,并调用所述量子模块接受该目标函数值对应的所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序。
6.一种基于机器学习框架的量子程序优化装置,其特征在于,所述机器学习框架包括量子模块和数据结构模块,所述装置包括:
创建获取模块,用于调用所述量子模块创建包括待替换量子逻辑门的量子程序,并获取所述待替换量子逻辑门的候选量子逻辑门,所述候选量子逻辑门为含参量子逻辑门;
替换模块,用于调用所述量子模块用所述候选量子逻辑门替换所述待替换量子逻辑门,得到替换后的量子程序;
第二确定模块,用于在所述参数为所述候选值对应的所述目标函数值小于所述参数为初始值对应的所述目标函数值时,确定所述参数的所述候选值为所述参数的优化值;
第一确定模块,用于在替换后的所述量子程序的输出对应的目标函数值小于替换前所述量子程序的输出对应的所述目标函数值时,确定替换后的所述量子程序为优化后的量子程序,所述目标函数值为损失函数值或目标系统的基态能量。
7.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至5任一项中所述的方法。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至5任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210280789.5A CN114372583B (zh) | 2022-03-22 | 2022-03-22 | 基于机器学习框架的量子程序优化方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210280789.5A CN114372583B (zh) | 2022-03-22 | 2022-03-22 | 基于机器学习框架的量子程序优化方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114372583A CN114372583A (zh) | 2022-04-19 |
CN114372583B true CN114372583B (zh) | 2022-07-15 |
Family
ID=81145661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210280789.5A Active CN114372583B (zh) | 2022-03-22 | 2022-03-22 | 基于机器学习框架的量子程序优化方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114372583B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11194946B2 (en) * | 2018-08-29 | 2021-12-07 | International Business Machines Corporation | Optimization of quantum circuits |
CN110929873B (zh) * | 2019-12-11 | 2023-07-04 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的处理方法、装置、存储介质和电子装置 |
CN112651509B (zh) * | 2020-10-14 | 2022-04-22 | 腾讯科技(深圳)有限公司 | 量子线路的确定方法及装置 |
CN114202072A (zh) * | 2021-10-14 | 2022-03-18 | 腾讯科技(深圳)有限公司 | 量子体系下的期望值估计方法及系统 |
CN113934431A (zh) * | 2021-10-27 | 2022-01-14 | 中国人民解放军战略支援部队信息工程大学 | 一种量子程序编译方法、装置及电子设备 |
-
2022
- 2022-03-22 CN CN202210280789.5A patent/CN114372583B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114372583A (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112114776B (zh) | 一种量子乘法运算方法、装置、电子装置及存储介质 | |
CN113222155B (zh) | 一种量子线路的构建方法、装置、电子装置和存储介质 | |
CN114358317B (zh) | 基于机器学习框架的数据分类方法及相关设备 | |
CN111461335A (zh) | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 | |
EP4300377A1 (en) | Quantum circuit compilation method and device, compilation framework and quantum operating system | |
CN113222151B (zh) | 一种量子态的变换方法及装置 | |
CN114372583B (zh) | 基于机器学习框架的量子程序优化方法及相关设备 | |
CN115775029B (zh) | 量子线路转化方法、装置、介质及电子装置 | |
CN116702913A (zh) | 一种待执行操作的量子模拟方法、装置 | |
CN114372539B (zh) | 基于机器学习框架的分类方法及相关设备 | |
CN115879562B (zh) | 一种量子程序初始映射的确定方法、装置及量子计算机 | |
CN115809707A (zh) | 量子比较运算方法、装置、电子装置及基础算术组件 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN115730670B (zh) | 模式文件的生成方法、装置、介质及电子装置 | |
CN115775028B (zh) | 量子线路优化方法、装置、介质及电子装置 | |
CN114970872B (zh) | 量子线路的编译方法、装置、介质及电子装置 | |
CN116542337A (zh) | 数据处理方法、机器学习框架及相关设备 | |
CN116415667A (zh) | 数据处理方法、机器学习框架及相关设备 | |
CN115879555B (zh) | 量子模数快速乘法运算方法、装置及模数算术组件 | |
CN116644813B (zh) | 一种利用量子电路确定最优组合方案的方法及装置 | |
WO2024066808A1 (zh) | 量子线路生成方法、装置、存储介质及电子装置 | |
CN116402149B (zh) | 一种量子线路优化方法、装置、存储介质及电子装置 | |
CN115879554B (zh) | 量子模数平方运算方法、装置、电子装置及模数算术组件 | |
CN115775030B (zh) | 基于模式匹配的量子程序重写方法、装置及电子装置 | |
CN116432691A (zh) | 基于机器学习框架的模型训练方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |