量子算法求解多元二次方程

求解多元二次方程的渐近更快量子算法

1 引言

根据定义,一个与非门读取两个比特 $a, b \in F_2$ 作为输入,并产生一个比特 $c= 1−ab$ 作为输出。众所周知,对于任意 $\ell$ 和任意 $\ell’$,从 $\ell$ 位字符串到$\ell’$ 位字符串的任何函数都可以被视为由与非门构成的电路所计算。

例如,可以通过计算 $c= 1−ab$, $d= 1−ac$, $e= 1−bc$, $f= 1−cc$, $g= 1−de$ 来计算2位到2位函数$(a, b) \mapsto (ab, a+b)$;注意 $f= ab$ 和 $g= a+ b$。通过进一步组合,可以构建例如从两个32位输入产生32位输出的整数加法电路;从固定长度输入计算256位SHA‐256输出的电路;以及将两个保密的1024位素数的乘积计算为2048位RSA公钥的电路。

由与非门构成的电路是标准计算模型之一。从根本上说,这也是当今进行计算的方式。1因此,逆向当今某项计算的问题——例如,寻找哈希输出的原像,或根据公钥寻找私钥,或给定公钥和密文寻找明文——可以被视为求解一个多 元二次(“MQ”)方程组的问题。二次 此处“二次”表示“次数最多为2”,因此二次方程包含线性方程。

具体而言,每个与非门最多可以用三个变量中的一个二次方程表示,例如在变量 $a, b, c$ 中的方程 $c= 1 − ab$,或在两个变量 $c, f$ 中的方程 $f= 1 − cc$。注意,利用 $c^2= c$ 这一事实,第二个方程可以简化为线性方程 $f= 1−c$。计算中的每个已知输出位都可以表示为一个线性方程,例如 $g= 0$。

1.1 MQ方程的随机系统

形式上,一个二次方程$\sum_{j\geq k} \alpha_{j,k}x_jx_k= \beta$ 在 $n$ 个变量 $x_1, x_2, . . . , x_n$ 上定义于$F_2$,由 $n(n+1)/2+1$ 个系数$\alpha_{1,1}, \alpha_{2,1}, \alpha_{2,2}, . . . , \alpha_{n,n}, \beta$ 指定。因此,一个包含 $m$ 个二次方程和 $n$ 个变量的系统由 $m(n(n+ 1)/2+ 1)$ 个系数确定。方程求解问题是指:给定这些系数,判断是否存在一组解$(x_1, x_2, . . . , x_n) \in F^n_2$ 满足所有 $m$ 个方程,如果存在,则找出其中一个解。注意,判断解是否存在的一种可靠方法可以递归地用于寻找解。

关于依赖于系数特殊结构的快速方程求解技术,已有大量文献。例如,线性方程组($\alpha_{j,k}= 0$ 如果 $j \neq k$)很容易求解。更一般地,任何非零线性方程都可以被消去,并同时消去该方程中使用的一个变量,从而得到一个包含 $m −1$ 个二次方程和 $n −1$ 个变量的系统。再比如,某些系统具有“三角”结构,使其易于求解:可以首先独立于其他变量求解一个变量,然后求解另一个变量,依此类推。又如,将一个256位整数分解为两个128位因子的问题具有极大的数学结构,现代因式分解算法正是利用了这种结构,使得在笔记本电脑上仅需几分钟即可完成。但这些例子都不太可能适用于具有 $m= n= 256$ 的均匀随机系统:一个256个变量中的256个方程,其中每个系数都从$F_2$中均匀且独立地随机选择。

攻击具有较大 $m$ 和较大 $n$ 的均匀随机系统的最快方法是什么?这个问题在后量子密码学中具有重要应用:求解此类系统,特别是当 $m$ 略小于 $n$ 时,据推测可攻破典型的MQ签名系统,例如Patarin的经典“HFEv−”[19,第4节 结合 11.1和11.3]的修改。具体而言,在这些系统中,公钥是一组系数 $\alpha_{i,j,k}$,据推测难以与均匀随机系统区分;消息的哈希值是一组系数 $\beta_i$,在随机预言模型中根据定义即为均匀随机;而对应方程组的解即为对该消息的签名。

人们对这些签名系统感兴趣的一个核心原因是它们能够实现非常短的签名:似乎一个安全的抗量子MQ签名甚至可以比经典ECC签名更短。但此处的安全性评估在很大程度上依赖于对求解均匀随机系统的MQ方程难度的量化。

还提出了各种多变量二次加密系统,其安全分析依赖于同一问题的一个微小变体:$m$ 比 $n$ 稍大一些,人们希望知道攻击一个均匀随机的可解solvable系统的最快方法。用于求解MQ方程的随机系统的算法在多变量二次密码学之外也有一些应用,例如在[8]中针对某些小密钥基于编码的加密系统的攻击所示。

1.2 随机系统的各种算法性能

我们考虑渐近攻击成本为 $m \to \infty$ 和 $n \to \infty$,且具有基本恒定的比率 $m/n$。具体地,设 $\mu$ 为满足 $\mu \geq 1$ 的一个实数,并假设 $m$ 是 $n$ 的函数,满足 $m/n \in \mu+ o(1)$,当 $n \to \infty$ 时。

我们分析的所有算法问题在常用情况 $\mu= 1$ 中都是显而易见的,特别是 $m= n$;读者可专注于此情况。标准HFEv−参数实际上取 $m$ 略小于 $n$,但仍满足 $m/n \in 1+ o(1)$ 为 $n \to \infty$。但请注意,“FXL”(见下文)和用于 $\mu= 1$ 的“GroverXL”对 $\mu> 1$ 使用“XL算法”。

暴力搜索最多使用 $N^{1+o(1)}$ 操作,其中 $N= 2^n$:对于 $(x_1, x_2,…, x_n)$ 有 $N$ 种可能性,检查一种可能性需要 $N^{o(1)}$ 次操作。对于 $m< n$(“欠定”情况),可以合理预期解在仅 $2^m$ 种可能性内就会出现,但假设 $\mu \geq 1$ 意味着 $2^m$ 并不优于 $N^{1+o(1)}$。

暴力搜索在渐近意义上被Gröbner基技术所超越。具体而言:
- “扩展线性化”(XL算法)在$\mu= 1$ 的情况下,根据已在各种实验中验证过的合理假设,仅使用 $N^{0.87280…+o (1)}$ 操作。
- 更好的是,将暴力搜索与XL算法结合可产生“固定后扩展线性化”(FXL),在相同假设下,该方法仅需 $N^{0.79106…+o (1)}$ 操作即可处理 $\mu= 1$ 的情况。

