CN117408346A - 一种量子线路确定方法、装置和计算设备 - Google Patents
一种量子线路确定方法、装置和计算设备 Download PDFInfo
- Publication number
- CN117408346A CN117408346A CN202311391038.1A CN202311391038A CN117408346A CN 117408346 A CN117408346 A CN 117408346A CN 202311391038 A CN202311391038 A CN 202311391038A CN 117408346 A CN117408346 A CN 117408346A
- Authority
- CN
- China
- Prior art keywords
- graph
- nodes
- sub
- node
- quantum
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000010586 diagram Methods 0.000 claims abstract description 51
- 230000002441 reversible effect Effects 0.000 claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 230000015654 memory Effects 0.000 claims description 14
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 19
- 239000002096 quantum dot Substances 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 230000009286 beneficial effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000005610 quantum mechanics Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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
- G06N10/20—Models of quantum computing, e.g. quantum circuits or universal quantum computers
-
- 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
- G06N10/80—Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及一种量子线路确定方法、装置和计算设备,涉及量子计算技术领域。在本发明中,计算设备获取待处理的查找表(LUT)图,对LUT图进行分割,得到第一子图和第二子图,根据第一子图和第二子图,确定LUT图对应的量子线路。本发明的量子线路包括通过先对第一子图中的节点进行正向计算,然后对第一子图中输出端未与第一子图的输出连接的节点进行逆操作,然后再进行第二子图的正向计算,这样一来,能够使得第一子图中输出端未与第一子图的输出连接的节点对应的辅助量子比特被第二子图中的节点重复利用,进而能够节约量子线路中辅助量子比特的数量,从而减少量子计算机执行量子线路所需要的量子比特数量,从而节约计算资源。
Description
技术领域
本发明涉及量子计算技术领域,尤其涉及一种量子线路确定方法、装置和计算设备。
背景技术
量子计算是利用量子力学规律来完成计算任务的技术。在一些场景中,量子计算可以比现有技术中的经典计算更加高效。然而,受到量子力学规律的一些限制,在量子计算中的计算逻辑比经典计算更难实现。为了在量子计算中使用经典逻辑,就需要将经典计算逻辑转化为“可逆”的量子线路,然后根据量子线路生成量子计算机能够执行的量子程序,量子程序用于以编程语言或其他形式描述经典逻辑。其中,量子线路是一种通用量子计算模型,表示在抽象概念下,对于量子比特进行操作的线路。
将经典逻辑转化为量子线路的过程通常需要根据经典逻辑对应的查找表(look-up-table LUT)图确定对应的量子线路。其中,LUT图中包括输入、输出和节点,LUT图中的输入和输出分别对应量子程序的输入和输出。而每个节点对应一个多输入单输出的布尔函数,描述了输出值和输出值之间的计算逻辑。LUT图中的每个输出只与一个节点相连,表示取该节点的计算结果作为输出值。
当LUT图被转化为量子线路后,LUT图中的每个节点分别对应一个量子比特。其中,除量子程序的输入和输出的节点以外的其他节点对应的量子比特为辅助量子比特。相关技术中,生成量子线路的过程中,无法对辅助量子比特的数量和量子线路长度进行优化,导致量子计算机使用的量子比特数量较多,造成了资源的浪费。
发明内容
本发明提供一种量子线路确定方法、装置和计算设备,能够实现量子线路中辅助量子比特的重复利用,进而减少量子计算机执行量子线路所需要的量子比特数量,从而节约计算资源。
本发明解决上述技术问题的技术方案如下:
第一方面,本发明提供一种量子线路确定方法,上述方法包括:获取待处理的查找表(LUT)图,LUT图包括量子程序的多个输入和输出,以及多个节点。其中,多个节点中每个节点具有多个输入端和输出端。多个节点中每个节点的每个输入端与多个输入中的一个或其他节点的输出端连接,多个节点中每个节点的每个输出端与多个输出中的一个或其他节点的输入端连接。对LUT图进行分割,得到第一子图和第二子图。其中,第一子图包括多个输入和输出,以及多个第一节点。第二子图包括多个输入和输出,以及多个第二节点。第一子图的多个输入为LUT图的多个输入。第一子图的多个输出为第二子图的多个输入。第二子图的多个输出为LUT图的多个输出。第一节点或第二节点为多个节点中的一个。根据第一子图和第二子图,确定LUT图对应的量子线路,量子线路包括:对多个第一节点进行正向计算,在多个第一节点正向计算完成后,对第三节点进行逆操作,第三节点为多个第一节点中的一个或多个,第三节点的输出端与多个第一节点中的一个连接。在对第三节点进行逆操作后,对第二子图包括的多个第二节点进行正向计算,在多个第二节点正向计算完成后,对第四节点进行逆操作,第四节点为多个第二节点中的一个或多个,第四节点的输出端与多个第二节点中的一个连接。对第五节点进行逆操作,第五节点为多个第一节点中除第三节点外的其他节点。
其中,上述对第四节点进行逆操作,具体包括以下步骤:对第三节点进行正向计算,在第三节点正向计算完成后,对第四节点进行逆操作,在对第四节点进行逆操作完成之后,对第三节点进行逆操作。
本发明的有益效果是:本发明实施例得到的量子线路通过首先对第一子图中所有的第一节点进行正向计算,然后对第一子图中输出端未与第一子图的输出连接的节点(第三节点)进行逆操作,以使得输出端未与第一子图的输出连接的节点(第三节点)对应的辅助量子比特被恢复至初始状态,再基于被恢复至初始状态的辅助量子比特进行第二子图中的全部节点(第二节点)正向计算,接着对第二子图中输出端未与第二子图的输出连接的节点(第四节点)进行逆操作,然后再对第一子图中未进行逆操作的节点(第五节点)进行逆操作,这样一来,能够使得除输出端与LUT子图的输出连接的节点外的其他节点均在正向计算后进行逆操作,能够使得这些节点对应的辅助量子比特被重复利用,进而能够节约量子线路中辅助量子比特的数量,从而减少量子计算机执行量子线路所需要的量子比特数量,从而能够节约计算资源。
在第一方面一种可能的实现方式中,对LUT图进行分割,得到第一子图和第二子图,包括:将LUT图包括的多个节点划分至第一节点组。从多个节点中确定候选节点,候选节点为输入端不与第一节点组中的节点的输出端连接的节点。将候选节点中的一个或多个划分至第二节点组。将第二节点组中输出端不与第一节点组中的节点的输入端连接的节点划分至第三节点组。其中,第三节点组的节点数量大于等于第一节点组的节点数量。根据第三节点组和第二节点组中的节点,以及第三节点组和第二节点组中的每个节点的输入端和输出端,生成第一子图,第三节点组和第二节点组中的节点为第一节点。根据第一节点组中的节点,以及第一节点组中的每个节点的输入端和输出端,生成第二子图,第一节点组中的节点为第二节点。
本发明的有益效果是:本发明通过对LUT图进行分割为第一子图和第二子图。这样一来,能够先对第一子图中的节点进行正向计算,然后对第一子图中已完成正向计算的部分节点进行逆操作,实现这部分节点对应的量子比特被恢复至初始状态,这个时候再进行第二子图的正向计算时,第二子图的正向计算能够基于被恢复的辅助量子比特进行,能够减少量子线路中辅助量子比特的数量,从而实现对资源的节约。
在第一方面一种可能的实现方式中,上述方法还包括:确定LUT图对应的量子线路中的辅助量子比特的数量。
本发明的有益效果是:本发明通过确定量子线路中的辅助量子比特的数量,能够比较同一LUT图对应的不同量子线路的辅助量子比特的数量,进而使得能够在多条量子线路中进行选择,满足用户在不同使用场景下的使用需求。
在第一方面一种可能的实现方式中,确定LUT图对应的量子线路中的辅助量子比特的数量,包括:确定第一节点组中的节点数量N1、第二节点组中的节点数量N2以及第三节点组中的节点数量N3。确定输出端与LUT的多个输出连接的节点数量N4。LUT图对应的量子线路中的辅助量子比特的数量N5为:
N5=max(N1,N3)+N2-N4。
本发明的有益效果是:本发明通过提供一种辅助量子比特的具体计算方式,能够快速确定量子线路中辅助量子比特的数量,便于用户快速了解当前量子线路中的辅助量子比特的使用情况,提升用户的使用体验。
在第一方面一种可能的实现方式中,根据第一子图和第二子图,确定LUT图对应的量子线路,包括:确定第一子图和/或第二子图包括的节点数量是否大于等于预设阈值。在第一子图和/或第二子图包括的节点数量小于预设阈值的情况下,确定第一子图包括的多个第一节点中的第三节点和第五节点。以及确定第二子图包括的多个第二节点中的第四节点。根据第一节点、第二节点、第三节点、第四节点和第五节点,确定LUT图的量子线路。
本发明的有益效果是:本发明通过在第一子图和/或第二子图包括的节点数量小于预设阈值的情况下,确定第一节点、第二节点、第三节点、第四节点和第五节点,然后基于对五种不同的节点的不同操作顺序,得到量子线路,能够使得这些节点对应的辅助量子比特被重复利用,进而能够节约量子线路中辅助量子比特的数量,从而减少量子计算机执行量子线路所需要的量子比特数量,从而能够节约计算资源。
在第一方面一种可能的实现方式中,上述方法还包括:在第一子图和/或第二子图包括的节点数量大于等于预设阈值的情况下,对第一子图和/或第二子图分别进行分割,得到第一子图对应的第三子图和第四子图,以及第二子图对应的第五子图和第六子图,其中,第三子图、第四子图、第五子图和第六子图包括的节点数量小于预设阈值。根据第三子图和第四子图确定第一子图的量子线路,根据第五子图和第六子图确定第二子图的量子线路。对第一子图的量子线路和第二子图的量子线路进行合并,得到LUT图的量子线路。
本发明的有益效果是:本发明通过在第一子图和/或第二子图包括的节点数量大于等于预设阈值的情况下,对第一子图和第二子图继续进行分割,得到第一子图的两个子图和第二子图的两个子图,然后基于与确定LUT图的量子线路的相同方式分别确定第一子图的量子线路和第二子图的量子线路,最后合并得到LUT的量子线路,这样一来,在规模较大的量子程序的场景下,计算设备通过对子图的不断分割,然后通过确定多个子图的量子线路,最后进行合并,能够得到LUT图对应的量子线路,本发明提供的方法能够满足用户在规模较大的量子程序的场景下的量子线路的确定需求,从而能够提升用户的使用体验。
在第一方面一种可能的实现方式中,上述方法还包括:根据LUT图对应的量子线路生成量子计算机可执行的量子程序,以使得量子计算机实现LUT图对应的经典逻辑。
本发明的有益效果是:本发明得到的量子线路中由于辅助量子比特的数量较少,因此基于量子线路得到的量子程序所需要量子计算机提供的量子比特的数量较少。在量子计算机受硬件限制能够提供的量子比特数量有限的情况下,本发明确定的量子线路能够满足这一场景下的量子计算机的使用需求,避免由于量子计算机提供的量子比特数量有限,导致量子程序无法正常运行,影响用户的使用体验。
第二方面,本发明提供一种量子线路确定装置,上述装置包括:获取单元,用于获取待处理的查找表(LUT)图,LUT图包括量子程序的多个输入和输出,以及多个节点。其中,多个节点中每个节点具有多个输入端和输出端。多个节点中每个节点的每个输入端与多个输入中的一个或其他节点的输出端连接,多个节点中每个节点的每个输出端与多个输出中的一个或其他节点的输入端连接。分割单元,用于对LUT图进行分割,得到第一子图和第二子图。其中,第一子图包括多个输入和输出,以及多个第一节点。第二子图包括多个输入和输出,以及多个第二节点。第一子图的多个输入为LUT图的多个输入。第一子图的多个输出为第二子图的多个输入。第二子图的多个输出为LUT图的多个输出。第一节点或第二节点为多个节点中的一个。确定单元,用于根据第一子图和第二子图,确定LUT图对应的量子线路,量子线路包括:对多个第一节点进行正向计算,在多个第一节点正向计算完成后,对第三节点进行逆操作,第三节点为多个第一节点中的一个或多个,第三节点的输出端与多个第一节点中的一个连接。在对第三节点进行逆操作后,对第二子图包括的多个第二节点进行正向计算,在多个第二节点正向计算完成后,对第四节点进行逆操作,第四节点为多个第二节点中的一个或多个,第四节点的输出端与多个第二节点中的一个连接。对第五节点进行逆操作,第五节点为多个第一节点中除第三节点外的其他节点。
在第二方面一种可能的实现方式中,分割单元,具体用于:将LUT图包括的多个节点划分至第一节点组。从多个节点中确定候选节点,候选节点为输入端不与第一节点组中的节点的输出端连接的节点。将候选节点中的一个或多个划分至第二节点组。将第二节点组中输出端不与第一节点组中的节点的输入端连接的节点划分至第三节点组。其中,第三节点组的节点数量大于等于第一节点组的节点数量。根据第三节点组和第二节点组中的节点,以及第三节点组和第二节点组中的每个节点的输入端和输出端,生成第一子图,第三节点组和第二节点组中的节点为第一节点。根据第一节点组中的节点,以及第一节点组中的每个节点的输入端和输出端,生成第二子图,第一节点组中的节点为第二节点。
在第二方面一种可能的实现方式中,确定单元,还用于确定LUT图对应的量子线路中的辅助量子比特的数量。
在第二方面一种可能的实现方式中,确定单元,具体用于确定第一节点组中的节点数量N1、第二节点组中的节点数量N2以及第三节点组中的节点数量N3。确定输出端与LUT的多个输出连接的节点数量N4。LUT图对应的量子线路中的辅助量子比特的数量N5为:
N5=max(N1,N3)+N2-N4。
在第二方面一种可能的实现方式中,确定单元,具体用于:确定第一子图和/或第二子图包括的节点数量是否大于等于预设阈值。在第一子图和/或第二子图包括的节点数量小于预设阈值的情况下,确定第一子图包括的多个第一节点中的第三节点和第五节点。以及确定第二子图包括的多个第二节点中的第四节点。根据第一节点、第二节点、第三节点、第四节点和第五节点,确定LUT图的量子线路。
在第二方面一种可能的实现方式中,确定单元,还用于:在第一子图和/或第二子图包括的节点数量大于等于预设阈值的情况下,对第一子图和第二子图分别进行分割,得到第一子图对应的第三子图和第四子图,以及第二子图对应的第五子图和第六子图,其中,第三子图、第四子图、第五子图和第六子图包括的节点数量小于预设阈值。根据第三子图和第四子图确定第一子图的量子线路,根据第五子图和第六子图确定第二子图的量子线路。对第一子图的量子线路和第二子图的量子线路进行合并,得到LUT图的量子线路。
在第二方面一种可能的实现方式中,确定单元,还用于:根据LUT图对应的量子线路生成量子计算机可执行的量子程序,量子程序用于描述LUT图对应的经典逻辑。
第三方面,本发明提供一种计算设备,包括:处理器。用于存储处理器可执行指令的存储器。其中,处理器被配置为执行指令,以实现如上述第一方面提供的任意一种量子线路确定方法。
第四方面,提供了一种芯片,该芯片包括:处理器和接口电路。接口电路,用于接收代码指令并传输至处理器。处理器,用于运行代码指令以执行上述第一方面提供的任意一种量子线路确定方法。
第五方面,提供了一种计算机可读存储介质,存储有计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种量子线路确定方法。
第六方面,提供了一种计算机程序产品,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种量子线路确定方法。
其中,第二方面至第六方面中任一种设计方式所带来的技术效果可以参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本发明实施例示出的一种计算设备的结构示意图;
图2为本发明实施例示出的一种量子线路确定方法的流程示意图;
图3为本发明实施例示出的一种LUT图的示意图;
图4为本发明实施例示出的一种第一子图和第二子图的示意图;
图5为本发明实施例示出的又一种量子线路确定方法的流程示意图;
图6a为本发明实施例示出的一种LUT图分割过程的示意图;
图6b为本发明实施例示出的另一种LUT图分割过程的示意图;
图6c为本发明实施例示出的又一种LUT图分割过程的示意图;
图7为本发明实施例示出的另一种量子线路确定方法的流程示意图;
图8为本发明实施例示出的又一种量子线路确定方法的流程示意图;
图9为本发明实施例示出的一种量子线路确定装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。其中,在本发明实施例的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
另外,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
量子计算是利用量子力学规律来完成计算任务的技术。在一些场景中,量子计算可以比现有技术中的经典计算更加高效。然而,受到量子力学规律的一些限制,在量子计算中的计算逻辑比经典计算更难实现。具体而言,量子计算中的大部分计算逻辑必须是“可逆”的,否则该计算逻辑无法在物理上被实现,而经典计算中的许多计算逻辑(例如与、或、异或)都不是“可逆”的。为了在量子计算中使用经典逻辑,就需要将经典计算逻辑转化为“可逆”的量子线路然后根据量子线路生成量子计算机能够执行的量子程序。其中,量子线路是一种通用量子计算模型,表示在抽象概念下,对于量子比特进行操作的线路。
将经典逻辑转化为量子线路的过程通常需要根据经典逻辑对应的查找表(look-up-table,LUT)图确定对应的量子线路。其中,LUT图也称为look-up-table graph。LUT图中包括输入、输出和节点,LUT图中的输入和输出分别对应量子程序的输入和输出。而每个节点对应一个多输入单输出的布尔函数,描述了输出值和输出值之间的计算逻辑。LUT图中的每个输出只与一个节点相连,表示取该节点的计算结果作为输出值。
当LUT图被转化为量子线路后,LUT图中的每个节点分别对应一个量子比特。其中,除量子程序的输入和输出的节点以外的其他节点对应的量子比特为辅助量子比特。
为了使辅助量子比特可以被复用,通常需要对辅助量子比特进行逆操作,使其被还原回初始状态。对辅助量子比特进行逆操作通常是按照相反顺序再次对辅助量子比特施加与正向计算时相同的Toffoli门。辅助量子比特在完成逆操作后即可被再次使用,因而可以通过调整正向计算和逆操作的顺序,使某些辅助量子比特被重复利用,从而减少辅助量子比特的总数量。
相关技术1中,通常基于Bennett策略实现LUT图到量子线路的转化,具体来说,Bennett策略是按照LUT图的拓扑顺序依次计算所有节点,然后对辅助量子比特按照相反顺序执行逆操作。其中,拓扑顺序是指能满足LUT图中的依赖关系的顺序。然而这种方式存在一定的不足,Bennett策略仅能保证量子线路的正确性,并不能对量子线路的线路长度和辅助量子比特数量进行优化。
相关技术2中,通常基于Eager cleanup策略实现LUT图到量子线路的转化,Eagercleanup策略是按照LUT图的拓扑顺序依次计算所有节点,每当有输出节点被计算完成后,检查所有辅助量子比特是否在后续计算中会被用到,对不再被用到的辅助量子比特立即执行逆操作,在后续计算中优先复用这些逆操作后的辅助量子比特。然而这种方式存在一定的不足,Eager cleanup策略理论上可以保证电路长度最小,但无法对辅助量子比特的数量进行优化。
相关技术3中,通常通过SAT方法实现LUT图到量子线路的转化,SAT方法是指将各个节点的正向计算和逆操作的顺序要求以及辅助量子比特的使用规则转化为可满足性问题(SAT),并借助SAT求解器搜寻最优解。为了减少辅助量子比特数量和线路长度,额外设置最大辅助量子比特数量和最大量子线路长度的限制规则。首先设置较小的最大辅助量子比特数量和量子线路长度,求解SAT问题,若结果为“无法满足”则稍稍拓宽限制,再次求解。重复该过程,直到有可行解为止。虽然SAT方法理论上可以得到电路长度最小且辅助量子比特数量最小的方案。但SAT方法的求解时间与量子程序规模呈指数增长的关系,因而SAT方法不适用于规模较大的量子程序的场景。
相关技术4中,RPGH方法通常使用启发式搜索的办法寻找较优解。每一步在可计算的节点中通过启发式方法选择一个节点进行计算。记录在之前计算中已完成逆操作的辅助量子比特,在后续的计算中优先使用。辅助量子比特不足时,通过启发式方法寻找暂时不用的保存中间结果的量子比特进行逆操作。
鉴于此,本发明实施例提供一种量子线路确定方法,应用于计算设备,计算设备获取待处理的查找表(LUT)图。LUT图包括量子程序的多个输入和输出,以及多个节点。其中,多个节点中每个节点具有多个输入端和一个输出端。多个节点中每个节点的每个输入端与多个输入中的一个或其他节点的输出端连接,多个节点中每个节点的每个输出端与多个输出中的一个或其他节点的输入端连接。对LUT图进行分割,得到第一子图和第二子图。对LUT图进行分割,得到第一子图和第二子图,根据第一子图和第二子图,确定LUT图对应的量子线路。本发明实施例得到的量子线路通过首先对第一子图中所有的节点进行正向计算,然后对第一子图中输出端未与第一子图的输出连接的节点进行逆操作,以使得输出端未与第一子图的输出连接的节点对应的辅助量子比特被恢复至初始状态,再基于被恢复至初始状态的辅助量子比特进行第二子图中的全部节点正向计算,接着对第二子图中输出端未与第二子图的输出连接的节点进行逆操作,然后再对第一子图中未进行逆操作的节点进行逆操作,这样一来,能够使得除输出端与LUT子图的输出连接的节点外的其他节点均在正向计算后进行逆操作,能够使得这些节点对应的辅助量子比特被重复利用,进而能够节约量子线路中辅助量子比特的数量,从而减少量子计算机执行量子线路所需要的量子比特数量,从而能够节约计算资源。
以下结合说明书附图,对本发明实施例提供的量子线路确定方法进行说明。
具体的,本发明实施例提供的量子线路确定方法由计算设备100执行,计算设备100接收输入的目标经典逻辑对应的LUT图,然后基于LUT图确定对应的量子线路,以使得计算设备100能够根据得到的量子线路生成对应的量子程序,量子程序用于提供给量子计算机执行,以实现上述LUT图对应的经典逻辑。
作为示例,计算设备100可以是任意具有数据处理能力的设备,比如通用计算机、个人计算机、笔记本电脑、交换机或平板电脑等,此处对计算设备100的具体实现方式不作限定。
图1示出了本发明实施例提供的计算设备100的结构示意图。该计算设备100包括处理器210、存储器220以及通信接口230。
处理器210可以包括一个或者多个处理核心。处理器210利用各种接口和线路连接计算设备100内的各个部分,通过运行或执行存储在存储器220内的指令、程序、代码集或指令集,以及调用存储在存储器220内的数据,执行计算设备100的各种功能和处理数据。可选地,处理器210可以采用中央处理器(Central Processing Unit,CPU)、图像处理器(graphics processing unit,GPU)、数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logic array,PLA)中的至少一种硬件形式来实现。
存储器220可以包括随机存储器(random access memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器220包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器220可用于存储指令、程序、代码、代码集或指令集。存储器220可包括存储程序区。其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如请求发送功能、数据处理功能等),用于实现上述各个方法实施例的指令等。
通信接口230,用于与其他器件、设备或通信网络通信,如数据存储器件、图像处理设备或以太网,无线接入网(RAN),无线局域网(wireless local areanetworks,WLAN)等。
在物理实现上,上述各器件(如处理器210、存储器220以及通信接口230)可以分别是同一个设备(如笔记本电脑)中的器件。或者,其中的至少两个器件可以设置在同一个设备中,即作为一个设备中的不同器件,如类似于分布式系统中的设备或器件的部署方式。
可以理解的是,本实施例示意的结构并不构成对计算设备100的具体限定。在本发明另一些实施例中,计算设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
以下结合说明书附图,对本发明实施例提供的量子线路确定方法进行说明。
图2为本发明实施例提供的一种量子线路确定方法的流程图。可选的,该方法可以由具有图1所示硬件结构的计算设备100执行。该方法可以包括以下步骤:
S210、获取待处理的查找表(LUT)图。
具体的,LUT图是根据需要编入量子程序中的经典逻辑生成的,LUT图包括量子程序的多个输入和输出,以及多个节点。其中,多个节点中每个节点具有多个输入端和输出端。多个节点中每个节点的每个输入端与多个输入中的一个或其他节点的输出端连接,多个节点中每个节点的每个输出端与多个输出中的一个或其他节点的输入端连接。
也可以理解为,LUT图的多个节点中每个节点对应一个多输入单输出的布尔函数,描述了输入和输出值之间的计算逻辑。并且,LUT图的多个输出中每个输出分别与一个节点的输出端连接,以表示这个节点的输出端输出的计算结果作为LUT图的一个输出的输出值。
示例性的,参见图3,图3为本发明实施例示出的一种LUT图的示意图,LUT图包括4个输入,分别为x1、x2、x3和x4。还包括2个输出,分别为y1和y2,以及包括7个节点分别为节点1、节点2、节点3、节点4、节点5、节点6和节点7。由图可知,7个节点中每个节点具有多个输入端和一个输出端。节点1、节点2和节点3的输入端分别与LUT图的4个输入连接。节点6和节点7的输出端分别与LUT图的4个输出连接。
S220、对LUT图进行分割,得到第一子图和第二子图。
其中,第一子图包括多个输入和输出,以及多个第一节点。第二子图包括多个输入和输出,以及多个第二节点。第一子图的多个输入为LUT图的多个输入。第一子图的多个输出为第二子图的多个输入。第二子图的多个输出为LUT图的多个输出。第一节点或第二节点为多个节点中的一个。
结合图3,参见图4,图4为本发明实施例提供的一种第一子图和第二子图的示意图,第一子图包括4个输入、2个输出以及5个节点,第二子图包括2个输入、2个输出以及2个节点。其中,第一子图的4个输入为上述LUT图的4个输入。第一子图的2个输入为第二子图的4个输入。第二子图的2个输出为上述LUT图的2个输出。
在一些实施例中,参见图5,上述S220,具体包括以下步骤:
S2201、将LUT图包括的多个节点划分至第一节点组。
结合图3所示的示例,参见图6a,将LUT图包括的7个节点划分至第一节点组B。
S2202、从多个节点中确定候选节点,候选节点为输入端不与第一节点组中的节点的输出端连接的节点。
结合上述示例,参见图6a,从LUT图包括的7个节点中确定候选节点,由于候选节点为输入端不与第一节点组B中的节点的输出端连接的节点。候选节点为节点1、节点2和节点3。
S2203、将候选节点中的一个或多个划分至第二节点组。
结合上述示例,参见图6b,将节点1、节点2和节点3划分至第二节点组S中,此时由于节点4和节点5为输入端不与第一节点组B中的节点的输出端连接的节点,因此节点4和节点5为候选节点,重复上述步骤,将节点4和节点5划分至第二节点组S中。
S2204、将第二节点组中输出端不与第一节点组中的节点的输入端连接的节点划分至第三节点组。其中,第三节点组的节点数量大于等于第一节点组的节点数量。
继续结合上述示例,参见图6c,第二节点组中输出端不与第一节点组中的节点的输入端连接的节点为节点1、节点2和节点3,将节点1、节点2和节点3划分至第三节点组A。
此时第一节点组B包括节点6和节点7,第二节点组S包括节点4和节点5,第三节点组A包括节点1、节点2和节点3。
S2205、根据第三节点组和第二节点组中的节点,以及第三节点组和第二节点组中的每个节点的输入端和输出端,生成第一子图,第三节点组和第二节点组中的节点为第一节点。
示例性的,根据第三节点组A和第二节点组S中的节点,分别为节点1、节点2、节点3、节点4和节点5,以及每个节点的输入端和输出端生成第一子图。其中,节点1、节点2、节点3、节点4和节点5为上述第一节点。
S2206、根据第一节点组中的节点,以及第一节点组中的每个节点的输入端和输出端,生成第二子图,第一节点组中的节点为第二节点。
示例性的,根据第一节点组B中的节点,分别为节点6和节点7,以及每个节点的输入端和输出端生成第二子图。其中,节点6和节点7为上述第二节点。
由上述2201-2206可知,本发明实施例通过对LUT进行分割为第一子图和第二子图。这样一来,能够先对第一子图中的节点进行正向计算,然后对第一子图中已完成正向计算的部分节点进行逆操作,实现这部分节点对应的量子比特被恢复至初始状态,这个时候再进行第二子图的正向计算时,第二子图的正向计算能够基于被恢复的辅助量子比特进行,能够减少量子线路中辅助量子比特的数量,从而实现对资源的节约。
S230、根据第一子图和第二子图,确定LUT图对应的量子线路。
具体的,量子线路包括:对多个第一节点进行正向计算,在多个第一节点正向计算完成后,对第三节点进行逆操作,第三节点为多个第一节点中的一个或多个,第三节点的输出端与多个第一节点中的一个连接。在对第三节点进行逆操作后,对第二子图包括的多个第二节点进行正向计算,在多个第二节点正向计算完成后,对第四节点进行逆操作,第四节点为多个第二节点中的一个或多个,第四节点的输出端与多个第二节点中的一个连接。对第五节点进行逆操作,第五节点为多个第一节点中除第三节点外的其他节点。
具体的,由于对第五节点进行逆操作的过程中需要在与第五节点存在依赖关系的节点处于正向计算完成的状态时进行,且与第五节点存在依赖关系的节点为第三节点,因此,上述对第五节点进行逆操作,具体包括以下步骤:对第三节点进行正向计算,在第三节点正向计算完成后,对第五节点进行逆操作,在对第五节点进行逆操作完成后,再次对第三节点进行逆操作,以使得第三节点和第五节点对应的辅助量子比特均处于被还原的初始状态,也就是未经过正向计算的状态。
其中,量子线路包含多个量子比特,每个量子比特对应LUT图中的输入或节点,用于储存LUT图中的输入对应的输入值和每个节点的计算结果。其中输入对应的量子比特被初始化为量子程序的输入值,而节点对应的量子比特被初始化为|0>态。量子线路包含多个通用可逆逻辑(Toffoli)门,每个Toffoli门对应LUT图的一个节点。Toffoli门控制位连接的量子比特对应了节点的输入来源,Toffoli门的输出位则是用于储存节点计算结果的量子比特。这些Toffoli门的顺序对应了LUT图中节点的计算顺序,需要满足LUT图的依赖关系。为了使辅助量子比特可以被复用,通常需要对辅助量子比特进行逆操作,使其被还原回初始的|0>状态。由于Toffoli门的逆操作与自身等价,对节点进行逆操作方法是:按照相反顺序再次对辅助量子比特施加与正向计算时相同的Toffoli门。
示例性的,结合图3和图4,第一节点为节点1、节点2、节点3、节点4、节点5。第二节点为节点6和节点7,第三节点为节点1、节点2、节点3,第四节点不存在,第五节点为节点4和节点5。计算设备确定的量子线路为首先对节点1、节点2、节点3、节点4、节点5进行正向计算,然后对节点1、节点2、节点3进行逆操作,接着对节点6和节点7进行正向计算,最后对节点4和节点5进行逆操作。
在一些实施例中,参见图7,上述S230,具体包括以下步骤:
S710、确定第一子图和/或第二子图包括的节点数量是否大于等于预设阈值。
具体的,预设阈值可根据实际使用场景进行设置,本发明实施例对预设阈值的具体实现方式不作特别限制。
S720、在第一子图和/或第二子图包括的节点数量小于预设阈值的情况下,确定第一子图包括的多个第一节点中的第三节点和第五节点。以及确定第二子图包括的多个第二节点中的第四节点。
S730、根据第一节点、第二节点、第三节点、第四节点和第五节点,确定LUT图的量子线路。
由上述可知,本发明实施例通过在第一子图和/或第二子图包括的节点数量小于预设阈值的情况下,确定第一节点、第二节点、第三节点、第四节点和第五节点,然后基于对五种不同的节点的不同操作顺序,得到量子线路,能够使得这些节点对应的辅助量子比特被重复利用,进而能够节约量子线路中辅助量子比特的数量,从而减少量子计算机执行量子线路所需要的量子比特数量,从而能够节约计算资源。
进一步的,参见图8,本发明提供的方法还包括以下步骤:
S810、在第一子图和/或第二子图包括的节点数量大于等于预设阈值的情况下,对第一子图和/或第二子图分别进行分割,得到第一子图对应的第三子图和第四子图,以及第二子图对应的第五子图和第六子图,其中,第三子图、第四子图、第五子图和第六子图包括的节点数量小于预设阈值。
具体的,计算设备在对多个第一节点进行正向计算,在多个第一节点正向计算完成,且对第一节点中的第三节点进行逆操作后,在第一节点的数量大于等于预设阈值的情况下,对第一子图和第二子图分别进行分割,得到第一子图对应的第三子图和第四子图。计算设备在对多个第二节点进行正向计算,且在多个第二节点正向计算完成后,对第四节点进行逆操作后,在第二节点的数量大于等于预设阈值的情况下,对第二子图分别进行分割,得到第二子图对应的第五子图和第六子图。
应理解的是,在计算设备对第一子图和第二子图分割得到第三子图、第四子图、第五子图和第六子图后,基于对第一子图和第二子图的分割方式重复对第三子图、第四子图、第五子图和第六子图进行分割,在第三子图、第四子图、第五子图和第六子图包括的节点数量大于等于预设阈值的情况下,继续对第三子图、第四子图、第五子图和第六子图进行分割,直至分割后的子图的节点数量小于预设阈值。其中,对第三子图、第四子图、第五子图和第六子图进行分割的具体方式与第一子图和第二子图的分割方式相同,详见上述实施例的描述,此处不再赘述。
S820、根据第三子图和第四子图确定第一子图的量子线路,根据第五子图和第六子图确定第二子图的量子线路。
S830、对第一子图的量子线路和第二子图的量子线路进行合并,得到LUT图的量子线路。
可选的,在第一子图和/或第二子图包括的节点数量小于预设阈值的情况下,基于Eager cleanup策略确定第一子图和/或第二子图对应的量子线路。
应理解的是,计算设备根据第三子图和第四子图确定第一子图的量子线路,以及根据第五子图和第六子图确定第二子图的量子线路的方式与计算设备根据第一子图和第二子图确定LUT图对应的量子线路的方式相同,详见上述实施例的描述,此处不再赘述。
由上述S210-S230可知,本发明实施例得到的量子线路通过首先对第一子图中所有的第一节点进行正向计算,然后对第一子图中输出端未与第一子图的输出连接的节点(第三节点)进行逆操作,以使得输出端未与第一子图的输出连接的节点(第三节点)对应的辅助量子比特被恢复至初始状态,再基于被恢复至初始状态的辅助量子比特进行第二子图中的全部节点(第二节点)正向计算,接着对第二子图中输出端未与第二子图的输出连接的节点(第四节点)进行逆操作,然后再对第一子图中未进行逆操作的节点(第五节点)进行逆操作,这样一来,能够使得除输出端与LUT子图的输出连接的节点外的其他节点均在正向计算后进行逆操作,能够使得这些节点对应的辅助量子比特被重复利用,进而能够节约量子线路中辅助量子比特的数量,从而减少量子计算机执行量子线路所需要的量子比特数量,从而能够节约计算资源。
在一种可能的实现方式中,本发明提供的方法还包括:
确定LUT图对应的量子线路中的辅助量子比特的数量。
可选的,上述确定LUT图对应的量子线路中的辅助量子比特的数量,包括:
确定第一节点组中的节点数量N1、第二节点组中的节点数量N2以及第三节点组中的节点数量N3。确定输出端与LUT的多个输出连接的节点数量N4。LUT图对应的量子线路中的辅助量子比特的数量N5为:
N5=max(N1,N3)+N2-N4。
示例性的,结合图3和图4,确定第一节点组中的节点数量N1为3个,第二节点组中的节点数量N2为2个,第三节点组中的节点数量N3为2个。确定输出端与LUT的多个输出连接的节点数量N4为2个。LUT图对应的量子线路中的辅助量子比特的数量N5为3个。
由上述可知,本发明通过提供一种辅助量子比特的具体计算方式,能够快速确定量子线路中辅助量子比特的数量,便于用户快速了解当前量子线路中的辅助量子比特的使用情况,提升用户的使用体验。
在一些实施例中,本发明提供的方法还包括:根据LUT图对应的量子线路生成量子计算机可执行的量子程序,量子程序用于描述LUT图对应的经典逻辑,以使得量子计算机实现LUT图对应的经典逻辑。
由上述可知,本发明得到的量子线路中由于辅助量子比特的数量较少,因此基于量子线路得到的量子程序所需要量子计算机提供的量子比特的数量较少。在量子计算机受硬件限制能够提供的量子比特数量有限的情况下,本发明确定的量子线路能够满足这一场景下的量子计算机的使用需求,避免由于量子计算机提供的量子比特数量有限,导致量子程序无法正常运行,影响用户的使用体验。
上述主要从方法的角度对本发明实施例的方案进行了介绍。可以理解的是,计算设备100为了实现上述功能,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本发明实施例可以根据上述方法示例将风险检测装置进行功能单元的划分,例如,可以将计算设备100对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图9示出了本发明实施例提供的一种量子线路确定装置的结构示意图。上述装置包括:获取单元910,用于获取待处理的查找表(LUT)图,LUT图包括量子程序的多个输入和输出,以及多个节点。其中,多个节点中每个节点具有多个输入端和输出端。多个节点中每个节点的每个输入端与多个输入中的一个或其他节点的输出端连接,多个节点中每个节点的每个输出端与多个输出中的一个或其他节点的输入端连接。分割单元920,用于对LUT图进行分割,得到第一子图和第二子图。其中,第一子图包括多个输入和输出,以及多个第一节点。第二子图包括多个输入和输出,以及多个第二节点。第一子图的多个输入为LUT图的多个输入。第一子图的多个输出为第二子图的多个输入。第二子图的多个输出为LUT图的多个输出。第一节点或第二节点为多个节点中的一个。确定单元930,用于根据第一子图和第二子图,确定LUT图对应的量子线路,量子线路包括:对多个第一节点进行正向计算,在多个第一节点正向计算完成后,对第三节点进行逆操作,第三节点为多个第一节点中的一个或多个,第三节点的输出端与多个第一节点中的一个连接。在对第三节点进行逆操作后,对第二子图包括的多个第二节点进行正向计算,在多个第二节点正向计算完成后,对第四节点进行逆操作,第四节点为多个第二节点中的一个或多个,第四节点的输出端与多个第二节点中的一个连接。对第五节点进行逆操作,第五节点为多个第一节点中除第三节点外的其他节点。
可选的,分割单元920,具体用于:将LUT图包括的多个节点划分至第一节点组。从多个节点中确定候选节点,候选节点为输入端不与第一节点组中的节点的输出端连接的节点。将候选节点中的一个或多个划分至第二节点组。将第二节点组中输出端不与第一节点组中的节点的输入端连接的节点划分至第三节点组。其中,第三节点组的节点数量大于等于第一节点组的节点数量。根据第三节点组和第二节点组中的节点,以及第三节点组和第二节点组中的每个节点的输入端和输出端,生成第一子图,第三节点组和第二节点组中的节点为第一节点。根据第一节点组中的节点,以及第一节点组中的每个节点的输入端和输出端,生成第二子图,第一节点组中的节点为第二节点。
可选的,确定单元930,还用于确定LUT图对应的量子线路中的辅助量子比特的数量。
可选的,确定单元930,具体用于确定第一节点组中的节点数量N1、第二节点组中的节点数量N2以及第三节点组中的节点数量N3。确定输出端与LUT的多个输出连接的节点数量N4。LUT图对应的量子线路中的辅助量子比特的数量N5为:
N5=max(N1,N3)+N2-N4。
可选的,确定单元930,具体用于:确定第一子图和/或第二子图包括的节点数量是否大于等于预设阈值。在第一子图和/或第二子图包括的节点数量小于预设阈值的情况下,确定第一子图包括的多个第一节点中的第三节点和第五节点。以及确定第二子图包括的多个第二节点中的第四节点。根据第一节点、第二节点、第三节点、第四节点和第五节点,确定LUT图的量子线路。
可选的,确定单元930,还用于:在第一子图和/或第二子图包括的节点数量大于等于预设阈值的情况下,对第一子图和第二子图分别进行分割,得到第一子图对应的第三子图和第四子图,以及第二子图对应的第五子图和第六子图,其中,第三子图、第四子图、第五子图和第六子图包括的节点数量小于预设阈值。根据第三子图和第四子图确定第一子图的量子线路,根据第五子图和第六子图确定第二子图的量子线路。对第一子图的量子线路和第二子图的量子线路进行合并,得到LUT图的量子线路。
可选的,确定单元930,还用于:根据LUT图对应的量子线路生成量子计算机可执行的量子程序,以使得量子计算机实现LUT图对应的经典逻辑。
应理解的是,关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种量子线路确定装置的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机指令,该至少一条计算机指令由处理器加载并执行以实现如上各个实施例的量子线路确定方法。关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
本发明实施例还提供了一种芯片。该芯片中集成了用于实现上述计算设备的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定电路结构(application specific integrated circuit,ASIC)、微处理器(digital signalprocessor,DSP),现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
本发明实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD),或者半导体介质(例如SSD)等。
应注意,本发明实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种量子线路确定方法,其特征在于,所述方法包括:
获取待处理的查找表(LUT)图,所述LUT图包括量子程序的多个输入和输出,以及多个节点;其中,所述多个节点中每个节点具有多个输入端和输出端;所述多个节点中每个节点的每个输入端与所述多个输入中的一个或其他节点的输出端连接,所述多个节点中每个节点的每个输出端与所述多个输出中的一个或其他节点的输入端连接;
对所述LUT图进行分割,得到第一子图和第二子图;其中,所述第一子图包括多个输入和输出,以及多个第一节点;所述第二子图包括多个输入和输出,以及多个第二节点;所述第一子图的多个输入为所述LUT图的多个输入;所述第一子图的多个输出为所述第二子图的多个输入;所述第二子图的多个输出为所述LUT图的多个输出;所述第一节点或所述第二节点为所述多个节点中的一个;
根据所述第一子图和所述第二子图,确定所述LUT图对应的量子线路,所述量子线路包括:对所述多个第一节点进行正向计算,在所述多个第一节点正向计算完成后,对所述第三节点进行逆操作,所述第三节点为所述多个第一节点中的一个或多个,所述第三节点的输出端与所述多个第一节点中的一个连接;在对所述第三节点进行逆操作后,对所述第二子图包括的多个第二节点进行正向计算,在所述多个第二节点正向计算完成后,对所述第四节点进行逆操作,所述第四节点为所述多个第二节点中的一个或多个,所述第四节点的输出端与所述多个第二节点中的一个连接;对所述第五节点进行逆操作,所述第五节点为所述多个第一节点中除所述第三节点外的其他节点。
2.根据权利要求1所述的方法,其特征在于,所述对所述LUT图进行分割,得到第一子图和第二子图,包括:
将所述LUT图包括的多个节点划分至第一节点组;
从所述多个节点中确定候选节点,所述候选节点为输入端不与第一节点组中的节点的输出端连接的节点;
将所述候选节点中的一个或多个划分至第二节点组;
将第二节点组中输出端不与第一节点组中的节点的输入端连接的节点划分至第三节点组;其中,所述第三节点组的节点数量大于等于所述第一节点组的节点数量;
根据第三节点组和第二节点组中的节点,以及第三节点组和第二节点组中的每个节点的输入端和输出端,生成第一子图,所述第三节点组和所述第二节点组中的节点为所述第一节点;
根据第一节点组中的节点,以及第一节点组中的每个节点的输入端和输出端,生成第二子图,所述第一节点组中的节点为所述第二节点。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
确定所述LUT图对应的量子线路中的辅助量子比特的数量。
4.根据权利要求3所述的方法,其特征在于,所述确定所述LUT图对应的量子线路中的辅助量子比特的数量,包括:
确定所述第一节点组中的节点数量N1、第二节点组中的节点数量N2以及所述第三节点组中的节点数量N3;
确定输出端与所述LUT的多个输出连接的节点数量N4;
所述LUT图对应的量子线路中的辅助量子比特的数量N5为:
N5=max(N1,N3)+N2-N4。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述第一子图和所述第二子图,确定所述LUT图对应的量子线路,包括:
确定所述第一子图和/或所述第二子图包括的节点数量是否大于等于预设阈值;
在所述第一子图和/或所述第二子图包括的节点数量小于预设阈值的情况下,确定所述第一子图包括的多个第一节点中的所述第三节点和所述第五节点;以及确定所述第二子图包括的多个第二节点中的所述第四节点;
根据所述第一节点、所述第二节点、所述第三节点、所述第四节点和所述第五节点,确定所述LUT图的量子线路。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述第一子图和/或所述第二子图包括的节点数量大于等于预设阈值的情况下,对所述第一子图和/或所述第二子图分别进行分割,得到第一子图对应的第三子图和第四子图,以及第二子图对应的第五子图和第六子图,其中,所述第三子图、第四子图、第五子图和第六子图包括的节点数量小于预设阈值;
根据所述第三子图和所述第四子图确定所述第一子图的量子线路,根据所述第五子图和所述第六子图确定所述第二子图的量子线路;
对所述第一子图的量子线路和所述第二子图的量子线路进行合并,得到所述LUT图的量子线路。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述LUT图对应的量子线路生成量子计算机可执行的量子程序,所述量子程序用于描述所述LUT图对应的经典逻辑。
8.一种量子线路确定装置,其特征在于,所述装置包括:
获取单元,用于获取待处理的查找表(LUT)图,所述LUT图包括量子程序的多个输入和输出,以及多个节点;其中,所述多个节点中每个节点具有多个输入端和输出端;所述多个节点中每个节点的每个输入端与所述多个输入中的一个或其他节点的输出端连接,所述多个节点中每个节点的每个输出端与所述多个输出中的一个或其他节点的输入端连接;
分割单元,用于对所述LUT图进行分割,得到第一子图和第二子图;其中,所述第一子图包括多个输入和输出,以及多个第一节点;所述第二子图包括多个输入和输出,以及多个第二节点;所述第一子图的多个输入为所述LUT图的多个输入;所述第一子图的多个输出为所述第二子图的多个输入;所述第二子图的多个输出为所述LUT图的多个输出;所述第一节点或所述第二节点为所述多个节点中的一个;
确定单元,用于根据所述第一子图和所述第二子图,确定所述LUT图对应的量子线路,所述量子线路包括:对所述多个第一节点进行正向计算,在所述多个第一节点正向计算完成后,对所述第三节点进行逆操作,所述第三节点为所述多个第一节点中的一个或多个,所述第三节点的输出端与所述多个第一节点中的一个连接;在对所述第三节点进行逆操作后,对所述第二子图包括的多个第二节点进行正向计算,在所述多个第二节点正向计算完成后,对所述第四节点进行逆操作,所述第四节点为所述多个第二节点中的一个或多个,所述第四节点的输出端与所述多个第二节点中的一个连接;对所述第五节点进行逆操作,所述第五节点为所述多个第一节点中除所述第三节点外的其他节点。
9.一种计算设备,其特征在于,包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-7中任一项所述的量子线路确定方法。
10.一种计算机可读存储介质,其特征在于,存储有计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行所述指令,以实现如权利要求1-7中任一项所述的量子线路确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311391038.1A CN117408346B (zh) | 2023-10-25 | 2023-10-25 | 一种量子线路确定方法、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311391038.1A CN117408346B (zh) | 2023-10-25 | 2023-10-25 | 一种量子线路确定方法、装置和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117408346A true CN117408346A (zh) | 2024-01-16 |
CN117408346B CN117408346B (zh) | 2024-06-11 |
Family
ID=89495810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311391038.1A Active CN117408346B (zh) | 2023-10-25 | 2023-10-25 | 一种量子线路确定方法、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117408346B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180181685A1 (en) * | 2015-06-08 | 2018-06-28 | Microsoft Technology Licensing, Llc | System for reversible circuit compilation with space constraint, method and program |
US20200074019A1 (en) * | 2018-08-31 | 2020-03-05 | Synopsys, Inc. | Scalable boolean methods in a modern synthesis flow |
WO2020168158A1 (en) * | 2019-02-15 | 2020-08-20 | Rigetti & Co, Inc. | Automated synthesizing of quantum programs |
US20210173988A1 (en) * | 2018-08-21 | 2021-06-10 | President And Fellows Of Harvard College | Quantum circuit embedding by simulated annealing |
US20210383898A1 (en) * | 2020-06-05 | 2021-12-09 | Insilico Medicine Ip Limited | Graph normalizing flow for hierarchical molecular generation |
WO2022066176A1 (en) * | 2020-09-25 | 2022-03-31 | Intel Corporation | Quantum computing systems, apparatus, and methods |
CN114399052A (zh) * | 2021-12-07 | 2022-04-26 | 深圳市福田区南科大量子技术与工程研究院 | 量子与逻辑门、逆量子与逻辑门及逻辑运算线路生成方法 |
CN114492811A (zh) * | 2020-10-23 | 2022-05-13 | 合肥本源量子计算科技有限责任公司 | 量子连通图谱的优化方法、装置、终端及存储介质 |
CN114881237A (zh) * | 2022-03-29 | 2022-08-09 | 北京百度网讯科技有限公司 | 量子计算处理方法、装置及电子设备 |
WO2022228224A1 (zh) * | 2021-04-29 | 2022-11-03 | 合肥本源量子计算科技有限责任公司 | 量子计算任务执行方法、装置及量子计算机操作系统 |
CN115358407A (zh) * | 2022-08-16 | 2022-11-18 | 北京中科弧光量子软件技术有限公司 | 基于张量网络的近似量子编译方法、系统和电子设备 |
WO2022267854A1 (zh) * | 2021-06-23 | 2022-12-29 | 合肥本源量子计算科技有限责任公司 | 量子计算任务处理方法、系统、装置及操作系统 |
CN115756780A (zh) * | 2022-11-10 | 2023-03-07 | 深圳量旋科技有限公司 | 量子计算任务调度方法、装置、计算机设备及存储介质 |
CN115829047A (zh) * | 2021-09-16 | 2023-03-21 | 合肥本源量子计算科技有限责任公司 | 量子程序最终映射的确定方法、装置及量子计算机 |
WO2023123266A1 (zh) * | 2021-12-30 | 2023-07-06 | 华为技术有限公司 | 子图的编译、执行方法及相关设备 |
CN116611527A (zh) * | 2023-05-22 | 2023-08-18 | 北京百度网讯科技有限公司 | 量子电路处理方法、装置及电子设备 |
-
2023
- 2023-10-25 CN CN202311391038.1A patent/CN117408346B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180181685A1 (en) * | 2015-06-08 | 2018-06-28 | Microsoft Technology Licensing, Llc | System for reversible circuit compilation with space constraint, method and program |
US20210173988A1 (en) * | 2018-08-21 | 2021-06-10 | President And Fellows Of Harvard College | Quantum circuit embedding by simulated annealing |
US20200074019A1 (en) * | 2018-08-31 | 2020-03-05 | Synopsys, Inc. | Scalable boolean methods in a modern synthesis flow |
WO2020168158A1 (en) * | 2019-02-15 | 2020-08-20 | Rigetti & Co, Inc. | Automated synthesizing of quantum programs |
US20210383898A1 (en) * | 2020-06-05 | 2021-12-09 | Insilico Medicine Ip Limited | Graph normalizing flow for hierarchical molecular generation |
WO2022066176A1 (en) * | 2020-09-25 | 2022-03-31 | Intel Corporation | Quantum computing systems, apparatus, and methods |
CN114492811A (zh) * | 2020-10-23 | 2022-05-13 | 合肥本源量子计算科技有限责任公司 | 量子连通图谱的优化方法、装置、终端及存储介质 |
WO2022228224A1 (zh) * | 2021-04-29 | 2022-11-03 | 合肥本源量子计算科技有限责任公司 | 量子计算任务执行方法、装置及量子计算机操作系统 |
WO2022267854A1 (zh) * | 2021-06-23 | 2022-12-29 | 合肥本源量子计算科技有限责任公司 | 量子计算任务处理方法、系统、装置及操作系统 |
CN115829047A (zh) * | 2021-09-16 | 2023-03-21 | 合肥本源量子计算科技有限责任公司 | 量子程序最终映射的确定方法、装置及量子计算机 |
CN114399052A (zh) * | 2021-12-07 | 2022-04-26 | 深圳市福田区南科大量子技术与工程研究院 | 量子与逻辑门、逆量子与逻辑门及逻辑运算线路生成方法 |
WO2023123266A1 (zh) * | 2021-12-30 | 2023-07-06 | 华为技术有限公司 | 子图的编译、执行方法及相关设备 |
CN114881237A (zh) * | 2022-03-29 | 2022-08-09 | 北京百度网讯科技有限公司 | 量子计算处理方法、装置及电子设备 |
CN115358407A (zh) * | 2022-08-16 | 2022-11-18 | 北京中科弧光量子软件技术有限公司 | 基于张量网络的近似量子编译方法、系统和电子设备 |
CN115756780A (zh) * | 2022-11-10 | 2023-03-07 | 深圳量旋科技有限公司 | 量子计算任务调度方法、装置、计算机设备及存储介质 |
CN116611527A (zh) * | 2023-05-22 | 2023-08-18 | 北京百度网讯科技有限公司 | 量子电路处理方法、装置及电子设备 |
Non-Patent Citations (5)
Title |
---|
GOETTEMS, EI; MACIEL, TO; (...); DUZZIONI, EI: ""Promoting quantum correlations in deterministic quantum computation with a one-qubit model via postselection"", 《PHYSICAL REVIEW A》, vol. 103, no. 4, 30 April 2021 (2021-04-30) * |
SOEKEN, M; ROETTELER, M; (...); DE MICHELI, G: ""LUT-Based Hierarchical Reversible Logic Synthesis"", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》, vol. 38, no. 9, 30 September 2019 (2019-09-30), pages 1675 - 1688, XP055676975, DOI: 10.1109/TCAD.2018.2859251 * |
姜一博等: ""基于线路动态划分与门序重组的量子线路映射方法"", 《量子电子学报》, 31 August 2023 (2023-08-31) * |
季雯,叶宾: ""HHL量子算法的普适量子线路设计"", 《量子电子学报》, vol. 40, no. 05, 30 September 2023 (2023-09-30) * |
张威: ""拥抱量子科技时代:量子计算的现状与前景"", 《人民论坛·学术前沿》, no. 07, 30 April 2021 (2021-04-30) * |
Also Published As
Publication number | Publication date |
---|---|
CN117408346B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908667B (zh) | 神经网络联合编译的方法、装置和电子设备 | |
US7738406B2 (en) | Models for routing tree selection in peer-to-peer communications | |
US9807152B2 (en) | Distributed processing device and distributed processing system as well as distributed processing method | |
CN113835899B (zh) | 针对分布式图学习的数据融合方法及装置 | |
US12026590B2 (en) | Quantum computing task processing method, system and apparatus, and operating system | |
US20240061724A1 (en) | Quantum computing task execution method and apparatus, and quantum computer operating system | |
Abu-Khzam et al. | On scalable parallel recursive backtracking | |
Kaushik et al. | Computation and communication aware run-time mapping for NoC-based MPSoC platforms | |
Kowalski et al. | Supervised average consensus in anonymous dynamic networks | |
CN115423082A (zh) | 一种硬件特性相关的深度模型计算图自动优化方法 | |
CN115843050A (zh) | 网络切片配置方法及系统、计算机可存储介质 | |
CN117408346B (zh) | 一种量子线路确定方法、装置和计算设备 | |
US9880923B2 (en) | Model checking device for distributed environment model, model checking method for distributed environment model, and medium | |
Xu et al. | Energy-efficient dynamic asynchronous federated learning in mobile edge computing networks | |
US11301305B2 (en) | Dynamic resource clustering architecture | |
CN116582407A (zh) | 一种基于深度强化学习的容器化微服务编排系统及方法 | |
CN110008028B (zh) | 计算资源分配方法、装置、计算机设备和存储介质 | |
Sacanamboy et al. | A comparison between two optimisation alternatives for mapping in wireless network on chip | |
Abu-Khzam et al. | A decentralized load balancing approach for parallel search-tree optimization | |
US10210070B2 (en) | Model checking apparatus, model checking method, and storage medium | |
WO2023173912A1 (zh) | 一种处理单元pe阵列的配置方法和相关设备 | |
US20240338213A1 (en) | Quantum computing platform adaptation method and apparatus, and quantum computer operating system | |
CN112995274B (zh) | 确定连接节点的方法、装置、设备及计算机可读存储介质 | |
US20230315539A1 (en) | Systems and methods for distributed quantum computing | |
CN117114091B (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 |