一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

量子电路生成方法及系统

2022-11-19 07:42:33 来源:中国专利 TAG:


1.本发明涉及量子计算技术领域,尤其涉及一种量子电路生成方法及系统。


背景技术:

2.将邻接矩阵部署到量子电路上,可以将邻接矩阵拆解为置换矩阵和相位反转矩阵的乘积,然后按照量子电路设计方法为每个置换矩阵设计对应的子量子电路,且根据量子电路设计方法得到的结果通常会好于直接使用哈密顿量分解方法。高效的量子电路设计方法能够同时兼顾经典计算机的计算开销和置换阵对应的量子电路复杂度。
3.现有的量子电路设计方法包括真值表直接求解法、置换群法、邻接矩阵法、模板法和rm展开式(reed-muller expansion)法等,以上的量子电路构建方法通常是针对特定的逻辑函数,例如加法器、乘法器、译码器等,通过堆叠从而扩展到高位。
4.现有的量子电路设计方法往往只能在低量子比特规模下有较优解,一旦量子电路规模扩大,构建逻辑函数和量子电路的映射关系所使用的经典计算机算力开销将变得无法接受。尤其在处理邻接矩阵时,分解得到的置换阵多种多样且对应的可逆逻辑电路则会存在一些无关项,而真值表、置换群和rm展开式法等可逆电路设计算法,必须先获得可逆函数的全局状态,才可以进行运算。


技术实现要素:

