留空

# Dihedral Group 的群结构

首先我们考虑一下 dihedral group DN=⟨r,s:r2=sN=1,rs=s−1r⟩D_N=\langle r,s:r^2=s^N=1,rs=s^{-1}r\rangle 的结构,实际上它是ZN\mathbb{Z}_N 和Z2\mathbb{Z}_2 的半直积。

具体地,因为DND_N 中所有的元素形式都可以写作sxras^xr^a,其中x∈ZN,a∈Z2x\in \mathbb{Z}_N,a\in\mathbb{Z}_2。
注意到rasy=s(−1)ayrar^as^y=s^{(-1)^ay}r^a(使用rs=s−1rrs=s^{-1}r 共aa 次),所以

sxra⋅syrb=sxs(−1)ayrarb=sx+(−1)ara+b.\begin{aligned} s^xr^a\cdot s^yr^b&=s^xs^{(-1)^ay}r^{a}r^b=s^{x+(-1)^a}r^{a+b}.\\ \end{aligned}

因此,DN≅(ZN,+)⋊φ(Z2,+)D_N\cong (\mathbb{Z}_N,+)\rtimes_\varphi (\mathbb{Z}_2,+),其中φ:Z2→Aut(ZN)\varphi:\mathbb{Z}_2\to Aut(\mathbb{Z}_N) 定义为φ(a)(y)=(−1)ay\varphi(a)(y)=(-1)^ay。

(ZN,+)⋊φ(Z2,+)(\mathbb{Z}_N,+)\rtimes_\varphi (\mathbb{Z}_2,+) 上的群运算为

(x,a)⋅(y,b)=(x+φ(a)(y),a+b)=(x+(−1)ay,a+b).(x,a)\cdot (y,b)=(x+\varphi(a)(y),a+b)=(x+(-1)^ay,a+b).

因此单位元是(0,0)(0,0),逆元为

(x,a)−1=(−(−1)ax,a).(x,a)^{-1}=(-(-1)^ax,a).

f
我们知道,ZN⋊φZ2\mathbb{Z}_N\rtimes_\varphi\mathbb{Z}_2 所有的子群只有 3 种情况:

  • 循环群⟨(x,0)⟩\langle(x,0)\rangle,其中x∈ZNx\in\mathbb{Z}_N 要么是 0,要么是NN 的一个因子;
  • 二元群⟨(y,1)⟩={(y,1),(0,0)}\langle (y,1)\rangle=\{(y,1),(0,0)\},其中y∈ZNy\in\mathbb{Z}_N;
  • 二面体群⟨(x,0),(y,1)⟩\langle (x,0),(y,1)\rangle,其中x∈ZNx\in\mathbb{Z}_N 是NN 的一个因子,y∈Zxy\in\mathbb{Z}_x。

Ettinger and Høyer 提出了:不失困难性地,我们可以认为 dihedral group 上的隐含子群都是第二种情况,即可以认为 hidden subgroup 都是二元群⟨(y,1)⟩={(y,1),(0,0)}\langle (y,1)\rangle=\{(y,1),(0,0)\},所以只需要寻找y∈ZNy\in\mathbb{Z}_N。

他们的主要思想是,首先考虑函数f:DN→Sf:D_N\to S hides a subgroup H=⟨(x,0),(y,1)⟩H=\langle (x,0),(y,1)\rangle,那么我们可以考虑函数ff 限制在 abelian 群ZN×{0}≤DN\mathbb{Z}_N\times \{0\}\leq D_N 上。
这个函数 hides the subgroup ⟨(x,0)⟩\langle (x,0)\rangle,而且因为限制后的群是 abelian 的,可以量子有效地找到xx。
又因为⟨(x,0)⟩⊴DN\langle (x,0)\rangle\unlhd D_N,所以可以考虑商群DN/⟨(x,0)⟩D_N/\langle(x,0)\rangle,我们在商群上定义f′f',那么这个f′f' 就会 hide ⟨(y,1)⟩\langle (y,1)\rangle。

换句话说,当ff hide ⟨(x,0),(y,1)⟩\langle (x,0),(y,1)\rangle 时,xx 是更容易求出的。因此我们认为,dihedral hidden subgroup problem 的困难程度在于寻找yy,即不失困难性地我们假设ff hides H=⟨(y,1)⟩H=\langle (y,1)\rangle for some y∈ZNy\in\mathbb{Z}_N。

