量子电路设计:以 Qiskit 为例
文章目录
- Bloch Sphere
- X,Y,Z Gate
- Hadamard Gate
- 量子电路设计
- NOT
- AND
- OR
- 优化
Bloch Sphere
单个量子位,有两种表示:
- q = α ∣ 0 ⟩ + β ∣ 1 ⟩ q = \alpha|0\rangle+\beta|1\rangle q=α∣0⟩+β∣1⟩,其中组合系数 α , β \alpha,\beta α,β 都是复数(复平面,长度 + 相位),满足 α α ∗ + β β ∗ = 1 \alpha\alpha^*+\beta\beta^*=1 αα∗+ββ∗=1;
- q = e i γ ( cos θ 2 ∣ 0 ⟩ + e i ϕ sin θ 2 ∣ 1 ⟩ ) q = e^{i\gamma}(\cos\frac{\theta}{2}|0\rangle + e^{i\phi}\sin\frac{\theta}{2}|1\rangle) q=eiγ(cos2θ∣0⟩+eiϕsin2θ∣1⟩),其中 γ ∈ [ − π , π ) \gamma\in[-\pi,\pi) γ∈[−π,π) 是整体相位, θ ∈ [ 0 , π ] \theta \in [0,\pi] θ∈[0,π] 是它与 ∣ 0 ⟩ |0\rangle ∣0⟩ 的夹角, ϕ ∈ [ 0 , 2 π ) \phi\in[0,2\pi) ϕ∈[0,2π) 是叠加 ∣ 0 ⟩ |0\rangle ∣0⟩ 与 ∣ 1 ⟩ |1\rangle ∣1⟩ 时两者的相位差。
对于第二种表示,定义 Bloch 球:
- 忽略 e i γ e^{i\gamma} eiγ 整体相因子,以 ∣ 0 ⟩ |0\rangle ∣0⟩ 为 z z z 轴正方向,以 ∣ 1 ⟩ |1\rangle ∣1⟩ 为 z z z 轴负方向,再加入与之垂直的 x - y x\text{ - }y x - y 平面,
- 使用 θ \theta θ 确定从 z z z 向 x x x 的旋转角,而 ϕ \phi ϕ 确定从 x x x 向 y y y 的旋转角,
- 那么量子态 q q q 的三维直角坐标为 ( x = sin θ cos ϕ , y = sin θ sin ϕ , z = cos θ ) (x=\sin\theta\cos\phi, y=\sin\theta\sin\phi, z=\cos\theta) (x=sinθcosϕ,y=sinθsinϕ,z=cosθ)
大体上,有如下观察,
- 如果 α \alpha α 和 β \beta β 的相位相同,那么 q q q 落在圆弧 z + → x + → z − z^+ \to x^+ \to z^- z+→x+→z− 上面
- 角度 θ \theta θ 显示了 α \alpha α 和 β \beta β 的相对范数大小,确切地说 ∣ α ∣ = cos ( θ / 2 ) |\alpha|=\cos(\theta/2) ∣α∣=cos(θ/2) 且 ∣ β ∣ = sin ( θ / 2 ) |\beta|=\sin(\theta/2) ∣β∣=sin(θ/2)
- 如果 ∣ α ∣ = ∣ β ∣ |\alpha|=|\beta| ∣α∣=∣β∣,那么 q q q 落在 x - y x\text{ - }y x - y 平面上;如果 ∣ α ∣ > ∣ β ∣ |\alpha|>|\beta| ∣α∣>∣β∣,那么在 z + z^+ z+ 半球,否则在 z − z^- z− 半球
- 复数 β \beta β 的相位角 − - − 复数 α \alpha α 的相位角 = = = ϕ ∈ [ 0 , 2 π ) \phi\in[0,2\pi) ϕ∈[0,2π),以方向 x + → y + x^+\to y^+ x+→y+ 旋转;
例如,
以及
X,Y,Z Gate
Pauli 矩阵 X , Y , Z ∈ C 2 × 2 X,Y,Z \in \mathbb C^{2\times2} X,Y,Z∈C2×2 将量子态 q ∈ C 2 q\in\mathbb C^2 q∈C2 分别在 x , y , z x,y,z x,y,z 轴上旋转 π \pi π 角度。
X Gate 的输出如下:它将 α \alpha α 和 β \beta β 互换,在基态上表现为 “比特翻转”
Y Gate 的输出如下:它可表示为 X , Z X,Z X,Z 的组合,有 Y = − i X Z = i Z X Y=-iXZ=iZX Y=−iXZ=iZX(比特翻转 + 相位翻转 + 整体相位旋转 90 ∘ 90^\circ 90∘ 角)
Z Gate 的输出如下:它将 β \beta β 变为 − β -\beta −β,在 Bloch 球上表现为 “相位翻转”
Hadamard Gate
Hadamard 门:量子态绕着 x + z x+z x+z 轴(即 x + x^+ x+ 和 z + z^+ z+ 夹角的平分线)旋转 π \pi π 角,
H = 1 2 ( X + Z ) H = \frac{1}{\sqrt2}(X + Z) H=21(X+Z)
其映射具体为,
- ∣ 0 ⟩ ⟺ ∣ + ⟩ , ∣ 1 ⟩ ⟺ ∣ − ⟩ |0\rangle \iff |+\rangle,\,\, |1\rangle \iff |-\rangle ∣0⟩⟺∣+⟩,∣1⟩⟺∣−⟩
- ( x , y , z ) ↦ ( z , − y , x ) (x,y,z) \mapsto (z,-y,x) (x,y,z)↦(z,−y,x)
如下的两张图,展示了 H Gate 的几何意义,
H Gate 常被用于制备均匀的量子叠加态(并非纠缠)。确切地说:输入基态 ∣ 0 ⟩ ⊕ n |0\rangle^{\oplus n} ∣0⟩⊕n,每个 qubit 上分别做 Hadamard 变换,如下图所示,
每个基态的概率幅都相同,它们都指向 x + x^+ x+ 方向,即为 ∣ + ⟩ ⊕ n |+\rangle^{\oplus n} ∣+⟩⊕n;也可以输入不同的基态,其输出的测量概率分布完全相同,但是相位结构不同。
此外,Hadamard 和 CNOT 组合在一起,可以制备 Bell 态。由于 Bell 态达到了最大程度的纠缠,在各个单量子比特空间上的投影以 50 % 50\% 50% 概率分别为 ∣ 0 ⟩ |0\rangle ∣0⟩ 和 ∣ 1 ⟩ |1\rangle ∣1⟩,因此我们换一个绘图方法:
量子电路设计
可以将任意的经典电路,转化为对应量子电路:直接将经典门,替换为对应的量子门。
需要注意的是,量子电路必须是可逆的(因为酉矩阵是可逆阵)。遇到任意布尔函数(尤其是 OWF),总是可以这么做:
O f : ∣ x ⟩ ∣ 0 ⟩ ↦ ∣ x ⟩ ∣ f ( x ) ⟩ \mathcal O_f: |x\rangle|0\rangle \mapsto |x\rangle|f(x)\rangle Of:∣x⟩∣0⟩↦∣x⟩∣f(x)⟩
其中 ∣ 0 ⟩ |0\rangle ∣0⟩ 的长度等于 ∣ f ( x ) ⟩ |f(x)\rangle ∣f(x)⟩ 长度,像中的 ∣ x ⟩ |x\rangle ∣x⟩ 包含了恢复原像的充分不必要信息。就是说,相对于 f f f 的经典电路,量子电路 O f \mathcal O_f Of 的输出宽度通常会增长其输入的宽度。
NOT
直接使用 X/CNOT Gate 实现,深度为 1 1 1,
AND
需添加一个辅助比特,基于 Toffoli/CCX Gate 实现对应的可逆电路,深度为 1 1 1,
不过 CCX 通常需要使用 6 个 CNOT 和若干个单比特旋转。在有些硬件系统上,CCZ 可能比 CCX 有更快的实现,此时可以使用 CCZ + H 来实现 AND 门。
OR
通常直接使用 2X + 1CCX + 1X(德·摩根)来实现,深度为 3 3 3,
因此,在量子计算中, OR 的开销往往比 AND 还要高。
优化
对于更大的量子电路,由于每个 AND 和 OR 都包含许多的基本量子门(展开),有一些可以合并(连续旋转)、消去(相邻可逆),从而减少电路的:深度、宽度、CNOT 密度(该门的错误率高)。