5.本发明提供的量子电路生成方法及系统,用于解决现有技术中存在的上述至少一个问题,在经典数字电路上的卡诺图的基础上,提出基于量子卡诺图的量子电路生成方法,具有良好的可扩展性,可以高效地为不同规模和不同样式的逻辑函数或置换矩阵自动生成对应的量子电路,使得量子电路的生成尽可能简单。
6.本发明提供的一种量子电路生成方法,包括:
7.根据交换规则,将逻辑函数中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图;
8.获取所述量子卡诺图转换为对应的所述恒等量子卡诺图的转换过程中的子量子电路;
9.根据所述每个变量对应的子量子电路,获取所述逻辑函数或所述置换矩阵的量子电路。
10.根据本发明提供的一种量子电路生成方法,所述逻辑函数或置换矩阵中的每个变量的量子卡诺图是通过如下方式确定的:
11.确定所述逻辑函数对应的所述置换矩阵;
12.根据所述置换矩阵的列索引和行索引,确定所述量子卡诺图;其中,所述置换矩阵的列索引和行索引是根据所述输入值和所述输出值确定的;
13.量子卡诺图的行索引和列索引的排布顺序均使用二进制表示,且遵循格雷码编码规则。
14.根据本发明提供的一种量子电路生成方法,所述
15.确定所述逻辑函数对应的所述置换矩阵,包括:
16.在所述逻辑函数为所述不可逆逻辑函数的情况下,将所述不可逆逻辑函数转换为所述可逆逻辑函数后,根据转换后的不可逆逻辑函数中的每个变量的输入值与输出值的映射关系,确定转换后的不可逆逻辑函数对应的置换矩阵;
17.在所述逻辑函数为所述可逆逻辑函数的情况下,根据所述可逆逻辑函数中的每个变量的输入值与输出值的映射关系,确定所述可逆逻辑函数对应的所述置换矩阵。
18.根据本发明提供的一种量子电路生成方法,所述根据交换规则,将逻辑函数中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图,包括:
19.确定所述量子卡诺图中第一目标列和第二目标列;
20.根据行交换规则,将所述第一目标列中的第一行与第二行的值进行交换,确定所述量子卡诺图对应的所述恒等量子卡诺图;
21.根据列交换规则,将所述第二目标列中的第二行的值进行交换,确定所述量子卡诺图对应的所述恒等量子卡诺图;
22.其中,所述第一目标列包括第一列和第二列;
23.所述第二目标列包括第三列和第四列;
24.所述第一列的第一行的值为第一预设值且第二行的值为第二预设值或辅助量子比特;
25.所述第二列的第一行的值为所述辅助量子比特且第二行的值为所述第二预设值;
26.所述第三列的第一行和第二行的值均为所述第一预设值;
27.所述第四列的第一行和第二行的值均为所述第二预设值;
28.所述交换规则包括所述行交换规则和所述列交换规则。
29.根据本发明提供的一种量子电路生成方法,还包括:
30.确定所述量子卡诺图中与所述第一目标列的汉明距离等于第三预设值的各候选列;
31.从各所述候选列中筛选出第一行和第二行的值相同的第三目标列;
32.将所述第三目标列添加到所述第一目标列中,更新所述第一目标列。
33.根据本发明提供的一种量子电路生成方法,所述根据所述每个变量对应的子量子电路,获取所述逻辑函数或所述置换矩阵的量子电路,包括:
34.将所述每个变量对应的子量子电路顺序连接,获取所述量子电路。
35.本发明还提供一种量子电路生成系统,包括:第一获取模块、第二获取模块以及第三获取模块;
36.所述第一获取模块,用于根据交换规则,将逻辑函数中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图;
37.所述第二获取模块,用于获取所述量子卡诺图转换为对应的所述恒等量子卡诺图的转换过程中的子量子电路;
38.所述第三获取模块,用于根据所述每个变量对应的子量子电路,获取所述逻辑函数或所述置换矩阵的量子电路。
39.本发明还提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处
理器执行所述程序时实现如上述任一种所述量子电路生成方法。
40.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述量子电路生成方法。
41.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述量子电路生成方法。
42.本发明提供的量子电路生成方法及系统,在经典数字电路上的卡诺图的基础上,提出基于量子卡诺图的量子电路生成方法,具有良好的可扩展性,可以高效地为不同规模和不同样式的逻辑函数或置换矩阵自动生成对应的量子电路,使得量子电路的生成尽可能简单。
附图说明
43.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是本发明提供的量子电路生成方法的流程示意图;
45.图2是本发明提供的置换矩阵与三变量真值表的映射过程示意图;
46.图3是本发明提供的四种不同的量子线和一个广义toffoli量子门;
47.图4是本发明提供的具有普适性的量子卡诺图变换示意图;
48.图5是本发明提供的将不可逆逻辑函数转换为可逆逻辑函数后的量子卡诺图;
49.图6是本发明提供的行交换规则的示意图;
50.图7是本发明提供的列交换规则的示意图;
51.图8是本发明提供的被动交换规则的示意图;
52.图9是本发明提供的量子卡诺图的优化的示意图;
53.图10是本发明提供的汉明距离等于1的一对广义toffoli门的优化示意图;
54.图11是本发明提供的汉明距离等于2的一对广义toffoli门的优化示意图;
55.图12是本发明提供的一对可交换广义toffoli门的示意图;
56.图13是本发明提供的量子电路生成系统的结构示意图;
57.图14是本发明提供的电子设备的实体结构示意图。
具体实施方式
58.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
59.本发明提供的量子电路生成方法,针对如何为任意逻辑函数或置换矩阵生成对应的量子电路问题,基于量子卡诺图(quantum karnaugh map,qkm)生成量子电路。现有的可逆量子电路设计方法往往只能在低量子比特规模下有较优解,一旦量子电路规模扩大,构建逻辑函数或置换矩阵和量子电路的映射关系所需的算力开销将变得无法接受,而且在逻
辑函数不可逆时(即多个输入对应相同输出)或不为2的整数次幂规模的置换矩阵时,现有的方法也无法应对。因此,基于目前量子电路设计方案的缺陷,受经典数字电路上的卡诺图启发,提出量子卡诺图的量子电路生成方法,具有良好的可扩展性,可以高效地为不同规模和不同样式的逻辑函数/置换矩阵自动生成对应的量子电路,且能够进一步与现有的量子电路优化方法相结合,从而保证量子电路尽可能简单,具体实现如下:
60.图1是本发明提供的量子电路生成方法的流程示意图,如图1所示,方法包括:
61.步骤100、根据交换规则,将逻辑函数中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图;
62.步骤200、获取量子卡诺图转换为对应的恒等量子卡诺图的转换过程中的子量子电路;
63.步骤300、根据每个变量对应的子量子电路,获取逻辑函数或置换矩阵的量子电路。
64.需要说明的是,上述方法的执行主体可以是计算机设备。
65.可选地,在步骤100中,逻辑函数可以看作是按照一定的规则,将一个布尔变量从输入变换到输出的过程,输入和输出之间的映射存在一一对应关系时,将此映射称之为可逆逻辑函数,因为它能够从输出反推输入(反之多个输入对应了同一个输出被叫做不可逆逻辑函数)。将一个m个变量的布尔值看作是一个维度为2m的列向量,例如:
66.对于单变量:x0→
y0,有2!种情况(可以理解为有这么多种可逆逻辑函数),即:
[0067]0→
0,1
→0[0068]0→
1,1
→1[0069]
这里的箭头即指代某一种逻辑函数。
[0070]
对应为列向量可写为:
[0071][0072][0073]
为了便于书写,用狄拉克符号来表示列向量,即:为了便于书写,用狄拉克符号来表示列向量,即:
[0074]
此时这里的箭头对应于某一个矩阵变换,可以发现要想实现上述列向量的变化过程,只需要在输入向量左边乘以一个置换矩阵(即矩阵的每行每列只有一个元素等于1)即可,分别是:
[0075][0076]
类似地,对于两变量,x1x0→
y1y0,有4!种情况,可以理解为有这么多种可逆逻辑函数或置换矩阵,以此类推,对于m个变量,共2m!个不同的可逆逻辑函数或置换矩阵。|j》表示在2m维列向量中,第j个元素等于1,其余元素等于0。
[0077]
如图2所示,列举了在置换矩阵右乘一个列向量和得到的输出列向量的真值表。由矩阵乘法规则可知,一个置换矩阵的列索引相当于是它的输入值,而行索引相当于它的输出值。这样一来,就建立了可逆逻辑函数和置换矩阵之间的等价关系,即对于任意的可逆逻辑函数,总能找到一个与之实现相同映射关系的置换矩阵。
[0078]
获取逻辑函数或者置换矩阵对应的量子卡诺图。
[0079]
定义1:量子比特线(qubit line):共有4种量子比特线;
[0080]
正控制线(positive control line):如图3的|x3》所示,如果在这条量子比特线上输入
‘0’
,则目标线的值不会改变。如果输入
‘1’
,则由其他正/负控制线确定目标线上的值是否反转,若无其他控制线,则目标线的值发生反转,控制线的值不会改变。
[0081]
负控制线(negative control line):如图3的|x2》所示,如果在这条量子比特线上输入
‘1’
,目标线的值不会改变。如果输入为
‘0’
,则由其他正/负控制线确定目标线上的值是否反转,若无其他控制线,则目标线的值发生反转,控制线的值不会改变。
[0082]
目标线(target line):如图3的|x1》所示,目标线的值是否变化取决于控制线的输入值。
[0083]
不相关线(irrelevant line):如图3的|x0》所示,不相关行的值从头到尾不发生改变,且不影响其他行。
[0084]
根据交换规则,将逻辑函数或者置换矩阵中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图,并得到量子卡诺图转换为对应的恒等量子卡诺图的转换过程中的子量子电路。
[0085]
根据得到的所有变量的子量子电路,便可以得到逻辑函数的量子电路。
[0086]
本发明提供的量子电路生成方法,在经典数字电路上的卡诺图的基础上,提出基于量子卡诺图的量子电路生成方法,具有良好的可扩展性,可以高效地为不同规模和不同样式的逻辑函数或置换矩阵自动生成对应的量子电路,使得量子电路的生成尽可能简单。
[0087]
进一步地,在一个实施例中,步骤100中的逻辑函数或置换矩阵中的每个变量的量子卡诺图是通过如下方式确定的:
[0088]
步骤1001、确定逻辑函数对应的置换矩阵;
[0089]
步骤1002、根据置换矩阵的列索引和行索引,确定量子卡诺图;
[0090]
其中,置换矩阵的列索引和行索引是根据输入值和输出值确定的;
[0091]
量子卡诺图的行索引和列索引的排布顺序均使用二进制表示,且遵循格雷码编码规则。
[0092]
进一步地,在一个实施例中,步骤1001可以具体包括:
[0093]
步骤10011、在逻辑函数为不可逆逻辑函数的情况下,将不可逆逻辑函数转换为可逆逻辑函数后,根据转换后的不可逆逻辑函数中的每个变量的输入值与输出值的映射关系,确定转换后的不可逆逻辑函数对应的置换矩阵;
[0094]
步骤10012、在逻辑函数为可逆逻辑函数的情况下,根据可逆逻辑函数中的每个变量的输入值与输出值的映射关系,确定可逆逻辑函数对应的置换矩阵。
[0095]
可选地,在一个有m个量子比特的量子系统中,一个广义toffoli门跨越m个量子比特,该广义toffoli门表示为tofm(c,t,r),其中,c表示控制比特线的集合(包括正控制线和负控制线),即c={c0,c1,

};t表示目标比特线,即t={t0};r={r0,r1…
}表示不相关线,集合中每个元素的取值为量子比特的索引。t集合的长度,||t||=1,控制线和目标线的长度之和为:||c|| ||r||=m-1。为了方便描述,正控制线,负控制线,目标线和无关线分别用
‘1’

