【问题标题】:How to take classical input in a Cirq circuit如何在 Cirq 电路中获取经典输入
【发布时间】:2019-03-10 21:15:38
【问题描述】:

我是量子计算的新手,在阅读 Nielsen 和 Chuang 的 Quantum Computation and Quantum Information 时,我一直在玩 Cirq。文中第一个有趣的电路与量子隐形传态有关,我正试图在 Cirq 中实现它。如上所述构建 EPR 对和大部分电路非常简单。

但是,Bob 需要根据 Alice 的 EPR 量子位和她的其他量子位(在文本中标记为 ψ)的测量结果来“修复”他的 EPR 量子位。我不清楚将测量中的经典位合并到电路中的最佳方法。

到目前为止,我所做的是在没有修复的情况下构建电路,运行模拟,然后根据测量值附加适当的 X 和/或 Z 门。代码看起来像

import cirq

psi_qubit = cirq.GridQubit(0, 0)
epr_alice = cirq.GridQubit(0, 1)
epr_bob = cirq.GridQubit(0, 2)

circuit = cirq.Circuit()

# Generate the EPR pair
circuit.append(
    [
        cirq.H(epr_alice),
        cirq.CNOT(epr_alice, epr_bob)
    ]
)

# Create the teleporation circuit without the fix up on Bob's EPR pair
circuit.append(
    [
        cirq.CNOT(psi_qubit, epr_alice),
        cirq.H(psi_qubit),
        cirq.measure(psi_qubit, epr_alice)
    ]
)

simulator = cirq.Simulator()
result = simulator.run(circuit)

measurement = result.measurements[f"{psi_qubit},{epr_alice}"][0]

if measurement[1]:
    circuit.append([cirq.X(epr_bob)])
if measurement[0]:
    circuit.append([cirq.Z(epr_bob)])
circuit.append(cirq.measure(epr_bob))

print(circuit)

印刷电路的样子

(0, 0): ───────────@───H───M───────────
                   │       │
(0, 1): ───H───@───X───────M───────────
               │
(0, 2): ───────X───────────────Z───M───

虽然此电路与文本中打印的内容一致,即 Alice 的 EPR 量子位测量 |0> 和她的其他量子位测量 |1>,但不能保证使用完整电路再次运行模拟会产生相同的测量结果爱丽丝的量子比特和修正部分将是不正确的。

将测量值反馈回电路的最佳方法是什么?

【问题讨论】:

    标签: python quantum-computing cirq


    【解决方案1】:

    Cirq 故意不具备此功能,因为大多数硬件不具备此功能,而 Cirq 的设计目标之一是由硬件功能驱动。

    您可以通过插入 CNOT 和 CZ 操作以及它们对测量的量子位的控制来解决遗漏问题,并假装它们是经典控制的。

    【讨论】:

      猜你喜欢
      • 2020-09-02
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多