趋近智
我们将量子隐形传态协议转化为可执行的 Python 代码。Alice 想要将量子比特状态 发送给 Bob。由于不可克隆原理,直接复制该状态是不可能的;相反,需要消耗一对纠缠的量子比特来传输信息。
为了模拟这个过程,我们需要一个包含三个量子比特和两个经典比特的系统。
我们首先设置量子寄存器和经典寄存器。在 Python 环境中,使用像 Qiskit 这样的标准 SDK,我们定义这些寄存器来存放数据。我们还需要将 准备在一个特定的状态。如果我们让 保持在默认的基态 ,验证隐形传态会很困难,因为目标比特已经初始化为 了。
为了使测试有效,我们对 应用旋转操作。在本例中,我们应用 Rotation-X 门来将状态更改为特定状态,例如局部的概率振幅。
import numpy as np
from qiskit import QuantumCircuit, Aer, execute
# 定义包含 3 个量子比特和 2 个经典比特的电路
circuit = QuantumCircuit(3, 2)
# 步骤 0:在 q0 上准备载荷状态 |psi>
# 我们应用一个旋转,使状态不仅仅是 |0> 或 |1>
# 这有助于后续验证传输结果
circuit.rx(np.pi/3, 0)
circuit.barrier()
隐形传态需要共享资源。在协议开始前,Alice 和 Bob 必须共享一个贝尔对。我们在 (Alice)和 (Bob)之间生成这个纠缠对。正如在上一章中所学到的,我们通过使用 Hadamard 门后接一个 CNOT 门来实现这一点。
# 步骤 1:在 q1 和 q2 之间创建贝尔对
circuit.h(1)
circuit.cx(1, 2)
circuit.barrier()
在这个阶段, 和 处于最大纠缠态。Alice 持有 (消息)和 (她的资源)。Bob 持有 。
Alice 需要将她的消息量子比特 () 与她的资源量子比特 () 纠缠。她执行一个 CNOT 门,以消息比特作为控制位,资源比特作为目标位。紧接着,她对消息量子比特应用一个 Hadamard 门。
这些操作改变了量子比特的基底,为测量做准备。这有效地将 的信息“散布”到了整个三量子比特系统中。
# 步骤 2:Alice 应用 CNOT 和 Hadamard 门
circuit.cx(0, 1)
circuit.h(0)
circuit.barrier()
Alice 现在测量她的两个量子比特。结果存储在经典比特中。这一动作破坏了 Alice 端的量子状态。然而,由于之前建立的纠缠关系,Bob 的量子比特 () 的状态会瞬间坍缩为原始消息 的四种可能变体之一。
# 步骤 3:Alice 测量她的量子比特
circuit.measure([0, 1], [0, 1])
circuit.barrier()
下图展示了通过这些门的信息流。请注意量子信息在变为经典数据之前,是如何在 Alice 端进行本地交互的。
隐形传态电路中的标准数据流。虚线表示初始的量子关联,而实线箭头表示经典比特的传输。
Bob 的量子比特 () 现在持有了消息,但根据 Alice 随机的测量结果,它可能会发生翻转或相位偏移。Bob 必须根据他接收到的经典比特应用“修正”门。
在编程层面,我们使用条件逻辑。模拟器检查经典寄存器的值并动态应用相应的门。
# 步骤 4:Bob 根据经典比特应用修正门
# 如果经典比特 0 是 1,应用 Z 门
circuit.z(2).c_if(circuit.clbits[0], 1)
# 如果经典比特 1 是 1,应用 X 门
circuit.x(2).c_if(circuit.clbits[1], 1)
操作顺序在数学上是特定的。如果两个比特都是 1,我们应用 然后 (或者 然后 ,尽管标准惯例通常指 )。该逻辑确保了测量过程中发生的任何随机变换都能被完美抵消。
为了证明隐形传态成功,我们将电路结束时 Bob 的量子比特 () 状态与 Alice 的量子比特 () 的初始状态进行比较。由于我们无法在不破坏量子态的情况下“看到”它,模拟提供了一个独特的优势。我们可以使用状态向量模拟器直接检查数学上的概率振幅。
以下图表显示了原始载荷与最终传送状态的概率分布对比。在理想的模拟中,它们完全重合。
概率振幅的对比。蓝色柱条代表 Alice 量子比特的初始化状态,绿色柱条代表协议执行后 Bob 的量子比特状态。
如果你在真实的量子计算机上运行这个实验,单次运行不会得到如上所示的完美分布。你需要运行电路数千次(shots)并建立结果的直方图。这是由于量子噪声和门误差造成的。
然而,在我们理想的 Python 模拟中,你会观察到描述 的数学向量与我们在 上初始化的向量是完全一致的。
这证实了状态已经被转移。请注意, 和 在测量过程中坍缩为 或 。信息并没有复制,而是移动了。这在实现信息传输的同时,也满足了不可克隆原理。
在生产环境中实施时,请记住以下限制:
通过掌握这个电路,你就理解了量子网络中移动数据的基本机制。在下一节中,我们将学习“超密集编码”,它使用相同的资源来实现相反的效果:使用一个量子比特发送两个经典比特。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造