‘0’


_’,和

*’来表示。用一个函数ξ()来映射广义toffoli门在量子比特线ci上的取值ξ(ci)=
‘0’

‘1’
;ξ(t0)=

_’;ξ(ri)=

*’。例如,如图3所示,一个广义toffoli门横跨了
4根量子比特线,可记为:ξ(c={2,3},t={1},r={0})=

10_*’。
[0096]
逻辑函数一般包括可逆逻辑函数和不可逆逻辑函数。如果一个逻辑函数有m个变量,该逻辑函数可以表示为:y
m-1

y1y0=f(x
m-1

x1x0),其中xi,yi∈{0,1}分别是输入和输出的布尔值,且输入输出值满足一一对应关系,这样的函数被称之为可逆逻辑函数。具有m个变量的可逆逻辑函数f(.)相当于一个置换矩阵这种矩阵的每行每列只有一个元素值等于1,其他元素值等于0。非0元素在每行每列的索引存在一一对应关系,即|x》=u|y》。
[0097]
如果一个逻辑函数有m个变量,该逻辑函数可以表示为:y
m-1

y1y0=f(x
m-1

x1x0),其中xi,yi∈{0,1}分别是输入和输出的布尔值,且存在输入值输出值多对一关系,这样的函数被称之为不可逆逻辑函数。不可逆逻辑函数对应成的矩阵为非酉矩阵,即存在某些行列有多个元素不为0,而某些行列没有非0元素。为了确保酉性,需要一个含有m

