自动编译量子电路


12

这里有一个最近的问题,询问如何将4量子位门CCCZ(受控-受控-受控Z)编译为简单的1量子位和2量子位门,到目前为止给出的唯一答案需要63个门

第一步是使用Nielsen&Chuang提供的C U构造:n

在这意味着4个CCNOT门和3个简单门(1个CNOT和2个Hadamards足以对目标量子位和最后一个工作量子位进行最终CZ)。n=3

本文的定理1表示,一般而言,CCNOT需要9个1量子位和6个2量子位门(总共15个):

在此处输入图片说明


这表示:

(4个CCNOT)x(每个CCNOT 15个门)+(1个CNOT)+(2个Hadamards)= 63个门

评论中,已经建议可以使用“自动程序”进一步编译63个门,例如根据自动组的理论。

如何进行这种“自动编译”?在这种情况下,它将减少多少个1量子位和2量子位门?


1
我正在做一些事情,但发现了您的问题。全局Mølmer–Sørensen门是2个量子位门,在高效量子电路结构使用全局相互作用的论文描述:“使用三个GMS门优化CCCZ门的实现”,请参见图9。有帮助的。
罗布

图像中的表示仅需要4 CCNOTs,因此门63,而不是93
双荷粒子Ĵ唐猕猴桃面包车Vreumingen

@DonKiwi,指出!4个CCNOT,而不是6个。我现在进行更新。
user1271772

1
@Rob:您似乎建议使用两个Hadamards在CCCX中将X共轭。然后,可以像在上面的Nielsen&Chaung电路中一样分解CCCX。那是对的吗?在我对DonKiwi问题的第二个回答中,我做了类似的事情。好像您输入我的答案时就发表了评论,因为它们相距5分钟(我输入它花了5分钟多的时间)。但是,有关“自动编译”的问题仍然存在,因为能够以“显而易见的方式”构造电路,然后自动编译为更有效的方法会很好。
user1271772

1
@ user1271772-每个(qu)位都有帮助。
罗布

Answers:


6

令为允许使用的基本门。为此,和等被视为分开的。因此,是多项式依赖于的位数。精确的依赖关系涉及您使用的各种门以及它们在局部的详细信息。例如,如果有单量子位门和 2量子位门不依赖于像这样的顺序,则。g1gMCNOT12CNOT13MnkxyCZM=xn+(n2)y

这样一来,电路就是这些生成器按某种顺序排列的产物。但是有多个电路什么也不做。像。因此,这些人给小组带来了关系。那是一个小组演示,其中有许多我们不知道的关系。CNOT12CNOT12=Id g1gMR1

我们希望解决的问题是在该组中给一个单词,代表相同元素的最短单词是什么。对于一般的小组演讲,这是没有希望的。可以解决此问题的小组介绍称为自动。

但是我们可以考虑一个更简单的问题。如果我们抛弃某些,则from之前的单词将变成,其中每个仅是其余字母中的单词。如果我们使用不涉及的关系设法使它们更短,那么我们将使整个电路更短。这类似于在另一个答案中自行优化CNOT。giw1gi1w2gi2wkwigi

例如,如果有三个生成器,并且单词是,但我们不想处理,我们将和缩短为和。然后,我们将它们重新组合为,这是原始单词的缩写。aababbacbbabacw1=aababbaw2=bbabaw^1w^2w^1cw^2

因此,WLOG(不失一般性),让我们假设已经在这个问题中,现在我们使用所有指定的门。同样,这可能不是自动组。但是,如果我们丢掉一些关系怎么办。然后,我们将有另一个小组,其商数映射到我们真正想要的商数映射。g1gMR1

组 no Relationships是一个自由组,但是如果将作为一个关系,您将获得免费产品并且存在从前者到后者的商映射,以减少模中每个段中的数量。g1g2g12=id Z2Zg12

我们抛出的关系将是这样的,楼上的那个(商图的来源)将通过设计自动实现。如果仅使用保留的关系并缩短单词,那么对于商组来说,它仍然是一个较短的单词。对于商组(商映射的目标)而言,它并不是最佳选择,但其长度等于开始时的长度。

那是一般的想法,我们如何将其转换为特定的算法?

我们如何选择要抛出的和关系以获得自动组?这是我们通常使用的基本门的知识的来源。有很多内卷,因此仅保留这些内卷。请注意以下事实,即这些仅仅是基本的对位运算,因此,如果您的硬件很难交换芯片上相距遥远的qubit,则只能将它们写入您可以轻松完成的工作并将其减少为越短越好。gi

例如,假设您具有IBM配置。那么是允许的门。如果要进行一般置换,请将其分解为因子。这是组中的一个词,我们希望缩短。s01,s02,s12,s23,s24,s34si,i+1s01,s02,s12,s23,s24,s34R1

请注意,这些不一定是标准的对合。例如,除了外,还可以放入。想一想Gottesman-Knill定理,但以抽象的方式意味着它更容易推广。例如使用在短的精确序列下的属性,如果您在两侧都有有限的完整重写系统,那么对于中间组,您将获得一个。对于其余的答案,该注释是不必要的,但是它说明了如何从该答案的示例中构建更大,更通用的示例。R(θ)XR(θ)1X