这里的指数 $0.87280…$ 和 $0.79106…$ 在2004年由杨、陈和库尔图瓦发表,尽管存在计算错误(0.785 而非 0.79106)[26]。有关更多历史背景以及XL算法工作原理的解释,请参见第2节。

暴力搜索也会被最近的Lokshtanov–Paturi–Tamaki–Williams–Yu算法 [15],在渐近意义上超越,该算法最多使用 $N^{0.8765+o(1)}$ 次操作。该算法是随机化的,但对于每个输入,已证明其产生正确结果的错误概率可以忽略不计。指数 $0.8765+o(1)$ 高于 $0.79106…+ o(1)$,而最坏情况下的可证明性不在本文讨论范围内。我们尚不清楚[15]中的思想是否能在FXL中节省时间。

1.3 随机系统的量子算法

量子计算机以不同的方式击败暴力搜索:具体来说,格罗弗算法使用$N^{0.5+o(1)}$ 操作。这些操作是串行的,但只需并行运行 $A$ 个格罗弗算法的副本即可将时间减少 $A^{1/2}$ 倍。例如,并行格罗弗在总面积为 $N^{0.08+o(1)}$ 的量子计算机上所需时间为 $N^{0.46+o(1)}$,或在面积为 $N^{0.3+o(1)}$ 的量子计算机上所需时间为 $N^{0.35+o(1)}$。

本文考虑的主要问题是格罗弗方法是否可以有效地与XL算法结合。我们对此给出了肯定的回答。我们的主要贡献是设计并分析了一种名为GroverXL的算法,该算法在与分析FXL相同的假设条件下,其指数低于 $0.5+o(1)$。

我们首先在简化的操作计数度量下分析该算法,然后在并行二维网格连接架构的实际面积和时间度量下进行分析。有关这些度量的讨论,请参见第2.6和 3.3节,主要分析见第 4节。例如,对于 $m= n$,GroverXL在面积为 $N^{a+o(1)}$ 的网格连接量子计算机上所需时间为$N^{t+o(1)}$,其中用户可选择以下任一参数组$(t, a)$:
$$
(t, a, t+ a, t+ a/2)=(0.45742…, 0.01467…, 0.47210…, 0.46476…) \text{ or }
(t, a, t+ a, t+ a/2)=(0.44962…, 0.02557…, 0.47519…, 0.46240…).
$$
面积‐时间乘积为 $N^{t+a+o(1)}$,参数集1旨在优化该指数 $t+ a$。GroverXL可以进一步并行化,在面积为 $N^{a+2p+o(1)}$ 的网格连接量子计算机上所需时间为 $N^{t−p+o(1)}$;参数集2旨在优化此面积‐时间权衡。例如,当面积指数为0.22481…时,时间指数降至0.35,而使用并行格罗弗达到时间指数0.35则需要如上所述的面积指数0.30000。

我们更一般地表述了在$F_q$上的 $m$ 个二次方程和 $n$ 个变量的MQ系统的求解结果。从$F_2$推广到$F_q$在许多MQ系统及进一步的应用中均会出现。当然,随着 $q$ 的增大,猜测$F_q$中元素的速度会变慢;当 $q$ 足够大时,应直接使用XL算法。

2 XL算法和FXL

本节回顾了在有限域$F_q$上求解 $m$ 个方程和 $n$ 个变量的XL和FXL算法。为简便起见,我们仅考虑二次方程,尽管这些方法可以很容易地扩展到三次系统及更高次系统。

示意图0

xyz+ xy+ xz+ x= 0 0 = 0 xyz+ xz+ yz+ z= 0 xy+ x+ yz+ z= 0
xy+ xz = 0
xyz+ xy = 0
yz+ z = 0 xz+ x+ y+ 1 = 0
xyz+ xy = 0
xyz+ y = 0
xz+ z = 0 xz+ yz+ y+ z= 0
$$
\begin{bmatrix}
1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 \
0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 \
0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 \
1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \
0 & 0 & 1 & 1 & 0 & 1 & 0 & 1 \
1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \
1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \
0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 \
0 & 0 & 1 & 0 & 1 & 1 & 1 & 0 \
\end{bmatrix}
\begin{bmatrix}
xyz \ xy \ xz \ x \ yz \ y \ z \ 1
\end{bmatrix} = 0
$$
$$
\begin{bmatrix}
1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \
0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 \
0 & 0 & 1 & 1 & 1 & 0 & 1 & 0 \
0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \
0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \
0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \
0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 \
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \
\end{bmatrix}
\begin{bmatrix}
xyz \ xy \ xz \ x \ yz \ y \ z \ 1
\end{bmatrix} = 0
$$
图2.2. XL算法的一个小示例。目标是求解以下包含三个变量 $x, y, z$ 的三元方程组,定义在 $F_2$ 上: xy+x+yz+ z= 0; $xz+x+y+1= 0;$ $xz+ yz+ y+ z= 0$。左侧列(黑色):通过将原系统的每个方程乘以 $x, y, z,1$ 得到的十二个方程;注意 $x^2, y^2, z^2$ 分别被替换为 $x, y, z$。中间列(蓝色):同一组十二个方程的矩阵形式表示;该矩阵是一个麦考利矩阵。右侧列 (绿色):对麦考利矩阵应用高斯消元法后得到的方程。其中三个结果方程为 $x+ y= 0$, $y+1= 0$ $z+1= 0$ $x y z= 1, 1, 1 ,$ 和 , 意味着 $(,,) ( )$。这是一个解,因此也是原系统的唯一解。(彩色图示在线)

本节还分析了XL和FXL的渐近性能,假设 $m$、XL的次数参数 $d$ 以及FXL的固定参数 $f$ 随 $n$ 线性增长。特别是,本节回顾了单项式的渐近数量以及线性代数的渐近成本。有关量子加速的内容,请参见第3节,有关当4优化$d/n$ 和 $f/n$ 时随机系统总成本的分析,请参见第4节。

2.1 XL:扩展线性化

XL算法由Lazard [13]提出,并在[6]中被重新发现并命名为“ XL”。XL算法通过计算一个次数为$d$ 的麦考利矩阵来开始,具体方法如下:将原始的 $m$ 个二次方程中的每一个与次数不超过$d−2$ 的每个单项式相乘;每个乘积称为一个 “关系式”。每个关系式是次数不超过 $d$ 的单项式的线性组合。根据定义,麦考利矩阵就是这些线性组合中系数构成的矩阵。参见图2.2中的一个小例子,其中$d= 3$。

如果这些关系式具有形式为 1= 0的线性组合,则原方程组无解。XL算法通过线性在麦考利矩阵上的代数:它检查向量(0, 0,…,1),其中1位于单项式1对应的位置,是否为其行的线性组合。