(m

》m)个量子比特的量子系统,用来执行m变量的不可逆逻辑函数,其中m
′‑
m为辅助比特的数量。假设最多出现γ个相同的输入对应同一个输出值的情况,那么至少需要个辅助比特。
[0098]
对于一个有m个变量的可逆逻辑函数f(
·
)(也可等价于一个置换阵)来说,需要将m个输入值转变为m个输出值,需要进行逐位变换。即需要找到m个逻辑函数f0()
→fm-1
(),来等价于原本的可逆逻辑函数f(
·
),也相当于要找m个置换矩阵u0→um-1
的连乘来等价于最终的置换矩阵u,其变换过程如下式所示:
[0099][0100][0101]
需要说明的是,上述变换过程为根据广义toffoli门在量子器件中实现的难易程度的广义toffoli门的成本函数,如表1为广义toffoli门对应的成本函数,其中cmx表示广
义toffoli门中的控制比特数量为m。
[0102]
表1
[0103]
gatecxc2xc3xc4xc5xc6x(m≥6)cost1513296148m-108
[0104]
按照上述逐位变换的思路,需要构建m张量子卡诺图。而根据第k(k∈[0,m-1])张量子卡诺图,可以为可逆逻辑函数fk(
·
)对应的置换矩阵uk找到对应的子量子电路。第k位变换的量子卡诺图如图4所示,为了方便后续操作,将剩下的m-1位的取值放在列上(共计2
m-1
个不同取值,即量子卡诺图有2
m-1
列),而第k位的取值放在行上(共计2种不同取值,因此有两行)。而量子卡诺图的单元格中填入,当输入值为对应的行列取值时的第k位的输出值,行和列索引的排布顺序使用二进制表示并遵循格雷码编码规则(有多种排列方式均能满足格雷码要求)。最终的目的是将图4中的子图(b)中的量子卡诺图,通过交换的方式,将它变为图4中的子图(a)的形式。对于任意可逆逻辑函数/置换阵,量子卡诺图的
‘0’

