第 8 课 · 第一个量子算法——Deutsch-Jozsa 与 Bernstein-Vazirani · 模块二:算法主线

B-V 问题:换一个承诺,读出更多

  • 命题框:承诺 $f_s(x) = s\cdot x = (s_1x_1+s_2x_2+\ldots) \bmod 2$;关键代数性质 $s\cdot(x\oplus x') = (s\cdot x)\oplus(s\cdot x')$(对第二变元线性)
  • 推导/演算步骤:
    1. 演算($s=101$):$s\cdot 011 = (1\cdot 0\oplus 0\cdot 1\oplus 1\cdot 1) = 1$;$s\cdot 110 = (1\cdot 1\oplus 0\cdot 1\oplus 1\cdot 0) = 1$;$011\oplus 110 = 101$,$s\cdot 101 = 1\oplus 1 = 0 = (s\cdot 011)\oplus(s\cdot 110)$ ✓ 线性性验证
    2. 经典上界:对只含单个 1 的单位输入 $e$(第 $j$ 位为 1),$s\cdot e$ = $s$ 的第 $j$ 位(线性性推论)→ 依次查 $n$ 个单位输入,逐位拼出 $s$
    3. 经典下界:$k$ 次查询只得关于 $s$ 的 $k$ 个线性方程;$k < n$ $\Rightarrow$ 方程组的正交补中存在非零 $u$(与全部被查输入内积为 0)$\Rightarrow$ $s$ 与 $s\oplus u$ 应答全同:$(s\oplus u)\cdot x = (s\cdot x)\oplus(u\cdot x) = s\cdot x$——任何确定性算法必在二者之一上出错
    4. 随机版:$k$ 次应答把候选 $s$ 限制在大小 $\ge 2^{n-k}$ 的仿射子空间内且各候选等可能 → 单次猜对概率 $\le 2^{-(n-k)}$;演算 $n=3$、$k=1$ → $\le 1/4$ → 仍需 $\Theta(n)$ 次
    5. 与 D-J 承诺的关系:$s=0$ $\Rightarrow$ 常数;$s\ne 0$ $\Rightarrow$ 取 $s$ 中任一为 1 的位 $j$,配对 $x$ 与 $x\oplus e$(该位翻转),$f_s$ 随之取反 $\Rightarrow$ 恰一半 0 一半 1 = 平衡
  • 结果框:经典 $\Theta(n)$ 次查询是紧的;下一页同一条电路 1 次读出 $s$
类型definition-derivation