更一般地,XL算法会检查这些关系式是否存在仅包含次数不超过1的单项式的非零线性组合;即,这些关系式是否蕴含变量之间的一个非零线性方程。该线性方程可将原系统约简为一个更小的系统,从而可通过递归方式求解(而进一步的独立方程可进一步减小系统规模)。识别这一情况再次归结为对麦考利矩阵进行线性代数运算。2

另一种方法是检查这些关系式是否具有仅包含单个变量幂次的非零线性组合。由此得到的单变量方程可通过快速求根算法轻松求解,每个根都会生成一个更小的系统,可通过递归方式求解。可能会出现一些不对应于原系统解的 “虚假”根,但实验表明,对于随机系统,这些“虚假”根在后续递归层级中会迅速产生矛盾。

无法保证XL算法会生成任何此类信息。$d$ 可以产生更多信息,但增加 $d$ 也会产生更多的单项式,如下所述。使用XL算法的常见方法是尝试 $d= 2$,然后$d= 3$,依此类推,直到方程组被求解。随着 $d$ 的增加,似乎会出现一个从 (1)XL算法几乎无法求解任何系统到(2)XL算法几乎能求解所有系统的急剧转变;该转变点在第4节中进行了量化。

2.3 单项式数量与域方程

一个基本的组合数学问题指出,在$n$ 个变量 $v_1, v_2,…, v_n$ 中,次数为 $\leq d$ 的单项式数量恰好等于二项式系数$\binom{n+d}{d}$:单项式$v_1^{e_1} v_2^{e_2} \cdots v_n^{e_n}$(其中 $e_1+ e_2+ \cdots+ e_n \leq d$)对应于集合${1, 2,…, n+ d}$ 的一个 $d$ 元子集${e_1+ 1,(e_1+ 1) +(e_2+ 1)…,(e_1+ 1) + \cdots+(e_n+ 1)}$。

如果 $q$ 较小,则可以在XL算法和FXL中利用域方程 $v^q= v$ 来消除指数大于 $q − 1$ 的单项式,从而节省时间。例如,如果 $q= 2$,则只使用无平方因子的单项式;如果出现 $v^2$,则立即用 $v$ 替换。次数为 $\leq d$ 的无平方因子单项式仅有 $\binom{n}{0}+\binom{n}{1}+\cdots+\binom{n}{d}$ 个。图2.2中的示例使用了此加速方法。

更一般地,将 $\phi_q \in Z[z]$ 定义为多项式 $(1−z^q)/(1−z) = 1+ z+ \cdots+ z^{q−1}$。在 $n$ 个变量中,指数至多为 $q − 1$ 且次数为 $d$ 的单项式数量是 $\phi^n_q$ 中$z^d$ 的系数,我们将其简记为$[z^d]\phi^n_q$。次数为 $\leq d$ 的单项式数量为$\sum_{k\leq d}[z^k]\phi^n_q$,或等价地表示为$ z^d $。

当 $d$ 关于 $n$ 为线性时,二项式系数$\binom{n}{d}$ 的渐近行为在 $n$ 上是单指数的。对$[z^d]\phi^n_q$ 而言,这一结论更普遍地成立。

具体而言,假设 $d/n \in \delta+o(1)$ 为 $n \to \infty$,其中 $0< \delta< q−1$。则在 $n$ 个变量中,次数为 $d$ 且指数至多为 $q−1$ 的单项式数量为 $2^{(mon_q(\delta)+o(1))n}$,其中$mon_q$ 的定义见下文。在 $n$ 个变量中,次数为 $\leq d$ 且指数至多为 $q − 1$ 的单项式数量同样为 $2^{(mon_q(\delta)+o(1))n}$,当 $\delta \leq(q − 1)/2$,且对所有 $\delta \geq(q − 1)/2$ 满足 $2^{(\lg q+o(1))n}=(q+ o(1))^n$,其中$\lg$ 表示以2为底的对数2。

$mon_q(\delta)$ 对于 $0< \delta< q − 1$ 的定义如下:$mon_q(\delta) = \lg(\phi_q(\rho)/\rho^\delta)$,其中 $\rho \in R$ 是该多项式的唯一正根
$$
\left( \frac{z}{1 - z} - \frac{qz^q}{1 - z^q} - \delta \right)\phi_q= -\delta+(1−\delta)z+(2−\delta)z^2+\cdots+(q−1−\delta)z^{q−1} \in R[z].
$$
要看出该多项式具有正根,注意到常数项系数 $-\delta$ 为负,而首项系数 $q−1−\delta$ 为正。要看出该根是唯一的,注意到当 $z$ 为正时, $z/(1−z)−qz^q/(1−z^q)−\delta$ 是关于 $z$ 的增函数(其导数为 $1/(1 − z)^2+ q^2z^{q−1}/(1 − z^q)^2> 0$),且当 $z$ 为正时 $\phi_q$ 为正。

有时也定义 $mon_q(0) = 0$ 和 $mon_q(q −1) = 0$。那么 $mon_q$ 是区间 $[0, q −1]$ 上的连续函数。

例如,$mon_2$ 正是二元熵函数:$mon_2(\delta) =−\delta \lg \delta−(1−\delta) \lg(1−\delta)$。当 $q \to \infty$ 时,$mon_q(\delta)$ 的值收敛到可以称为$mon_\infty(\delta)$ 的程度,即$(1+ \delta) mon_2(\delta/(1+ \delta)) =(1+ \delta) \lg(1+ \delta) −\delta \lg \delta$。

作为一个更复杂的例子,$mon_3(\delta) = \lg(1+ \rho+ \rho^2) − \delta \lg \rho$,其中$\rho$ 是多项式 $-\delta+(1 − \delta)z+(2 − \delta)z^2$ 的唯一正根;即$\rho=(\delta − 1+\sqrt{1+ 6\delta −3\delta^2})/ (2(2 − \delta))$。如果 $d/n \in \delta+ o(1)$ 当 $n \to \infty$ 成立,则在 $n$ 个变量中次数为 $d$ 且指数至多为2的单项式数量为$((1+ \rho+ \rho^2)/\rho^\delta+ o(1))^n$。

2.4 理解 $mon_q$:鞍点法

$mon_q$ 作为单项式数量的渐近指数这一事实,源于解析组合学中的一个标准技巧,称为“鞍点法”。对于 $mon_q$,只需应用该方法的一个简单情况,并引用来自[9,第VIII.8节1]的假设即可:
- $B$ 和 $C$ 是具有非负系数的幂级数。我们的单应用接受 $B= \phi_q$ 和 $C= 1$。$B$ 的常数项系数非零。
- 中非零系数所在的指数的最大公约数为1。
- $B$ 在复平面上具有正的收敛半径 $R$。对我们而言 $R= \infty$。
- $C$ 的收敛半径为 $\geq R$。
- $T$ 是当 $z$ 从下方趋近于 $R$ 时 $zB’(z)/B(z)$ 的极限。对我们而言 $T= q−1$。