‘1’
的数量相同,因此经过交换规则,总能将图4中的子图(b)转换为图4中的子图(a)的形式。
[0105]
需要说明的是,单元格表示基于输入量子位的当前位的输出结果,图4中的子图(a)为恒等量子卡诺图,图4中的子图(b)为或fk(xm…
x1x0)的量子卡诺图。
[0106]
格雷码:一种编码方法要求相邻的二进制串只有一个不同的位。格雷码可以作为量子卡诺图的索引。在量子卡诺图中,满足格雷码要求的排列不止一种。
[0107]
为了让不可逆逻辑函数生成量子电路,需要添加额外的辅助量子比特,将多对一映射关系转变为一对一映射关系。辅助量子比特的数量m
′‑
m取决于相同输出的最大重复次数。如果最大重复次数为γ,则至少需要个辅助比特。例如,有一个不可逆的布尔函数g:{00

01,01

01,10

10,11

11}。同一输出的最大重复次数为2,因此需要增加一个辅助量子比特才能将不可逆布尔函数变为可逆布尔函数,即g

:{000

001,001

101,010

010,011

011},其中第一位是辅助量子位。
[0108]
根据上述方法将不可逆逻辑函数转换为可逆逻辑函数,并根据转换后的不可逆逻辑函数中的每个变量的输入值与输出值的映射关系,得到转换后的不可逆逻辑函数对应的置换矩阵。
[0109]
添加辅助量子位会导致一些不相关项。不相关项意味着无论它的输出为
‘0’

‘1’
都满足该逻辑函数。这些不相关项也反映在量子卡诺图中。图5显示了函数g
→g′
的所有量子卡诺图。使用辅助量子比特

?’来填写不相关项的单元格。同样,通过将图5所示的量子卡诺图中的所有
‘0’
位于第一行,所有
‘1’
位于第二行,

?’的位置没有限制,

?’可以为
‘0’

‘1’
,来完成量子卡诺图到恒等量子卡诺图的转换。
[0110]
本发明提供的量子电路生成方法,能够实现对可逆逻辑函数以及不可逆逻辑函数(即多个输入对应相同输出)或不是2的整数次幂的置换矩阵生成可逆量子电路。
[0111]
进一步地,在一个实施例中,步骤100可以具体包括:
[0112]
步骤1003、确定量子卡诺图中第一目标列和第二目标列;
[0113]
步骤1004、根据行交换规则,将第一目标列中的第一行与第二行的值进行交换,确定量子卡诺图对应的恒等量子卡诺图;
[0114]
步骤1005、根据列交换规则,将第二目标列中的第二行的值进行交换,确定量子卡
诺图对应的恒等量子卡诺图;
[0115]
其中,第一目标列包括第一列和第二列;
[0116]
第二目标列包括第三列和第四列;
[0117]
第一列的第一行的值为第一预设值且第二行的值为第二预设值或辅助量子比特;
[0118]
第二列的第一行的值为辅助量子比特且第二行的值为第二预设值;
[0119]
第三列的第一行和第二行的值均为第一预设值;
[0120]
第四列的第一行和第二行的值均为第二预设值;
[0121]
交换规则包括行交换规则和列交换规则。
[0122]
可选地,任意量子卡诺图的一列中,存在以下三种情况:
[0123]
1、某列的第一行和第二行的值为(
‘0’

‘1’
),(
‘0’


?’)和(

?’,
‘1’
)。
[0124]
2、某列的第一行和第二行的值为(
‘1’

‘0’
),(
‘1’


?’)和(

?’,
‘0’
)。
[0125]
3、某列的第一行和第二行值是(
‘0’

‘0’
)和(
‘1’

‘1’
)。
[0126]
对于第一种情况,不做任何操作,第二种和第三种情况遵循如下交换规则。
[0127]
行交换规则:对于上述第二种情况,对应第一目标列,在第k张量子卡诺图中,标记第一目标列,其中第一目标列包括第一列和第二列,其中第一列的第一行的值为第一预设值(
‘1’
)且第二行的值为第二预设值(
‘0’
)或者辅助量子比特(

?’);第二列的第一行的值为辅助量子比特(

?’)且第二行的值为第二预设值(
‘0’
),在同一列上交换两个标记的单元格,从而变成第一种情况。
[0128]
在交换的过程中,生成对应的电路,即若干个广义的toffoli门,用简单的tofm(c,t,r)来表示,其中c包含需要行交换的列的索引;t包含第k根量子位线;r是一个空集。图6显示了将第一目标列中位于同一列上的第一行和第二行标记单元格交换这一操作映射为一个量子门的过程。
[0129]
其中,图6中的左子图是一个量子卡诺图,在该规则中,列索引代表控制量子比特的值,行索引代表目标量子比特的值。第一行单元格中的值与第二行单元格中的值交换。图6中的右子图为对应生成的子量子电路。
[0130]
列交换规则:对于上述的第三种情况对应第二目标列,一列只有一个标记的单元格,即第二目标列中的第三列中的第一行和第二行的值均为第一预设值(
‘1’
),第二目标列中的第四列中的第一行和第二行的值均为第二预设值(
‘0’
)。选择一对全
‘0’