保留的关系仅是。这将创建一个Coxeter组,并且它是自动的。实际上,我们甚至不必从头开始为这种自动结构编写算法。一般已经在Sage(基于Python)中实现了它。您所要做的就是指定并且剩下的实现已经完成。您可能还需要进行一些加速。(gigj)mij=1mij

mij由于门的局部性,真的很容易计算。如果门最多为局部,则可以在维希尔伯特空间上完成的计算。这是因为如果索引不重叠,则您知道。当和下班时,。您还只需要计算少于一半的条目。这是因为矩阵是对称的,对角线上有()。同样,大多数条目只是重命名所涉及的量子位,因此,如果您知道kmij22k1mij=2mij=2gigjmij1(gigi)1=1(CNOT12H1),您知道的顺序,而无需再次进行计算。CNOT37H3

这样可以处理所有最多只涉及两个不同门的关系(证明:锻炼)。涉及或更多关系的关系都被抛出了。现在,我们将它们放回去。假设我们已经有了,然后可以使用新的关系执行Dehn的贪婪算法。如果有更改,我们将其重新敲响,再次遍历Coxeter小组。重复此操作直到没有更改。3

每当单词变短或保持相同的长度时,我们仅使用具有线性或二次行为的算法。这是一个相当便宜的过程,因此最好这样做,并确保您没有做任何愚蠢的事情。

如果您想自己进行测试,则将生成器的数量设置为,将要尝试的随机单词的长度设置为,将Coxeter矩阵设置为。NKm

edge_list=[]
for i1 in range(N):
    for j1 in range(i):
        edge_list.append((j1+1,i1+1,m[i1,j1]))
G3 = Graph(edge_list)
W3 = CoxeterGroup(G3)
s3 = W3.simple_reflections()
word=[choice(list([1,..,N])) for k in range(K)]
print(word)
wTesting=s3[word[0]]
for o in word[1:]:
    wTesting=wTesting*s3[o]
word=wTesting.coset_representative([]).reduced_word()
print(word)

N=28和的示例K=20,前两行是输入的未精简词,后两行是精简词。我希望输入矩阵时不要打错字。m

[26, 10, 13, 16, 15, 16, 20, 22, 21, 25, 11, 22, 25, 13, 8, 20, 19, 19, 14, 28]

['CNOT_23', 'Y_1', 'Y_4', 'Z_2', 'Z_1', 'Z_2', 'H_1', 'H_3', 'H_2', 'CNOT_12', 'Y_2', 'H_3', 'CNOT_12', 'Y_4', 'X_4', 'H_1', 'Z_5', 'Z_5', 'Y_5', 'CNOT_45']

[14, 8, 28, 26, 21, 10, 15, 20, 25, 11, 25, 20]

['Y_5', 'X_4', 'CNOT_45', 'CNOT_23', 'H_2', 'Y_1', 'Z_1', 'H_1', 'CNOT_12', 'Y_2', 'CNOT_12', 'H_1']

放回类似生成器,我们只放回类似的关系,并且与不涉及qubit门进行交换。这使我们能够分解从面前的尽可能长的时间。我们想避免。(在Cliff + T中,人们通常试图使T数最小化)。对于这一部分,显示依赖性的有向无环图至关重要。这是找到DAG的良好拓扑类型的问题。当一个人可以选择接下来要使用的顶点时,可以通过更改优先级来实现。(我不会浪费时间优化这一部分。)TiTin=1Tiiw1gi1w2gi2wkwiX1T2X1T2X1T2X1

如果单词已经接近最佳长度,则无需执行太多操作,此过程将无济于事。但由于其发现的最基本的例子是,如果您有多个单位,你忘了有一个在一个结束和在下次的开始,这将摆脱对。这意味着您可以放心地将常用例程放在黑匣子中,当您将它们放在一起时,那些明显的取消都将得到解决。它所做的其他事情并不那么明显。那些在。HiHimij1,2


+1 !!! 很多细节!我正在阅读:)
user1271772 '18

1
@AHussain,是否可以通过一个示例将其应用于我所问的“天真的” CCCZ结构中,并最终获得较少的门数?有关CCCZ的原始问题现在有6个答案,而且许多答案的门数都少得多。我不知道您的方法会给登机口计数带来什么。
user1271772

4

使用https://arxiv.org/abs/quant-ph/0303063 1中描述的程序,可以根据CNOT和一比特对角门来分解任何对角门-特别是CCCZ门。可以按照经典的优化程序自行优化CNOT。

该参考文献提供了一个电路,该电路使用16个CNOT用于任意对角4量子位门(图4)。


备注:虽然原则上可以有一个更简单的电路(在考虑到更严格的电路架构的基础上对上述电路进行了优化),但它应该接近最佳状态-电路需要创建对于任何非平凡的子集,其中有15个用于4个量子位。iIxiI{1,2,3,4}

还要注意,这种构造绝不是最佳的。


1注意:我是作者


有趣。我仍然必须阅读该论文以了解操作步骤。我也在等待@AHussain告诉我们如何使用自动组的理论来做到这一点。
user1271772
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.