我的意识因沉重和慵懒而黏糊糊地沉沦着,与此同时,新陈代谢也在无声地进行着。

# 一个简单的想法和 Szegedy quantum walk

给定一个图G=(V,E)G=(V,E),我们希望在上面随机游走。这个游走的过程最朴素的想法就是,有这样一个变换:

对于任意一个点jVj\in V,变换为:

j1deg(j)k:(j,k)Ek|j\rangle\mapsto \frac{1}{\sqrt{\deg(j)}}\sum_{k:(j,k)\in E}|k\rangle

也就是把j|j\rangle 变化为jj 能到达的邻居kk 的均匀叠加态。

但是不难验证上述变换都不是酉的。

验证:设Uj=j:=1deg(j)k:(j,k)EkU|j\rangle=|\partial_j\rangle:=\frac{1}{\sqrt{\deg(j)}}\sum_{k:(j,k)\in E}|k\rangle,那么:

jUUk=jk0=jk\langle j|U^\dagger U|k\rangle=\langle\partial_j|\partial_k\rangle\neq 0=\langle j|k\rangle

即这个变换不保持内积,就不是酉变换。

怎么解决呢?对于一个转移矩阵PRN×NP\in\mathbb{R}^{N\times N},其中N=VN=|V|。有i,j[N],Pi,j0\forall i,j\in[N],P_{i,j}\geq 0j[N],i=1NPi,j=1\forall j\in [N],\sum_{i=1}^N P_{i,j}=1。(和经典的 Markov 转移矩阵类似,列和为 1)而Pi,jP_{i,j} 意思是从结点jj 转移到结点ii 的概率。那么我们可以记:

ψj:=jk[N]Pk,jk=j,k[N]Pk,jj,k|\psi_j\rangle:=|j\rangle\otimes \sum_{k\in [N]}\sqrt{P_{k,j}}|k\rangle=\sum_{j,k\in [N]}\sqrt{P_{k,j}}|j,k\rangle

即从jj 转移到的结点的一个叠加态。我们也可以引入:

Π:=j=1Nψjψj\Pi:=\sum_{j=1}^N|\psi_j\rangle\langle\psi_j|

很显然有Π2=Π\Pi^2=\Pi,所以它是一个 projective operator。再引入交换算子:

S:=j,k[N]j,kk,jS:=\sum_{j,k\in [N]}|j,k\rangle\langle k,j|

那么一步的 quantum random walk 可以定义为酉变换:

U:=S(2ΠI)U:=S(2\Pi-I)

会发现这非常类似于 Grover 的式子。我们先验证它是一个酉变换:

UU=S(2ΠI)(2ΠI)S=S(2ΠI)(2ΠI)S=S(4Π24Π+I)S=S(4Π4Π+I)S=S2=I\begin{aligned} UU^\dagger&=S(2\Pi -I)(2\Pi - I)^\dagger S^\dagger\\ &=S(2\Pi -I)(2\Pi - I) S\\ &=S(4\Pi^2-4\Pi+I)S\\ &=S(4\Pi-4\Pi+I)S\\ &=S^2\\ &=I \end{aligned}

为什么这么定义量子游走?一个直观的感觉是:

U2=S(2ΠI)S(2ΠI)=(2SΠ2SI)(2ΠI)=(2(SΠ)(SΠ)I)(2ΠI)\begin{aligned} U^2&=S(2\Pi-I)S(2\Pi-I)\\ &=(2S\Pi^2S-I)(2\Pi-I)\\ &=(2(S\Pi)(S\Pi)^\dagger-I)(2\Pi-I) \end{aligned}

其中(2ΠI)(2\Pi-I) 可以看作是:关于空间supp(Π)=span{ψj:j[N]}\text{supp}(\Pi)=\text{span}\{|\psi_j\rangle:j\in [N]\} 的一个 reflection。

因为对于一个向量α|\alpha\rangle,你可以将其分解为属于supp(Π)\text{supp}(\Pi) 和属于supp(Π)\text{supp}(\Pi)^\bot 的两部分。

而作用(2ΠI)(2\Pi-I),就是前一部分不变,后一部分取反。直觉上这就是一个 reflection。

再关于span{Sψj:j[N]}\text{span}\{S|\psi_j\rangle:j\in [N]\} 做一次 reflection。

这个被称为 Szegedy quantum walk。在第三部分我们再详细介绍它的使用和实现。