‘1’
且汉明距离最近的列,并交换第二行的单元格的值(图7选择的是

1000’和

1010’这两个单元格进行交换)。记录这两列中具有不同值的位,并让这些位属于集合第二行的其他单元格也成对交换,如下式所示:
[0131][0132]
其中,函数表示对属于集合的xm…
xk…
x1x0中的位取反。上述操作对应为若干个广义toffoli门(也可以叫做cnot门),且广义toffoli门的数量等于这两列的汉明距离(即是集合中的元素数量),并且控制量子位是第k个量子位,目标量子位是与集合中的元素对应的量子位经过以上操作,新生成的第k张量子卡诺图必
然有一些列满足第二种情况。图7显示了一个具有4量子位系统的量子卡诺图。
[0133]
在列交换规则中,列索引代表控制量子比特的值,行索引代表目标量子比特的值。该量子卡诺图中相互交换的两列中不同的取值的位集合
[0134]
其中,广义toffoli门对的汉明距离:在一个有m个量子比特的量子系统中,存在一对广义toffoli门,记为tofm(c
μ
,t
μ
,r
μ
)和tofm(c
ν
,t
ν
,rv)。当满足前提条件t
μ
=t
ν
和r
μ
=rv时,该对广义toffoli门的汉明距离d
μ_ν
等于控制线中ξ(c
μ,i
)≠ξ(c
ν,i
)的数量,其中c
μ,i
∈c
μ
,c
v,i
∈cv,如下式所示:
[0135]dμ_v
=ham(tofm(c
μ
,t
μ
,r
μ
),tofm(cv,tv,rv))
[0136]
此外,每当第k张量子卡诺图执行交换操作时,其他量子卡诺图也要被动跟随执行交换操作而无需额外的量子门。交换单元的索引在所有量子卡诺图中都是相同的。图8显示了一个3量子位的量子卡诺图,作为说明该被动交换规则的实例,第1张执行交换操作,如图8中间子图所示,第0张(如图8左子图所示)和第2张(如图8右子图所示)量子卡诺图也要被动执行交换操作,这3张量子卡诺图中需要交换的单元格具有相同的索引。
[0137]
本发明提供的量子电路生成方法,基于行交换规则和列交换规则将逻辑函数对应的量子卡诺图转换成恒等量子卡诺图,并生成量子电路,具有良好的可扩展性,可以高效地为不同规模和不同样式的逻辑函数或置换矩阵自动生成对应的量子电路,克服了由于量子比特数量增加带来的计算开销过大、计算成本变得无法接受的缺陷。
[0138]
进一步地,在一个实施例中,上述方法还包括:
[0139]
确定量子卡诺图中与第一目标列的汉明距离等于第三预设值的各候选列;
[0140]
从各候选列中筛选出第一行和第二行的值相同的第三目标列;
[0141]
将第三目标列添加到第一目标列中,更新第一目标列。
[0142]
可选地,为了在量子计算机上更容易地实现逻辑函数的量子电路生成,这里提出了三种可以兼容量子卡诺图的优化方法:
[0143]
1、基于量子卡诺图标记项的电路优化:该部分主要是对行交换规则的优化。为了减少从量子卡诺图映射为广义toffoli门的控制量子比特的数量,有必要画一个尽可能大的“圆”。
[0144]“圆”的具体解释如下:对于需要行交换的第一目标列l1(即两个单元格值是(
‘1’

‘0’
)、(
‘1’


?’)或(

?’,
‘0’
)),确定量子卡诺图中与第一目标列l1的汉明距离等于第三预设值(如1)的各候选列,从各,候选列中筛选出第一行和第二行的值相同的第三目标列l2(即两个单元格值是(
‘0’

‘0’
),(
‘1’

‘1’
),(

?’,

?’)),并将第三目标列添加到第一目标列中,更新第一目标列。此时,l1和l2中不同的那一位就变成了无关项,从而减少了1位控制比特。类似地,将l1和l2这两列当作一个整体,递归地再找到两列,与现有的l1和l2的汉明距离也仅为1,此时又可以减少1位控制比特。
[0145]
参见图9,最初,需要使用来表示该量子卡诺图中发生的'_001'列的行交换。因为找到了ham(

_001’,

_011’)=1,所以这两列可以合并为