鞍点法随后说明如下。固定 $\delta$ 使得 $0< \delta< T$ 成立。如果 $\delta n$ 是一个整数,则系数$[z^{\delta n}]C(z)B(z)^n$ 为$(c+ o(1))C(\rho)B(\rho)^n /\rho^{\delta n+1} \sqrt{n}$ 为 $n \to \infty$,其中 $\rho$ 是 $\rho B’(\rho)/B(\rho) = \delta$ 的唯一正根,且 $c$ 是一个明确的非零常数。参见 [9,命题 VIII.8]。

特别地,对于任意在 0 和 $q−1$ 之间的 $\delta$,系数 $[z^{\delta n}]\phi^n_q$ 是 $c+ o(1)$ 乘以 $\phi_q(\rho)/\rho^\delta$ 的 $n$ 次幂,其中 $\rho$ 是 $\rho \phi’_q(\rho)/\phi(\rho) = \delta$ 的唯一正根,即 $\rho/(1 −\rho) − q\rho^q/(1 −\rho^q) = \delta$。

这被称为“鞍点法”,是相对于解析函数导数的根所称的“鞍点”而言的。与鞍点的联系如下所述。柯西积分公式指出
$$
[z^m]C(z)B(z)^n= \frac{1}{2\pi i} \oint \frac{C(z)B(z)^n}{z^{m+1}} dz = \frac{1}{2\pi i} \oint \frac{C(z)F(z)^n}{z} dz,
$$
其中 $\oint$ 在复平面内围绕原点逆时针绕行一周的任意闭合路径上进行积分,且 $F(z) = B(z)/z^{m/n}$。鞍点法选择一条经过 $\log F(z)$ 的一个或多个鞍点的路径,即经过 $B’(z)/B(z)−m/nz$ 的根:在上述简单情况下,该路径是围绕原点、半径为 $\rho$ 的圆,且经过 $zB’(z)/B(z) = \delta$ 的唯一正根。在合理假设下可以证明,该积分的渐近行为主要由鞍点附近的积分部分决定。更多详细说明参见例如 [24] 或 [9, 第 8] 章。

2.5 快速线性代数

令 $A$ 表示上述分析的单项式数量:即在 $n$ 个变量中,次数至多为 $\leq d$ 且指数至多为 $q −1$ 的单项式数量。XL算法输入的每个 $m$ 个方程最多产生$A$ 个关系式,即对每个次数不超过 $d − 2$ 的单项式产生一个关系式。关系式的总数最多为 $mA$。换句话说,麦考利矩阵有 $A$ 列和最多 $mA$ 行。我们关注的是 $A$ 关于 $n$ 呈指数增长而 $m$ 关于 $n$ 呈线性增长的情况;此时该矩阵具有 $A^{1+o(1)}$ 行和列。

每个原始方程都被假定为二次的,因此具有$O(n^2)$ 项。因此,每个关系式也具有 $O(n^2)$ 项:即,麦考利矩阵的每一行中仅有 $O(n^2)$ 个非零元素。因此,麦考利矩阵极为稀疏。

稀疏性在线性代数中节省时间。目前已知求解$A\times A$ 稠密线性方程组的最快方法使用 $A^{\omega+o(1)}$ 次操作,其中 $\omega \approx 2.37$,而足够的稀疏性可将操作次数减少至 $A^{2+o(1)}$。杨和陈在 2004[25],中提到了应用稀疏线性代数技术来加速XL算法的想法,并于同年稍后由杨、陈和库尔图瓦进行了更详细的分析[26],,自 2006年起已在各种XL实现中得到验证;例如见[4]。

我们专门关注有限域上稀疏线性代数的维德曼算法[23]。该算法在[23,第 59]页中被描述为一种“在存在解的情况下,期望以$n_0(\omega+n_1 \log n_1)\log n_0$ 时间生成任意线性系统[在$F_q$]上的解的方法”。其中,“$\omega$”表示矩阵中非零元素的总数;“$n_0$”和“$n_1$”分别表示行数与列数的最小值和最大值;而“时间” 则指操作次数。

在顺序RAM模型中,每个在$F_q$中的加法和乘法操作耗时为1。

在上述提到的XL情况下($m$ 关于 $n$ 线性,且 $A$ 关于 $n$ 指数),”$n_0$”、”$n_1$” 和”$\omega$” 均被 $A^{1+o(1)}$ 所限制,因此维德曼算法中的操作次数为 $A^{2+o(1)}$。进一步分析表明,该算法的瓶颈在于一系列使用向量长度 $A^{1+o(1)}$ 的 $A^{1+o(1)}$ 矩阵‐向量乘法。该矩阵以及所有其他中间量也均可容纳于$A^{1+o(1)}$ 个域元素中。

2.6 通信成本和并行化

上述每个稀疏矩阵‐向量乘法包含对一个包含 $A^{1+o(1)}$ 个域元素的数组进行 $A^{1+o(1)}$ 次随机访问。3简化操作计数度量指出,每次随机访问的成本为1,与 $A$ 无关。

这种操作计数度量对于计算所花费时间的预测效果较差,原因有两个。首先,如果某人在计算机硬件上花费 $A^{1+o(1)}$ 美元,则可以负担多达 $A^{1+o(1)}$ 个小型处理核心并行运行;如果有足够的并行工作量,这可能使时间减少至 $A^{1+o(1)}$ 倍。其次,数组元素间距被迫以 $A$ 的正幂次增长,相应地增加了通信所需的时间。

有许多先前的论文设计了用于二维$A^{0.5+o(1)} \times A^{0.5+o(1)}$ 网格的小型并行处理核心的算法,其中每个核心与其邻居进行局部连接。例如,布伦特和孔在[3]中展示了如何在时间 $A^{0.5+o(1)}$ 内乘以 $A$ 位整数,并且有几篇论文表明可以在时间 $A^{0.5+o(1)}$ 内对 $A$ 个小项进行排序。

排序反过来可用于实现一批随机访问,特别是如伯恩斯坦[2]在整数分解的上下文中所指出的,在此模型中对维德曼算法进行并行化。这将维德曼算法的时间以及XL算法的时间减少至 $A^{1.5+o(1)}$。

2.7 FXL:固定后扩展线性化

FXL 由库尔图瓦、克里莫夫、Patarin 和沙米尔在 2000[6] 中提出。