对于一个PRN×NP\in\mathbb{R}^{N\times N} 满足i,j[N],Pi,j0\forall i,j\in [N],P_{i,j}\geq 0 并且j[N],i=1NPi,j=1\forall j\in [N],\sum_{i=1}^NP_{i,j}=1。它可以诱导出一个 discriminative matrix DD (Dj,k=Pj,kPk,jD_{j,k}=\sqrt{P_{j,k}P_{k,j}})。既然DD 是对称的,那么有谱分解D=λλλD=\sum\lambda|\lambda\rangle\langle\lambda|

定理说:U=S(2ΠI)U=S(2\Pi-I) 的特征值为±1\pm 1λ±i1λ2\lambda\pm i\sqrt{1-\lambda^2},对于DD 的每个特征值λ\lambda

证明:我们定义T=j=1NψjjT=\sum_{j=1}^N|\psi_j\rangle\langle j|,不难验证TT=IT^\dagger T=I, TT=ΠTT^\dagger=\Pi。并且TST=DT^\dagger ST=D

我们定义λ~:=Tλ|\tilde{\lambda}\rangle:=T|\lambda\rangle,那么对于任意一个DD 的特征值λ\lambda 都有:

Uλ~=Sλ~USλ~=2λSλ~λ~U|\tilde{\lambda}\rangle=S|\tilde{\lambda}\rangle\\ US|\tilde{\lambda}\rangle=2\lambda S|\tilde{\lambda}\rangle-|\tilde{\lambda}\rangle

这其实说明了,span{λ~,Sλ~}\text{span}\{|\tilde{\lambda}\rangle,S|\tilde{\lambda}\rangle\} 这个二维子空间在UU 下是不变的。那我们用待定系数法,在这个不变子空间内找UU 的特征值。

假设特征向量为μ:=λ~μSλ~|\mu\rangle:=|\tilde{\lambda}\rangle-\mu S|\tilde{\lambda}\rangle,那么

Uμ=Sλ~μ(2λSλ~λ~)=μλ~+(12λμ)Sλ~U|\mu\rangle=S|\tilde{\lambda}\rangle-\mu(2\lambda S|\tilde{\lambda}\rangle-|\tilde{\lambda}\rangle)=\mu|\tilde{\lambda}\rangle+(1-2\lambda\mu)S|\tilde{\lambda}\rangle

所以我们希望,Uμ=μμU|\mu\rangle=\mu|\mu\rangle,即12λμ=μ21-2\lambda\mu=-\mu^2,解得μ=λ±i1λ2\mu=\lambda\pm i\sqrt{1-\lambda^2}

\square.

# 一点经典的随机游走

如果一个矩阵PRN×NP\in\mathbb{R}^{N\times N} 满足:

  • i,j[N].  Pi,j0\forall i,j\in [N].\;P_{i,j}\geq 0.
  • j[N].  i=1NPi,j=1\forall j\in [N].\;\sum_{i=1}^NP_{i,j}=1.

那么就称PP 是一个 stochastic matrix。

11 是 stochastic matrix PP 的一个特征值,并且对于任意一个特征值λ\lambda,都有λ1|\lambda|\leq 1

证明:首先根据线性代数知识,我们知道PPPTP^T 有相同的特征值。而注意到:

PT(11...1)=(11...1)P^T\begin{pmatrix}1\\1\\...\\1\end{pmatrix}=\begin{pmatrix}1\\1\\...\\1\end{pmatrix}

所以11PP 的一个特征值。此外,对于任意特征值λ\lambda,都有:

PTx=λxj[N].  λxj=i=1NPi,jxiP^T\mathbf{x}=\lambda\mathbf{x}\Rightarrow \forall j\in [N].\;\lambda x_j=\sum_{i=1}^NP_{i,j}x_i

那我们找出绝对值最大的xjx_j,就有:

λxj=i=1NPi,jxi|\lambda|\cdot|x_j|=\left |\sum_{i=1}^N P_{i,j}x_i\right |

根据三角不等式,

λxj=i=1NPi,jxii=1NPi,jxixji=1NPi,j=xj|\lambda|\cdot|x_j|=\left |\sum_{i=1}^N P_{i,j}x_i\right |\leq\sum_{i=1}^N|P_{i,j}x_i|\leq|x_j|\sum_{i=1}^N|P_{i,j}|=|x_j|

所以λ1|\lambda|\leq 1

