量子测量模式至量子电路的编译方法、装置及电子设备转让专利

申请号 : CN202310147343.X

文献号 : CN116187463B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 方堃

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开提供了一种量子测量模式至量子电路的编译方法、装置及电子设备,涉及量子计算技术领域,具体涉及盲量子计算技术领域。具体实现方案为:获取量子测量模式的第一指令列表,第一指令列表包括态制备指令、纠缠指令和测量指令;基于第一指令列表,将量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到量子测量模式的第二指令列表,第一指令列表和所述第二指令列表中,各测量指令的相对位置顺序保持不变,且量子测量模式的同一个节点上的不同指令的相对位置顺序不变,不同指令的相对位置顺序为:从前至后为态制备指令、纠缠指令、测量指令;基于第二指令列表进行指令的等效编译,得到与量子测量模式等效的量子电路的第三指令列表。

权利要求 :

1.一种量子测量模式至量子电路的编译方法,包括:

获取量子测量模式的第一指令列表,所述第一指令列表包括态制备指令、纠缠指令和测量指令;

基于所述第一指令列表,将所述量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到所述量子测量模式的第二指令列表,所述第一指令列表和所述第二指令列表中,各所述测量指令的相对位置顺序保持不变,且所述量子测量模式的同一个节点上的不同指令的相对位置顺序不变,不同指令的相对位置顺序为:从前至后为态制备指令、纠缠指令、测量指令;

基于所述第二指令列表进行指令的等效编译,得到与所述量子测量模式等效的量子电路的第三指令列表。

2.根据权利要求1所述的方法,其中,所述基于所述第一指令列表,将所述量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到所述量子测量模式的第二指令列表,包括:将所述第一指令列表进行拆分,得到第一列表、第二列表和第三列表,所述第一列表为所述第一指令列表中的态制备指令构成的列表,所述第二列表为所述第一指令列表中的纠缠指令构成的列表,所述第三列表为所述第一指令列表中的测量指令构成的列表;

基于所述第二列表和所述第三列表,对所述量子测量模式中的纠缠指令进行推迟处理,得到第四列表,所述第四列表包括所述第二列表中的纠缠指令和所述第三列表中的测量指令,所述第四列表中,所述量子测量模式的同一个节点上的不同指令保持从前至后为纠缠指令、测量指令的相对位置顺序;

基于所述第一列表和所述第四列表,对所述量子测量模式中的态制备指令进行推迟处理,得到所述第二指令列表。

3.根据权利要求2所述的方法,其中,所述基于所述第二列表和所述第三列表,对所述量子测量模式中的纠缠指令进行推迟处理,得到第四列表,包括:对所述第二列表进行针对纠缠指令的遍历,并记录当前遍历的纠缠指令;

对所述第三列表进行针对测量指令的遍历,得到目标测量指令,所述当前遍历的纠缠指令所作用的节点包括所述目标测量指令所作用的节点;

将所述当前遍历的纠缠指令插入到所述第三列表中的第一位置,所述第一位置为所述目标测量指令在所述第三列表中的位置;

在所述第二列表遍历完成的情况下,将更新后的所述第三列表确定为所述第四列表。

4.根据权利要求2所述的方法,其中,所述基于所述第一列表和所述第四列表,对所述量子测量模式中的态制备指令进行推迟处理,得到所述第二指令列表,包括:对所述第一列表进行针对态制备指令的遍历,并记录当前遍历的态制备指令;

对所述第四列表进行针对纠缠指令的遍历,得到目标纠缠指令,所述目标纠缠指令所作用的节点包括所述当前遍历的态制备指令所作用的节点;

将所述当前遍历的态制备指令插入到所述第四列表中的第二位置,所述第二位置为所述目标纠缠指令在所述第四列表中的位置;

在所述第一列表遍历完成的情况下,将更新后的所述第四列表确定为所述第二指令列表。

5.根据权利要求1所述的方法,其中,所述基于所述第二指令列表进行指令的等效编译,得到与所述量子测量模式等效的量子电路的第三指令列表,包括:针对所述第二指令列表中每一指令,执行如下操作:

获取所述指令所作用的目标节点;

基于所述目标节点和寄存单元字典,确定为所述目标节点分配的量子电路的寄存单元的目标标识,所述寄存单元字典包括寄存单元与所述量子测量模式中节点的对应关系;

基于所述目标标识,对所述指令进行等效编译,得到与所述指令等效的量子电路中指令;

其中,所述第三指令列表包括等效编译得到的所述量子电路中指令。

6.根据权利要求5所述的方法,其中,所述基于所述目标节点和寄存单元字典,确定为所述目标节点分配的量子电路的寄存单元的目标标识,包括如下至少一项:在查询到所述寄存单元字典中包括所述目标节点的对应关系的情况下,将所述目标节点对应的寄存单元的标识确定为所述目标标识;

在查询到所述寄存单元字典中未包括所述目标节点的对应关系的情况下,基于所述寄存单元字典为所述目标节点分配寄存单元,将所述目标节点所分配的寄存单元的标识确定为所述目标标识,并基于所述目标节点所分配的寄存单元的标识更新所述寄存单元字典。

7.根据权利要求6所述的方法,其中,所述基于所述寄存单元字典为所述目标节点分配寄存单元,包括如下至少一项:在查询到所述寄存单元字典中包括第一寄存单元的标识的情况下,将所述第一寄存单元分配给所述目标节点,所述第一寄存单元为未分配给节点的寄存单元;

在查询到所述寄存单元字典中不包括所述第一寄存单元的标识的情况下,获取所述寄存单元字典所表征的寄存单元的数量,基于所述数量确定所创建的第二寄存单元的标识,并将所述第二寄存单元分配给所述目标节点。

8.根据权利要求7所述的方法,其中,所述第一寄存单元为未分配给节点的寄存单元中标识最小的寄存单元。

9.根据权利要求5所述的方法,其中,所述基于所述目标标识,对所述指令进行等效编译,得到与所述指令等效的量子电路中指令,包括如下至少一项:在所述指令为态制备指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的重置操作指令,所述重置操作指令用于将所述目标标识对应的寄存单元的量子态重置为所述态制备指令所指示的量子态;

在所述指令为纠缠指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的量子门操作指令,所述量子门操作指令用于基于所述目标标识对应的寄存单元进行所述纠缠指令对应的量子门操作;

在所述指令为测量指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的量子测量操作指令,所述量子测量操作指令用于基于所述目标标识对应的寄存单元进行所述测量指令指示的量子测量操作。

10.根据权利要求9所述的方法,其中,在所述指令为测量指令的情况下,所述量子测量操作指令包括测量标识,所述测量标识为所述测量指令所作用的节点标识。

11.根据权利要求9所述的方法,其中,在所述指令为测量指令的情况下,所述基于所述目标标识,将所述指令等效编译成量子电路中的量子测量操作指令之后,所述方法还包括:基于所述目标标识,更新所述寄存单元字典,更新后的所述寄存单元字典指示所述目标标识对应的寄存单元为未分配给节点的寄存单元。