FXL通过以下方式求解在 $n$ 个变量$v_1, v_2,…, v_n$ 上的 $m$ 个二次方程组:对于最后 $f$ 个变量$v_{n−f+1},…, v_n$,共有 $q^f$ 种可能取值。对每一种可能性,使用XL算法求解由此得到的$m$ 个二次方程在 $n− f$ 个变量上的方程组。换句话说,在运行XL之前先猜测(固定) $f$ 个变量。

增加 $f$ 1 次会使得猜测次数的成本增加一个因子 $q$。然而,它也会提高比率 $m/(n−f)$,而这通常有助于降低 XL算法 成功所需的次数$d$。随机系统的优化 FXL 指数 在第4节中给出。

请注意,FXL 可以轻松实现并行化,通过增加相应的面积代价,可将时间减少任意倍数,最多可达 $q^f$。

随着 $q$ 的增加,必须考虑读取、写入和对域元素进行算术运算的成本增长。为简便起见,我们关注 $q$ 固定时关于 $n \to \infty$ 的渐近表述。

求解多元二次方程的渐近更快量子算法

3 可逆XL和GroverXL

从概念上讲,用格罗弗的量子搜索方法替代FXL中的暴力搜索是直接可行的,可将搜索迭代次数减少至其平方根。然而,格罗弗方法要求底层函数——即对输入进行求值以判断该输入是否为搜索解的函数——必须以可逆方式计算,且不擦除任何数据。

上一节中描述的XL计算不符合此模型。该计算会不断擦除数据:反复使用矩阵‐向量乘积覆盖一个向量。本节分析将XL算法融入格罗弗方法的成本。

3.1 可逆计算

如果我们的目标仅仅是计数操作,则不会有任何困难:只需记录所有中间结果,然后按照逆序重新运行计算,如[1,引理 1]所述。

形式上,任何与非门序列将按如下方式转换为可逆计算。假设有输入位 $b_1, b_2,…, b_i$,随后是与非门 $b_{i+1}=1−b_{f(i+1)}b_{g(i+1)}$、 $b_{i+2}= 1−b_{f(i+2)}b_{g(i+2)}$,依此类推直到 $b_T= 1−b_{f(T)}b_{g(T)}$,其中 $f(j) < j$ 且 $g(j) < j$。某些位被指定为输出位;为简化起见,假设这些位既不是输入位,也不会在此与非门序列内部用于后续计算。

考虑将以下可逆电路应用于 $T$ 位 $b_1, b_2,…, b_T$。首先应用以下“非‐托佛利”门: $b_{i+1} \leftarrow b_{i+1}+1−b_{f(i+1)}b_{g(i+1)}$; $b_{i+2} \leftarrow b_{i+2}+ 1−b_{f(i+2)}b_{g(i+2)}$;依此类推至 $b_T \leftarrow b_T+1−b_{f(T)}b_{g(T)}$。然后,对辅助位(即非输出位)以逆序再次应用相同的门。

如果位 $b_{i+1},…, b_T$ 初始均为 0,则可逆电路首先精确计算原始与非门的操作结果,然后将辅助位重置为 0。更一般地,如果所有辅助位初始均为 0,则该可逆电路将原始函数的输出结果加到输出位中,同时保持输入位不变,并将辅助位重置为 0。

简而言之,如果输入为 $(x,0, y)$,该可逆计算将产生 $(x, 0, F(x) + y)$。这就是可逆计算函数 $F$ 的含义。

3.2 节省空间:贝内特‐汤普森转换

上述电路使用了 $T$ 位的存储(或在格罗弗方法上下文中使用 $T$ 个量子比特)。这种硬件量通常远远超过原始计算所需的硬件量:特别是,XL算法的存储呈二次增长。这引发了一个问题,即人们是否能够承担如此大量的硬件,以及相同数量的硬件是否可以更有效地用于其他用途。

本内特在[1,定理 1]中证明,任何使用时间 $T$ 和空间 $S$ 的计算都可以转换为使用时间 $O(T \log_2 3)$ 和空间 $O(S\log T)$ 的可逆计算。本内特还证明了(归功于托姆帕),$\log_2 3$ 可以被替换为 $1+\varepsilon$,其中 $\varepsilon> 0$ 为任意值。本内特定理是针对多带图灵机表述的;我们将在下文回到并行化和通信成本的问题。

本内特的 $\log_2 3$ 转换工作方式如下。将一次计算分解为两半:具体来说,假设输出为 $C_2(C_1(x))$,其中 $x$ 是输入。从 $(x,0, y)$ 开始,通过相同的构造递归地可逆计算 $C_1$,得到 $(x, C_1(x), y)$;再通过相同的构造递归地可逆计算 $C_2$,得到 $(x, C_1(x), C_2(C_1(x))+y)$;然后再次可逆计算 $C_1$,最终得到所需的 $(x,0, C_2(C_1(x))+ y)$。这需要三次规模减半的计算。所需空间与递归的层数成正比;此处的关键在于,用于 $C_1$ 的辅助位可在 $C_2$ 中重复使用。

更一般地,贝内特‐汤普森转换将一次计算分为$k$ 个部分,每部分所需时间(近似)为 $T/k$。从$(x, 0,…, 0, y)$ 开始,依次计算 $C_1$,然后计算 $C_2$,依此类推直至 $C_k$,从而得到
$$
(x, C_1(x), C_2(C_1(x)),…, C_{k−1}(··· C_1(x)···), C_k(··· C_1(x)···)+ y).
$$
然后计算 $C_{k−1}$,接着计算 $C_{k−2}$,依此类推直至 $C_1$,得到
$$
(x, 0,…, 0, C_k(···(x)···)+ y).
$$
这与之前处理每个 $C_i$ 为单个 NAND 的极端情况所采用的策略相同。允许更大的计算 $C_i$ 会产生时间指数 $\log_k(2k −1)$,同时使空间增加一个依赖于 $k$ 的因子。

进行 $k \in 2^{\Theta(\sqrt{\log T})}$ 会产生时间和空间,这些因素与原始计算相差 $2^{O(\sqrt{\log T})}$,正如Knill在 [12,定理212]中所指出的。在我们对XL算法的分析上下文中,这些因素是 $2^{o(n)}$,因此不会影响我们的渐近指数。Knill还指出了某些更小的优化,这些优化在我们的指数中不可见。

3.3 并行化贝内特‐汤普森转换

我们指出,贝内特‐汤普森转换的思想与大规模并行计算和局部通信相兼容,特别是与现实中的二维网格架构上的通信相兼容。

