基于动态自适应分块和子图同构的量子比特映射算法
- 国知局
- 2024-07-31 23:13:23
本发明属于量子计算,尤其涉及一种基于动态自适应分块和子图同构的量子比特映射算法。
背景技术:
1、随着量子计算技术的发展,实现量子算法在实际设备上的高效执行已成为该领域的重要研究方向,然而,现有的量子设备往往存在连接限制,需要通过量子比特映射将逻辑量子电路中的量子比特映射到物理量子比特上,这一映射问题称为量子比特映射问题。量子比特映射问题的目标是,给定逻辑量子电路和nisq设备的架构图,通过插入swap门的方式,输出一个物理电路,使得与等价的同时能满足图的限制,即能直接在nisq设备上执行,对于最终输出的物理电路,目标能最小化插入的swap数目。
2、量子比特映射问题分为两个部分:初始映射的确定和swap门的插入。
3、(1)初始映射的确定:对于一个逻辑电路,我们首先需要对其逻辑量子比特和物理量子比特进行一个映射。一个初始映射为一个单射,即对于任意的逻辑比特,当且仅当;(2)swap门的插入:在算法执行过程中,对于当前的比特映射和待执行的门,如果,即该门在当前映射下无法执行,那么我们需要插入适当的swap门(序列)来改变当前映射,使得改变后的映射满足。通过在电路中插入适当的swap,最终我们可以得到一个能在给定的量子计算机中执行的物理电路。
4、目前,常用的量子比特映射算法包括sabre等,但这些算法在处理大规模量子电路时效果较差;abre算法在处理大规模量子电路时采用的方法是启发式方法,在处理过程中是先尽可能地执行所有能执行的门,遇到不能执行的门时,通过计算插入不同的swap门的代价来执行一个当前最优的swap,这个方法的问题在于每次根据对后面一部分门的影响只选择执行一个swap进行执行,这样的做法容易使得线路陷入局部最优,因此,如何有效解决大规模量子电路的映射问题,成为该领域的一个研究热点。
技术实现思路
1、本技术的目的在于提供一种基于动态自适应分块和子图同构的量子比特映射算法,该算法通过最大子图同构子序列划分、初始映射、动态自适应分块和swap距离约束等思想,实现高效的量子电路映射,从而提高量子算法在实际设备上的执行效率。
2、为了实现上述目的,本技术提供了一种基于动态自适应分块和子图同构的量子比特映射算法,包括以下步骤:
3、s1:将逻辑量子电路划分为三部分: 和;
4、其中,是最大子图同构子电路,是之前的所有量子门构成的子电路,是之后的所有量子门构成的子电路;
5、s2:使用sabre反转技术得到对应的子图同构映射,并令所述为电路的初始映射;
6、s3:以为初始当前映射,对循环执行dac(动态自适应分块)路由方法,寻找合适的子图同构分块和对应的子图同构映射,记录所需swap操作信息,并将已经划分出去的量子门从中删除,更新,在当前映射上执行swap操作并更新,直到为空;
7、s4:以为初始当前映射,对的反向循环执行dac路由方法,具体过程与步骤s3相同;
8、s5:根据对电路划分的每个分块和每个分块对应的子图同构映射以及分块与分块之间swap序列,输出与输入的逻辑逻辑电路等价的并且能够在nisq设备上直接执行的物理量子电路。
9、优选地,s1还包括:
10、最大子图同构子电路的确定方法为:
11、s1a:需要确定当前dag(依赖有向无环图)的front_layer,并逐个检查front_layer中的门;
12、s2a:添加到当前子电路中,并检查是否满足子图同构条件;
13、若满足子图同构条件,执行s3a:移除该门,更新front_layer并继续;
14、若不满足子图同构条件,则停止;
15、s4a:输出从遍历中的门到,找到从每个门开始的一个最大的子图同构块,然后再从每个门开始的最大子图同构块中选择其中的最大块。
16、优选地,s1还包括:
17、寻找最大子图同构子电路算法为:
18、s1b:初始化gates_list和gates_list_num为空列表;
19、s2b:遍历逻辑量子电路门列表的每个门 ;
20、s3b:获得gates_list和gates_list_num,在gates_list_num中找到最大值对应的索引max index,将划分为、、三部分。
21、优选地,s2b还包括:
22、s2b.1:获取从到这一系列量子门对应的dag和front_layer;
23、s2b.2:初始化current_gate为空;
24、s2b.3:若front_layer不为空,执行以下步骤:
25、s2b.3.1:初始化execute_gate_list为空;
26、s2b.3.2:遍历front_layer中的每个门:
27、s2b.3.2.1:将添加到current_gate中;
28、s2b.3.2.2:若的子图同构,则将添加到execute_gate_list,把从front_layer中移除,并跳出循环;
29、s2b.3.2.3:否则,将从current_gate中移除;
30、s2b.3.3:若execute_gate_list不为空,则更新front_layer;
31、s2b.3.4:否则,跳出循环;
32、s2b.4:将current_gate添加到gates_list,并记录current_gate的数量到gates_list_num。
33、优选地,s2还包括:
34、生成初始映射的方法为:
35、s1c:使用sabre算法的逆序遍历技术,执行逻辑量子电路三次,生成整个电路的初始映射和最终映射;
36、s2c:根据和的大小,选择或,并寻找距离该映射最近的的子图同构映射作为我们电路的初始映射。
37、优选地,s2c还包括:
38、若||≥||,则选择距离最近的的子图同构映射作为初始映射;
39、若||<||,则选择距离最近的的子图同构映射作为初始映射。
40、优选地,s3还包括:
41、dac路由方法包括以下步骤:
42、s1d:令;
43、s2d:当不为空时,执行以下步骤:
44、s2d.1:初始化current_gate(当前正在考虑的门列表)为空集;
45、s2d.2:对于对应的dag图的front_layer中的每一个门,执行以下步骤:
46、s2d.2.1:检查current_gate中是否存在,如果存在,则将添加到current_gate,从中移除,更新front_layer,并返回s2d.2;如果不存在,则将添加到current_gate,并执行s2d.2.2;
47、s2d.2.2:采用迭代深度优先搜索算法检查和是否满足swap距离约束,如果满足,则从中移除,更新front_layer;
48、s2d.3:当front_layer中的所有门都已检查完毕时,current_gate即为当前划分,记录current_gate和采用s2d.2.2中迭代深度优先搜索算法确定的映射,并且更新。
49、优选地,所述迭代深度优先搜索算法包括以下步骤:
50、s1e:;
51、s2e:调用dfs方法(输入)来尝试找到从到的swap序列,swap次数不超过;
52、s3e:若dfs方法找到swap序列,则返回该序列;若dfs方法未找到swap序列,则令进入s2,若,则直接返回none。
53、优选地,dfs方法包括以下步骤:
54、s1f:计算输入的所有门的总距离;
55、s2f:若当前所有门均可执行,返回true和空序列;
56、s3f:若搜索深度为0,返回false和空序列;
57、s4f:对中的每条边执行如下操作:
58、s4f.1:若该边与当前映射有关联,则根据该边对应的swap操作更新映射且递归调用dfs方法(输入新的映射,,加入上述swap操作之后的新swap序列);
59、s4f.2:若dfs返回true,则直接返回true和dfs输出的swap序列;
60、s5f:所有边都搜索完毕,返回false和空序列。
61、优选地,s4还包括:中的量子门列表按照执行顺序进行反向得到。
62、本技术提供的技术方案可以达到以下有益效果:
63、本发明提出的量子比特映射算法基于动态自适应分块和子图同构思想,因为利用了子图同构的性质,每个被划分好的子电路均可直接执行,不需要swap,而子电路和子电路之间运用swap距离作为限制,使得用于连接两块子电路的swap数目不会太多,所以能够显著减少所需的swap操作数量,在处理大规模量子电路时,该算法相较sabre这一有效的量子比特映射算法具有更佳的效果,尤其适用于高连接性的量子设备,有助于降低噪声和错误率,从而提高量子算法的执行效率和质量。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196521.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。