12.一种量子测量模式至量子电路的编译装置,包括:

第一获取模块,用于获取量子测量模式的第一指令列表,所述第一指令列表包括态制备指令、纠缠指令和测量指令;

推迟处理模块,用于基于所述第一指令列表,将所述量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到所述量子测量模式的第二指令列表,所述第一指令列表和所述第二指令列表中,各所述测量指令的相对位置顺序保持不变,且所述量子测量模式的同一个节点上的不同指令的相对位置顺序不变,不同指令的相对位置顺序为:从前至后为态制备指令、纠缠指令、测量指令;

等效编译模块,用于基于所述第二指令列表进行指令的等效编译,得到与所述量子测量模式等效的量子电路的第三指令列表。

13.根据权利要求12所述的装置,其中,所述推迟处理模块包括:

拆分子模块,用于将所述第一指令列表进行拆分,得到第一列表、第二列表和第三列表,所述第一列表为所述第一指令列表中的态制备指令构成的列表,所述第二列表为所述第一指令列表中的纠缠指令构成的列表,所述第三列表为所述第一指令列表中的测量指令构成的列表;

第一推迟处理子模块,用于基于所述第二列表和所述第三列表,对所述量子测量模式中的纠缠指令进行推迟处理,得到第四列表,所述第四列表包括所述第二列表中的纠缠指令和所述第三列表中的测量指令,所述第四列表中,所述量子测量模式的同一个节点上的不同指令保持从前至后为纠缠指令、测量指令的相对位置顺序;

第二推迟处理子模块,用于基于所述第一列表和所述第四列表,对所述量子测量模式中的态制备指令进行推迟处理,得到所述第二指令列表。

14.根据权利要求13所述的装置,其中,所述第一推迟处理子模块,具体用于:对所述第二列表进行针对纠缠指令的遍历,并记录当前遍历的纠缠指令;

对所述第三列表进行针对测量指令的遍历,得到目标测量指令,所述当前遍历的纠缠指令所作用的节点包括所述目标测量指令所作用的节点;

将所述当前遍历的纠缠指令插入到所述第三列表中的第一位置,所述第一位置为所述目标测量指令在所述第三列表中的位置;

在所述第二列表遍历完成的情况下,将更新后的所述第三列表确定为所述第四列表。

15.根据权利要求13所述的装置,其中,所述第二推迟处理子模块,具体用于:对所述第一列表进行针对态制备指令的遍历,并记录当前遍历的态制备指令;

对所述第四列表进行针对纠缠指令的遍历,得到目标纠缠指令,所述目标纠缠指令所作用的节点包括所述当前遍历的态制备指令所作用的节点;

将所述当前遍历的态制备指令插入到所述第四列表中的第二位置,所述第二位置为所述目标纠缠指令在所述第四列表中的位置;

在所述第一列表遍历完成的情况下,将更新后的所述第四列表确定为所述第二指令列表。

16.根据权利要求12所述的装置,其中,所述等效编译模块包括:

节点获取子模块,用于针对所述第二指令列表中每一指令,获取所述指令所作用的目标节点;

确定子模块,用于基于所述目标节点和寄存单元字典,确定为所述目标节点分配的量子电路的寄存单元的目标标识,所述寄存单元字典包括寄存单元与所述量子测量模式中节点的对应关系;

等效编译子模块,用于基于所述目标标识,对所述指令进行等效编译,得到与所述指令等效的量子电路中指令,所述第三指令列表包括等效编译得到的所述量子电路中指令。

17.根据权利要求16所述的装置,其中,所述确定子模块包括:

第一确定单元,用于在查询到所述寄存单元字典中包括所述目标节点的对应关系的情况下,将所述目标节点对应的寄存单元的标识确定为所述目标标识;

第二确定单元,用于在查询到所述寄存单元字典中未包括所述目标节点的对应关系的情况下,基于所述寄存单元字典为所述目标节点分配寄存单元,将所述目标节点所分配的寄存单元的标识确定为所述目标标识,并基于所述目标节点所分配的寄存单元的标识更新所述寄存单元字典。

18.根据权利要求17所述的装置,其中,所述第二确定单元,具体用于:在查询到所述寄存单元字典中包括第一寄存单元的标识的情况下,将所述第一寄存单元分配给所述目标节点,所述第一寄存单元为未分配给节点的寄存单元;

在查询到所述寄存单元字典中不包括所述第一寄存单元的标识的情况下,获取所述寄存单元字典所表征的寄存单元的数量,基于所述数量确定所创建的第二寄存单元的标识,并将所述第二寄存单元分配给所述目标节点。

19.根据权利要求18所述的装置,其中,所述第一寄存单元为未分配给节点的寄存单元中标识最小的寄存单元。

20.根据权利要求16所述的装置,其中,所述等效编译子模块包括:第一等效编译单元,用于在所述指令为态制备指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的重置操作指令,所述重置操作指令用于将所述目标标识对应的寄存单元的量子态重置为所述态制备指令所指示的量子态;

第二等效编译单元,用于在所述指令为纠缠指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的量子门操作指令,所述量子门操作指令用于基于所述目标标识对应的寄存单元进行所述纠缠指令对应的量子门操作;

第三等效编译单元,用于在所述指令为测量指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的量子测量操作指令,所述量子测量操作指令用于基于所述目标标识对应的寄存单元进行所述测量指令指示的量子测量操作。

21.根据权利要求20所述的装置,其中,在所述指令为测量指令的情况下,所述量子测量操作指令包括测量标识,所述测量标识为所述测量指令所作用的节点标识。

22.根据权利要求20所述的装置,其中,在所述指令为测量指令的情况下,所述装置还包括:更新模块,用于基于所述目标标识,更新所述寄存单元字典,更新后的所述寄存单元字典指示所述目标标识对应的寄存单元为未分配给节点的寄存单元。

23.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑11中任一项所述的方法。

24.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1‑11中任一项所述的方法。

25.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1‑11中任一项所述的方法。

说明书 :

量子测量模式至量子电路的编译方法、装置及电子设备

技术领域

[0001] 本公开涉及量子计算技术领域,尤其涉及盲量子计算技术领域,具体涉及一种量子测量模式至量子电路的编译方法、装置及电子设备。

背景技术

[0002] 量子计算利用量子世界中特有的运行规律,提供一种全新的且非常有前景的信息处理方式。其计算的本质是通过特定方式将初始制备的量子态演化成预期的另一个量子态,并在演化后的量子态上做测量以获得计算结果。
[0003] 在不同量子计算模型下,量子态的演化方式各异。比较常用的量子电路模型通过对量子态进行量子门操作来完成演化,该模型可以理解为经典计算模型的量子版本,被广泛地应用在量子计算领域中。而单向量子计算机(one‑way quantum computer,1WQC)模型是一种完全不同于量子电路模型的计算方式。
[0004] 量子电路模型和1WQC模型都是通用的量子计算模型,可以实现任意的量子算法。但由于两种模型的计算方式不同,具体量子算法的表述方式也不同。

发明内容

