趋近智
虽然对单个量子比特的操作可以实现概率幅的旋转和改变,但单个量子比特无法独立完成复杂的逻辑运算。构建具有计算优势的算法,需要量子比特之间产生互动。受控非门(CNOT)是实现这种互动的首要机制。
CNOT 门同时作用于两个量子比特。与作用于电路中单根导线的泡利门或 Hadamard 门不同,CNOT 连接了两根导线。这种连接在两个比特之间建立了条件关系,相当于经典逻辑中的“异或”(XOR)门或可编程的 if 语句。
CNOT 门通过分配特定的角色来区分其两个输入:控制量子比特(control qubit)和目标量子比特(target qubit)。
其逻辑是确定性的,遵循一个简单的规则:
在这个操作过程中,控制量子比特本身的状态不会改变,它只决定目标位发生什么。在电路图中,这表现为控制线上的一实心圆点,通过垂直线连接到目标线上带有加号的圆圈()。
CNOT 门的标准表示法,其中 q0 作为控制位,q1 作为目标位。
由于 CNOT 门作用于基态(即确定为 0 或 1 的状态),我们可以列出它如何转换双量子比特系统四种可能的输入组合。回顾前一节关于张量积的内容,双量子比特系统有四个基态:、、 和 。
按照标准惯例从左到右阅读,第一个量子比特是控制位,第二个是目标位()。
这种行为说明 CNOT 是一个可逆操作。如果连续应用两次 CNOT 门,目标位先翻转再翻转回来,系统将恢复到初始状态。
在前一节中,我们确定了具有 个量子比特的系统由大小为 的向量描述。对于两个量子比特,状态向量有 4 个元素。因此,作用于该系统的任何门必须是一个 的幺正矩阵。
CNOT 门的矩阵是通过观察它如何置换基向量来构建的。基向量的顺序为 。
注意这个矩阵的结构。左上角的 分块是单位矩阵 (),表示控制量子比特为 且目标位没有任何变化的情况。右下角的 分块是泡利-X 矩阵 (),表示当控制量子比特为 时发生的比特翻转操作。
矩阵热力图反映了 CNOT 门如何交换 和 状态的概率幅,同时保持 和 不变。
当控制量子比特处于叠加态时,CNOT 门的效能就会体现出来。在经典逻辑中,控制位要么是 0,要么是 1。在量子逻辑中,控制量子比特可以处于由 Hadamard 门创建的状态:
如果我们使用这个叠加态作为 CNOT 门的控制位,目标量子比特会同时对控制位的两种状态做出响应。这并不意味着目标位在两者中选择了其一。相反,量子力学的线性特征决定了 CNOT 会对控制位为 的叠加部分应用单位操作,对控制位为 的叠加部分应用 X 操作。
从数学上讲,如果我们的系统初始状态为:
应用 CNOT 门会将状态转换为:
状态 变成了 ,因为控制位是 1。状态 保持为 ,因为控制位是 0。结果是两个量子比特的取值完全相关。这个特定的输出是贝尔态之一,我们将在随后关于量子纠缠的部分中详细讨论。
在 Qiskit 等大多数量子编程框架中,应用 CNOT 门非常直接。你只需指定方法(通常是 .cx 或 .cnot)并提供控制位和目标位的索引即可。
假设你已经初始化了一个包含 2 个量子比特的量子电路:
# 创建一个包含 2 个量子比特的量子电路
qc = QuantumCircuit(2)
# 对第 0 个量子比特应用 X 门,将其设为 |1>(可选设置)
qc.x(0)
# 应用 CNOT:第 0 个量子比特是控制位,第 1 个量子比特是目标位
qc.cx(0, 1)
务必留意你所使用的库中哪个量子比特是最低有效位(LSB),因为这会影响状态向量的打印或可视化方式。但逻辑操作本身是不变的:当且仅当控制位处于激活状态时,目标位才会翻转。
一个常见的困惑是 CNOT 门是否可以反向工作。虽然门本身在时间上是可逆的(应用两次可抵消操作),但在不物理改变电路连接的情况下,你不能简单地交换控制位和目标位的角色。
然而,如果你用 Hadamard 门包裹 CNOT 门,会产生一个有趣的现象。如果你对 CNOT 的所有四个输入和输出线路都应用 Hadamard 门,控制方向实际上会发生反转。控制位变成了目标位,目标位变成了控制位。这被称为“相位回馈”(phase kickback),是许多高级量子算法中使用的一种基本手段。
目前,请专注于标准操作:确认控制量子比特的状态。如果它是 ,则对目标位应用 X 门。这种简单的条件逻辑是将独立的量子比特绑定为统一计算系统的纽带。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造