留空

# Dihedral Group 的群结构

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

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

sxrasyrb=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,+),其中φ:Z2Aut(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,其中xZNx\in\mathbb{Z}_N 要么是 0,要么是NN 的一个因子;
  • 二元群(y,1)={(y,1),(0,0)}\langle (y,1)\rangle=\{(y,1),(0,0)\},其中yZNy\in\mathbb{Z}_N
  • 二面体群(x,0),(y,1)\langle (x,0),(y,1)\rangle,其中xZNx\in\mathbb{Z}_NNN 的一个因子,yZxy\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)\},所以只需要寻找yZNy\in\mathbb{Z}_N

他们的主要思想是,首先考虑函数f:DNSf: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,我们在商群上定义ff',那么这个ff' 就会 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 yZNy\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):zZN(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。所以每一个zZNz\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)H12(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 后,得到状态

12NkZN(ωNkzk,0+ωNk(y+z)k,1)=1NkZNωNkzk12(0+ωNky1).\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).

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

ψk=12(0+ωNky1).|\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)y1)|\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+ωNyp1,0+ωNyq0,1+ωNy(p+q)1,1)(apply CNOT)12(0,0+ωNyp1,1+ωNyq0,1+ωNy(p+q)1,0)=12(ψp+q,0+ωNyqψpq,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(pq)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):xZN/2},{(2x,0),(2x+1,1):xZN/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+ωNky1),|\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,...,m1j=0,1,...,m-1,其中m=nm=\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ψ2n1|\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})}