[0005] 本公开提供了一种量子测量模式至量子电路的编译方法、装置及电子设备。
[0006] 根据本公开的第一方面,提供了一种量子测量模式至量子电路的编译方法,包括:
[0007] 获取量子测量模式的第一指令列表,所述第一指令列表包括态制备指令、纠缠指令和测量指令;
[0008] 基于所述第一指令列表,将所述量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到所述量子测量模式的第二指令列表,所述第一指令列表和所述第二指令列表中,各所述测量指令的相对位置顺序保持不变,且所述量子测量模式的同一个节点上的不同指令的相对位置顺序不变,不同指令的相对位置顺序为:从前至后为态制备指令、纠缠指令、测量指令;
[0009] 基于所述第二指令列表进行指令的等效编译,得到与所述量子测量模式等效的量子电路的第三指令列表。
[0010] 根据本公开的第二方面,提供了一种量子测量模式至量子电路的编译装置,包括:
[0011] 第一获取模块,用于获取量子测量模式的第一指令列表,所述第一指令列表包括态制备指令、纠缠指令和测量指令;
[0012] 推迟处理模块,用于基于所述第一指令列表,将所述量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到所述量子测量模式的第二指令列表,所述第一指令列表和所述第二指令列表中,各所述测量指令的相对位置顺序保持不变,且所述量子测量模式的同一个节点上的不同指令的相对位置顺序不变,不同指令的相对位置顺序为:从前至后为态制备指令、纠缠指令、测量指令;
[0013] 等效编译模块,用于基于所述第二指令列表进行指令的等效编译,得到与所述量子测量模式等效的量子电路的第三指令列表。
[0014] 根据本公开的第三方面,提供了一种电子设备,包括:
[0015] 至少一个处理器;以及
[0016] 与至少一个处理器通信连接的存储器;其中,
[0017] 存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面中的任一项方法。
[0018] 根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行第一方面中的任一项方法。
[0019] 根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现第一方面中的任一项方法。
[0020] 根据本公开的技术解决了1WQC模型运行比较困难的问题,简化了1WQC模型的运行。
[0021] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0022] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0023] 图1是根据本公开第一实施例的量子测量模式至量子电路的编译方法的流程示意图;
[0024] 图2是一示例的量子电路图的结构示意图;
[0025] 图3是一示例的1WQC模型的量子测量模式的结构示意图;
[0026] 图4是根据本公开第二实施例的量子测量模式至量子电路的编译装置的结构示意图;
[0027] 图5是用来实施本公开的实施例的示例电子设备的示意性框图。

具体实施方式