# Fourier Sampling in the Dihedral Group

我们知道,对于子群H={(y,1),(0,0)}H=\{(y,1),(0,0)\},它一共有∣DN∣/2=N|D_N|/2=N 个左陪集,可以由代表元(z,0):z∈ZN(z,0):z\in\mathbb{Z}_N 来表示。

因为我们知道

(z1,0)−1⋅(z2,0)=(−z1,0)⋅(z2,0)=(−z1+z2,0),(z_1,0)^{-1}\cdot (z_2,0)=(-z_1,0)\cdot (z_2,0)=(-z_1+z_2,0),

因此(z1,0)⋅H=(z2,0)⋅H  ⟺  −z1+z2=0(z_1,0)\cdot H=(z_2,0)\cdot H\iff -z_1+z_2=0。所以每一个z∈ZNz\in\mathbb{Z}_N 都恰好一一对应一个左陪集(z,0)⋅H(z,0)\cdot H。

还是利用之前 Fourier sampling 的做法,假设我们构造了12N∣(a,b),f(a,b)⟩\frac{1}{\sqrt{2N}}|(a,b),f(a,b)\rangle,然后测量∣f(a,b)⟩|f(a,b)\rangle,以相同的概率随机掉到一个陪集(z,0)H(z,0)H 中,即得到了状态

∣(z,0)H⟩≜12(∣z,0⟩+∣y+z,1⟩).|(z,0)H\rangle\triangleq\frac{1}{\sqrt{2}}(|z,0\rangle+|y+z,1\rangle).

我们试图通过这个状态来求解yy。

之前的标准做法是对两个寄存器一起做DND_N 上的 QFT,然后再测量群表示。
但是在这里我们先只在第一个寄存器上做 QFT over ZN\mathbb{Z}_N,实际上可以证明:对第一个寄存器做 QFT 并测量等价于对 2 个寄存器一起做 QFT over DND_N 和测量。得到的信息是一样的(不明)。

所以做 QFT 后,得到状态

12N∑k∈ZN(ωNkz∣k,0⟩+ωNk(y+z)∣k,1⟩)=1N∑k∈ZNωNkz∣k⟩⊗12(∣0⟩+ωNky∣1⟩).\frac{1}{\sqrt{2N}}\sum_{k\in\mathbb{Z}_N}(\omega^{kz}_N|k,0\rangle+\omega^{k(y+z)}_N|k,1\rangle)=\frac{1}{\sqrt{N}}\sum_{k\in\mathbb{Z}_N}\omega^{kz}_N|k\rangle\otimes\frac{1}{\sqrt{2}}(|0\rangle+\omega^{ky}_N|1\rangle).

所以在测量第一个寄存器后,我们将以相等的概率得到一个k∈ZNk\in\mathbb{Z}_N,然后第二个寄存器的状态是

∣ψk⟩=12(∣0⟩+ωNky∣1⟩).|\psi_k\rangle=\frac{1}{\sqrt{2}}(|0\rangle+\omega^{ky}_N|1\rangle).

剩下的问题就是给定kk,如何从∣ψk⟩|\psi_k\rangle 中得到yy。

实际上,目前的过程是基于 Fourier sampling 的最优解,并没有损失什么信息。

如果我们可以给定kk 后构造∣ψk⟩|\psi_k\rangle 就好了(而不是以均匀随机的概率得到kk)。因为譬如给定k=N/2k=N/2,那么∣ψN/2⟩=12(∣0⟩+(−1)y∣1⟩)|\psi_{N/2}\rangle=\frac{1}{\sqrt{2}}(|0\rangle+(-1)^{y}|1\rangle),直接在∣±⟩|\pm\rangle 基下测量就可以得到yy。

Kuperberg 算法的核心思想就是组合∣ψk⟩|\psi_k\rangle,来尽可能地提升我们想要的kk 的权重。

给定∣ψp⟩|\psi_p\rangle 和∣ψq⟩|\psi_q\rangle 后,我们可以组合它们得到状态:

∣ψp,ψq⟩=12(∣0,0⟩+ωNyp∣1,0⟩+ωNyq∣0,1⟩+ωNy(p+q)∣1,1⟩)(apply CNOT)↦12(∣0,0⟩+ωNyp∣1,1⟩+ωNyq∣0,1⟩+ωNy(p+q)∣1,0⟩)=12(∣ψp+q,0⟩+ωNyq∣ψp−q,1⟩).\begin{aligned} |\psi_p,\psi_q\rangle&=\frac{1}{2}(|0,0\rangle+\omega^{yp}_N|1,0\rangle+\omega^{yq}_N|0,1\rangle+\omega^{y(p+q)}_N|1,1\rangle)\\ \text{(apply CNOT)}&\mapsto\frac{1}{2}(|0,0\rangle+\omega^{yp}_N|1,1\rangle+\omega^{yq}_N|0,1\rangle+\omega^{y(p+q)}_N|1,0\rangle)\\ &=\frac{1}{\sqrt{2}}(|\psi_{p+q},0\rangle+\omega^{yq}_N|\psi_{p-q},1\rangle). \end{aligned}

这意味着测量第二个寄存器时,我们可以分别以 1/2 的概率得到 0 和 1,然后得到对应状态∣ψp±q⟩|\psi_{p\pm q}\rangle。

本质上p,qp,q 都是群不可约表示的 label,而∣ψp±q⟩|\psi_{p\pm q}\rangle 的提取可以理解为两个不可约表示的张量积后,再直和分解为两个不可约表示:R(p)⊗R(q)=R(p+q)⊕R(p−q)R^{(p)}\otimes R^{(q)}=R^{(p+q)}\oplus R^{(p-q)}。

# The Kuperberg sieve

接下来我们设N=2nN=2^n。实际上对于DND_N,我们只需要得到yy 的奇偶性就可以得出yy 了。
因为DND_N 有 2 个子群都同构于DN/2D_{N/2}:

{(2x,0),(2x,1):x∈ZN/2},{(2x,0),(2x+1,1):x∈ZN/2}.\{(2x,0),(2x,1):x\in\mathbb{Z}_{N/2}\},\qquad \{(2x,0),(2x+1,1):x\in\mathbb{Z}_{N/2}\}.

如果yy 是偶数,那么 hidden subgroup HH 是前者的一个子群,否则HH 是后者的一个子群。

因此一旦我们知道yy 的奇偶性,我们可以限制在DN/2D_{N/2} 上来寻找yy 的倒数第二位,以此类推。

Kuperberg 算法如下进行:

  1. 首先,准备Θ(16n)\varTheta(16^{\sqrt{n}}) 个状态

    ∣ψk⟩=12(∣0⟩+ωNky∣1⟩),|\psi_k\rangle=\frac{1}{\sqrt{2}}(|0\rangle+\omega^{ky}_N|1\rangle),

    每一个kk 都是从ZN\mathbb{Z}_N 中独立均匀随机选取的,这可以由前述 Fourier sampling 做到。
  2. 对于每个j=0,1,...,m−1j=0,1,...,m-1,其中m=⌈n⌉m=\lceil\sqrt{n}\rceil,假设现在所有的状态∣ψk⟩|\psi_k\rangle 对应的kk 的最后mjmj 位都是 0。把这些状态配对,使得每一对∣ψp⟩|\psi_p\rangle 和∣ψq⟩|\psi_q\rangle 都满足至少p,qp,q 的最后mjmj 位是 0(已经满足了),以及后mj..m(j+1)mj..m(j+1) 位相同。把不能配对的状态丢掉。
  3. 用之前介绍的方法创造∣ψp±q⟩|\psi_{p\pm q}\rangle,如果得到++,那么也丢掉。
  4. 最后剩下了一对状态是∣ψ0⟩|\psi_0\rangle 和∣ψ2n−1⟩|\psi_{2^{n-1}}\rangle(可以证明,初始状态那么多时,大概率会剩下这样一对状态),然后进行测量第二个状态。

这个算法 query 了2(On)2^{(O\sqrt{n})} 次来准备初始的Θ(16n)\varTheta(16^{\sqrt{n}}) 个状态,然后执行了O(n)O(\sqrt{n}) 个 step,每一个 step 也都需要进行2O(n)2^{O(\sqrt{n})} 次配对、测量。所以最后 query 和运行时间复杂度都是2O(n)2^{O(\sqrt{n})}。

編集日 閲覧数 回