CN116451795B - 一种量子线路图处理方法、装置及电子设备和存储介质 - Google Patents
一种量子线路图处理方法、装置及电子设备和存储介质 Download PDFInfo
- Publication number
- CN116451795B CN116451795B CN202310683102.7A CN202310683102A CN116451795B CN 116451795 B CN116451795 B CN 116451795B CN 202310683102 A CN202310683102 A CN 202310683102A CN 116451795 B CN116451795 B CN 116451795B
- Authority
- CN
- China
- Prior art keywords
- quantum
- logic gate
- quantum logic
- parameter
- target
- 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
- 238000010586 diagram Methods 0.000 title claims abstract description 155
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 239000002096 quantum dot Substances 0.000 claims abstract description 208
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 11
- 238000002474 experimental method Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 11
- 230000001360 synchronised effect Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 9
- 230000002085 persistent effect Effects 0.000 description 8
- 230000005291 magnetic effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请公开了一种量子线路图处理方法、装置及设备和介质,该方法包括:基于以第一定义格式定义的量子比特操作和以第二定义格式定义的组合量子逻辑门生成目标量子线路图的第一目标数据格式,基于第一目标数据格式对目标量子线路图进行计算和传输;第一定义格式包括描述量子比特操作开始的时间节点的参数、描述量子比特操作的操作类型的参数、描述量子比特操作包含的量子逻辑门的参数、描述量子逻辑门作用的量子比特的参数、描述量子比特操作的配置参数的参数,第二定义格式包括描述组合量子逻辑门的名称的参数、描述组合量子逻辑门作用的量子比特的参数、描述组合量子逻辑门的配置参数的参数、描述组合量子逻辑门包含的所有量子逻辑门的参数。
Description
技术领域
本申请涉及量子计算技术领域,更具体地说,涉及一种量子线路图处理方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
量子线路图为指示量子计算中何时需要进行什么计算操作的文件,其由多个在不同比特上、不同时间节点执行的量子逻辑门组成。量子线路图的数据格式包括计算和传输时使用的格式和持久化存储时的格式。计算和传输时使用的格式指的是线路图在应用软件中被解析或修改时所使用的格式,持久化存储时的格式为线路图被保存到磁盘上时所使用的数据格式。
在相关技术中,量子线路图的存储通常采用了QASM(quantum assemblylanguage,量子汇编语言)代码的格式,这种格式虽然简洁,但在程序需要对线路图进行渲染或其他等处理时,先要使用语义解析工具将代码解析成一个可以执行的、有序的命令栈。定义语义解析规则的工作较为复杂,语义解析也需要额外的耗时。另外,不同模块根据使用的编程语言的不同,可能需要使用不同的语义解析工具,导致需要定义不同的解析规则模板,进而导致各模块难以同步。可见,采用QASM代码存储量子线路图,导致处理量子线路图的效率较低。
因此,如何提高量子线路图的处理效率是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种量子线路图处理方法、装置及一种电子设备和一种计算机可读存储介质,提高了量子线路图的处理效率。
为实现上述目的,本申请提供了一种量子线路图处理方法,包括:
以第一定义格式定义目标量子线路图中的所有量子比特操作;其中,所述第一定义格式包括第一参数、第二参数、第三参数、第四参数和第五参数,所述第一参数用于描述所述量子比特操作开始的时间节点,所述第二参数用于描述所述量子比特操作的操作类型,所述操作类型包括基础量子比特操作和组合量子比特操作,所述第三参数用于描述所述量子比特操作包含的量子逻辑门,所述量子逻辑门包括基础量子逻辑门和/或组合量子逻辑门,所述第四参数用于描述所述量子逻辑门作用的量子比特,所述第五参数用于描述所述量子比特操作的配置参数;
以第二定义格式定义所述组合量子逻辑门;其中,所述第二定义格式包括第六参数、第七参数、第八参数、第九参数,所述第六参数用于描述所述组合量子逻辑门的名称、所述第七参数用于描述所述组合量子逻辑门作用的量子比特,所述第八参数用于描述所述组合量子逻辑门的配置参数,所述第九参数用于描述所述组合量子逻辑门包含的所有量子逻辑门;
基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式,以基于所述第一目标数据格式对所述目标量子线路图进行计算和传输。
其中,所述第九参数中所述组合量子逻辑门包含的所有量子比特操作以所述第一定义格式进行描述。
其中,所述基于所述第一目标数据格式对所述目标量子线路图进行计算,包括:
遍历所有所述量子比特操作;
当所述量子比特操作的操作类型为所述基础量子比特操作时,直接将所述量子比特操作加入编译结果中;
当所述量子比特操作的操作类型为所述组合量子比特操作时,调用递归函数将所述量子比特操作作为目标组合量子逻辑门进行展开,并将展开结果加入编译结果中;
直至所有所述量子比特操作遍历完成生成编译结果,基于所述编译结果对所述目标量子线路图进行计算;
其中,调用所述递归函数展开所述目标组合量子逻辑门,包括:
遍历所述目标组合量子逻辑门包含的所有量子逻辑门,将所述目标组合量子逻辑门的全局时间节点代替所述量子逻辑门的局部时间节点,将所述目标组合量子逻辑门的全局量子比特代替所述量子逻辑门的局部量子比特,将所述目标组合量子逻辑门的全局配置参数代替所述量子逻辑门的局部配置参数,若所述量子逻辑门为所述基础量子逻辑门,则直接将代替后的量子逻辑门加入编译结果中,若所述量子逻辑门为所述组合量子逻辑门,则调用所述递归函数将所述量子逻辑门作为目标组合量子逻辑门进行展开。
其中,所述遍历所有所述量子比特操作之前,还包括:
将所有所述组合量子逻辑门转换为哈希图;其中,所述哈希图的每条数据对应一个所述组合量子逻辑门,每条数据的键为对应的组合量子逻辑门的名称、值为对应的组合量子逻辑门本身。
其中,所述基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式之后,还包括:
将所述目标量子线路图以所述第一目标数据格式存储至非关系型数据库中。
其中,所述基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式之后,还包括:
遍历所述目标量子线路图中的所有所述量子比特操作,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中;
遍历所有所述组合量子逻辑门,将每个所述组合量子逻辑门以所述第二定义格式的定义信息保存至组合量子逻辑门表的对应行中;
以每个所述组合量子逻辑门在所述组合量子逻辑门表的标识作为外键,将每个所述组合量子逻辑门包含的所有量子逻辑门保存至每个所述组合量子逻辑门对应的量子逻辑门表中;
基于所述量子比特操作表、所述组合量子逻辑门表、所述量子逻辑门表生成所述目标量子线路图的第二目标数据格式;
将所述目标量子线路图以所述第二目标数据格式存储至关系型数据库中。
其中,所述遍历所述目标量子线路图中的所有所述量子比特操作之前,还包括:
将所述目标量子线路图对应的实验信息保存至实验表的对应行中;
相应的,所述遍历所述目标量子线路图中的所有所述量子比特操作,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中,包括:
遍历所述目标量子线路图中的所有所述量子比特操作,以所述目标量子线路图对应的实验信息在所述实验表中的标识作为外键,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中。
为实现上述目的,本申请提供了一种量子线路图处理装置,包括:
第一定义模块,用于以第一定义格式定义目标量子线路图中的所有量子比特操作;其中,所述第一定义格式包括第一参数、第二参数、第三参数、第四参数和第五参数,所述第一参数用于描述所述量子比特操作开始的时间节点,所述第二参数用于描述所述量子比特操作的操作类型,所述操作类型包括基础量子比特操作和组合量子比特操作,所述第三参数用于描述所述量子比特操作包含的量子逻辑门,所述量子逻辑门包括基础量子逻辑门和/或组合量子逻辑门,所述第四参数用于描述所述量子逻辑门作用的量子比特,所述第五参数用于描述所述量子比特操作的配置参数;
第二定义模块,用于以第二定义格式定义所述组合量子逻辑门;其中,所述第二定义格式包括第六参数、第七参数、第八参数、第九参数,所述第六参数用于描述所述组合量子逻辑门的名称、所述第七参数用于描述所述组合量子逻辑门作用的量子比特,所述第八参数用于描述所述组合量子逻辑门的配置参数,所述第九参数用于描述所述组合量子逻辑门包含的所有量子逻辑门;
生成模块,用于基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式,以基于所述第一目标数据格式对所述目标量子线路图进行计算和传输。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述量子线路图处理方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述量子线路图处理方法的步骤。
通过以上方案可知,本申请提供的一种量子线路图处理方法,包括:以第一定义格式定义目标量子线路图中的所有量子比特操作;其中,所述第一定义格式包括第一参数、第二参数、第三参数、第四参数和第五参数,所述第一参数用于描述所述量子比特操作开始的时间节点,所述第二参数用于描述所述量子比特操作的操作类型,所述操作类型包括基础量子比特操作和组合量子比特操作,所述第三参数用于描述所述量子比特操作包含的量子逻辑门,所述量子逻辑门包括基础量子逻辑门和/或组合量子逻辑门,所述第四参数用于描述所述量子逻辑门作用的量子比特,所述第五参数用于描述所述量子比特操作的配置参数;以第二定义格式定义所述组合量子逻辑门;其中,所述第二定义格式包括第六参数、第七参数、第八参数、第九参数,所述第六参数用于描述所述组合量子逻辑门的名称、所述第七参数用于描述所述组合量子逻辑门作用的量子比特,所述第八参数用于描述所述组合量子逻辑门的配置参数,所述第九参数用于描述所述组合量子逻辑门包含的所有量子逻辑门;基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式,以基于所述第一目标数据格式对所述目标量子线路图进行计算和传输。
本申请提供的量子线路图处理方法,为量子线路图设计了一种计算与传输中的数据格式,可以兼容用户自定义的组合量子逻辑门,对自定义的组合量子逻辑门和主进程中的实际量子比特操作分别以不同的定义格式进行定义,在不需要QASM代码的场景下,可以跳过语义解析的步骤直接用最朴素的朴素逻辑来处理量子线路图,提高了量子线路图的处理效率。本申请还公开了一种量子线路图处理装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种量子线路图处理系统的结构图;
图2为根据一示例性实施例示出的一种量子线路图处理方法的流程图;
图3为根据一示例性实施例示出的一种量子比特操作的可视化表达效果图;
图4为根据一示例性实施例示出的一种组合量子逻辑门的可视化表达效果图;
图5为根据一示例性实施例示出的另一种量子比特操作的可视化表达效果图;
图6为根据一示例性实施例示出的一种目标量子线路图的可视化表达效果图;
图7为根据一示例性实施例示出的一种编译目标量子线路图的流程图;
图8为根据一示例性实施例示出的另一种量子线路图处理方法的流程图;
图9为根据一示例性实施例示出的持久化一个实验线路图到关系型数据库时的流程图;
图10为根据一示例性实施例示出的以第二目标数据格式存储的目标量子线路图;
图11为根据一示例性实施例示出的一种量子线路图处理装置的结构图;
图12为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请中需要处理的目标量子线路图中包含一个或多个量子比特操作,该量子比特操作可以为基础量子逻辑门,也可以为组合量子逻辑门,即一系列按同样规律排列的有序地量子逻辑门的集合,可以由用户进行自定义。
如图1所示,图1为根据一示例性实施例示出的一种量子线路图处理系统的结构图,包括网页客户端A、服务器B、量子真机客户端C、存储设备D。
量子线路图的数据格式分为两部分,计算和传输时使用的格式和持久化存储时的格式。
计算和传输时使用的格式指的是线路图在应用软件中被解析或修改时所使用的格式,这里的软件包括了:用户用来绘制线路图的网页客户端A、对于线路图进行编译和转发的服务器B、根据线路图操作量子计算真机硬件进行具体实验的量子真机客户端C。用户绘制线路图,并点击发送后,实验线路图将会被发送到量子计算云平台的服务器,服务器会根据当前在线的量子真机客户端的使用状况,选取一台并将实验线路图发送给其执行。此过程中,网页客户端,服务器,以及量子真机客户端之间通过网络协议进行沟通,网络协议可以为HTTP(超文本传输协议,Hyper Text Transfer Protocol)或websocket,传输线路图数据的格式即为计算和传输时使用的格式,图1中的网页客户端A、服务器B、量子真机客户端C进行业务处理逻辑时,以及互相进行通信时,均使用计算和传输时的线路图格式。
持久化存储时的格式为线路图被保存到磁盘上时所使用的数据格式。只有当线路图被保存到磁盘上,才能保证服务器崩溃重启后用户的历史数据不会丢失。因此,在服务器接收到用户线路图后,其会第一时间将线路图保存到持久化存储设备中,即图1中的存储设备D。当用户在网页客户端请求读取自己的线路图时,服务器会从存储设备中读取格式为持久化存储时的线路图格式的线路图,将其转义成计算和传输时的线路图格式,再发送给网页客户端。
本申请实施例公开了一种量子线路图处理方法,提高了量子线路图的处理效率。
参见图2,根据一示例性实施例示出的一种量子线路图处理方法的流程图,如图2所示,包括:
S101:以第一定义格式定义目标量子线路图中的所有量子比特操作;其中,所述第一定义格式包括第一参数、第二参数、第三参数、第四参数和第五参数,所述第一参数用于描述所述量子比特操作开始的时间节点,所述第二参数用于描述所述量子比特操作的操作类型,所述操作类型包括基础量子比特操作和组合量子比特操作,所述第三参数用于描述所述量子比特操作包含的量子逻辑门,所述量子逻辑门包括基础量子逻辑门和/或组合量子逻辑门,所述第四参数用于描述所述量子逻辑门作用的量子比特,所述第五参数用于描述所述量子比特操作的配置参数;
在具体实施中,以第一定义格式Operation定义目标量子线路图中的所有量子比特操作,等同于经典计算机软件中进程主线程执行的命令。一个Operation既可以是一个基础量子比特操作,其中仅包含一个基础量子逻辑门,也可以是一个组合量子比特操作,其中包含多个量子逻辑门,组合量子比特操作中包含的量子逻辑门既可以为基础量子逻辑门,也可以为组合量子逻辑门。
第一定义格式Operation包括第一参数Timeslot、第二参数nativeOperation、第三参数Gate、第四参数Qubits和第五参数Arguments。第一参数Timeslot用于描述量子比特操作开始的时间节点,其为一个整数,实际运行实验时,起始时间节点越小,操作越先被执行。第二参数nativeOperation用于描述量子比特操作的操作类型,其为一个布尔值,True表示量子比特操作的操作类型为基础量子比特操作,False表示量子比特操作的操作类型为组合量子比特操作。第三参数Gate用于描述量子比特操作包含的具体的量子逻辑门,可以为基础量子逻辑门也可以为组合量子逻辑门。第四参数Qubits用于描述量子逻辑门作用的量子比特,其为一个整数列表,从1开始,由于为可视化视图的量子比特编号从0开始,因此qubits中的1对应Q0,以此类推。第五参数Arguments用于描述量子比特操作的配置参数,其为一个数学表达式字符串列表,配置参数例如旋转门的角度参数。
举例说明,Operation代表了这是一个作用于第一个时间节点的基础Rx门,它作用于第二个比特,并有一个旋转参数45度。可视化表达效果如图3所示,该Operation的第一定义格式如下:
{
"gate": {
"gname": "Rx"
},
"timeSlot": 1,
"nativeOperation": true,
"arguments": ["45"],
"qubits": [2]
}
其中,arguments的部分可以为一个数学表达式,比如写作“arguments”:[“60+45”],自此Rx门的旋转角度105度。需要说明的是,对于旋转角度这一配置参数,可以根据实际需要选择不同的单位进行度量,选择角度作为单位时,取值范围为0-360,选择弧度作为单位时,取值范围为0-2π,例如,可以表示为“arguments”:[“pi/4+pi/3”]。当然,对于其他配置参数,也可以选择其他单位度量,本实施例不进行具体限定。
S102:以第二定义格式定义所述组合量子逻辑门;其中,所述第二定义格式包括第六参数、第七参数、第八参数、第九参数,所述第六参数用于描述所述组合量子逻辑门的名称、所述第七参数用于描述所述组合量子逻辑门作用的量子比特,所述第八参数用于描述所述组合量子逻辑门的配置参数,所述第九参数用于描述所述组合量子逻辑门包含的所有量子逻辑门;
在具体实施中,以第二定义格式Definition定义组合量子逻辑门,也即利用第二定义格式定义一个后续可以重复利用的一个或多个量子逻辑门的组合,等同于经典计算机软件中的函数定义。
第二定义格式Definition包括第六参数Name、第七参数qubitName、第八参数Params、第九参数operations。第六参数Name用于描述组合量子逻辑门的名称。第七参数qubitName用于描述组合量子逻辑门作用的量子比特,其为局部变量,与Operation中调用自定义门时输入的qubits参数对应,主要在转义成QSAM代码时使用,不转义为QSAM代码时,仅用来代表此自定义门中包含了多少个量子比特。第八参数Params用于描述组合量子逻辑门的配置参数,其为局部变量,与Operation中调用自定义门时输入的arguments参数对应。第九参数operations用于描述组合量子逻辑门包含的所有量子逻辑门,也即组合量子逻辑门包含的具体的量子逻辑门的列表,其中每个量子逻辑门的定义参照上述Operation的定义,也即所述第九参数中所述组合量子逻辑门包含的所有量子比特操作以所述第一定义格式进行描述。
举例说明,组合量子逻辑门由一个Rx门和一个CNOT门总计两个基础门组成,其定义如下:
{
"name": "cg0",
"qubitsName": ["a", "b"],
"params": ["alpha"],
"operations": [
{
"gate": {
"gname": "Rx",
"params": ["alpha"]
},
"timeSlot": 1,
"arguments": ["alpha"],
"qubits": [0],
"nativeOperation": true
},
{
"gate": {
"gname": "CNOT"
},
"timeSlot": 2,
"arguments": [],
"qubits": [1,0],
"nativeOperation": true
}
]
}
可见,组合量子逻辑门的名称为cg0,其包含2个比特a和b,和一个局部变量alpha。在该组合量子逻辑门的第1个时间点放置有一个Rx门,由nativeOperation为True可知它是一个基础量子逻辑门,作用的量子比特的索引为0,即作用的量子比特为qubitsName中的a比特,它需要一个角度参数,即为params中定义的alpha。在该组合量子逻辑门的第2个时间点放置有一个CNOT门,由nativeOperation为True可知它是一个基础量子逻辑门,作用的量比特的索引为[1,0],也即第一个比特参数为量子比特b,第二个比特参数为量子比特a,组合量子逻辑门cg0的可视化表达效果如图4所示。
可以理解的是,一个组合量子逻辑门可以包含另一个组合量子逻辑门,例如组合量子逻辑门cg1的第二定义格式如下:
{
"name": "cg1",
"qubitsName": ["a","b","c"],
"params": ["alpha", "beta"],
"operations": [
{
"gate": {
"gname": "Rx"
},
"timeSlot": 1,
"arguments": ["beta"],
"qubits": [0],
"nativeOperation": true
},
{
"gate": {
"gname": "cg0",
"costTime": 2
},
"timeSlot": 1,
"arguments": ["alpha+beta"],
"qubits": [2,1],
"nativeOperation": false
}
]
}
可见,组合量子逻辑门cg1使用了组合量子逻辑门cg0,cg1接收三个量子比特和两个配置参数作为局部变量。此处cg1中的a,b,alpha和cg0中的并不冲突,因为它们的作用域仅在当前Definition中,不同Definition中同名的参数可以表达不同的值。cg1定义会在第一时间节点在第一个输入的量子比特上放置一个旋转角度为beta的Rx门,在第一时间节点在第二和第三个输入的量子比特上放置一个组合量子逻辑门cg0,并将两个输入参数之和alpha+beta作为cg0中的Rx门的旋转角度。
进一步的,需要通过定义一个Operation来实际使用定义好的Definition,例如,希望在第二个和第三个量子比特(Q1和Q2)上放置一个上述定义完成的组合量子逻辑门cg0,并指定Rx门的旋转角度为45度,其可视化表达效果如图5所示,该Operation的第一定义格式如下:
{
"timeSlot": 1,
"gate": {
"gname": "cg0",
"costTime": 2
},
"nativeOperation": false,
"arguments": ["45"],
"qubits": [2,3]
}
可见,在时间节点1放置一个量子逻辑门cg0,因为nativeOperation为False,所以它不是一个基础量子逻辑门。它总共耗时2个单位时长,作用在Q1和Q2上,并有一个配置参数45,根据Operation的qubits和Definition内的qubitsName互相对应,而Definition中每个操作的qubits代表的是qubitsName中比特的序列索引,可以得知Rx会作用在Q1上,而CNOT的第一个比特参数为Q2,第二个比特参数为Q1上。根据Operation的arguments和Definition内的params互相对应,可知Rx的旋转角度alpha为45度。
S103:基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式,以基于所述第一目标数据格式对所述目标量子线路图进行计算和传输。
在具体实施中,基于以第一定义格式定义的量子比特操作和以第二定义格式定义的组合量子逻辑门生成目标量子线路图的第一目标数据格式,也即目标量子线路图的第一目标数据格式包含一个Operation列表和一个Definition列表,基于第一目标数据格式可以对目标量子线路图进行计算和传输。需要说明的是,本实施例中的第一目标数据格式符合json格式。
举例说明,在时间节点为1的位置上放置一个基础量子逻辑门X,分别在时间节点2和时间节点4各放一个组合量子逻辑门cg0,可视化表达效果如图6所示,该目标量子线路图circuit的第一目标数据格式如下:
{
"operations": [
{
"gate": {
"gname": "X"
},
"timeSlot": 1,
"nativeOperation": true,
"arguments": [],
"qubits": [1]
},
{
"timeSlot": 2,
"gate": {
"gname": "cg0",
"costTime": 2
},
"nativeOperation": false,
"arguments": ["45"],
"qubits": [1, 2]
},
{
"timeSlot": 4,
"gate": {
"gname": "cg0",
"costTime": 2
},
"nativeOperation": false,
"arguments": ["pi/4+pi/3"],
"qubits": [2,3]
}
],
"definitions": [
{
"name": "cg0",
"qubitsName": ["a","b"],
"params": ["alpha"],
"operations": [
{
"gate": {
"gname": "Rx"
},
"timeSlot": 1,
"arguments": ["alpha"],
"qubits": [0],
"nativeOperation": true
},
{
"gate": {
"gname": "CNOT"
},
"timeSlot": 2,
"arguments": [],
"qubits": [1,0],
"nativeOperation": true
}
]
}
]
}
可见,在时间节点1需要执行一个基础X门。在时间节点2和时间节点4分别需要执行一个耗时2时间单位长度的组合量子逻辑门cg0,其定义在Definition列表中可以被找到,包含了一个基础Rx门和一个基础CNOT门。在第一个组合量子逻辑门cg0的Operation中,将qubits:[1,2]代入了局部变量qubitsName:[“a”,”b”],arguments:[“45”]代入了局部变量params:[“alpha”],因此这个组合量子逻辑门cg0中的Rx门实际作用于全局的第一个比特Q0,旋转角度为45度。同理,第二个组合量子逻辑门cg0中的Rx门实际作用于全局的第二个比特Q1,旋转角度为105度。
本申请实施例提供的量子线路图处理方法,为量子线路图设计了一种计算与传输中的数据格式,可以兼容用户自定义的组合量子逻辑门,对自定义的组合量子逻辑门和主进程中的实际量子比特操作分别以不同的定义格式进行定义,在不需要QASM代码的场景下,可以跳过语义解析的步骤直接用最朴素的朴素逻辑来处理量子线路图,提高了量子线路图的处理效率。
在上述实施例的基础上,所述基于所述第一目标数据格式对所述目标量子线路图进行计算,包括:遍历所有所述量子比特操作;当所述量子比特操作的操作类型为所述基础量子比特操作时,直接将所述量子比特操作加入编译结果中;当所述量子比特操作的操作类型为所述组合量子比特操作时,调用递归函数将所述量子比特操作作为目标组合量子逻辑门进行展开,并将展开结果加入编译结果中;直至所有所述量子比特操作遍历完成生成编译结果,基于所述编译结果对所述目标量子线路图进行计算;其中,调用所述递归函数展开所述目标组合量子逻辑门,包括:遍历所述目标组合量子逻辑门包含的所有量子逻辑门,将所述目标组合量子逻辑门的全局时间节点代替所述量子逻辑门的局部时间节点,将所述目标组合量子逻辑门的全局量子比特代替所述量子逻辑门的局部量子比特,将所述目标组合量子逻辑门的全局配置参数代替所述量子逻辑门的局部配置参数,若所述量子逻辑门为所述基础量子逻辑门,则直接将代替后的量子逻辑门加入编译结果中,若所述量子逻辑门为所述组合量子逻辑门,则调用所述递归函数将所述量子逻辑门作为目标组合量子逻辑门进行展开。
需要说明的是,在对目标量子线路图进行计算时,需要首先对第一目标数据格式的目标量子线路图进行编译。真正的量子物理计算机只能执行基础量子逻辑门,因此在将用户编写的量子线路图发送给量子真机之前,需要由服务器将所有的组合量子逻辑门全部转化为基础量子逻辑门。编译目标量子线路图的过程如图7所示。
作为一种优选实施方式,所述遍历所有所述量子比特操作之前,还包括:将所有所述组合量子逻辑门转换为哈希图;其中,所述哈希图的每条数据对应一个所述组合量子逻辑门,每条数据的键为对应的组合量子逻辑门的名称、值为对应的组合量子逻辑门本身。在具体实施中,将目标量子线路图中的Definition列表转化为一个组合量子逻辑门的名称为键,组合量子逻辑门本身为值的哈希图,方便后续查询。
在具体实施中,遍历目标量子线路图中的Operation列表,若当前的量子比特操作为基础量子比特操作,也即仅包含一个基础量子逻辑门,则将其直接加入编译结果中,若当前的量子比特操作为组合量子比特操作,也即包含多个量子逻辑门,则调用递归函数将所述量子比特操作作为目标组合量子逻辑门,将全局参数代入其定义进行展开,并将展开结果加入编译结果中。
其中,调用递归函数展开目标组合量子逻辑门的过程包括:遍历目标组合量子逻辑门的operations列表中所有量子逻辑门,利用目标组合量子逻辑门的全局时间节点代替量子逻辑门的局部时间节点,利用目标组合量子逻辑门的全局量子比特代替量子逻辑门的局部量子比特,利用目标组合量子逻辑门的全局配置参数代替量子逻辑门的局部配置参数,若当前的量子逻辑门为基础量子逻辑门,则直接将代替后的量子逻辑门加入编译结果中,若当前的量子逻辑门为组合量子逻辑门,则调用递归函数将量子逻辑门作为目标组合量子逻辑门进行展开。
实现编译包含组合量子逻辑门的线路图的伪代码如下:
void expandCustomizedGate(List<Operation>res, CustomizedGateOperationcg, int startTimeSlot, List<Integer>qubitsValue, List<String>paramsValue, Map<String, CustomizedGate>allCgMap) {
//展开组合量子逻辑门的递归函数
for (CustomizedGateOperation cgo : cg.getOprations()) {
//全局时间节点代替局部时间节点
int timeslot = startTimeSlot + cgo.getTimeSlot() - 1;
//全局量子比特代替局部量子比特
List<Integer>qubits = new LinkedList<>();
for (Integer idx : cgo.getQubits()) {
qubits.add(qubitsValue.get(idx));
}
//全局配置参数代替局部配置参数
List<String>argList = new LinkedList<>();
for (String s : cgo.getArgs()) {
argList.add(mathParse(s, cg.getParams(), paramsValue));
}
if (cgo.isNativeOp()) {
//若当前的量子逻辑门为基础量子逻辑门,则直接将代替后的量子逻辑门加入编译结果中
res.add(new Operation(cgo.getTimeslot(), cgo.getGateName(), cgo.isNativeOp(), qubits, argList));
} else {
//若当前的量子逻辑门为组合量子逻辑门,则调用递归函数进行展开
CustomizedGateOperation inner = allCgMap.get(cgo.getGateName());
res.addAll(expandCustomizedGate(res, inner, timeslot,qubits, argList, allCgMap));
}
}
}
void expandCircuit(Circuit circuit) {
Map<String, CustomizedGate>allCgMa = new HashMap<>();
for (CustomizedGate def : circuit.getDefinitions()) {
allCgMa.put(def.getName(), def);
}
//在量子比特操作中扩展每个组合量子逻辑门
List<Operation>res = new LinkedList<>();
for (Operation op : circuit.getOperations()) {
if (op.isNativeOp()) {
res.add(op);
} else {
expandCustomizedGate(res, allCgMap.get(op.getGateName()),op.getTimeSlot(), op.getQubits(), op.getArgList(), allCgMap);
}
}
}
举例说明,目标量子线路图的第一目标数据格式为:
{
"operations": [
{
"gate": {
"gname": "X"
},
"timeSlot": 1,
"nativeOperation": true,
"arguments": [],
"qubits": [1]
},
{
"timeSlot": 2,
"gate": {
"gname": "cg1",
"costTime": 2
},
"nativeOperation": false,
"arguments": ["45", "60"],
"qubits": [3, 2, 1]
}
],
"definitions": [
{
"name": "cg0",
"qubitsName": ["a","b"],
"params": ["alpha"],
"operations": [
{
"gate": {
"gname": "Rx"
},
"timeSlot": 1,
"arguments": ["alpha"],
"qubits": [0],
"nativeOperation": true
},
{
"gate": {
"gname": "CNOT"
},
"timeSlot": 2,
"arguments": [],
"qubits": [1,0],
"nativeOperation": true
}
]
},{
"name": "cg1",
"qubitsName": ["a","b","c"],
"params": ["alpha", "beta"],
"operations": [
{
"gate": {
"gname": "Rx"
},
"timeSlot": 1,
"arguments": ["beta"],
"qubits": [0],
"nativeOperation": true
},
{
"gate": {
"gname": "cg0",
"costTime": 2
},
"timeSlot": 1,
"arguments": ["alpha+beta"],
"qubits": [2,1],
"nativeOperation": false
}
]
}
]
}
将目标量子线路图中的Definition列表转化为一个组合量子逻辑门的名称为键,组合量子逻辑门本身为值的哈希图,使后续步骤中查找特定组合量子逻辑门的时间复杂度从O(n)降低到O(1):
{
"cg0": {
"name": "cg0",
"qubitsName": ["a","b"],
"params": ["alpha"],
"operations": [
{
"gate": {
"gname": "Rx"
},
"timeSlot": 1,
"arguments": ["alpha"],
"qubits": [0],
"nativeOperation": true
},
{
"gate": {
"gname": "CNOT"
},
"timeSlot": 2,
"arguments": [],
"qubits": [1,0],
"nativeOperation": true
}
]
},
"cg1": {
"name": "cg1",
"qubitsName": ["a","b","c"],
"params": ["alpha", "beta"],
"operations": [
{
"gate": {
"gname": "Rx"
},
"timeSlot": 1,
"arguments": ["beta"],
"qubits": [0],
"nativeOperation": true
},
{
"gate": {
"gname": "cg0",
"costTime": 2
},
"timeSlot": 1,
"arguments": ["alpha+beta"],
"qubits": [2,1],
"nativeOperation": false
}
]
}
}
初始化一个空的编译结果:{"res": []}。
遍历Operations,第一个量子比特操作为一个基础量子逻辑门X,因此直接插入编译结果中:
{
"res": [
{
"gate": {
"gname": "X"
},
"timeSlot": 1,
"nativeOperation": true,
"arguments": [],
"qubits": [ 1]
}
]
}
第二个量子比特操作为一个组合量子逻辑门,因此需要在哈希图中查找到该组合量子逻辑门,并得知cg1门的operations列表如下:
[
{
"gate": {
"gname": "Rx"
},
"timeSlot": 1,
"arguments": ["beta"],
"qubits": [0],
"nativeOperation": true
},
{
"gate": {
"gname": "cg0",
"costTime": 2
},
"timeSlot": 1,
"arguments": ["alpha+beta"],
"qubits": [2,1],
"nativeOperation": false
}
]
处理第一个基础量子逻辑门Rx,由于开始执行cg1的全局时间节点为2,所以该Rx门的实际开始执行时间节点为2+1-1=2。由于cg1的全局比特变量列表为[3,2,1],而Rx使用了其中的索引为0的比特,所以得知展开后该Rx门的比特变量列表为[3]。由于cg1的全局比特变量列表为[“45”,”60”],对应了cg1的局部变量[“alpha”,”beta”],因此得知展开后该Rx门的旋转参数beta实际等于60度。在编译结果中插入这个已经代入全局变量值的基础量子逻辑门,获得如下结果:
{
"res": [
{
"gate": {
"gname": "X"
},
"timeSlot": 1,
"nativeOperation": true,
"arguments": [],
"qubits": [1]
},
{
"gate": {
"gname": "Rx"
},
"timeSlot": 2,
"arguments": ["60"],
"qubits": [3],
"nativeOperation": true
}
]
}
处理第二个组合量子逻辑门cg0,由于开始执行cg1的全局时间节点为2,所以此cg0门的实际开始执行时间节点为2+1-1=2。由于cg1的全局比特变量列表为[3,2,1],而cg0使用了其中的索引为2和1的量子比特,所以得知展开后该cg0门的比特变量列表为[1,2]。由于cg1的全局比特变量列表为[“45”,”60”],对应了cg1的局部变量[“alpha”,”beta”],因此得知展开后这个cg0门的旋转参数alpha+beta实际等于45+60=105度。由于这是一个组合量子逻辑门,因此递归进行新一轮拆解,此时其等同于operations列表中的一个timeslot=2,qubits=[1,2],arguments=[“105”]的cg0门。
处理cg0门中的Rx门,由于开始执行cg0的全局时间节点为2,所以此Rx门的实际开始执行时间节点为2+1-1=2。由于cg0的全局比特变量列表为[1,2],而Rx使用了其中的索引为0的量子比特,所以得知展开后这个Rx门的比特变量列表为[1]。由于cg0的全局比特变量列表为[“105”],对应了cg0的局部变量[“alpha”],因此得知展开后这个Rx门的旋转参数alpha实际等于105度。在编译结果中插入这个已经代入全局变量值的基础量子逻辑门,获得如下结果:
{
"res": [
{
"gate": {
"gname": "X"
},
"timeSlot": 1,
"nativeOperation": true,
"arguments": [],
"qubits": [1]
},
{
"gate": {
"gname": "Rx"
},
"timeSlot": 2,
"arguments": ["60"],
"qubits": [3],
"nativeOperation": true
},
{
"gate": {
"gname": "Rx"
},
"timeSlot": 2,
"arguments": ["105"],
"qubits": [1],
"nativeOperation": true
}
]
}
处理cg0门中的CNOT门,由于开始执行cg0的全局时间节点为2,所以此CNOT门的实际开始执行时间节点为2+2-1=3。由于cg0的全局比特变量列表为[1,2],而CNOT使用了其中的索引为1和0的比特,所以得知展开后这个CNOT门的比特变量列表为[2,1]。由于CNOT门没有arguments参数,因此省略配置参数的代替过程。在编译结果中插入这个已经代入全局变量值的基础量子逻辑门,获得如下结果,也即整个线路图编译的最终结果:
{
"res": [
{
"gate": {
"gname": "X"
},
"timeSlot": 1,
"nativeOperation": true,
"arguments": [],
"qubits": [1]
},
{
"gate": {
"gname": "Rx"
},
"timeSlot": 2,
"arguments": ["60"],
"qubits": [3],
"nativeOperation": true
},
{
"gate": {
"gname": "Rx"
},
"timeSlot": 2,
"arguments": ["105"],
"qubits": [1],
"nativeOperation": true
},
{
"gate": {
"gname": "CNOT"
},
"timeSlot": 3,
"arguments": [],
"qubits": [2,1],
"nativeOperation": true
}
]
}
由此可见,本实施例在解析自定义的组合量子逻辑门的过程中,采用经典计算机中调用函数的方法,将全局变量带入函数中的局部变量中并递归展开,实现了自定义的组合量子逻辑门的解析和编译。
在上述实施例的基础上,作为一种优选实施方式,所述基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式之后,还包括:将所述目标量子线路图以所述第一目标数据格式存储至非关系型数据库中。
在具体实施中,如果持久化存储线路图数据时使用的是非关系型数据库,例如MangoDB,则第一目标数据格式的目标量子线路图可以直接以键值对的格式进行保存。
由此可见,本实施例在存储量子线路图时,采用经典计算机中存储函数的方法,将自定义的组合量子逻辑门的定义部分与主进程中的实际量子比特操作分开存储,实现了自定义的组合量子逻辑门的存储。
本实施例介绍将目标量子线路图保存至关系型数据库的过程,具体的:
参见图8,根据一示例性实施例示出的另一种量子线路图处理方法的流程图,如图8所示,包括:
S201:遍历所述目标量子线路图中的所有所述量子比特操作,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中;
关系型数据库使用类似于表格的结构,使用行代表每一条数据对象,行中的每一列代表该对象的某一属性的值。在使用关系型数据库存储量子实验任务的情景下,虽然也可以将json格式的线路图看作一条字符串,存储在每行的实验任务的实验操作这一列中,但随着实验规模的扩大,这个表格将变得冗余。因此,可以将线路图记录在与实验的基本信息分别存储在不同的表中,包括量子比特操作表、组合量子逻辑门表、量子逻辑门表。
作为一种优选实施方式,本实施例还包括:将所述目标量子线路图对应的实验信息保存至实验表的对应行中。实验表(task表)为存储实验基本信息的表格,在具体实施中,保存一个实验的基本信息到task表,获取实验在task表中的标识(id)。
在本步骤中,遍历目标量子线路图中的所有量子比特操作,也即遍历Opeartion列表中的每个量子比特操作,以目标量子线路图对应的实验信息在实验表中的标识作为外键,将每个量子比特操作以第一定义格式的定义信息保存至量子比特操作表(task_operation表)的对应行中。task_operation表为存储实验中实际计算操作的表格,与json数据格式中的Operation列表相对应,与task为一task对多task_operation的关系。
S202:遍历所有所述组合量子逻辑门,将每个所述组合量子逻辑门以所述第二定义格式的定义信息保存至组合量子逻辑门表的对应行中;
在本步骤中,遍历所有组合量子逻辑门,也即遍历Definition列表中的每个组合量子逻辑门,将其定义信息保存至组合量子逻辑门表(customized_gate表)的对应行中,并获取每个组合量子逻辑门的定义信息在customized_gate表中的标识(id)。customized_gate表为存储实验中包含的组合量子逻辑门的表格,与json数据格式中的Definition列表相对应,与task为一task对多customized_gate的关系。
S203:以每个所述组合量子逻辑门在所述组合量子逻辑门表的标识作为外键,将每个所述组合量子逻辑门包含的所有量子逻辑门保存至每个所述组合量子逻辑门对应的量子逻辑门表中;
在本步骤中,以每个组合量子逻辑门在组合量子逻辑门表的标识作为外键,将每个组合量子逻辑门包含的所有量子逻辑门保存至每个组合量子逻辑门对应的量子逻辑门表中(customized_gate_operation表)。customized_gate_operation表为存储组合量子逻辑门中包含的所有量子逻辑门的表格。与json数据格式中Definition中的operations里的内容相对应,与customized_gate为一customized_gate对多customized_gate_operation的关系。其与task_operation结构相同,不过因为使用场景不同,故存储于不同的表格中。
S204:基于所述量子比特操作表、所述组合量子逻辑门表、所述量子逻辑门表生成所述目标量子线路图的第二目标数据格式;
S205:将所述目标量子线路图以所述第二目标数据格式存储至关系型数据库中。
持久化一个实验线路图到关系型数据库时的流程如图9所示,在task表中的第1行插入实验信息,如果存在组合量子逻辑门,则在customized_gate表中的第1-N行插入组合量子逻辑门信息,N为包含的组合量子逻辑门数量,在customized_gate_operation表中的第1-M行插入组合量子逻辑门包含的量子逻辑门信息,M为组合量子逻辑门包含的量子逻辑门数量,在task_operation表中的第1-P行插入实验中实际执行的量子比特操作信息,P为实验实验线路图包含的量子比特操作数量。
举例说明,以第二目标数据格式存储的目标量子线路图如图10所示,包括task表、task_operation表、customized_gate表、customized_gate_operation表。
task表包含的列:t_id(实验Id,数据类型为long)、t_name(实验名称、数据类型为varchar)、bit_num(实验比特数、数据类型为int)等。
task_operation表包含的列:to_id(实验操作Id,数据类型为long)、task_id(实验操作所属的实验的Id,数据类型为long)、native_op(是否为基础量子逻辑门,是则为Y,不是则为N,数据类型为char(1))、gate_name(实验操作中量子门的名字、数据类型为varchar)、timeslot(实验操作的时间节点,数据类型为int)、qubit_list(操作所在的比特列表的字符串形式,数据类型为varchar)、arg_list(操作所需要的参数列表的字符串形式,数据类型为varchar)。
customized_gate表包含的列:cg_id(组合量子逻辑门Id,数据类型为long)、cg_name(组合量子逻辑门的名字,数据类型为varchar)、task_id(实验操作所属的实验的Id,数据类型为long)、qname_list(组合量子逻辑门中比特名列表的字符串形式,数据类型为varchar)、params_lis(组合量子逻辑门中入参列表的字符串形式,数据类型为varchar)。
customized_gate_operation表包含的列:cgo_id(量子逻辑门Id,数据类型为long)、cg_id(量子逻辑门所属的组合量子逻辑门的Id,数据类型为long)、native_op(是否为基础量子逻辑门,是则为Y,不是则为N,数据类型为char(1))、gate_name(具体的量子逻辑门的名字、数据类型为varchar)、timeslot(量子逻辑门的时间节点,数据类型为int)、qubit_list(量子逻辑门所在的局部比特的索引的列表的字符串形式,数据类型为varchar)、arg_list(量子逻辑门所需要的局部参数列表的字符串形式,数据类型为varchar)。
对于上面举出的目标量子线路图来说,相关的表格行如下:
task table如表1所示:
表1
t_id | t_name | bit_num | … |
101 | Test | 3 | … |
customized_gate table如表2所示:
表2
cg_id | cg_name | task_id | qname_list | params_list |
1 | cg0 | 101 | [“a”,”b”] | [“alpha”] |
customized_gate_operation table如表3所示:
表3
cgo_id | cg_id | native_op | gate_name | timeslot | qubit_list | arg_list |
1 | 1 | Y | Rx | 1 | [0] | [“alpha”] |
2 | 1 | Y | CNOT | 2 | [1,0] | null |
task_operation table如表4所示:
表4
to_id | task_id | native_op | gate_name | timeslot | qubit_list | arg_list |
1 | 101 | Y | X | 1 | [1] | Null |
2 | 101 | N | cg0 | 2 | [1,2] | [“45”] |
3 | 101 | N | cg0 | 4 | [3,3] | [“pi/4+pi/3”] |
下面对本申请实施例提供的一种量子线路图处理装置进行介绍,下文描述的一种量子线路图处理装置与上文描述的一种量子线路图处理方法可以相互参照。
参见图11,根据一示例性实施例示出的一种量子线路图处理装置的结构图,如图11所示,包括:
第一定义模块100,用于以第一定义格式定义目标量子线路图中的所有量子比特操作;其中,所述第一定义格式包括第一参数、第二参数、第三参数、第四参数和第五参数,所述第一参数用于描述所述量子比特操作开始的时间节点,所述第二参数用于描述所述量子比特操作的操作类型,所述操作类型包括基础量子比特操作和组合量子比特操作,所述第三参数用于描述所述量子比特操作包含的量子逻辑门,所述量子逻辑门包括基础量子逻辑门和/或组合量子逻辑门,所述第四参数用于描述所述量子逻辑门作用的量子比特,所述第五参数用于描述所述量子比特操作的配置参数;
第二定义模块200,用于以第二定义格式定义所述组合量子逻辑门;其中,所述第二定义格式包括第六参数、第七参数、第八参数、第九参数,所述第六参数用于描述所述组合量子逻辑门的名称、所述第七参数用于描述所述组合量子逻辑门作用的量子比特,所述第八参数用于描述所述组合量子逻辑门的配置参数,所述第九参数用于描述所述组合量子逻辑门包含的所有量子逻辑门;
生成模块300,用于基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式,以基于所述第一目标数据格式对所述目标量子线路图进行计算和传输。
本申请实施例提供的量子线路图处理装置,为量子线路图设计了一种计算与传输中的数据格式,可以兼容用户自定义的组合量子逻辑门,对自定义的组合量子逻辑门和主进程中的实际量子比特操作分别以不同的定义格式进行定义,在不需要QASM代码的场景下,可以跳过语义解析的步骤直接用最朴素的朴素逻辑来处理量子线路图,提高了量子线路图的处理效率。
在上述实施例的基础上,作为一种优选实施方式,所述第九参数中所述组合量子逻辑门包含的所有量子比特操作以所述第一定义格式进行描述。
在上述实施例的基础上,作为一种优选实施方式,还包括:
计算模块,用于遍历所有所述量子比特操作;当所述量子比特操作的操作类型为所述基础量子比特操作时,直接将所述量子比特操作加入编译结果中;当所述量子比特操作的操作类型为所述组合量子比特操作时,调用递归函数将所述量子比特操作作为目标组合量子逻辑门进行展开,并将展开结果加入编译结果中;直至所有所述量子比特操作遍历完成生成编译结果,基于所述编译结果对所述目标量子线路图进行计算;
其中,调用所述递归函数展开所述目标组合量子逻辑门,包括:遍历所述目标组合量子逻辑门包含的所有量子逻辑门,将所述目标组合量子逻辑门的全局时间节点代替所述量子逻辑门的局部时间节点,将所述目标组合量子逻辑门的全局量子比特代替所述量子逻辑门的局部量子比特,将所述目标组合量子逻辑门的全局配置参数代替所述量子逻辑门的局部配置参数,若所述量子逻辑门为所述基础量子逻辑门,则直接将代替后的量子逻辑门加入编译结果中,若所述量子逻辑门为所述组合量子逻辑门,则调用所述递归函数将所述量子逻辑门作为目标组合量子逻辑门进行展开。
在上述实施例的基础上,作为一种优选实施方式,还包括:
转换模块,用于将所有所述组合量子逻辑门转换为哈希图;其中,所述哈希图的每条数据对应一个所述组合量子逻辑门,每条数据的键为对应的组合量子逻辑门的名称、值为对应的组合量子逻辑门本身。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第一存储模块,用于将所述目标量子线路图以所述第一目标数据格式存储至非关系型数据库中。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第二存储模块,用于遍历所述目标量子线路图中的所有所述量子比特操作,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中;遍历所有所述组合量子逻辑门,将每个所述组合量子逻辑门以所述第二定义格式的定义信息保存至组合量子逻辑门表的对应行中;以每个所述组合量子逻辑门在所述组合量子逻辑门表的标识作为外键,将每个所述组合量子逻辑门包含的所有量子逻辑门保存至每个所述组合量子逻辑门对应的量子逻辑门表中;基于所述量子比特操作表、所述组合量子逻辑门表、所述量子逻辑门表生成所述目标量子线路图的第二目标数据格式;将所述目标量子线路图以所述第二目标数据格式存储至关系型数据库中。
在上述实施例的基础上,作为一种优选实施方式,所述第二存储模块具体用于:将所述目标量子线路图对应的实验信息保存至实验表的对应行中;遍历所述目标量子线路图中的所有所述量子比特操作,以所述目标量子线路图对应的实验信息在所述实验表中的标识作为外键,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中;以每个所述组合量子逻辑门在所述组合量子逻辑门表的标识作为外键,将每个所述组合量子逻辑门包含的所有量子逻辑门保存至每个所述组合量子逻辑门对应的量子逻辑门表中;基于所述量子比特操作表、所述组合量子逻辑门表、所述量子逻辑门表生成所述目标量子线路图的第二目标数据格式;将所述目标量子线路图以所述第二目标数据格式存储至关系型数据库中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图12为根据一示例性实施例示出的一种电子设备的结构图,如图12所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的量子线路图处理方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种量子线路图处理方法,其特征在于,包括:
以第一定义格式定义目标量子线路图中的所有量子比特操作;其中,所述第一定义格式包括第一参数、第二参数、第三参数、第四参数和第五参数,所述第一参数用于描述所述量子比特操作开始的时间节点,所述第二参数用于描述所述量子比特操作的操作类型,所述操作类型包括基础量子比特操作和组合量子比特操作,所述第三参数用于描述所述量子比特操作包含的量子逻辑门,所述量子逻辑门包括基础量子逻辑门和组合量子逻辑门,所述第四参数用于描述所述量子逻辑门作用的量子比特,所述第五参数用于描述所述量子比特操作的配置参数,以第一定义格式定义的量子比特操作等同于经典计算机软件中进程主线程执行的命令;
以第二定义格式定义所述组合量子逻辑门;其中,所述第二定义格式包括第六参数、第七参数、第八参数、第九参数,所述第六参数用于描述所述组合量子逻辑门的名称、所述第七参数用于描述所述组合量子逻辑门作用的量子比特,所述第八参数用于描述所述组合量子逻辑门的配置参数,所述第九参数用于描述所述组合量子逻辑门包含的所有量子逻辑门,以第二定义格式定义的组合量子逻辑门等同于经典计算机软件中的函数定义;
基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式,以基于所述第一目标数据格式对所述目标量子线路图进行计算和传输。
2.根据权利要求1所述量子线路图处理方法,其特征在于,所述第九参数中所述组合量子逻辑门包含的所有量子比特操作以所述第一定义格式进行描述。
3.根据权利要求2所述量子线路图处理方法,其特征在于,所述基于所述第一目标数据格式对所述目标量子线路图进行计算,包括:
遍历所有所述量子比特操作;
当所述量子比特操作的操作类型为所述基础量子比特操作时,直接将所述量子比特操作加入编译结果中;
当所述量子比特操作的操作类型为所述组合量子比特操作时,调用递归函数将所述量子比特操作作为目标组合量子逻辑门进行展开,并将展开结果加入编译结果中;
直至所有所述量子比特操作遍历完成生成编译结果,基于所述编译结果对所述目标量子线路图进行计算;
其中,调用所述递归函数展开所述目标组合量子逻辑门,包括:
遍历所述目标组合量子逻辑门包含的所有量子逻辑门,将所述目标组合量子逻辑门的全局时间节点代替所述量子逻辑门的局部时间节点,将所述目标组合量子逻辑门的全局量子比特代替所述量子逻辑门的局部量子比特,将所述目标组合量子逻辑门的全局配置参数代替所述量子逻辑门的局部配置参数,若所述量子逻辑门为所述基础量子逻辑门,则直接将代替后的量子逻辑门加入编译结果中,若所述量子逻辑门为所述组合量子逻辑门,则调用所述递归函数将所述量子逻辑门作为目标组合量子逻辑门进行展开。
4.根据权利要求3所述量子线路图处理方法,其特征在于,所述遍历所有所述量子比特操作之前,还包括:
将所有所述组合量子逻辑门转换为哈希图;其中,所述哈希图的每条数据对应一个所述组合量子逻辑门,每条数据的键为对应的组合量子逻辑门的名称、值为对应的组合量子逻辑门本身。
5.根据权利要求1所述量子线路图处理方法,其特征在于,所述基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式之后,还包括:
将所述目标量子线路图以所述第一目标数据格式存储至非关系型数据库中。
6.根据权利要求1所述量子线路图处理方法,其特征在于,所述基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式之后,还包括:
遍历所述目标量子线路图中的所有所述量子比特操作,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中;
遍历所有所述组合量子逻辑门,将每个所述组合量子逻辑门以所述第二定义格式的定义信息保存至组合量子逻辑门表的对应行中;
以每个所述组合量子逻辑门在所述组合量子逻辑门表的标识作为外键,将每个所述组合量子逻辑门包含的所有量子逻辑门保存至每个所述组合量子逻辑门对应的量子逻辑门表中;
基于所述量子比特操作表、所述组合量子逻辑门表、所述量子逻辑门表生成所述目标量子线路图的第二目标数据格式;
将所述目标量子线路图以所述第二目标数据格式存储至关系型数据库中。
7.根据权利要求6所述量子线路图处理方法,其特征在于,所述遍历所述目标量子线路图中的所有所述量子比特操作之前,还包括:
将所述目标量子线路图对应的实验信息保存至实验表的对应行中;
相应的,所述遍历所述目标量子线路图中的所有所述量子比特操作,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中,包括:
遍历所述目标量子线路图中的所有所述量子比特操作,以所述目标量子线路图对应的实验信息在所述实验表中的标识作为外键,将每个所述量子比特操作以所述第一定义格式的定义信息保存至量子比特操作表的对应行中。
8.一种量子线路图处理装置,其特征在于,包括:
第一定义模块,用于以第一定义格式定义目标量子线路图中的所有量子比特操作;其中,所述第一定义格式包括第一参数、第二参数、第三参数、第四参数和第五参数,所述第一参数用于描述所述量子比特操作开始的时间节点,所述第二参数用于描述所述量子比特操作的操作类型,所述操作类型包括基础量子比特操作和组合量子比特操作,所述第三参数用于描述所述量子比特操作包含的量子逻辑门,所述量子逻辑门包括基础量子逻辑门和组合量子逻辑门,所述第四参数用于描述所述量子逻辑门作用的量子比特,所述第五参数用于描述所述量子比特操作的配置参数,以第一定义格式定义的量子比特操作等同于经典计算机软件中进程主线程执行的命令;
第二定义模块,用于以第二定义格式定义所述组合量子逻辑门;其中,所述第二定义格式包括第六参数、第七参数、第八参数、第九参数,所述第六参数用于描述所述组合量子逻辑门的名称、所述第七参数用于描述所述组合量子逻辑门作用的量子比特,所述第八参数用于描述所述组合量子逻辑门的配置参数,所述第九参数用于描述所述组合量子逻辑门包含的所有量子逻辑门,以第二定义格式定义的组合量子逻辑门等同于经典计算机软件中的函数定义;
生成模块,用于基于以所述第一定义格式定义的量子比特操作和以所述第二定义格式定义的组合量子逻辑门生成所述目标量子线路图的第一目标数据格式,以基于所述第一目标数据格式对所述目标量子线路图进行计算和传输。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述量子线路图处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述量子线路图处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310683102.7A CN116451795B (zh) | 2023-06-09 | 2023-06-09 | 一种量子线路图处理方法、装置及电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310683102.7A CN116451795B (zh) | 2023-06-09 | 2023-06-09 | 一种量子线路图处理方法、装置及电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116451795A CN116451795A (zh) | 2023-07-18 |
CN116451795B true CN116451795B (zh) | 2023-10-10 |
Family
ID=87134051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310683102.7A Active CN116451795B (zh) | 2023-06-09 | 2023-06-09 | 一种量子线路图处理方法、装置及电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116451795B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222161A (zh) * | 2020-01-21 | 2021-08-06 | 合肥本源量子计算科技有限责任公司 | 一种自定义量子逻辑门的实现方法、装置 |
CN115146782A (zh) * | 2021-03-31 | 2022-10-04 | 合肥本源量子计算科技有限责任公司 | 量子线路编译方法、装置、编译框架及量子操作系统 |
CN115879562A (zh) * | 2021-09-28 | 2023-03-31 | 合肥本源量子计算科技有限责任公司 | 一种量子程序初始映射的确定方法、装置及量子计算机 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7498832B2 (en) * | 2007-08-03 | 2009-03-03 | Northrop Grumman Systems Corporation | Arbitrary quantum operations with a common coupled resonator |
-
2023
- 2023-06-09 CN CN202310683102.7A patent/CN116451795B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222161A (zh) * | 2020-01-21 | 2021-08-06 | 合肥本源量子计算科技有限责任公司 | 一种自定义量子逻辑门的实现方法、装置 |
CN115146782A (zh) * | 2021-03-31 | 2022-10-04 | 合肥本源量子计算科技有限责任公司 | 量子线路编译方法、装置、编译框架及量子操作系统 |
CN115879562A (zh) * | 2021-09-28 | 2023-03-31 | 合肥本源量子计算科技有限责任公司 | 一种量子程序初始映射的确定方法、装置及量子计算机 |
Non-Patent Citations (2)
Title |
---|
Improved belief propagation decoding algorithm based on decoupling representation of Pauli operators for quantum LDPC codes;yi zhenzhong et al;《arXiv》;第1-10页 * |
基于量子计算的创新金融应用发展;郭聪等;《银行家》(第11期);第33-34页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116451795A (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
CN103164249B (zh) | 用于脚本语言编译器的扩展机制 | |
CN113051285B (zh) | Sql语句的转换方法、系统、设备及存储介质 | |
US9619212B2 (en) | Providing code, code generator and software development environment | |
CN110955714A (zh) | 一种将非结构化文本转化为结构化文本的方法及装置 | |
CN117033348A (zh) | Sql转换方法、装置、计算机设备和存储介质 | |
CN113448852A (zh) | 一种测试案例的获取方法、装置、电子设备及存储介质 | |
Iglesias-Molina et al. | An ontological approach for representing declarative mapping languages | |
CN116755669A (zh) | 一种基于dsl语言操作模型的低代码开发方法和工具 | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN113849781A (zh) | Go语言源代码混淆方法、系统、终端及存储介质 | |
US11954102B1 (en) | Structured query language query execution using natural language and related techniques | |
CN113608748A (zh) | C语言转换Java语言的数据处理方法、装置及设备 | |
CN116451795B (zh) | 一种量子线路图处理方法、装置及电子设备和存储介质 | |
CN117008920A (zh) | 引擎系统、请求处理方法、装置、计算机设备及存储介质 | |
CN111708542A (zh) | 测试用例生成方法、系统、设备及存储介质 | |
Guallart | An overview of type theories | |
Annenkov et al. | Generation technique for Django MVC web framework using the stratego transformation language | |
WO2024148612A1 (zh) | 一种翻译器生成方法、装置、设备及存储介质 | |
Chaochaisit et al. | CSV-X: A Linked Data Enabled Schema Language, Model, and Processing Engine for Non-Uniform CSV | |
CN116627390B (zh) | 航空软件开发中icd文件的替代方法及装置 | |
US12038921B2 (en) | Transforming operations of a computer program for execution at a database | |
JP4120879B2 (ja) | プログラム生成システム及び方法とそのプログラム | |
CN113961192A (zh) | 代码数据的处理方法、装置及电子设备 | |
CN117407002A (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 |