[0028] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0029] 第一实施例
[0030] 如图1所示,本公开提供一种量子测量模式至量子电路的编译方法,包括如下步骤:
[0031] 步骤S101:获取量子测量模式的第一指令列表,所述第一指令列表包括态制备指令、纠缠指令和测量指令。
[0032] 本实施例中,量子测量模式至量子电路的编译方法涉及量子计算技术领域,尤其涉及盲量子计算技术领域,其可以广泛应用于盲量子计算协议设计场景中。本公开实施例的量子测量模式至量子电路的编译方法,可以由本公开实施例的量子测量模式至量子电路的编译装置执行。本公开实施例的量子测量模式至量子电路的编译装置可以配置在任意电子设备中,以执行本公开实施例的量子测量模式至量子电路的编译方法。
[0033] 量子电路模型和1WQC模型都是通用的量子计算模型,可以实现任意的量子算法。但由于两种模型的计算方式不同,具体量子算法的表述方式也不同。量子电路模型中的算法通常采用量子电路来描述,具体包含初始量子态、量子门和量子测量操作。而1WQC模型中的算法则是采用量子测量模式来描述,具体包含计算空间、输入节点、输出节点和计算指令。
[0034] 可以简单地将量子电路模型和1WQC模型理解为两种不同的量子计算语言,类似于使用的不同语言(例如中文、英文等),每种表述方式都有其独特的优势。虽然这两种量子计算语言都能表述任意的量子算法,但是语言之间的转化翻译非常复杂。也即不同量子计算方式之间的转化是量子计算中的一个基本问题。
[0035] 在一应用场景中,盲量子计算是量子互联网中的一种重要应用,可以在保护用户隐私的同时进行云代理计算。现有的盲量子计算协议均是基于1WQC模型进行开发的。然而,要想直接实现1WQC模型的算法,会有至少两个难点:1)1WQC模型需要用到大量的量子比特;2)当前的量子计算机多是基于超导、离子阱等平台进行开发的,更适合运行量子电路模型的算法,无法直接运行1WQC模型的算法。
[0036] 而本实施例的目的即在于将量子测量模式翻译成量子电路,一方面可以提供量子算法研究的新角度,加速量子算法研发;另一方面,在实际应用中也可以充分利用不同量子计算语言的优势,更高效的进行算法的设计和执行。并且,将1WQC模型相应的量子测量模式编译成等效的量子电路模型相应的动态量子电路,还可以大大降低执行所需的量子比特数,更方便地在超导、离子阱等量子硬件平台上执行。
[0037] 以下详细介绍1WQC模型和量子电路模型。
[0038] 量子电路模型是一种常用的量子计算模型。通过对初始量子态进行量子门操作完成量子态的演化,并通过量子测量提取计算结果。而量子电路图则表示了量子电路模型计算的全部过程。
[0039] 图2是一示例的量子电路图的结构示意图,如图2所示,可以用一根水平线表示一个量子比特系统,从上至下依次对量子比特位进行标号,其中,量子位的标号往往从零开始。
[0040] 量子电路图中时间演化的方向从左到右,最左端为初始的量子态,其中,通常每个量子比特初始化为零态,之后对初始态依次作用不同的量子门操作以完成量子态的演化。同时可以对某些量子位进行量子测量,获得测量结果。
[0041] 在一些应用场景中,量子电路中的操作可能会出现对一部分量子比特进行量子测量,并根据测量结果来调控其余的量子比特的演化,此类操作称为经典控制量子操作,如图2所示的经典控制量子门201。而经过测量后的量子比特则可以被重置,该类操作可以称之为重置操作,如图2所示的重置操作202,以供后续计算继续使用。可以将包含中间测量、经典控制量子操作以及重置操作的量子电路称为动态量子电路,如图2表示的量子电路即为动态量子电路。
[0042] 量子电路图中除了初始态之外其余部分,通常可以按照量子门的作用顺序用一个有序的指令列表进行表示,列表中的每一个元素代表一个量子门、经典控制量子门、量子测量或重置操作指令。具体地,可以将:
[0043] 每一个单量子比特门(如H,X,Y,Z,S,T,Rx,Ry,Rz等)表示为一个包含四个元素的指令[name,which_qubit,parameters,condition]。其中,name为量子门的名称,which_qubit为量子门作用的量子位,parameters为量子门的参数(如没有参数则默认为None),condition表示该量子门操作受哪一个量子位的测量结果控制(如果没有参数则默认为None)。
[0044] 例如,[Rx,2,pi,None]表示对量子位2上的量子比特作用一个Rx旋转门,旋转角度为pi。又例如,图2中经典控制量子门201为经典受控量子X门,可以表示为[X,2,None,‘a’],即作用在量子位2上的泡利Pauli X门,受控条件为测量标识ID为‘a’的测量结果,测量结果为0则不作用量子门,测量结果为1则作用量子门。
[0045] 每一个双量子比特门(如控制非门CNOT,CZ门)表示为一个包含四个元素的指令[name,which_qubit,parameters,condition]。其中,name为量子门的名称,which_qubit为该双量子比特门作用的量子位构成的列表(特别地,对于受控量子门,为控制位和受控位构成的列表),parameters为量子门的参数(如没有参数则默认为None),condition表示该量子门操作受哪一个量子位的测量结果控制(如果没有参数则默认为None)。
[0046] 例如,[CNOT,[1,3],None,None]表示对量子位1和量子位3作用控制非门,其中,量子位1为控制位,量子位3为受控位。[CZ,[1,2],None,None]表示在量子位1和量子位2之间作用CZ门。
[0047] 每一个单比特测量表示为一个包含四个元素的指令[measure,which_qubit,basis,mid]。其中,basis由四个参数决定,其包括测量角度angle,测量平面plane,域集s,域集t,而mid为标识当前测量的标识ID。
[0048] 例如,[measure,2,[0,‘YZ’,[1],[2]],‘a’]表示对量子位2进行测量,测量角度为0,测量平面为‘YZ’平面,域集s为量子位1,域集t为量子位2,当前测量指令的标识ID为‘a’。
[0049] 每一个重置操作指令可以表示为一个包含四个元素的指令[reset,which_qubit,matrix,None]。其中,which_qubit为需要重置的量子位,matrix为需要重置比特的量子态矩阵,经过重置操作后的量子比特可供后续计算继续使用。
[0050] 1WQC模型是一种不同于量子电路模型的另一种量子计算方式。该模型的核心思想在于对一个量子纠缠态的部分比特进行测量,未被测量的量子系统将会实现相应的演化,并且通过对测量方式的控制,可以实现任意需要的演化。
[0051] 1WQC模型下的计算过程主要分为三个步骤:第一步,准备一个资源态,即一个高度纠缠的多体量子态,该量子态可以在计算开始之前准备好,且可以与具体计算任务无关;第二步,对准备好的资源态的每个比特依次做单比特测量,其中后续比特的测量方式可以根据已经被测量的比特的测量结果做出相应调整,即允许适应性测量;第三步,对所有比特的测量结果进行经典数据处理,即可得到需要的计算结果。
[0052] 图3是一示例的1WQC模型的量子测量模式的结构示意图。如图3所示,图中网格代表了一种常用的量子资源态,网格上的每个节点都代表了一个量子比特,整个网格则代表了一个高度纠缠的量子态。
[0053] 可以依次对每个比特进行测量,节点中的X,Y,Z,XY等表示对应的测量基。将所有节点按照预设规则进行测量后,可以对测量结果进行统计即可完成计算任务。
[0054] 一个1WQC模型的算法也可以用测量模式来描述。每个测量模式由四个部分组成:计算空间、输入节点、输出节点和计算指令,即测量模式可以表示为:测量模式P=(计算空间S,输入节点I,输出节点O,计算指令C)。
[0055] 其中,“计算空间”为所有1WQC模型所涉及到的节点集合,“输入节点”为初始量子态的节点集合,“输出节点”为量子态或测量结果的输出节点集合,“计算指令”为下表1中的三种基本指令构成的有序列表(约定计算指令从左往右读取),并且标准顺序中所有态制备指令排在最前面,之后是纠缠指令,之后是所有的测量指令。其中,态制备指令和纠缠指令共同决定上述1WQC模型中的多体纠缠态的制备过程。
[0056] 表1测量模式中计算指令的存储规则和执行方式表
[0057]
[0058] 在步骤S101中,量子测量模式即可以为1WQC的测量模式,第一指令列表即可以为测量模式中计算指令的部分,其用有序列表来表示,计算指令构成的列表即为第一指令列表。
[0059] 第一指令列表可以为标准的量子测量模式的指令列表,例如,第一指令列表为:[[N,0],[N,1],[N,2],[E,[0,1]],[E,[1,2]],[M,0],[M,1],[M,2]]。其中,标准的量子测量模式的指令列表中,所有态制备指令排在最前面,之后是纠缠指令,之后是所有的测量指令,为简化表述只写出指令的前两个参数。
[0060] 步骤S102:基于所述第一指令列表,将所述量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到所述量子测量模式的第二指令列表,所述第一指令列表和所述第二指令列表中,各所述测量指令的相对位置顺序保持不变,且所述量子测量模式的同一个节点上的不同指令的相对位置顺序不变,不同指令的相对位置顺序为:从前至后为态制备指令、纠缠指令、测量指令。
[0061] 该步骤中,量子测量模式中的态制备指令和纠缠指令即为第一指令列表中的态制备指令和纠缠指令。
[0062] 由于标准的量子测量模式中,态制备指令在所有指令的最前面,之后是纠缠指令,再是测量指令。可以将量子测量模式的态制备指令和纠缠指令进行推迟处理。
[0063] 在一可选实施方式中,可以通过指令之间的顺序交换将第一指令列表中这些指令向指令列表的右端移动,得到量子测量模式的第二指令列表。
[0064] 在另一可选实施方式中,可以将第一指令列表中的指令进行重排,以达到将第一指令列表中的态制备指令和纠缠指令进行推迟处理的效果,得到第二指令列表。
[0065] 在进行推迟处理时,其推迟处理受如下限制:
[0066] 所有测量指令的相对位置顺序需保持不变;
[0067] 同一个节点上的不同指令需要保持从前至后为态制备指令、纠缠指令、测量指令的相对位置顺序不变。
[0068] 在通过指令之间的顺序交换将第一指令列表中这些指令向指令列表的右端移动时,还需要限制:不同类型指令交换的前提是这两个指令所作用的系统没有交集。
[0069] 在这些限制的前提下,第一指令列表和第二指令列表中,各测量指令的相对位置顺序保持不变,且量子测量模式的同一个节点上的不同指令保持从前至后为态制备指令、纠缠指令、测量指令的相对位置顺序不变。
[0070] 比如,第一指令列表为:[[N,0],[N,1],[N,2],[E,[0,1]],[E,[1,2]],[M,0],[M,1],[M,2]],那么推迟处理之后,获得的第二指令列表为[[N,0],[N,1],[E,[0,1]],[M,0],[N,2],[E,[1,2]],[M,1],[M,2]]。
[0071] 步骤S103:基于所述第二指令列表进行指令的等效编译,得到与所述量子测量模式等效的量子电路的第三指令列表。
[0072] 该步骤中,可以针对第二指令列表中每一指令,对该指令进行等效编译,以将该指令编译成与该指令等效的量子电路中指令。其中,该量子电路可以为动态量子电路。
[0073] 可以按照第二指令列表中指令的排序顺序,依次对第二指令列表中的指令进行等效编译,在编译完成的情况下,可以得到与量子测量模式等效的量子电路的第三指令列表。
[0074] 在进行等效编译时,可以获取第二指令列表中指令的节点,为该节点分配寄存单元,该寄存单元可以对应量子电路中的量子比特。也即可以将指令映射到一个动态量子电路上,具体可以将量子测量模式中每个节点(即第二指令列表中指令所指示的节点)上的运算动态加载至量子电路的寄存单元中。
[0075] 在一可选实施方式中,如果第二指令列表中指令所指示的当前节点已经被加载(即已经为该节点分配了寄存单元),则该指令可以在相应寄存单元上执行,也即第二指令列表中不同指令若指示相同节点,则这些指令均可以在该节点所分配的寄存单元上执行。而如果当前节点没有被加载,则可以为其分配一个寄存单元。如此,可以大大降低执行模型时所需的量子比特数。
[0076] 本实施例中,通过获取量子测量模式的第一指令列表,所述第一指令列表包括态制备指令、纠缠指令和测量指令;基于所述第一指令列表,将所述量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到所述量子测量模式的第二指令列表,所述第一指令列表和所述第二指令列表中,各所述测量指令的相对位置顺序保持不变,且所述量子测量模式的同一个节点上的不同指令的相对位置顺序不变,不同指令的相对位置顺序为:从前至后为态制备指令、纠缠指令、测量指令;基于所述第二指令列表进行指令的等效编译,得到与所述量子测量模式等效的量子电路的第三指令列表。如此,可以实现量子测量模式至量子电路的编译,大大降低执行模型时所需的量子比特数,并且可以更方便地在超导、离子阱等量子硬件平台上执行。
[0077] 可选的,所述步骤S102具体包括:
[0078] 将所述第一指令列表进行拆分,得到第一列表、第二列表和第三列表,所述第一列表为所述第一指令列表中的态制备指令构成的列表,所述第二列表为所述第一指令列表中的纠缠指令构成的列表,所述第三列表为所述第一指令列表中的测量指令构成的列表;
[0079] 基于所述第二列表和所述第三列表,对所述量子测量模式中的纠缠指令进行推迟处理,得到第四列表,所述第四列表包括所述第二列表中的纠缠指令和所述第三列表中的测量指令,所述第四列表中,所述量子测量模式的同一个节点上的不同指令保持从前至后为纠缠指令、测量指令的相对位置顺序;
[0080] 基于所述第一列表和所述第四列表,对所述量子测量模式中的态制备指令进行推迟处理,得到所述第二指令列表。
[0081] 本实施方式中,可以先将量子测量模式中的纠缠指令进行推迟处理,在纠缠指令推迟处理完成的情况下,再对量子测量模式中的态制备指令进行推迟处理,相应可以将量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到第二指令列表。
[0082] 具体的,在分别进行推迟处理的情况下,可以将第一指令列表进行拆分,其拆分的结果是得到三个列表,分别为所有态制备指令构成的列表(即第一列表)记为commands_N,所有纠缠指令构成的列表(即第二列表)记为commands_E,所有测量指令构成的列表(即第三列表)记为new_commands。
[0083] 可以基于第二列表和第三列表,对量子测量模式中的纠缠指令进行推迟处理,得到第四列表,在进行推迟处理时,其推迟处理受如下限制:
[0084] 所有测量指令的相对位置顺序需保持不变;
[0085] 同一个节点上的不同指令需要保持从前至后为纠缠指令、测量指令的相对位置顺序不变;
[0086] 不同类型指令交换的前提是这两个指令所作用的系统没有交集。
[0087] 相应的,第四列表中,量子测量模式的同一个节点上的不同指令保持从前至后为纠缠指令、测量指令的相对位置顺序,且第四列表中测量指令的相对位置顺序与第三列表中测量指令的相对位置顺序相同。
[0088] 之后,在纠缠指令推迟处理完成的情况下,可以基于第一列表和第四列表,对量子测量模式中的态制备指令进行推迟处理,得到第二指令列表。在进行推迟处理时,其推迟处理受如下限制:
[0089] 所有测量指令的相对位置顺序需保持不变;
[0090] 同一个节点上的不同指令需要保持从前至后为态制备指令、纠缠指令、测量指令的相对位置顺序不变;
[0091] 不同类型指令交换的前提是这两个指令所作用的系统没有交集。
[0092] 本实施方式中,通过先将量子测量模式中的纠缠指令进行推迟处理,在纠缠指令推迟处理完成的情况下,再对量子测量模式中的态制备指令进行推迟处理,相应可以将量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到第二指令列表。如此,可以简化将量子测量模式中的态制备指令和纠缠指令进行推迟处理的过程。
[0093] 可选的,所述基于所述第二列表和所述第三列表,对所述量子测量模式中的纠缠指令进行推迟处理,得到第四列表,包括:
[0094] 对所述第二列表进行针对纠缠指令的遍历,并记录当前遍历的纠缠指令;
[0095] 对所述第三列表进行针对测量指令的遍历,得到目标测量指令,所述当前遍历的纠缠指令所作用的节点包括所述目标测量指令所作用的节点;
[0096] 将所述当前遍历的纠缠指令插入到所述第三列表中的第一位置,所述第一位置为所述目标测量指令在所述第三列表中的位置;
[0097] 在所述第二列表遍历完成的情况下,将更新后的所述第三列表确定为所述第四列表。
[0098] 本实施方式中,可以对第二列表进行针对纠缠指令的遍历,并记录当前遍历的纠缠指令,可以记为cmd_E。
[0099] 在对第二列表进行针对纠缠指令的遍历过程中,可以对第三列表进行针对测量指令的遍历,以得到目标测量指令,目标测量指令所作用的节点包含在当前遍历的纠缠指令cmd_E所作用的节点之中。
[0100] 在遍历得到目标测量指令的情况下,将当前遍历的纠缠指令cmd_E插入到第三列表中目标测量指令在第三列表中的位置(如第i位),而第三列表中,目标测量指令以及位于第i位之后的指令依次向右端移动。否则继续对第三列表进行针对测量指令的遍历,直至遍历到目标测量指令。
[0101] 相应的,在对第二列表遍历完成的情况下,将更新后的第三列表确定为第四列表。如此,可以实现对量子测量模式中的纠缠指令进行推迟处理的过程。
[0102] 可选的,所述基于所述第一列表和所述第四列表,对所述量子测量模式中的态制备指令进行推迟处理,得到所述第二指令列表,包括:
[0103] 对所述第一列表进行针对态制备指令的遍历,并记录当前遍历的态制备指令;
[0104] 对所述第四列表进行针对纠缠指令的遍历,得到目标纠缠指令,所述目标纠缠指令所作用的节点包括所述当前遍历的态制备指令所作用的节点;
[0105] 将所述当前遍历的态制备指令插入到所述第四列表中的第二位置,所述第二位置为所述目标纠缠指令在所述第四列表中的位置;
[0106] 在所述第一列表遍历完成的情况下,将更新后的所述第四列表确定为所述第二指令列表。
[0107] 本实施方式中,可以对第一列表进行针对态制备指令的遍历,并记录当前遍历的态制备指令,可以记为cmd_N。
[0108] 在对第一列表进行针对态制备指令的遍历过程中,可以对第四列表进行针对纠缠指令的遍历,以得到目标纠缠指令,目标纠缠指令所作用的节点包含当前遍历的态制备指令cmd_N所作用的节点。
[0109] 在遍历得到目标纠缠指令的情况下,将当前遍历的态制备指令cmd_N插入到第四列表中目标纠缠指令在第四列表中的位置(如第j位),而第四列表中,目标纠缠指令以及位于第j位之后的指令依次向右端移动。否则继续对第四列表进行针对纠缠指令的遍历,直至遍历到目标纠缠指令。
[0110] 相应的,在对第一列表遍历完成的情况下,将更新后的第四列表确定为第二指令列表。如此,可以实现对量子测量模式中的态制备指令进行推迟处理的过程。
[0111] 将量子测量模式中的态制备指令和纠缠指令进行推迟处理的过程具体如下:
[0112] 输入:量子测量模式的第一指令列表commands;
[0113] 输出:重新排序后的指令列表,即第二指令列表。
[0114] 步骤1:将第一指令列表中所有态制备指令构成的列表记为commands_N(即第一列表),所有纠缠指令构成的列表记为commands_E(即第二列表),所有测量指令构成的列表记为new_commands(即第三列表);
[0115] 步骤2:循环遍历列表commands_E,记录当前被循环的元素为cmd_E,并执行以下操作a):
[0116] a)循环遍历列表new_commands,记录当前被循环的元素为cmd,并且cmd处于new_commands的第i位;如果cmd为测量指令,并且所作用的节点包含在cmd_E所作用的节点之中,则将cmd_E插入到new_commands列表的第i位,并跳出本层循环;否则,继续遍历列表new_commands;
[0117] 步骤3:循环遍历列表commands_N,记录当前被循环的元素为cmd_N,并执行以下操作b):
[0118] b)循环遍历列表new_commands,记录当前被循环的元素为cmd,并且cmd处于new_commands的第j位:如果cmd为纠缠指令,并且所作用的节点包含cmd_N所作用的节点,则将cmd_N插入到new_commands列表的第j位,跳出本层循环;否则,继续遍历列表new_commands;
[0119] 步骤4:返回new_commands列表作为输出,即输出第二指令列表。
[0120] 可选的,所述步骤S103具体包括:
[0121] 针对所述第二指令列表中每一指令,执行如下操作:
[0122] 获取所述指令所作用的目标节点;
[0123] 基于所述目标节点和寄存单元字典,确定为所述目标节点分配的量子电路的寄存单元的目标标识,所述寄存单元字典包括寄存单元与所述量子测量模式中节点的对应关系;
[0124] 基于所述目标标识,对所述指令进行等效编译,得到与所述指令等效的量子电路中指令;
[0125] 其中,所述第三指令列表包括等效编译得到的所述量子电路中指令。
[0126] 本实施方式中,可以针对第二指令列表中每个指令进行等效编译。
[0127] 第二指令列表中指令可以包括指令类型和所作用的节点标号vertex,可以通过获取vertex,即可以获取指令所作用的目标节点。
[0128] 可以基于目标节点和所构建的寄存单元字典,确定为目标节点分配的量子电路的寄存单元的目标标识。其中,寄存单元字典可以用于对寄存单元的状态进行记录,即寄存单元字典中数据的键可以是寄存单元的标识如标号,对应的值可以是寄存单元被分配给了量子测量模式中的哪个节点。
[0129] 例如,寄存单元字典可以为:{0:a,1:None,2:b},表示寄存单元0被分配给了节点a,寄存单元1为空闲(即寄存单元1未被分配),寄存单元2被分配给了节点b。
[0130] 在一可选实施方式中,进行第二指令列表的等效编译之前,可以构建一个为空的寄存单元字典,相应的,在进行第二指令列表中指令的等效编译时,可以基于寄存单元字典为指令所指示的节点分配寄存单元(如寄存单元字典为空的情况下,可以创建一个新的寄存单元,记录该寄存单元的标识),并基于节点与寄存单元的对应关系更新寄存单元字典,以对寄存单元的状态进行记录。之后,可以基于第二指令列表中指令所指示的节点和更新的寄存单元字典,继续进行第二指令列表中指令的等效编译。
[0131] 在得到目标标识的情况下,可以基于目标标识,对第二指令列表中的指令进行等效编译,其中,目标标识可以指示与该指令等效的量子电路中指令所作用的量子比特的量子位。其等效编译的过程将在以下实施方式再进行详细说明。
[0132] 如此,可以实现量子测量模式的指令的等效编译,以得到与量子测量模式等效的量子电路中指令。
[0133] 可选的,所述基于所述目标节点和寄存单元字典,确定为所述目标节点分配的量子电路的寄存单元的目标标识,包括如下至少一项:
[0134] 在查询到所述寄存单元字典中包括所述目标节点的对应关系的情况下,将所述目标节点对应的寄存单元的标识确定为所述目标标识;
[0135] 在查询到所述寄存单元字典中未包括所述目标节点的对应关系的情况下,基于所述寄存单元字典为所述目标节点分配寄存单元,将所述目标节点所分配的寄存单元的标识确定为所述目标标识,并基于所述目标节点所分配的寄存单元的标识更新所述寄存单元字典。
[0136] 本实施方式中,如果第二指令列表中指令所指示的当前节点已经被加载(即已经为该节点分配了寄存单元),也即寄存单元字典中可以包括目标节点的对应关系(如0:a,节点a为目标节点),则可以将目标节点对应的寄存单元的标识确定为目标标识(如将标识0确定为目标标识),也即该指令可以在目标标识对应的寄存单元上执行。
[0137] 也就是说,若第二指令列表中位于该指令之前的指令也指示目标节点,且已经为该目标节点分配了寄存单元(即寄存单元字典记录了该对应关系),则这些指令均可以在该目标节点所分配的寄存单元上执行。
[0138] 而如果当前节点没有被加载(也即寄存单元字典中未包括目标节点的对应关系),则可以为其分配一个寄存单元,将目标节点所分配的寄存单元的标识确定为目标标识,同时基于目标节点所分配的寄存单元的标识更新寄存单元字典,即添加目标节点的标号与目标标识的对应关系至寄存单元字典中。如此,可以大大降低执行模型时所需的量子比特数。
[0139] 可选的,所述基于所述寄存单元字典为所述目标节点分配寄存单元,包括如下至少一项:
[0140] 在查询到所述寄存单元字典中包括第一寄存单元的标识的情况下,将所述第一寄存单元分配给所述目标节点,所述第一寄存单元为未分配给节点的寄存单元;
[0141] 在查询到所述寄存单元字典中不包括所述第一寄存单元的标识的情况下,获取所述寄存单元字典所表征的寄存单元的数量,基于所述数量确定所创建的第二寄存单元的标识,并将所述第二寄存单元分配给所述目标节点。
[0142] 本实施方式中,寄存单元是按需动态增加的,如果有空闲单元(如1:None,指示寄存单元1为空闲寄存单元),则优先分配空闲单元,否则创建一个新的寄存单元,并基于寄存单元字典所表征的寄存单元的数量(如寄存单元字典{0:a,1:b},表征寄存单元数量为2),确定所创建的第二寄存单元的标识,并将第二寄存单元分配给目标节点。这样可以保证编译出的动态量子电路的宽度尽可能小。
[0143] 可选的,所述第一寄存单元为未分配给节点的寄存单元中标识最小的寄存单元。
[0144] 本实施方式中,可以查找所有已创建的寄存单元中地址最小的空闲单元为节点进行寄存单元的分配,这样可以保证寄存单元分配准确且有秩序的进行。
[0145] 为节点进行寄存单元的分配的具体过程如下:
[0146] 输入:寄存单元字典qreg,量子测量模式中计算指令的节点标号vertex;
[0147] 输出:被分配的寄存单元的标号idx,更新后的寄存单元字典qreg。
[0148] 步骤1:在qreg中查找vertex,如果vertex已被分配寄存单元,则返回相应的寄存单元的标号idx,并返回寄存单元字典qreg;如果vertex未被分配寄存单元,则继续如下操作a):
[0149] 操作a)在qreg中查找空闲寄存单元,即对应值为None的寄存单元,将这些寄存单元的标号构成的列表记录为available_regs。如果available_regs不为空集,即当前存在空闲寄存单元,则找到available_regs中最小的寄存单元标号作为idx;如果available_regs为空集,表示当前不存在空闲寄存单元,计算qreg的长度为n,则创建一个寄存单元标号为n的新寄存单元,并记idx=n;对寄存单元qreg进行更新,将与idx存在对应关系的值写为vertex;
[0150] 步骤2:返回分配的量子寄存器单元标号idx和更新后的寄存单元字典qreg。
[0151] 可选的,所述基于所述目标标识,对所述指令进行等效编译,得到与所述指令等效的量子电路中指令,包括如下至少一项:
[0152] 在所述指令为态制备指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的重置操作指令,所述重置操作指令用于将所述目标标识对应的寄存单元的量子态重置为所述态制备指令所指示的量子态;
[0153] 在所述指令为纠缠指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的量子门操作指令,所述量子门操作指令用于基于所述目标标识对应的寄存单元进行所述纠缠指令对应的量子门操作;
[0154] 在所述指令为测量指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的量子测量操作指令,所述量子测量操作指令用于基于所述目标标识对应的寄存单元进行所述测量指令指示的量子测量操作。
[0155] 本实施方式中,第二指令列表中指令可以包括指令类型,该指令类型可以指示为态制备指令(如N)、纠缠指令(如E)或测量指令(如M)。
[0156] 在基于该指令类型确定指令为态制备指令的情况下,可以基于目标标识,将该指令等效编译为量子电路中的重置操作指令,重置操作指令用于将目标标识对应的寄存单元的量子态重置为态制备指令所指示的量子态。比如,态制备指令为[N,vertex,matrix],则可以基于目标标识idx,等效编译为[reset,idx,matrix,None]。其中,matrix为态制备指令所指示的量子态。
[0157] 在基于该指令类型确定指令为纠缠指令的情况下,基于目标标识,将该指令等效编译成量子电路中的量子门操作指令,量子门操作指令可以为CZ门。比如,纠缠指令为[E,[vertex0,vertex1]],则可以基于目标标识(vertex0对应目标标识idx0,vertex1对应目标标识idx1),等效编译为[CZ,[idx0,idx1],None,None]。
[0158] 在基于该指令类型确定指令为测量指令的情况下,基于目标标识,将该指令等效编译成量子电路中的量子测量操作指令。比如,测量指令为[M,vertex,angle,plane,domain_s,domain_t],则可以基于目标标识idx,等效编译为[measure,idx,[angle,plane,domain_s,domain_t],vertex]。
[0159] 如此,可以实现量子测量模式的指令至量子电路的指令的等效编译。
[0160] 可选的,在所述指令为测量指令的情况下,所述量子测量操作指令包括测量标识,所述测量标识为所述测量指令所作用的节点标识。
[0161] 本实施方式中,在指令的等效编译时,若指令为测量指令,由于同一寄存单元可能会出现多次量子测量,因此,可以在量子测量操作指令中携带测量标识,以标识当前测量的ID。
[0162] 相应的,可以获取测量指令所作用的节点标识,并将测量指令所作用的节点标识确定为测量标识,如[measure,idx,[angle,plane,domain_s,domain_t],vertex]中的vertex即为测量指令在的节点标识,如此可以提高等效编译的准确性。
[0163] 可选的,在所述指令为测量指令的情况下,所述基于所述目标标识,将所述指令等效编译成量子电路中的量子测量操作指令之后,所述方法还包括:
[0164] 基于所述目标标识,更新所述寄存单元字典,更新后的所述寄存单元字典指示所述目标标识对应的寄存单元为未分配给节点的寄存单元。
[0165] 本实施方式中,在指令的等效编译时,若指令为测量指令,可以在该测量指令的等效编译之后,将寄存单元字典qreg中标号为idx的寄存单元进行回收,即将标号为idx的寄存单元对应的值更新为None,指示该寄存单元为空闲单元,即为未分配给节点的寄存单元,以供后续指令使用。这样可以保证等效编译出来的动态量子电路的宽度尽可能小,从而更有助于量子电路的算法在硬件上的执行。
[0166] 等效编译的具体过程如下:
[0167] 输入:量子测量模式的指令列表commands(即第二指令列表);
[0168] 输出:动态量子电路的指令列表(即第三指令列表)。
[0169] 步骤1:初始化一个空的寄存单元字典qreg,用于记录当前寄存单元的分配情况;初始化一个空列表cir_list,用于记录转化后的量子电路的指令列表;
[0170] 步骤2:循环遍历量子测量模式的指令列表commands,记录当前被循环的元素(指令)为cmd;并根据指令携带的指令类型执行如下操作:
[0171] 操作a)如果cmd为态制备指令,设cmd=[N,vertex,matrix];以qreg和vertex为输入,获得输出idx和更新后的qreg;生成量子电路中指令gate=[reset,idx,matrix,None];
[0172] 操作b)如果cmd为纠缠指令,设cmd=[E,[vertex0,vertex1]];以qreg和vertex0为输入,获得输出idx0和更新后的qreg;以qreg和vertex1为输入,获得输出idx1和更新后的qreg;生成量子电路中指令gate=[CZ,[idx0,idx1],None,None];
[0173] 操作c)如果cmd为测量指令,设cmd=[M,vertex,angle,plane,domain_s,domain_t];以qreg和vertex为输入,获得输出idx和更新后的qreg;生成量子电路中指令gate=[measure,idx,[angle,plane,domain_s,domain_t],vertex];将寄存单元字典qreg中标号为idx的单元进行回收,即将对应的值写为None;
[0174] 步骤3:将生成的量子电路中指令gate加入到cir_list之中;
[0175] 步骤4:返回cir_list作为输出结果。
[0176] 第二实施例
[0177] 如图4所示,本公开提供一种量子测量模式至量子电路的编译装置400,包括:
[0178] 第一获取模块401,用于获取量子测量模式的第一指令列表,所述第一指令列表包括态制备指令、纠缠指令和测量指令;
[0179] 推迟处理模块402,用于基于所述第一指令列表,将所述量子测量模式中的态制备指令和纠缠指令进行推迟处理,得到所述量子测量模式的第二指令列表,所述第一指令列表和所述第二指令列表中,各所述测量指令的相对位置顺序保持不变,且所述量子测量模式的同一个节点上的不同指令的相对位置顺序不变,不同指令的相对位置顺序为:从前至后为态制备指令、纠缠指令、测量指令;
[0180] 等效编译模块403,用于基于所述第二指令列表进行指令的等效编译,得到与所述量子测量模式等效的量子电路的第三指令列表。
[0181] 可选的,所述推迟处理模块402包括:
[0182] 拆分子模块,用于将所述第一指令列表进行拆分,得到第一列表、第二列表和第三列表,所述第一列表为所述第一指令列表中的态制备指令构成的列表,所述第二列表为所述第一指令列表中的纠缠指令构成的列表,所述第三列表为所述第一指令列表中的测量指令构成的列表;
[0183] 第一推迟处理子模块,用于基于所述第二列表和所述第三列表,对所述量子测量模式中的纠缠指令进行推迟处理,得到第四列表,所述第四列表包括所述第二列表中的纠缠指令和所述第三列表中的测量指令,所述第四列表中,所述量子测量模式的同一个节点上的不同指令保持从前至后为纠缠指令、测量指令的相对位置顺序;
[0184] 第二推迟处理子模块,用于基于所述第一列表和所述第四列表,对所述量子测量模式中的态制备指令进行推迟处理,得到所述第二指令列表。
[0185] 可选的,所述第一推迟处理子模块,具体用于:
[0186] 对所述第二列表进行针对纠缠指令的遍历,并记录当前遍历的纠缠指令;
[0187] 对所述第三列表进行针对测量指令的遍历,得到目标测量指令,所述当前遍历的纠缠指令所作用的节点包括所述目标测量指令所作用的节点;
[0188] 将所述当前遍历的纠缠指令插入到所述第三列表中的第一位置,所述第一位置为所述目标测量指令在所述第三列表中的位置;
[0189] 在所述第二列表遍历完成的情况下,将更新后的所述第三列表确定为所述第四列表。
[0190] 可选的,所述第二推迟处理子模块,具体用于:
[0191] 对所述第一列表进行针对态制备指令的遍历,并记录当前遍历的态制备指令;
[0192] 对所述第四列表进行针对纠缠指令的遍历,得到目标纠缠指令,所述目标纠缠指令所作用的节点包括所述当前遍历的态制备指令所作用的节点;
[0193] 将所述当前遍历的态制备指令插入到所述第四列表中的第二位置,所述第二位置为所述目标纠缠指令在所述第四列表中的位置;
[0194] 在所述第一列表遍历完成的情况下,将更新后的所述第四列表确定为所述第二指令列表。
[0195] 可选的,所述等效编译模块403包括:
[0196] 节点获取子模块,用于针对所述第二指令列表中每一指令,获取所述指令所作用的目标节点;
[0197] 确定子模块,用于基于所述目标节点和寄存单元字典,确定为所述目标节点分配的量子电路的寄存单元的目标标识,所述寄存单元字典包括寄存单元与所述量子测量模式中节点的对应关系;
[0198] 等效编译子模块,用于基于所述目标标识,对所述指令进行等效编译,得到与所述指令等效的量子电路中指令,所述第三指令列表包括等效编译得到的所述量子电路中指令。
[0199] 可选的,所述确定子模块包括:
[0200] 第一确定单元,用于在查询到所述寄存单元字典中包括所述目标节点的对应关系的情况下,将所述目标节点对应的寄存单元的标识确定为所述目标标识;
[0201] 第二确定单元,用于在查询到所述寄存单元字典中未包括所述目标节点的对应关系的情况下,基于所述寄存单元字典为所述目标节点分配寄存单元,将所述目标节点所分配的寄存单元的标识确定为所述目标标识,并基于所述目标节点所分配的寄存单元的标识更新所述寄存单元字典。
[0202] 可选的,所述第二确定单元,具体用于:
[0203] 在查询到所述寄存单元字典中包括第一寄存单元的标识的情况下,将所述第一寄存单元分配给所述目标节点,所述第一寄存单元为未分配给节点的寄存单元;
[0204] 在查询到所述寄存单元字典中不包括所述第一寄存单元的标识的情况下,获取所述寄存单元字典所表征的寄存单元的数量,基于所述数量确定所创建的第二寄存单元的标识,并将所述第二寄存单元分配给所述目标节点。
[0205] 可选的,所述第一寄存单元为未分配给节点的寄存单元中标识最小的寄存单元。
[0206] 可选的,所述等效编译子模块包括:
[0207] 第一等效编译单元,用于在所述指令为态制备指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的重置操作指令,所述重置操作指令用于将所述目标标识对应的寄存单元的量子态重置为所述态制备指令所指示的量子态;
[0208] 第二等效编译单元,用于在所述指令为纠缠指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的量子门操作指令,所述量子门操作指令用于基于所述目标标识对应的寄存单元进行所述纠缠指令对应的量子门操作;
[0209] 第三等效编译单元,用于在所述指令为测量指令的情况下,基于所述目标标识,将所述指令等效编译成量子电路中的量子测量操作指令,所述量子测量操作指令用于基于所述目标标识对应的寄存单元进行所述测量指令指示的量子测量操作。
[0210] 可选的,在所述指令为测量指令的情况下,所述量子测量操作指令包括测量标识,所述装置还包括:
[0211] 第二获取模块,用于获取所述测量指令所作用的节点标识;
[0212] 确定模块,用于将所述测量指令所作用的节点标识确定为所述测量标识。
[0213] 可选的,在所述指令为测量指令的情况下,所述装置还包括:
[0214] 更新模块,用于基于所述目标标识,更新所述寄存单元字典,更新后的所述寄存单元字典指示所述目标标识对应的寄存单元为未分配给节点的寄存单元。
[0215] 本公开提供的量子测量模式至量子电路的编译装置400能够实现量子测量模式至量子电路的编译方法实施例实现的各个过程,且能够达到相同的有益效果,为避免重复,这里不再赘述。
[0216] 本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0217] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0218] 图5示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0219] 如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
[0220] 设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0221] 计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如量子测量模式至量子电路的编译方法。例如,在一些实施例中,量子测量模式至量子电路的编译方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的量子测量模式至量子电路的编译方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行量子测量模式至量子电路的编译方法。
[0222] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0223] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0224] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0225] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0226] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0227] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0228] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0229] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。