纠缠态制备(Entangled State Preparation)#

背景与理论#

量子纠缠是量子计算的核心资源。多体纠缠态在量子通信、量子密钥分发、 量子纠错和单向量子计算中扮演关键角色。本模块实现了三种重要的 多量子比特纠缠态:GHZ 态、W 态和 Cluster 态。

GHZ 态#

GHZ(Greenberger–Horne–Zeilinger)态是最简单的最大纠缠态之一:

\[|GHZ_n\rangle = \frac{1}{\sqrt{2}}(|00\ldots0\rangle + |11\ldots1\rangle)\]

性质

  • 所有量子比特完全关联:测量任一量子比特即可确定所有其他量子比特

  • 对局域测量具有最大非局域相关性

  • 是验证 Bell 不等式违反的理想选择

制备

  1. \(H(q_0)\):产生 \(\frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)\)

  2. \(CNOT(q_0, q_1)\), \(CNOT(q_1, q_2)\), …:级联纠缠扩展

电路深度 \(O(n)\),仅需 \(n-1\) 个 CNOT 门。

W 态#

W 态是另一种本质上不同于 GHZ 态的多体纠缠态:

\[|W_n\rangle = \frac{1}{\sqrt{n}}(|10\ldots0\rangle + |01\ldots0\rangle + \ldots + |00\ldots1\rangle)\]

性质

  • 单激发均匀叠加:恰好有一个量子比特处于 \(|1\rangle\)

  • 纠缠鲁棒性:丢失一个量子比特后仍保持纠缠(不同于 GHZ 态)

  • 属于 W 类纠缠,不能通过局域操作和经典通信(LOCC)转化为 GHZ 态

制备(Dicke 态 \(k=1\) 特例):

W 态即 \(n\) 量子比特 Dicke 态 \(|D(n,1)\rangle\)(恰好一个激发的均匀叠加)。 实现通过 dicke_state_circuit(circuit, k=1, qubits=qubits) 完成, 使用 SCUC(Single Combination Step)算法,仅需 CNOT 和单量子比特旋转门, 电路深度 \(O(n)\),无需辅助量子比特。

Cluster 态#

Cluster 态(图态)是单向量子计算的计算资源:

\[|C_G\rangle = \frac{1}{\sqrt{2^n}} \sum_{x \in \{0,1\}^n} (-1)^{\sum_{(i,j) \in E} x_i x_j} |x\rangle\]

其中 \(G = (V, E)\) 是图,\(n = |V|\)

性质

  • 由图结构决定纠缠模式

  • 线性 Cluster 态是 1D 测量based 量子计算的基础

  • 2D Cluster 态可实现通用量子计算

制备

  1. \(H^{\otimes n}\):所有量子比特进入叠加态

  2. 对图的每条边 \((i,j)\) 施加 \(CZ_{i,j}\)

电路深度取决于图的直径,线性链仅需 1 层 CZ 门。

代码解析#

ghz_state#

def ghz_state(circuit: Circuit, qubits: Optional[List[int]] = None) -> None:

制备 GHZ 态:Hadamard + CNOT 级联,至少需要 2 个量子比特。

w_state#

def w_state(circuit: Circuit, qubits: Optional[List[int]] = None) -> None:

制备 W 态:委托给 dicke_state_circuit(k=1),至少需要 2 个量子比特。

cluster_state#

def cluster_state(
    circuit: Circuit,
    qubits: Optional[List[int]] = None,
    edges: Optional[List[Tuple[int, int]]] = None,
) -> None:

制备 Cluster 态:edges 指定纠缠图,None 使用线性链。

使用示例#

from uniqc.circuit_builder import Circuit
from uniqc.algorithmics.circuits import ghz_state, w_state, cluster_state

# GHZ 态
c = Circuit(4)
ghz_state(c)

# W 态
c = Circuit(4)
w_state(c)

# Cluster 态(线性链)
c = Circuit(4)
cluster_state(c)

# Cluster 态(环形)
c = Circuit(4)
cluster_state(c, edges=[(0,1), (1,2), (2,3), (3,0)])

参考文献#

  • Greenberger, D. M., Horne, M. A. & Zeilinger, A. (1989). “Going Beyond Bell’s Theorem.” In Bell’s Theorem, Quantum Theory and Conceptions of the Universe, 69–72.

  • Dür, W., Vidal, G. & Cirac, J. I. (2000). “Three qubits can be entangled in two inequivalent ways.” Physical Review A, 62(6), 062314.

  • Briegel, H. J. & Raussendorf, R. (2001). “Persistent Entanglement in Arrays of Interacting Particles.” Physical Review Letters, 86(5), 910.

  • Cruz, D., Fournier, R., Gremion, F. et al. (2019). “Efficient Quantum Algorithms for GHZ and W States.” Advanced Quantum Technologies, 2(5-6), 1900015.