_0*1’。递归地,还发现ham(

_0*1’,

_1*1’)=1(

_1*1’由

_101’和

_111’合并),因此,一个门变成了一个tof4(c={x0},
t={x3},r={x1,x2}),即

_**1’。其中,第

_011’、

_101’和

_111’列不受行交换的影响。
[0146]
如图9中左子图所示,需要行交换的列

_001’。列

_011’和
[0147]

_101’、

_111’由于行交换对其不产生影响,且当前同时执行行交换,能够使得对应的量子电路图变得简单;图9中右子图所示,分别是原始子量子电路和优化后的子量子电路。
[0148]
2、基于汉明距离的电路优化:显然,当汉明距离d
μ_v
=1时,即控制线中ξ(c
μ,i
)≠ξ(c
v,i
)的数量为1,该对广义toffoli门tofm(c
μ
,t
μ
,r
μ
)和tofm(cv,tv,rv)可以被合并为一个门tofm(c,t,r),其中c
μ
=cv={xj|j≠k and j∈[0,m-1]},t
μ
=tv={xk},c={xj|j≠i,k and j∈[0,m-1]},t={xk},r={xi},如图10所示。
[0149]
类似地,当d
μ_v
=2时,为这对广义toffoli门tofm(c
μ
,t
μ
,r
μ
)和tofm(cv,tv,rv)添加两个相同的广义toffoli门tofm(c
α
,t
α
,r
α
),使得d
μ_α
=1和d
v_α
=1。这样一来就可以沿用汉明距离等于1的广义toffoli门对的优化方法,如图11所示。按照相同的思路,如有必要,可以简化汉明距离更远的一对广义toffoli门。
[0150]
3、基于广义toffoli门执行顺序的电路优化:参见图12,在具有m个量子比特的量子系统中,如果一对广义toffoli门a=tofm(ca,ta,ra)和b=tofm(cb,tb,rb)满足以下规则之一,则两个门是可交换的。
[0151]
(1)且
[0152]
(2)且c
b,j
∈cb满足
[0153]
其中,图12中的子图(a)对应于可交换广义toffoli门的规则(1),图12中的子图(b)对应于可交换广义toffoli门的规则(2)。
[0154]
本发明提供的量子电路生成方法,通过对行交换规则进行优化,使得最后生成的量子电路更为简单,同时本发明生成的量子电路可以集成现有的量子电路优化(如基于汉明距离的电路优化和基于广义toffoli门执行顺序的电路优化)方法,从而使得所生成的量子电路更简单。
[0155]
进一步地,在一个实施例中,步骤300可以具体包括:
[0156]
可选地,根据上述交换规则连续交替执行同一列的交换操作和同一行的交换操作,直到所有量子卡诺图转换为恒等量子卡诺图。将所有恒等量子卡诺图对应的子量子电路顺序连接在一起,就是给定的逻辑函数对应的量子电路。
[0157]
相比于其他只能提供三、四个量子比特规模量子电路的量子电路设计方法,本发明提供的量子电路生成方法能够为5量子比特到10量子比特系统(即置换矩阵大小从32
×
32到1024
×
1024),各随机生成了1000个置换矩阵,并通过量子卡诺图找到了其对应的量子电路。
[0158]
相比于现有的量子电路设计方法,本发明提供的量子电路生成方法可以胜任更大规模的量子系统。而且,本发明提供的量子电路生成方法可以兼容一些常用的量子电路优化方法,随着量子比特数量增加,优化前后的量子电路复杂度差别愈加明显,从箱线图中可以看出,大部分控制比特数量多的量子门可以用控制比特数量更少的量子门代替,从而降低了整体量子电路的复杂度。
[0159]
实际实验中,使用处理器为intel(r)core(tm)i7-4600u cpu,主频2.10ghz,编程
软件为python3.7,验证一个规模从5量子比特到10量子比特的可逆逻辑函数/置换阵寻找对应量子电路所需的时间。经过实验发现随着量子比特数量的增加,为逻辑函数/置换阵找到对应的量子电路所耗费的时间也逐渐增大,耗费时间的增长倍数与量子比特的增加之间,大约是呈4的倍数关系。具体地,对于10量子比特规模的逻辑函数/置换阵,生成优化前量子电路所需时间平均为21.824秒,而优化后的时间平均为29.161秒,属于可接受的运行时间。
[0160]
本发明提供的量子电路生成方法,能够为任意规模的可逆或不可逆的逻辑函数/置换矩阵自动构建对应的量子电路,能够集成和兼容其他的量子电路优化方法,同时在大规模/多变量的场景中,仍然能高效执行。
[0161]
下面对本发明提供的量子电路生成系统进行描述,下文描述的量子电路生成系统与上文描述的量子电路生成方法可相互对应参照。
[0162]
图13是本发明提供的量子电路生成系统的结构示意图,如图13所示,包括:
[0163]
第一获取模块1310、第二获取模块1311以及第三获取模块1312;
[0164]
所述第一获取模块1310,用于根据交换规则,将逻辑函数中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图;
[0165]
所述第二获取模块1311,用于获取量子卡诺图转换为对应的恒等量子卡诺图的转换过程中的子量子电路;
[0166]
所述第三获取模块1312,用于根据所述每个变量对应的子量子电路,获取所述逻辑函数或所述置换矩阵的量子电路。
[0167]
本发明提供的量子电路生成系统,在经典数字电路上的卡诺图的基础上,提出基于量子卡诺图的量子电路生成方法,具有良好的可扩展性,可以高效地为不同规模和不同样式的逻辑函数或置换矩阵自动生成对应的量子电路,使得量子电路的生成尽可能简单。
[0168]
图14是本发明提供的一种电子设备的实体结构示意图,如图14所示,该电子设备可以包括:处理器(processor)1410、通信接口(communication interface)1411、存储器(memory)1412和总线(bus)1413,其中,处理器1410,通信接口1411,存储器1412通过总线1413完成相互间的通信。处理器1410可以调用存储器1412中的逻辑指令,以执行如下方法:
[0169]
根据交换规则,将逻辑函数中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图;
[0170]
获取量子卡诺图转换为对应的恒等量子卡诺图的转换过程中的子量子电路;
[0171]
根据每个变量对应的子量子电路,获取逻辑函数或置换矩阵的量子电路。
[0172]
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机电源屏(可以是个人计算机,服务器,或者网络电源屏等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0173]
进一步地,本发明公开一种计算机程序产品,所述计算机程序产品包括存储在非
暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的量子电路生成方法,例如包括:
[0174]
根据交换规则,将逻辑函数中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图;
[0175]
获取量子卡诺图转换为对应的恒等量子卡诺图的转换过程中的子量子电路;
[0176]
根据每个变量对应的子量子电路,获取逻辑函数或置换矩阵的量子电路。
[0177]
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的量子电路生成方法,例如包括:
[0178]
根据交换规则,将逻辑函数中的每个变量的量子卡诺图转换为对应的恒等量子卡诺图;
[0179]
获取量子卡诺图转换为对应的恒等量子卡诺图的转换过程中的子量子电路;
[0180]
根据每个变量对应的子量子电路,获取逻辑函数或置换矩阵的量子电路。
[0181]
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0182]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机电源屏(可以是个人计算机,服务器,或者网络电源屏等)执行各个实施例或者实施例的某些部分所述的方法。
[0183]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献