留空
# Dihedral Group 的群结构
首先我们考虑一下 dihedral group DN=⟨r,s:r2=sN=1,rs=s−1r⟩ 的结构,实际上它是ZN 和Z2 的半直积。
具体地,因为DN 中所有的元素形式都可以写作sxra,其中x∈ZN,a∈Z2。
注意到rasy=s(−1)ayra(使用rs=s−1r 共a 次),所以
sxra⋅syrb=sxs(−1)ayrarb=sx+(−1)ara+b.
因此,DN≅(ZN,+)⋊φ(Z2,+),其中φ:Z2→Aut(ZN) 定义为φ(a)(y)=(−1)ay。
(ZN,+)⋊φ(Z2,+) 上的群运算为
(x,a)⋅(y,b)=(x+φ(a)(y),a+b)=(x+(−1)ay,a+b).
因此单位元是(0,0),逆元为
(x,a)−1=(−(−1)ax,a).
f
我们知道,ZN⋊φZ2 所有的子群只有 3 种情况:
- 循环群⟨(x,0)⟩,其中x∈ZN 要么是 0,要么是N 的一个因子;
- 二元群⟨(y,1)⟩={(y,1),(0,0)},其中y∈ZN;
- 二面体群⟨(x,0),(y,1)⟩,其中x∈ZN 是N 的一个因子,y∈Zx。
Ettinger and Høyer 提出了:不失困难性地,我们可以认为 dihedral group 上的隐含子群都是第二种情况,即可以认为 hidden subgroup 都是二元群⟨(y,1)⟩={(y,1),(0,0)},所以只需要寻找y∈ZN。
他们的主要思想是,首先考虑函数f:DN→S hides a subgroup H=⟨(x,0),(y,1)⟩,那么我们可以考虑函数f 限制在 abelian 群ZN×{0}≤DN 上。
这个函数 hides the subgroup ⟨(x,0)⟩,而且因为限制后的群是 abelian 的,可以量子有效地找到x。
又因为⟨(x,0)⟩⊴DN,所以可以考虑商群DN/⟨(x,0)⟩,我们在商群上定义f′,那么这个f′ 就会 hide ⟨(y,1)⟩。
换句话说,当f hide ⟨(x,0),(y,1)⟩ 时,x 是更容易求出的。因此我们认为,dihedral hidden subgroup problem 的困难程度在于寻找y,即不失困难性地我们假设f hides H=⟨(y,1)⟩ for some y∈ZN。
# Fourier Sampling in the Dihedral Group
我们知道,对于子群H={(y,1),(0,0)},它一共有∣DN∣/2=N 个左陪集,可以由代表元(z,0):z∈ZN 来表示。
因为我们知道
(z1,0)−1⋅(z2,0)=(−z1,0)⋅(z2,0)=(−z1+z2,0),
因此(z1,0)⋅H=(z2,0)⋅H⟺−z1+z2=0。所以每一个z∈ZN 都恰好一一对应一个左陪集(z,0)⋅H。
还是利用之前 Fourier sampling 的做法,假设我们构造了2N1∣(a,b),f(a,b)⟩,然后测量∣f(a,b)⟩,以相同的概率随机掉到一个陪集(z,0)H 中,即得到了状态
∣(z,0)H⟩≜21(∣z,0⟩+∣y+z,1⟩).
我们试图通过这个状态来求解y。
之前的标准做法是对两个寄存器一起做DN 上的 QFT,然后再测量群表示。
但是在这里我们先只在第一个寄存器上做 QFT over ZN,实际上可以证明:对第一个寄存器做 QFT 并测量等价于对 2 个寄存器一起做 QFT over DN 和测量。得到的信息是一样的(不明)。
所以做 QFT 后,得到状态
2N1k∈ZN∑(ωNkz∣k,0⟩+ωNk(y+z)∣k,1⟩)=N1k∈ZN∑ωNkz∣k⟩⊗21(∣0⟩+ωNky∣1⟩).
所以在测量第一个寄存器后,我们将以相等的概率得到一个k∈ZN,然后第二个寄存器的状态是
∣ψk⟩=21(∣0⟩+ωNky∣1⟩).
剩下的问题就是给定k,如何从∣ψk⟩ 中得到y。
实际上,目前的过程是基于 Fourier sampling 的最优解,并没有损失什么信息。
如果我们可以给定k 后构造∣ψk⟩ 就好了(而不是以均匀随机的概率得到k)。因为譬如给定k=N/2,那么∣ψN/2⟩=21(∣0⟩+(−1)y∣1⟩),直接在∣±⟩ 基下测量就可以得到y。
Kuperberg 算法的核心思想就是组合∣ψk⟩,来尽可能地提升我们想要的k 的权重。
给定∣ψp⟩ 和∣ψq⟩ 后,我们可以组合它们得到状态:
∣ψp,ψq⟩(apply CNOT)=21(∣0,0⟩+ωNyp∣1,0⟩+ωNyq∣0,1⟩+ωNy(p+q)∣1,1⟩)↦21(∣0,0⟩+ωNyp∣1,1⟩+ωNyq∣0,1⟩+ωNy(p+q)∣1,0⟩)=21(∣ψp+q,0⟩+ωNyq∣ψp−q,1⟩).
这意味着测量第二个寄存器时,我们可以分别以 1/2 的概率得到 0 和 1,然后得到对应状态∣ψp±q⟩。
本质上p,q 都是群不可约表示的 label,而∣ψp±q⟩ 的提取可以理解为两个不可约表示的张量积后,再直和分解为两个不可约表示:R(p)⊗R(q)=R(p+q)⊕R(p−q)。
# The Kuperberg sieve
接下来我们设N=2n。实际上对于DN,我们只需要得到y 的奇偶性就可以得出y 了。
因为DN 有 2 个子群都同构于DN/2:
{(2x,0),(2x,1):x∈ZN/2},{(2x,0),(2x+1,1):x∈ZN/2}.
如果y 是偶数,那么 hidden subgroup H 是前者的一个子群,否则H 是后者的一个子群。
因此一旦我们知道y 的奇偶性,我们可以限制在DN/2 上来寻找y 的倒数第二位,以此类推。
Kuperberg 算法如下进行:
- 首先,准备Θ(16n) 个状态
∣ψk⟩=21(∣0⟩+ωNky∣1⟩),
每一个k 都是从ZN 中独立均匀随机选取的,这可以由前述 Fourier sampling 做到。
- 对于每个j=0,1,...,m−1,其中m=⌈n⌉,假设现在所有的状态∣ψk⟩ 对应的k 的最后mj 位都是 0。把这些状态配对,使得每一对∣ψp⟩ 和∣ψq⟩ 都满足至少p,q 的最后mj 位是 0(已经满足了),以及后mj..m(j+1) 位相同。把不能配对的状态丢掉。
- 用之前介绍的方法创造∣ψp±q⟩,如果得到+,那么也丢掉。
- 最后剩下了一对状态是∣ψ0⟩ 和∣ψ2n−1⟩(可以证明,初始状态那么多时,大概率会剩下这样一对状态),然后进行测量第二个状态。
这个算法 query 了2(On) 次来准备初始的Θ(16n) 个状态,然后执行了O(n) 个 step,每一个 step 也都需要进行2O(n) 次配对、测量。所以最后 query 和运行时间复杂度都是2O(n)。