\square.


下面我们考虑击中时间的分析。譬如给定一个MVM\subset V,我们认为MM 中的顶点被 mark 了。同样给定一个顶点vVv\in V,我们也有办法 check 是否vMv\in M。那么我们主要分析,随机游走什么时候能走到被 mark 的结点。

不失一般性,我们可以假设被 mark 的结点编号都是最大的若干个点。

给定 stochastic matrix PP,可以诱导出一个新的 stochastic matrix:

Pj,k={Pj,kkM1kM,j=k0kM,jkP:=(PM0QI)P'_{j,k}=\begin{cases} P_{j,k}& k\notin M\\ 1 & k\in M,j=k\\ 0 & k\in M,j\neq k \end{cases}\qquad P':=\begin{pmatrix} P_M & \mathbf{0}\\ Q & I \end{pmatrix}

直观地理解就是,走到被 mark 的点后,将不再走出去。那么走tt 步的话,就为:

Pt=(PMt0Q(I+PM+...+PMt1)I)P'^t=\begin{pmatrix} P_M^t &\mathbf{0}\\ Q(I+P_M+...+P_M^{t-1})&I \end{pmatrix}

不失一般性,我们假设最开始我们有一个VMV-M 上的均匀概率分布。

这里为什么不失一般性?因为首先,我们可以有一个VV 上的均匀概率分布,然后假如我们对这个概率分布进行 sample,sample 后进行 check,若 check 到属于MM 就重新 sample,那就得到了一个VMV-M 上的均匀概率分布。

也就是我们分析时不考虑初始一随机 sample 直接 sample 到答案了这种情况。

注意,我们只关心 t 步后,没走到MM 的概率,那么:

(PMt0Q(I+PM+...+PMt1)I)1NM(11...10...0)=1NM(k=1NM[PMt]1,kk=1NM[PMt]2,k...k=1NM[PMt]NM,k...)\begin{pmatrix} P_M^t &\mathbf{0}\\ Q(I+P_M+...+P_M^{t-1})&I \end{pmatrix}\cdot\frac{1}{N-|M|}\begin{pmatrix}1\\1\\...\\1\\0\\...\\0\end{pmatrix}=\frac{1}{N-|M|} \begin{pmatrix} \sum_{k=1}^{N-|M|}[P_M^t]_{1,k}\\ \sum_{k=1}^{N-|M|}[P_M^t]_{2,k}\\ ...\\ \sum_{k=1}^{N-|M|}[P_M^t]_{N-|M|,k}\\ ... \end{pmatrix}

也就是,走tt 步后,没走到MM 的概率为:

P(t)=1NMj,kM[PMt]j,k\mathbb{P}(t)=\frac{1}{N-|M|}\sum_{j,k\notin M}[P_M^t]_{j,k}

我们记v=1NM(1,1,...,1)T|v\rangle=\frac{1}{\sqrt{N-|M|}}\begin{pmatrix}1,1,...,1\end{pmatrix}^T,那么P(t)=vPMtv\mathbb{P}(t)=\langle v|P_M^t|v\rangle

我们知道对于vv=1|\langle v|v\rangle=1 的话,有vAvA|\langle v|A|v\rangle|\leq \| A\| 对于任意矩阵AA,其中,A=maxλ is an eigenvalue of Aλ\|A\|=\max_{\lambda\text{ is an eigenvalue of }A}|\lambda|AA 的谱范数。

如果PM=1Δ\|P_M\|=1-\Delta,那么

P(t)=vPMtvPMtPMt=(1Δ)t\mathbb{P}(t)=|\langle v|P_M^t|v\rangle|\leq\|P_M^t\|\leq \|P_M\|^t=(1-\Delta)^t

所以我们期望走t=O(1/Δ)=O(1/(1PM))t=O(1/\Delta)=O(1/(1-\| P_M\|)) 步,就会以常数的概率走到MM

Lemma: Assuming PP is symmetric, if the second largest eigenvalue of PP (in absolute value) is at most 1δ1-\delta, (i.e. eigenvalue 11 has single multiplicity), and MεN|M|\geq \varepsilon N, then

PM1εδ\|P_M\|\leq 1-\varepsilon\delta

证明:设uRNM|u\rangle\in\mathbb{R}^{N-|M|}PMP_M 的最大特征根对应的特征向量。然后wRN|w\rangle\in\mathbb{R}^N 是在u|u\rangle 下面补齐一堆00 的向量。

因为我们假设了PP 是对称的,那么它的行和、列和都是 1。那么V:=1NjVj|V\rangle:=\frac{1}{\sqrt{N}}\sum_{j\in V}|j\ranglePP 的一个特征值为 1 的特征向量。

由于u|u\rangle 就是最大特征根对应的特征向量,所以

PM=maxλλ=uPMu=wPw\|P_M\|=\max_{\lambda}|\lambda|=\langle u|P_M|u\rangle=\langle w|P|w\rangle

因为PP 是对称的,不妨设其谱分解为P=λλλP=\sum\lambda|\lambda\rangle\langle\lambda|,那么

PM=wPw=λwλλw=Vw2+λ1λλw2Vw2+λ1(1δ)λw2\begin{aligned} \|P_M\|&=\langle w|P|w\rangle\\ &=\sum\lambda\langle w|\lambda\rangle\langle\lambda|w\rangle\\ &=|\langle V|w\rangle|^2+\sum_{\lambda\neq 1}\lambda |\langle\lambda|w\rangle|^2\\ &\leq|\langle V|w\rangle|^2+\sum_{\lambda\neq 1}(1-\delta)|\langle\lambda|w\rangle|^2\\ \end{aligned}

注意到这个λλw2=1\sum_\lambda|\langle\lambda|w\rangle|^2=1,对于任意一个归一化的向量w|w\rangle 都满足。所以

PMVw2+λ1(1δ)λw2=λλw2δλ1λw2=1δ(1Vw2)\begin{aligned} \|P_M\|&\leq|\langle V|w\rangle|^2+\sum_{\lambda\neq 1}(1-\delta)|\langle\lambda|w\rangle|^2\\ &=\sum_{\lambda}|\langle\lambda|w\rangle|^2-\delta\sum_{\lambda\neq 1}|\langle\lambda|w\rangle|^2\\ &=1-\delta(1-|\langle V|w\rangle|^2) \end{aligned}

我们定义ΠV/M=jMjj\Pi_{V/M}=\sum_{j\notin M}|j\rangle\langle j|,那么ΠV/Mw=w\Pi_{V/M}|w\rangle=|w\rangle。因为w|w\rangle 只有前M|M| 个 entry 是 1。那么根据柯西不等式:

Vw2=VΠV/Mw2ΠV/MV2w2=ΠV/MV2=NMN1ε\begin{aligned} |\langle V|w\rangle|^2&=|\langle V|\Pi_{V/M}|w\rangle|^2\\ &\leq\|\Pi_{V/M}|V\rangle\|^2\cdot\||w\rangle\|^2\\ &=\|\Pi_{V/M}|V\rangle\|^2\\ &=\frac{N-M}{N}\\ &\leq 1-\varepsilon \end{aligned}

所以PM1εδ\|P_M\|\leq 1-\varepsilon\delta

\square.

# 对 Szegedy 游走的理解

或许会很奇怪,U=S(2ΠI)U=S(2\Pi-I) 这是从哪来的,有何含义?

我们想一个更符合直观的,更好的理解。譬如我们现在有一个状态u,v|u,v\rangle,它表示:我们现在在结点vv,但是是从uu 走来的。

那么量子随机游走可以看作两个阶段:

  1. Coin flip。保持第二寄存器v|v\rangle 不变,把第一寄存器变成一个vv 能到达结点的一个概率分布,即(v,v)Epvvv\sum_{(v,v')\in E}p_{v'}|v'\rangle\otimes |v\rangle
  2. Deterministic phase。交换两个寄存器,得到(v,v)Epvv,v\sum_{(v,v')\in E}p_{v'}|v,v'\rangle

结束后我们从一个状态u,v|u,v\rangle(其中(u,v)E(u,v)\in E)到达了一个状态上的概率叠加态(v,v)Epvv,v\sum_{(v,v')\in E}p_{v'}|v,v'\rangle

如果对第二寄存器进行测量,我们就可以得到一个新的合法状态v,v|v,v'\rangle

但是我们不这样。我们从任意一个状态开始,不断地进行以上两步,也就是在随机游走,随后就会获得一个结点上的概率分布(u,v)Epu,vu,v\sum_{(u,v)\in E}p_{u,v}|u,v\rangle,只测量第二寄存器,我们可以理解为,走若干步后:

Prob[走到v0]=(u,v0)Epu,v02\text{Prob}[\text{走到}v_0]=\sum_{(u,v_0)\in E}|p_{u,v_0}|^2

这就是一个随机的概率分布。


而重点在于第一个 Coin flip。我们该怎么 flip 呢?有许多策略。其中一个策略是 Hadamard type,它做的事情很简单,就是:

u,v1deg(v)(v,v)Evv|u,v\rangle\mapsto \frac{1}{\sqrt{\deg(v)}}\sum_{(v,v')\in E}|v'\rangle\otimes |v\rangle

就是均匀地走到vv 的邻居上。不难发现,如果整个图是完全图,而且没有结构的,那么我们采用这样的均匀随机走法:

u,v1VuVu,v|u,v\rangle\mapsto\frac{1}{\sqrt{|V|}}\sum_{u\in V}|u,v\rangle

无论你走几步再测量第二寄存器,都和直接在原图上均匀随机没区别。但当在一条链上这样随机游走,可能会有一些其他性质。

但是 Grover 提出一种 Coin flip 的测量。他的朴素想法是,既然我们都知道从哪个结点来的,我们要分开讨论,走回上一个结点的概率和其他点的概率。即:

(CvI)u,v=αu,v+βvNv\{u}v,v(C_v\otimes I)|u,v\rangle=\alpha|u,v\rangle+\beta\sum_{v'\in N_v\backslash\{u\}}|v',v\rangle

其中NvN_v 表示vv 的邻居集合。我们就分开讨论了返回uu 的概率α2\alpha^2 和其他情况的概率。那么为了让CvIC_v\otimes I 是酉变换,就需要:

{α2+(Nv1)β2=12αβ+(Nv2)β2=0\begin{cases} \alpha^2+(|N_v|-1)\beta^2=1\\ 2\alpha\cdot\beta+(|N_v|-2)\beta^2=0 \end{cases}

这是将CvC_v 写成矩阵形式后,要求矩阵列形成了一个归一化的正交基。

所以我们解得

(α,β)=±(1,0) or ±(2Nv1,2Nv)(\alpha,\beta)=\pm(1,0)\text{ or }\pm\left (\frac{2}{|N_v|}-1,\frac{2}{|N_v|}\right )

显然我们更关心后面这种情况。假设图是无向的,此时我们发现:

(CvI)u,v=21NvvNvv,vu,v(C_v\otimes I)|u,v\rangle=2\cdot\frac{1}{|N_v|}\sum_{v'\in N_v}|v',v\rangle-|u,v\rangle

实际上就是

CvI=2vψvψvIC_v\otimes I=2\sum_v|\psi_v\rangle\langle\psi_v|-I

其中ψv=1NvvNvv,v|\psi_v\rangle=\frac{1}{\sqrt{|N_v|}}\sum_{v'\in N_v}|v',v\rangle

这就是 Grover 的 coin flip 来源。


更一般地,我们假设图是全联通也无向的,我们用一个矩阵PRN×NP\in\mathbb{R}^{N\times N} 来表示从结点间的转移关系,譬如Pk,jP_{k,j} 表示从结点jj 到结点kk 转移的概率,如果设为 0 就说明他们不连通。

那么 Grover coin flip 就可以一般化地变为:

2vψvψvI2\sum_v|\psi_v\rangle\langle\psi_v|-I

其中ψv=uVPu,vu,v|\psi_v\rangle=\sum_{u\in V}\sqrt{P_{u,v}}|u,v\rangle

注意,这和第一章中有点小区别就是,把第一个寄存器看作当前结点,还是第二个寄存器看作当前结点。

可以隐隐约约感觉到,这个量子随机游走的之所以可以平方加速,很可能就是U=S(2ΠI)U=S(2\Pi-I) 的特征值是eiarccosλe^{i\arccos\lambda} 这个有个三角函数,然后三角函数泰勒展开是一个根号平方之类的。

一个可能的实现(IsQ 风格)为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

defgate U = [...]; // 2Pi-I


defgate S = [...]; // 交换变换

unit random_walk(){
qbit q[n];
q = |0>;
// start from |0, 0>
qbit anc;
int a = M(anc);
while (!a) {
U(q[3], q[2], q[1], q[0]);
M(q[1]);
M(q[0]);
S(q[3], q[2], q[1], q[0]);
U_marked(q[3], q[2], anc);
a = M(anc);
}
}