CN113269325B - 基于指令重排的量子程序执行方法及装置 - Google Patents
基于指令重排的量子程序执行方法及装置 Download PDFInfo
- Publication number
- CN113269325B CN113269325B CN202110629719.1A CN202110629719A CN113269325B CN 113269325 B CN113269325 B CN 113269325B CN 202110629719 A CN202110629719 A CN 202110629719A CN 113269325 B CN113269325 B CN 113269325B
- Authority
- CN
- China
- Prior art keywords
- cnot
- instruction
- quantum
- program
- qubit
- 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
- 230000008707 rearrangement Effects 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 55
- 239000002096 quantum dot Substances 0.000 claims description 61
- 230000006870 function Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000000116 mitigating effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003090 exacerbative effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 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
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Evolutionary Computation (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于指令重排的量子程序执行方法及装置,该方法包括:获取预先配置的指令交换规则;根据指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案;利用代价函数评估各个指令重排方案对应的保真度,并根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案;根据待执行指令重排方案,对待执行量子程序中指令顺序进行重排。本发明能够缓解量子程序执行时由于串扰错误对其保真度的影响。
Description
技术领域
本发明涉及量子计算技术领域,尤其涉及一种基于指令重排的量子程序执行方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
量子计算机,是一种遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当下量子计算机存在诸多错误,其中串扰错误具体表现为同时执行多个量子操作会导致每个量子操作保真度降低。该错误最终会降低量子程序计算的保真度,导致计算结果错误。因而,减缓串扰错误的影响对量子计算而言至关重要。
现有减缓串扰错误的方法分为两类:硬件方法和软件方法。
第一类,硬件方法是目前处理串扰错误最常见的方法种类。这类方法主要有:①引入可调节的耦合器,通过在不需要耦合的时候关闭耦合来减缓串扰;②为每个量子比特设定特定的工作频率,使临近的量子比特在频率上有较大间隔,从而减缓串扰。
第二类,软件方法是基于量子指令调度,通过插入屏障(Barrier)使得原本要同时执行的量子操作串行执行,从而减缓串扰错误。
硬件方法的主要缺点在于其适用性有限。上述引入可调节耦合器的硬件方法,由于可调节耦合器是一种特定的硬件结构,采用不可调节耦合器的量子计算机无法通过关闭耦合来减缓串扰。上述为每个量子比特设定特定工作频率的方法,因其需要不断标定和调节工作频率以维持系统的稳定性,因而不适用于采用频率可调节的量子比特的量子计算机。
软件方法的缺点在于:缺乏对量子计算机中其他错误的综合考虑,例如缺乏对退相干(退相干是指量子比特状态随时间逐渐遭到破坏)的考虑,插入的屏障会导致操作的串行执行,从而增加了程序执行时间,加剧了量子比特的退相干。
可见,如何提供一种缓解量子计算机串扰错误对量子计算影响的方法,是目前亟待解决的技术问题。
发明内容
本发明实施例中提供了一种基于指令重排的量子程序执行方法,用以缓解量子程序执行时由于串扰错误对其保真度的影响,该方法包括:获取预先配置的指令交换规则;根据指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案;利用代价函数评估各个指令重排方案对应的保真度,并根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案;根据待执行指令重排方案,对待执行量子程序中指令顺序进行重排;
其中,所述代价函数为:
其中,Cost(P)为量子程序的代价函数;D为将由1个同时CNOT操作引发的串扰错误影响等效转化为退相干错误影响的量;表示程序P所有同时执行的CNOT操作;Depth(P)表示程序P的深度;表示eo、eo′使用单独执行操作时的平均操作错误率;表示es、es′使用同时执行CNOT操作时的平均操作错误率;ei表示恒等操作的错误率。
本发明实施例中还提供了一种基于指令重排的量子程序执行装置,用以缓解量子程序执行时由于串扰错误对其保真度的影响,该装置包括:指令交换规则配置模块,用于获取预先配置的指令交换规则;指令重排方案确定模块,用于根据指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案;指令重排方案评估模块,用于利用代价函数评估各个指令重排方案对应的保真度,并根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案;量子程序重排模块,用于根据待执行指令重排方案,对待执行量子程序中指令顺序进行重排;
其中,所述代价函数为:
其中,Cost(P)为量子程序的代价函数;D为将由1个同时CNOT操作引发的串扰错误影响等效转化为退相干错误影响的量;表示程序P所有同时执行的CNOT操作;Depth(P)表示程序P的深度;表示eo、eo′使用单独执行操作时的平均操作错误率;表示es、es′使用同时执行CNOT操作时的平均操作错误率;ei表示恒等操作的错误率。
本发明实施例还提供了一种计算机设备,用以缓解量子程序执行时由于串扰错误对其保真度的影响,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于指令重排的量子程序执行方法。
本发明实施例还提供了一种计算机可读存储介质,用以缓解量子程序执行时由于串扰错误对其保真度的影响,该计算机可读存储介质存储有执行上述基于指令重排的量子程序执行方法的计算机程序。
本发明实施例中提供的基于指令重排的量子程序执行方法、装置、计算机设备及计算机可读存储介质,通过配置指令交换规则,进而根据配置的指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案,利用代价函数评估各个指令重排方案对应的保真度,进而根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案,根据待执行指令重排方案,对待执行量子程序中指令顺序进行重排,以便量子计算机执行重排后的量子程序,从而缓解量子程序执行时由于串扰错误对其保真度的影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中一种基于指令重排的量子程序执行方法流程图;
图2为本发明实施例中一种可选的基于指令重排的量子程序执行方法流程图;
图3为本发明实施例中一种CNOT操作与单比特操作的交换规则示意图;
图4为本发明实施例中又一种CNOT操作与单比特操作的交换规则示意图;
图5为本发明实施例中一种CNOT操作与CNOT操作的交换规则示意图;
图6为本发明实施例中一种SWAP操作与单比特操作的交换规则示意图;
图7为本发明实施例中一种SWAP操作与CNOT操作的交换规则示意图;
图8为本发明实施例中又一种SWAP操作与CNOT操作的交换规则示意图;
图9为本发明实施例中一种量子计算机拓扑示意图;
图10为本发明实施例中一种量子计算机拓扑约束示意图;
图11为本发明实施例中又一种量子计算机拓扑约束示意图;
图12为本发明实施例中一种串扰错误与退相干错误需要权衡的例子示意图;
图13为本发明实施例中一种指令重排算法代码实现示意图;
图14为本发明实施例中一种量子计算流程示意图;
图15为本发明实施例中基于IBMQ Melbourne拓扑的程序保真度结果示意图;
图16为本发明实施例中基于Rigetti Aspen-8拓扑的程序保真度结果示意图;
图17为本发明实施例中一种基于指令重排的量子程序执行装置示意图;
图18为本发明实施例中一种可选的基于指令重排的量子程序执行装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在介绍本发明实施例之前,首先对本发明实施例中涉及的名词术语解释如下:
1)量子计算(Quantum Computation):利用量子态的叠加和纠缠等性质快速完成计算任务的一种计算方式。
2)量子比特(Qubit):量子信息的承载形式。
3)量子操作(Quantum Operation):对量子比特进行操纵,从而对量子比特承载的量子信息进行处理。常见的量子操作有泡利X、Y、Z变换,哈达玛变换(H),受控泡利X变换(CNOT),交换操作(SWAP)等。只使用单比特操作和两比特操作,可完成任意的量子计算。在量子程序语境中,量子操作也称为量子指令。
4)量子程序(Quantum Program):用于表示量子计算流程的指令序列。也可以采用量子电路(Quantum Circuit)模型来表述。
5)保真度(Fidelity):用于衡量实际发生的过程与预期过程的差异。保真度越高,差异越小。保证度可用于量子操作和量子程序场景,量子操作的保真度用于衡量实际发生的操作与预期操作的差异,量子程序的保真度用于衡量实际产生的计算结果与正确结果的差异。
6)指令重排(Instruction Reordering):对量子程序中指令顺序进行调整的过程。
7)串扰错误(Crosstalk Error):量子计算机中的一种错误。具体表现为同时执行多个量子操作会导致每个量子操作保真度降低。
8)退相干(Decoherence)/退相干错误(Decoherence Error):量子比特状态随时间逐渐遭到破坏。
本发明实施例中提供了一种基于指令重排的量子程序执行方法,图1为本发明实施例中一种基于指令重排的量子程序执行方法流程图,如图1所示,该方法包括如下步骤:
S101,获取预先配置的指令交换规则;
S102,根据指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案;
S103,利用代价函数评估各个指令重排方案对应的保真度,并根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案;
S104,根据待执行指令重排方案,对待执行量子程序中指令顺序进行重排。
需要说明的是,本发明实施例中利用预先配置的指令交换规则,重排给定的量子程序(原始待执行的量子程序),利用代价函数评估不同重排方案的优劣,最终给出与原始量子程序等价且指令经过重排的量子程序,以使重排后的量子程序在执行时能够减缓串扰错误对其保真度的影响。
在一个实施例中,如图2所示,在执行S104之后,本发明实施例中提供的基于指令重排的量子程序执行方法还可以包括如下步骤:
S105,获取重排后的量子程序;
S106,在量子计算机上执行重排后的量子程序。
需要说明的是,上述指令交换规则包括但不限于如下两种:泛化的CNOT操作交换规则和SWAP操作交换规则;其中,泛化的CNOT操作交换规则用于重排待执行量子程序中的CNOT操作,SWAP操作交换规则用于重排待执行量子程序中的SWAP操作。
本发明实施例中泛化的CNOT操作交换规则包括:CNOT操作与单比特操作的第一交换规则、:CNOT操作与单比特操作的第一交换规则、
①CNOT操作与单比特操作的第一交换规则,如图3所示,表达式定义如下:
CNOT(a,b)Rz(θ;a)=Rz(θ;a)CNOT(a,b);
CNOT(a,b)Rx(θ;b)=Rx(θ;b)CNOT(a,b);
②CNOT操作与单比特操作的第二交换规则,如图4所示,表达式定义如下:
③CNOT操作与CNOT操作的第三交换规则,如图5所示,表达式定义如下:
CNOT(a,b)CNOT(a,c)=CNOT(a,c)CNOT(a,b);
CNOT(b,c)CNOT(a,c)=CNOT(a,c)CNOT(b,c);
其中,a、b、c分别表示三个不同的量子比特;Rz(θ;a)、Rx(θ;a)、分别表示作用在量子比特a上的四个不同且参数为θ的单量子比特操作;Rz(θ;b)、Rx(θ;b)、分别表示作用在量子比特b上的四个不同且参数为θ的单量子比特操作;CNOT(a,b)分别表示作用在量子比特a和b上的CNOT操作,CNOT(a,b)中的a表示控制量子比特,CNOT(a,b)中b的表示目标量子比特;CNOT(b,c)表示作用在量子比特b和c上的CNOT操作,CNOT(b,c)中的b表示控制量子比特,CNOT(b,c)中c的表示目标量子比特;CNOT(a,c)表示作用在量子比特a和c上的CNOT操作,CNOT(a,c)中的a表示控制量子比特,CNOT(a,c)中的c表示目标量子比特。
下面,给出这些操作的矩阵定义:
本发明实施例中SWAP操作交换规则包括:
①SWAP操作与单比特操作的第四交换规则,如图6所示,表达式定义如下:
SWAP(a,b)U(a)=U(a)SWAP(a,b);
②SWAP操作与CNOT操作的第五交换规则,如图7所示,表达式定义如下:
SWAP(a,b)CNOT(a,b)=CNOT(b,a)SWAP(a,b);
③CNOT操作与SWAP操作的第六交换规则,如图8所示,表达式定义如下:
SWAP(a,b)CNOT(a,c)=CNOT(b,c)SWAP(a,b);
SWAP(a,b)CNOT(c,a)=CNOT(c,b)SWAP(a,b);
这两种情况需要考虑量子计算机的拓扑约束。
其中,a、b、c分别表示三个不同的量子比特;U(a)表示作用在量子比特a上的单量子比特操作;SWAP(a,b)表示作用在量子比特a和b上的SWAP操作;CNOT(a,b)表示作用在量子比特a和b上的CNOT操作,CNOT(a,b)中的a表示控制量子比特,CNOT(a,b)中b的表示目标量子比特;CNOT(b,a)表示作用在量子比特a和b上的CNOT操作,CNOT(b,a)中的b表示控制量子比特,CNOT(b,a)中的a表示目标量子比特;CNOT(b,c)表示作用在量子比特b和c上的CNOT操作,CNOT(b,c)中的b表示控制量子比特,CNOT(b,c)中c的表示目标量子比特;CNOT(c,b)表示作用在量子比特c和b上的CNOT操作,CNOT(c,b)中的c表示控制量子比特,CNOT(c,b)中的b表示目标量子比特;CNOT(a,c)表示作用在量子比特a和c上的CNOT操作,CNOT(a,c)中的a表示控制量子比特,CNOT(a,c)中的c表示目标量子比特;CNOT(c,a)表示作用在量子比特c和a上的CNOT操作,CNOT(c,a)中的c表示控制量子比特,CNOT(c,a)中的a表示表示目标量子比特。
量子计算机的拓扑约束是:只有当两个量子比特间存在耦合时,才可对这两个量子比特施加两比特操作(例如,CNOT操作和SWAP操作)。
下面结合图9~图11,进一步说明这一约束:
图9示出了一个量子计算机的拓扑图,其中顶点代表量子比特,边代表量子比特间的耦合。图10、图11示出了两个例子,对于图10、图11,它们等式左边的操作均符合拓扑约束,图10中等式右边的操作亦符合拓扑约束,但图11中等式右边的CNOT操作由于量子比特2、4之间不存在耦合而无法执行,因此图11不满足拓扑约束。
以下给出这些规则中所涉及的符号的定义,U(a)泛指量子比特a上的单量子比特操作;SWAP(a,b)表示作用在量子比特a和b上的SWAP操作;SWAP(a,b)的矩阵表示为:
需要注意的是,对于量子比特a和b上的SWAP操作,量子比特a和b的地位等价,故上述规则可调换a和b的位置。
本发明实施例中的代价函数为兼顾串扰错误与退相干错误的代价函数:
与相关工作中的软件方法相比,本发明实施例中提供的量子方法避免了指令序列化,但仍有一些情况需要权衡串扰和退相干错误。本发明实施例进一步关注由于同时CNOT操作导致的串扰错误,同时CNOT操作数目越多,串扰错误越严重;退相干错误使用程序深度衡量,其中程序深度指的是程序的关键路径上操作的个数,程序深度越深,退相关错误越严重。
图12示出了一个串扰错误与退相干错误需要权衡的例子,其中H是哈达玛(Hadamard)操作,X=Rx(π),图左右两部分可根据交换规则相互转换。左半部分有同时CNOT,而右半部分没有,因而左半部分的串扰错误较为严重。左半部分深度为3,而右半部分深度为4,故右半部分退相干错误较为严重。由于串扰和退相干错误都会影响量子程序的保真度,我们需要综合考虑二者。
为此,本发明实施例中设计了一个代价函数来评估由不同指令重排方案重排后的程序的保真度,该代价函数输入量子程序,输出一个数值,数值越大,保真度越差。
本发明实施例中代价函数的设计思想是:通过将串扰错误的影响等效地转换为退相干错误的影响,进而统一二者。
具体而言,给定一个量子程序,记其中所有同时CNOT操作构成集合(一个SWAP操作视为3个CNOT操作),所有其他操作构成集合,则程序保真度可由预计正确率(EstimatedSuccess Probability,ESP)估计:
其中,es为操作s的错误率,下同。
假设,在一次指令重排后,同时CNOT操作减少了1个,且程序深度不变。此时,重排后的程序保真度可估计为:
为了抵消由于同时CNOT操作减少带来的好处,本发明实施例中,在程序的关键路径上引入D个恒等操作,从而使得其深度增加,退相干错误增加。引入恒等操作后的程序保真度可估计为:
若在上述指令重排和恒等操作引入前后,程序的保真度不变(ESP″=ESP),则可视为将由1个同时CNOT操作引发的串扰错误的影响等效转化为退相干错误的影响的量。
因而,针对程序P的代价函数设计为:
其中,Cost(P)为程序P的代价函数;D为将由1个同时CNOT操作引发的串扰错误影响等效转化为退相干错误影响的量;表示程序P所有同时执行的CNOT操作;Depth(P)表示程序P的深度;表示eo、eo'使用单独执行操作时的平均操作错误率;表示es、es'使用同时执行CNOT操作时的平均操作错误率;ei表示恒等操作的错误率。
图13为本发明实施例中两层次、正反双向的指令重排算法的一种代码实现示意图;如图13所示,入口函数为两层次重排(Two Level Reorder)过程,其接收一个量子程序P作为输入,输出重排后的量子程序。
两层次重排(Two Level Reorder)过程的流程如下:
代码行1表示第一层次:使用双向重排(Bi Reorder)过程重排输入的量子程序中的CNOT操作和SWAP操作,得到第一层次重排后的量子程序。
代码行2表示将第一层次重排后的量子程序中的每个SWAP操作分解为3个CNOT操作,得到分解后的量子程序。分解规则为:
SWAP(a,b)=CNOT(a,b)CNOT(b,a)CNOT(a,b);或
SWAP(a,b)=CNOT(b,a)CNOT(a,b)CNOT(b,a)
代码行3和行4表示第二层次:使用双向重排(Bi Reorder)过程重排分解后的量子程序中的CNOT操作,得到第二层次重排后的量子程序,作为算法的输出。
双向重排(Bi Reorder)过程的流程如下:
代码行6表示正向重排:使用重排(Reorder)过程重排程序中的相关指令,并用重排后的程序覆盖之前的程序。
代码行7表示反向重排:反转程序的指令顺序,得到反转后的程序;使用重排(Reorder)过程重排反转后的程序中的相关指令,反转得到的程序,并覆盖之前的程序。
代码行5和行8表示重复执行上述两步,直到程序的代价函数值不再发生变化。
代码行9表示输出代价函数值不再发生变化时的程序。
重排(Reorder)过程的流程如下:
代码行10输入程序P表示为一个指令序列,首先从这个指令序列中选出给定类型的操作组成一个新的序列ops,序列ops中操作的顺序保持与原序列中相同的顺序。
代码行11表示构建候选列表candidate_list,初始化为仅包含输入程序P。
代码行12表示对序列ops中的每一个操作op。
代码行13表示初始化集合new_candidates为空。
代码行14表示对候选列表candidate_list中的每一个程序candidate。
代码行15表示根据给定操作类型所对应的交换规则,重排操作op在程序candidate_list中的位置,得到若干重排后的程序,并将这些重排后的程序加入到集合new_candidate中。
代码行16表示对集合new_candidate中的每个程序分别计算其代价函数值。
代码行17表示将集合new_candidate中的程序加入到候选列表candidate_list中。
代码行18表示按照代价函数值升序排序候选列表candidate_list。
代码行19表示截断候选列表candidate_list至前N个程序。
代码行20表示选择上述过程中所出现的程序中代价函数值最小的那个作为算法的输出。
上述重排(Reorder)过程的流程中,代码行12-代码行19基于集束搜索(BeamSearch),实际应用中亦可采用诸如模拟退火等其他搜索方法。
在“根据给定操作类型所对应的交换规则,重排操作op在程序candidate中的位置,得到若干重排后的程序”可以通过如下三种方式实现:
第一种实现方式为:
①确定操作op的前序操作op′,前序操作指第一个在程序指令序列中、位于操作op的之前、且该操作所作用的量子比特集合与操作op所作用的量子比特有交集的量子操作。
②如果有一个交换规则能够交换操作op及其前序操作op′,则根据该交换规则交换这两个操作,生成一个重排后的程序,并返回①;否则,结束。
第二种实现方式为:
①确定操作op的后序操作op′,后序操作指第一个在程序指令序列中、位于操作op的之后、且该操作所作用的量子比特集合与操作op所作用的量子比特有交集的量子操作。
②如果有一个交换规则能够交换操作op及其后序操作op',则根据该交换规则交换这两个操作,生成一个重排后的程序,并返回①;否则,结束。
第三种实现方式为:
结合上述两种可能实现,既考虑前序操作,也考虑后序操作。
需要说明的是,本发明实施例中提供的指令重排算法,在一种可能的实现中,该算法作为量子编译器的一个编译流程,在量子比特映射与路由编译流程之后,如图14所示为本发明实施例中提供的指令重排算法与其他模块的连接关系。
在117个量子程序、2种量子计算机拓扑上进行模拟。其中,量子程序有可逆电路(reversible circuits),隐群问题(hidden group problems),量子傅立叶变换(quantumFourier transform),量子相位估计(quantum phase estimation),量子优化(quantumoptimization)等;2种量子计算机拓扑是IBMQ Melbourne和Rigetti Aspen-8对应的拓扑,模拟中,操作错误率根据IBMQ Melbourne机器实测的平均错误率的1/10设置,退相干错误相关参数根据IBMQ Melbourne机器实测的参数平均值的1/10设置。
通过比对使用本发明实施例中提供的指令重排算法和不使用本发明中提供的指令重排算法两种情况下量子程序的保真度。如图15和图16所示,采用相对保真度衡量(将不使用本发明的指令重排算法时的保真度作为单位1)。
结果显示,本发明实施例可提高程序保真度多达2.2倍(IBMQ Melbourne拓扑)和2倍(Rigetti Aspen-8拓扑)左右。
此外,还需要说明的是,本发明的操作交换规则以CNOT和SWAP为主体设计,如采用其他交换规则,本发明实施例中提供的指令重排算法在修改为其他交换规则后依旧可以适用;本发明实施例中的代价函数,可采用其他代价函数,本发明实施例中提供的指令重排算法在修改为其他代价函数后依旧可以适用;本发明实施例中提供的指令重排算法中,重排(Reorder)过程的流程可基于集束搜索(Beam Search)实现,亦可采用诸如模拟退火等其他搜索方法。
基于同一发明构思,本发明实施例中还提供了一种基于指令重排的量子程序执行装置,如下面的实施例所述。由于该装置解决问题的原理与基于指令重排的量子程序执行方法相似,因此该装置的实施可以参见基于指令重排的量子程序执行方法的实施,重复之处不再赘述。
图17为本发明实施例中一种基于指令重排的量子程序执行装置示意图,如图17所示,该装置包括:指令交换规则配置模块171、指令重排方案确定模块172、指令重排方案评估模块173和量子程序重排模块174。
其中,指令交换规则配置模块171,用于获取预先配置的指令交换规则;指令重排方案确定模块172,用于根据指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案;指令重排方案评估模块173,用于利用代价函数评估各个指令重排方案对应的保真度,并根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案;量子程序重排模块174,用于根据待执行指令重排方案,对待执行量子程序中指令顺序进行重排。
在一个实施例中,如图18所示,本发明实施例中提供的基于指令重排的量子程序执行装置还包括:量子程序执行模块175,用于获取重排后的量子程序;以及在量子计算机上执行重排后的量子程序。
基于同一发明构思,本发明实施例还提供了一种计算机设备,用以缓解量子程序执行时由于串扰错误对其保真度的影响,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于指令重排的量子程序执行方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,用以缓解量子程序执行时由于串扰错误对其保真度的影响,该计算机可读存储介质存储有执行上述基于指令重排的量子程序执行方法的计算机程序。
综上所述,本发明实施例中提供的基于指令重排的量子程序执行方法、装置、计算机设备及计算机可读存储介质,通过配置指令交换规则,进而根据配置的指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案,利用代价函数评估各个指令重排方案对应的保真度,进而根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案,根据待执行指令重排方案,对待执行量子程序中指令顺序进行重排,以便量子计算机执行重排后的量子程序,从而缓解量子程序执行时由于串扰错误对其保真度的影响。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于指令重排的量子程序执行方法,其特征在于,包括:
获取预先配置的指令交换规则;
根据所述指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案;
利用代价函数评估各个指令重排方案对应的保真度,并根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案;
根据所述待执行指令重排方案,对待执行量子程序中指令顺序进行重排;
其中,所述代价函数为:
2.如权利要求1所述的方法,其特征在于,所述指令交换规则包括:泛化的CNOT操作交换规则和SWAP操作交换规则;其中,所述泛化的CNOT操作交换规则用于重排待执行量子程序中的CNOT操作,所述SWAP操作交换规则用于重排待执行量子程序中的SWAP操作。
3.如权利要求2所述的方法,其特征在于,所述泛化的CNOT操作交换规则包括:
第一交换规则:
CNOT(a,b)Rz(θ;a)=Rz(θ;a)CNOT(a,b);
CNOT(a,b)Rx(θ;b)=Rx(θ;b)CNOT(a,b);
第二交换规则:
第三交换规则:
CNOT(a,b)CNOT(a,c)=CNOT(a,c)CNOT(a,b);
CNOT(b,c)CNOT(a,c)=CNOT(a,c)CNOT(b,c);
其中,a、b、c分别表示三个不同的量子比特;Rz(θ;a)、Rx(θ;a)、分别表示作用在量子比特a上的四个不同且参数为θ的单量子比特操作;Rz(θ;b)、Rx(θ;b)、分别表示作用在量子比特b上的四个不同且参数为θ的单量子比特操作;CNOT(a,b)分别表示作用在量子比特a和b上的CNOT操作,CNOT(a,b)中的a表示控制量子比特,CNOT(a,b)中b的表示目标量子比特;CNOT(b,c)表示作用在量子比特b和c上的CNOT操作,CNOT(b,c)中的b表示控制量子比特,CNOT(b,c)中c的表示目标量子比特;CNOT(a,c)表示作用在量子比特a和c上的CNOT操作,CNOT(a,c)中的a表示控制量子比特,CNOT(a,c)中的c表示目标量子比特。
4.如权利要求2所述的方法,其特征在于,所述SWAP操作交换规则包括:
第四交换规则:
SWAP(a,b)U(a)=U(a)SWAP(a,b);
第五交换规则:
SWAP(a,b)CNOT(a,b)=CNOT(b,a)SWAP(a,b);
第六交换规则:
SWAP(a,b)CNOT(a,c)=CNOT(b,c)SWAP(a,b);
SWAP(a,b)CNOT(c,a)=CNOT(c,b)SWAP(a,b);
其中,a、b、c分别表示三个不同的量子比特;U(a)表示作用在量子比特a上的单量子比特操作;SWAP(a,b)表示作用在量子比特a和b上的SWAP操作;CNOT(a,b)表示作用在量子比特a和b上的CNOT操作,CNOT(a,b)中的a表示控制量子比特,CNOT(a,b)中b的表示目标量子比特;CNOT(b,a)表示作用在量子比特a和b上的CNOT操作,CNOT(b,a)中的b表示控制量子比特,CNOT(b,a)中的a表示目标量子比特;CNOT(b,c)表示作用在量子比特b和c上的CNOT操作,CNOT(b,c)中的b表示控制量子比特,CNOT(b,c)中c的表示目标量子比特;CNOT(c,b)表示作用在量子比特c和b上的CNOT操作,CNOT(c,b)中的c表示控制量子比特,CNOT(c,b)中的b表示目标量子比特;CNOT(a,c)表示作用在量子比特a和c上的CNOT操作,CNOT(a,c)中的a表示控制量子比特,CNOT(a,c)中的c表示目标量子比特;CNOT(c,a)表示作用在量子比特c和a上的CNOT操作,CNOT(c,a)中的c表示控制量子比特,CNOT(c,a)中的a表示目标量子比特。
5.如权利要求1所述的方法,其特征在于,在根据所述待执行指令重排方案,对待执行量子程序中指令顺序进行重排之后,所述方法还包括:
获取重排后的量子程序;
在量子计算机上执行重排后的量子程序。
6.一种基于指令重排的量子程序执行装置,其特征在于,包括:
指令交换规则配置模块,用于获取预先配置的指令交换规则;
指令重排方案确定模块,用于根据所述指令交换规则,确定对待执行量子程序中指令顺序进行重排的多个指令重排方案;
指令重排方案评估模块,用于利用代价函数评估各个指令重排方案对应的保真度,并根据各个指令重排方案对应的保真度,从多个指令重排方案中选择一个指令重排方案,作为待执行指令重排方案;
量子程序重排模块,用于根据所述待执行指令重排方案,对待执行量子程序中指令顺序进行重排;
其中,所述代价函数为:
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
量子程序执行模块,用于获取重排后的量子程序;以及在量子计算机上执行重排后的量子程序。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述基于指令重排的量子程序执行方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5任一项所述基于指令重排的量子程序执行方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110629719.1A CN113269325B (zh) | 2021-06-07 | 2021-06-07 | 基于指令重排的量子程序执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110629719.1A CN113269325B (zh) | 2021-06-07 | 2021-06-07 | 基于指令重排的量子程序执行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113269325A CN113269325A (zh) | 2021-08-17 |
CN113269325B true CN113269325B (zh) | 2022-11-25 |
Family
ID=77234350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110629719.1A Active CN113269325B (zh) | 2021-06-07 | 2021-06-07 | 基于指令重排的量子程序执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113269325B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113762517B (zh) * | 2021-08-25 | 2024-01-12 | 南通大学 | 一种提高量子计算保真度的量子位拓扑结构重构方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109961150A (zh) * | 2019-03-27 | 2019-07-02 | 中国科学技术大学 | 一种应对退相干的量子程序变换方法及系统 |
CN110825375A (zh) * | 2019-10-12 | 2020-02-21 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的转化方法、装置、存储介质和电子装置 |
CN112313677A (zh) * | 2018-01-31 | 2021-02-02 | 谷歌有限责任公司 | 用于实现量子门的通用控制 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11121725B2 (en) * | 2019-11-18 | 2021-09-14 | International Business Machines Corporation | Instruction scheduling facilitating mitigation of crosstalk in a quantum computing system |
-
2021
- 2021-06-07 CN CN202110629719.1A patent/CN113269325B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112313677A (zh) * | 2018-01-31 | 2021-02-02 | 谷歌有限责任公司 | 用于实现量子门的通用控制 |
CN109961150A (zh) * | 2019-03-27 | 2019-07-02 | 中国科学技术大学 | 一种应对退相干的量子程序变换方法及系统 |
CN110825375A (zh) * | 2019-10-12 | 2020-02-21 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的转化方法、装置、存储介质和电子装置 |
Non-Patent Citations (2)
Title |
---|
HyQuas: Hybrid Partitioner Based Quantum Circuit Software Mitigation of Crosstalk on Noisy Intermediate-Scale Quantum Computers;Prakash Murali等;《arXiv》;20200109;第1-15页 * |
Tackling the Qubit Mapping Problem for NISQ-Era Quantum Devices;Gushu Li;《ACM》;20190417;第1-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113269325A (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Miller | Cartesian genetic programming: its status and future | |
KR102618148B1 (ko) | 양자 회로를 위한 결함 허용 및 에러 정정 디코딩 방법 및 장치, 그리고 칩 | |
Häner et al. | Improved quantum circuits for elliptic curve discrete logarithms | |
KR20180112759A (ko) | 인시투(in-situ) 양자 오류 정정 | |
CN106164942A (zh) | 在Clifford+T基础上的“重复直到成功”电路的有效合成 | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
Van Dijk et al. | Tagged BDDs: Combining reduction rules from different decision diagram types | |
CN111914378B (zh) | 一种单振幅量子计算模拟方法及装置 | |
US20190244098A1 (en) | Optimization system, optimization apparatus, and optimization system control method | |
CN113269325B (zh) | 基于指令重排的量子程序执行方法及装置 | |
CN112884153A (zh) | 处理数据的方法和相关装置 | |
CN114548414B (zh) | 一种编译量子线路的方法、装置、存储介质及编译系统 | |
JP2020123270A (ja) | 演算装置 | |
Bernard et al. | Techniques for inferring context-free Lindenmayer systems with genetic algorithm | |
Saha | An incremental bisimulation algorithm | |
CN111931939A (zh) | 一种单振幅量子计算模拟方法 | |
CN113128015B (zh) | 预估单振幅模拟量子计算所需资源的方法和系统 | |
Potoček et al. | Multi-objective evolutionary algorithms for quantum circuit discovery | |
EP4141751A1 (en) | Error mitigation for sampling on quantum devices | |
Posthoff et al. | The Solution of Discrete Constraint Problems Using Boolean Models-The Use of Ternary Vectors for Parallel SAT-Solving | |
US20200356622A1 (en) | Arithmetic processing apparatus, arithmetic processing method, and non-transitory computer-readable storage medium for storing arithmetic processing program | |
Posthoff et al. | The solution of SAT problems using ternary vectors and parallel processing | |
Schmidt et al. | Solving iterated functions using genetic programming | |
US11960859B2 (en) | Automated process for discovering optimal programs and circuits in new computing platforms | |
WO2023165500A1 (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 |