假设原始计算是一个由 $T$ 个时间步组成的序列,其中每一步由 $A$ 个小型处理核心并行执行。这些核心排列成一个$\sqrt{A}\times\sqrt{A}$ 网格结构,相邻核心之间有边连接。形式上,核心$(i, j)$ 在时间 $t$ 的状态为 $s[i, j, t]$,包含少量比特; $s[i, j, t+ 1]$ 是应用于 $s[i, j, t]$、 $s[i−1, j, t]$、 $s[i, j −1, t]$、$s[i+ 1, j, t]$、 $s[i, j+ 1, t]$ 的一个小型计算的输出,边界之外的状态定义为空。对于我们的XL算法应用,“小型”可以定义为关于 $n$ 的次指数级,而 $T$ 和 $A$ 随 $n$ 呈指数增长。

我们将此转换为在由小型核心组成的 $\sqrt{A}\times\sqrt{A}$ 网格上进行的可逆计算,方法如下。将原始计算划分为 $k$ 部分 $C_1, C_2,…, C_k$,每部分耗时大约为 $T/k$。核心$(i, j)$ 从$(s[i, j, 0], 0,…, y_{i,j})$ 开始。递归地可逆应用 $C_1$,递归地可逆应用 $C_2$,依此类推直至$C_k$,得到
$$
(s[i, j, 0], s[i, j, t_1],…, s[i, j, t_k]+ y_{i, j}) .
$$
然后可逆地应用 $C_{k−1}$,可逆地应用 $C_{k−2}$,依此类推通过 $C_1$,得到
$$
(s[i, j, 0], 0,…, s[i, j, t_k]+ y_{i, j})
$$
如所期望的。递归的基例是一个时间‐1 的并行计算,由小型局部计算组成,每个计算都以可逆方式应用,并具有较小的开销。

这种转换明显扩展了每个核心中的状态。最终状态附带一份 $k$ 先前状态的日志;并且每一层递归都需要各自独立的日志,总体上使状态大小乘以 $k(\log T)/ \log k$。每一层递归也会使时间乘以 $(2k−1)/k$。与 [12],中一样,我们取 $k \in 2^{\Theta(\sqrt{n})}$,使得整体的面积和时间开销在 $n$ 中是次指数级的。扩大的面积也意味着通信速度变慢,但这同样在 $n$ 中是次指数级的。

3.4 可逆XL和GroverXL

根据定义,可逆XL是将上述并行转换应用于判断一个系统是否有解的XL计算的结果。如第2节所述,XL可能无法确定一个系统是否有解,但我们假设 $d$ 被选择得足够大,使得XL对所有提供给可逆XL的系统都有效;参见第4节。

GroverXL通过以下方式求解包含 $n$ 个变量的二次方程组:使用格罗弗方法搜索最后 $f$ 个变量的 $q^f$ 种可能性,并对每种可能性应用可逆XL。如果该方程组有解,则格罗弗方法返回一个随机的解;否则,返回最后 $f$ 个变量的一个均匀随机选择。无论哪种情况,都将此选择代入方程组,并使用XL算法判断剩余变量是否存在解。

GroverXL 需要进行 $q^{f/2+o(1)}$ 次可逆XL 的量子计算时间,再加上一次 XL 的最终计算。与其他格罗弗方法的应用类似,GroverXL 可以在许多独立的计算之间并行化,从而将面积按相应因子增加,同时将时间减少为该因子平方根的倒数。当“大量”达到 $q^f$ 时,应直接使用 FXL。

4 随机系统分析

本节给出了在假设 $\mu \geq 1$ 的情况下,求解$F_q$ 上 $n$ 个变量中$(\mu+ o(1))n$ 个二次方程的随机系统的渐近成本指数。展示了 $q$ 取多种较小值以及 $\mu$ 从1.0到2.0之间多种取值时的指数。

指数 $e$ 意味着成本为 $2^{(e+o(1))n}$ ,当 $n \to \infty$ 时,或等价地$(2^{e+o(1)})^n$。

简单的暴力搜索的指数为$\lg q$,格罗弗算法的指数为$0.5 \lg q$,其中如前所述$\lg = \log_2$。在所有情况下,GroverXL都具有更优的指数。

4.1 用于计算成本指数的脚本

为了简化验证,并让读者能够轻松计算其他配对 $(q, \mu)$ 的成本指数,我们提供了一个计算指数的脚本。见图4.2和 4.3。该脚本使用免费的Sage计算机代数系统8.0版本。

该脚本涵盖了GroverXL和FXL。每种情况下都涉及两个不同的指标:(1)简化操作计数的指数,以及(2)指数面积‐时间乘积 $AT$ 在二维网格连接计算机上。在并行化格罗弗方法的上下文中,另一个感兴趣的指标是 $\sqrt{AT}$ 乘积的指数;但对于并行化的GroverXL,该指数结果与第一个指标相同。

该脚本尝试了 $q$ 的五个值,即2,3,4,5,16;这由脚本末尾的 doit(2) doit(16) 指定。该脚本运行需要数小时,几乎全部时间都用于 $q= 16$。

对于每个 $q$,都有三个嵌套循环: search 对于 GroverXL 为 0.5,对于 FXL 为 1; linalg 在使用简化操作计数度量时为 2,在二维网格上的面积‐时间乘积时为 2.5; k 则尝试从 1 到 2 之间步长为 0.01 的每个 $\mu$。对于每组 $(q, \text{search},\text{linalg}, \mu)$ 的选择,脚本将输出一行显示在$F_q$ 上求解 $m=(\mu+ o(1))n$ 个随机二次方程的指数,涉及 $n$ 个变量。

4.4 理解XL指数

如果方程组足够超定,则猜测变量并不能节省时间:即,如果 $\mu$ 大于某个特定临界值$\mu_0$,则FXL和GroverXL都将简化为XL算法。该脚本通过三个步骤计算XL算法的成本指数。
- 计算 $\delta$ 如第4.5节所述。XL算法的次数 $d$ 为$(\delta+ o(1))n$。
- 计算 $\alpha= mon_q(\delta)$。XL算法中的单项式数量为$2^{(\alpha+o(1)) n}$。
- 指数是 linalg · $\alpha$。

具体而言,XL算法在面积为 $A= 2^{(\alpha+o(1))n}$ 的网格上需要 $T= 2^{(1.5\alpha+o(1))n}$ 的时间,因此 $AT$ 是 $2^{(2.5\alpha+o(1))n}$。在简化操作计数度量下,指数仅为 $2\alpha$。注意, $\sqrt{AT}$ 的指数也是 $2\alpha$;如上所述,对于这些算法而言,$\sqrt{AT}$ 指数与简化操作计数指数相同。

4.5 理解 $\delta$

该脚本使用XL算法次数 $d \in(\delta+ o(1))n$,其中 $\delta$ 按如下方式计算。定义 $h$ 为多项式
$$
\frac{z}{1 - z^2} \cdot \frac{q}{1 - z^q} \left(-\frac{x}{z} - \frac{qz^{q-1}}{1-z^q} + \frac{1}{1-z} - \frac{2\mu z}{1-z^2} + \frac{2\mu q z^{2q-1}}{1-z^{2q}}\right)
$$
在多项式环 $R[x, z]$ 中。定义 $\Delta \in R[x]$ 为 $h$ 关于 $z$ 的判别式。则 $\Delta$ 有唯一的正实根,即这是$\delta$。先前XL文献中解释的一个计算的简明陈述。例如,对于 $q= 2$ 和 $m= n$,XL指数0.87280…以及FXL指数0.79106…是通过此方法在[26]中计算得出的。本小节其余部分回顾了论证该值为XL正确渐近次数的主要步骤。

回顾一下, $A$(即XL算法中的单项式数量)是$\phi_q(z)^n/(1 - z)$ 中 $z^d$ 的系数,其中 $\phi_q(z) =(1 - z^q)/(1 - z)$;简而言之,$ z^d $。关系式的数量最多为 $m z^{d-2} $。更细致的分析表明,这些关系式的线性生成空间的余维数(即 $A$ 减去维数)至少为$ z^d $。参见[25,定理 2];另见 [7]。

随着 $d$ 的增加,系数$ z^d $ 的行为以及XL算法在随机系统中的实验观察行为会发生急剧转变。如果 $d$ 明显低于下文分析的临界值,则该系数是一个巨大的正整数,XL算法在大多数随机系统上几乎总是失败(尽管对于某些特殊的感兴趣系统仍会成功):关系式数量不足,无法为任何小规模单项式子集提供有意义的信息。当 $d$ 增长超过该临界值时,系数会降至0以下并迅速变为显著的负数,此时XL算法在大多数随机系统上几乎总是成功。若系数恰好非常接近于0,则XL算法时常成功也时常失败(关系式之间常存在一些偶然的额外依赖关系),但向 $d$ 中加入 $o(n)$ 可消除这种振荡现象。

我们分析该系数的渐近分析,如第2.4节所述。首先使用柯西积分公式
$$
[z^d]\left( \frac{\phi_q(z)^n}{(1 - z)\phi_q(z^2)^m} \right) = \frac{1}{2\pi i} \oint \frac{\phi_q(z)^n}{z^{d+1}(1 - z)\phi_q(z^2)^m} dz = \frac{1}{2\pi i} \oint \frac{F(z)^n}{z(1 - z)} dz
$$
其中 $F(z) = \phi_q(z) /z^{d/n}\phi_q(z^2)^{m/n}$。然后代入 $d= \delta n$ 和 $m= \mu n$,并应用鞍点法来计算当 $n \to \infty$ 时该积分的渐近公式。该渐近公式包含形如 $F(\rho)^n$ 的幂次,其中 $\rho$ 取遍对数导数的复根
$$
\frac{F’(z)}{F(z)} = \frac{-\delta}{z} - \frac{qz^{q-1}}{1 - z^q} + \frac{1}{1 - z} - \frac{2\mu z}{1 - z^2} + \frac{2\mu q z^{2q-1}}{1 - z^{2q}}.
$$
将这个对数导数乘以 $z(1− z^{2q})/(1− z)$,就得到前面定义的多项式 $h$,其中用 $\delta$ 替代了 $x$。 $h$ 的根本质上就是 $F’/F$ 的根;进一步观察可知,当 $q$ 为奇数时, $h$ 会多出一个根 $-1$,但这并不影响临界值的计算。

最后,经过一些推导可以发现,系数从正到负的相变恰好发生在 $h$ 具有重根时,即恰好当判别式 $\Delta$ 为零时。关于双鞍点的理论参见[5],关于XL算法的应用参见[26]。

4.6 理解 FXL 和 GroverXL 的指数

更一般地,对于任意 $\mu \geq 1$,该脚本按如下方式计算 FXL 和 GroverXL 的成本指数:
- 选择 $\lambda \geq \mu$,如下所述。假设$(1−\mu/\lambda+o(1))n$ 个变量被固定,即XL算法获得$(\mu+ o(1))n$ 个方程,包含在$(\mu/\lambda+ o(1))n$ 个变量中。
- 计算 $\alpha$,方法如第4.4节所述,但从 $\lambda$ 开始而非 $\mu$。则 XL算法 和 可逆XL 以时间 $T= 2^{(1.5\alpha+o(1))(\mu/\lambda+o(1))n}$ 和面积 $T=2^{(\alpha+o(1))(\mu/\lambda+o(1))n}$ 运行;即在以 $2^n$ 为底的情况下,它们的时间指数为 $1.5\alpha\mu/\lambda$,面积指数为 $\alpha\mu/\lambda$(以及操作计数指数 $2\alpha\mu/\lambda$)。
- 对于FXL,为时间指数(和操作计数指数)增加$(1 − \mu/\lambda) \lg q$,以计入暴力搜索的成本。对于GroverXL,增加$0.5(1 −\mu/\lambda) \lg q$。换句话说,增加 search (1 −$\mu/\lambda$) $\lg q$。
- 总之,指数为 linalg · $\alpha\mu/\lambda+ \text{search}(1−\mu/\lambda) \lg q$,其中 $\alpha$ 隐式地是 $\lambda$ 的函数。该公式表明,应选择 $\lambda$ 以最小化 linalg · $\alpha/\lambda − \text{search}(\lg q)/\lambda$。该脚本使用 Sage 的 find_local_minimum 在 [1, 10] 上寻找该函数的最小值;对于我们 在 linalg 等范围内使用的输入,更大的输入并无帮助。该最大值的位置是 mu0,恰好是上面提到的临界值 $\mu_0$。然后脚本定义 $\lambda= \max{\mu, \mu_0}$。

4.7 示例:GroverXL 用于 $q= 2$

前面定义的多项式 $h$ 是 $(1−2\mu−\delta)z^3+ (−2\mu−\delta)z^2+(1−\delta)z−\delta$。关于 $z$, $h$ 的判别式 $\Delta$ 是 $\delta$ 上的一个四次多项式,因此方程 $\Delta= 0$ 可以通过根式显式求解,并且容易看出其唯一的正根:
$$
\delta= F(\mu)= -\mu+ \frac{1}{2}+ \frac{1}{2}\sqrt{2 \mu^2 -10 \mu -1+ 2\sqrt{\mu^4+ 6 \mu^3+ 12 \mu^2+ 8 \mu}}
$$
例如,如果 $(q, \mu) =(2, 1)$,则 $\delta= 0.0899798…$;且 $\alpha= \text{mon}_2(\delta) =−\delta \lg \delta −(1 − \delta) \lg(1 − \delta) = 0.436402…$。这意味着 XL算法 使用次数 $2^{(0.08997…+o(1))n}$,以及 $2^{(0.43640…+o(1))n}$ 个单项式。运算量指数为 $2 · 0.43640…= 0.87280…$。

作为另一个例子, $\mu_0= 1.81626…$ 最大化 $(1 − 2 \text{mon}_2(F(\mu_0)))/\mu_0$。对于 $\mu= \mu_0$,XL算法具有 $\delta= F(\mu_0) = 0.05573…$ 和 $\alpha= \text{mon}_2(\delta) = 0.31026…$,对应的操作计数指数为 $0.62052…$。

FXL在针对操作次数进行优化时,会固定足够多的变量以达到$m/\mu_0$ 个剩余变量。例如,再次考虑$(q, \mu) =(2,1)$,FXL使用 $m=(1+ o(1))n$ 个方程和$(1/\mu_0+ o(1))n= (0.55058…+ o(1))n$ 个变量运行XL算法。此时XL算法在基数 $2^n$ 下的操作计数指数为 $0.55058…\cdot0.62052…=0.34164 …$。剩余的$(1 −1/\mu_0+ o(1))n= (0.55058…+ o(1))n$ 个变量通过暴力搜索找到,因此FXL的最终指数为0.79106…。

我们强调,到目前为止这一计算并非新内容:FXL 在 [26]中已以这种方式进行了分析。我们的主要贡献是 GroverXL 的设计与分析。

表4.10和 4.11分别显示了由第4.1节的脚本计算出的 GroverXL操作次数指数和成本指数。表 4.12 和 4.13 显示了硬件数量的指数。

表4.10. 针对 $q \in{2, 3, 4, 5, 16}$ 和各种$\mu$ 的GroverXL操作计数指数。操作次数忽略通信成本。每个指数均向下取整至0.00001 的倍数。作为对比,不含XL的格罗弗算法的指数分别为0.50000、0.79248、1.00000、1.16096、2.00000,且独立于 $\mu$。

μ= 1.0
0.46240
μ= 1.1
0.45864
μ= 1.2
0.45488
μ= 1.3
0.45112
μ= 1.4
0.44737
μ= 1.5
0.44361
μ= 1.6
0.43985
μ= 1.7
0.43609
μ= 2.0
0.42481
q= 2 0.70425 0.69542 0.68660 0.67778 0.66895 0.66013 0.65131 0.64248 0.61601
q= 3 0.85848 0.84433 0.83018 0.81602 0.80187 0.78772 0.77357 0.75942 0.71696
q= 4 0.96843 0.94918 0.92993 0.91068 0.89142 0.87217 0.85292 0.83367 0.77591
q= 5 1.42604 1.36865 1.31125 1.25386 1.19646 1.13907 1.08167 1.02428 0.86575
q= 16

表4.11. GroverXL 在 $q \in{2, 3, 4, 5, 16}$ 和各种 $\mu$ 下的成本指数。成本指二维网格连接计算机上的面积‐时间乘积。每个指数均向下取整至 0.00001 的倍数。作为对比,不含XL的格罗弗算法的指数分别为 0.50000、0.79248、1.00000、1.16096、2.00000,且独立于 $\mu$。

μ= 1.0
0.47210
μ= 1.1
0.46931
μ= 1.2
0.46652
μ= 1.3
0.46373
μ= 1.4
0.46094
μ= 1.5
0.45815
μ= 1.6
0.45536
μ= 1.7
0.45257
μ= 2.0
0.44420
q= 2 0.72468 0.71790 0.71112 0.70434 0.69756 0.69078 0.68400 0.67722 0.65688
q= 3 0.88987 0.87886 0.86785 0.85683 0.84582 0.83481 0.82380 0.81278 0.77975
q= 4 1.01016 0.99508 0.98000 0.96492 0.94984 0.93476 0.91968 0.90460 0.85937
q= 5 1.53753 1.49128 1.44503 1.39879 1.35254 1.30629 1.26005 1.21380 1.07506
q= 16

我们的脚本也是新的(可能是首个公开的自动化此类分析的软件),面积‐时间分析也是如此。

对于GroverXL,通过取 $\mu_0= 7.74234…$ 以最大化$(0.5−2.5\text{mon}_2(F(\mu_0)))/\mu_0$,我们得到面积‐时间乘积的最小指数为0.47210…。我们还通过取 $\mu_0= 5.63489…$ 以最大化$(0.5 −2 \text{mon}_2(F(\mu_0)))/\mu_0$,得到操作计数指数的最小值为0.46240…。

4.8 示例:用于 $q= 3$ 的 GroverXL

多项式 $h$ 现在是 $(−\delta+ 2 −4\mu) z^4 − z^3+(−\delta+ 1 − 2\mu)z^2+ z − \delta= 0$。判别式 $\Delta$ 是一个六次多项式,且方程 $\Delta= 0$ 关于 $\delta$ 作为 $\mu$ 的函数再次可通过根式求解。该解相当复杂,可能不如我们的脚本所使用的更通用的求根技术高效。

数值计算过程如第 4.7 节所述。例如,对于 $(q, \mu)=(3,1)$ 的情况,通过取 $\mu_0= 5.36509…$,得到最小面积‐时间指数为 0.72468…(相比之下,FXL 为 1.27507…);通过取 $\mu_0= 4.11429…$,得到最小操作计数指数为 0.70425…(相比之下,FXL 为 1.17521…)。

4.9 结果表格

表4.10和 4.11分别显示了由第4.1节的脚本计算出的 GroverXL操作次数指数和成本指数。表 4.12 和 4.13 显示了硬件数量的指数。

表 4.12。 在针对 $q \in{2, 3, 4, 5, 16}$ 和各种 $\mu$ 将参数优化为操作次数时,GroverXL 的空间指数。操作次数忽略通信成本。每个指数均向下取整至 0.00001 的倍数。

μ= 1.0
0.02557
μ= 1.1
0.02812
μ= 1.2
0.03068
μ= 1.3
0.03324
μ= 1.4
0.03579
μ= 1.5
0.03835
μ= 1.6
0.04091
μ= 1.7
0.04346
μ= 2.0
0.05114
q= 2 0.05219 0.05741 0.06263 0.06785 0.07306 0.07828 0.08350 0.08872 0.10438
q= 3 0.07882 0.08670 0.09458 0.10247 0.11035 0.11823 0.12611 0.13400 0.15764
q= 4 0.10377 0.11415 0.12453 0.13490 0.14528
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值