首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电路中经典输入的提取方法

电路中经典输入的提取方法
EN

Stack Overflow用户
提问于 2019-03-10 21:15:38
回答 1查看 297关注 0票数 2

我是量子计算的新手,在阅读Nielsen和Chuang的“量子计算和量子信息”时,我一直在玩查尔克。本文中第一个有趣的电路涉及量子隐形传态,我正试图在Cirq中实现它。构建EPR对和所描述的大部分电路是相当简单的。

但是,Bob需要根据从Alice的EPR量子位和她的另一个量子位(在文本中标记为ψ)的测量值来“修正”他的EPR量子位。在我看来,将测量中的经典位元合并到电路中的最佳方法是什么?

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

代码语言:javascript
复制
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)

印刷电路看上去像

代码语言:javascript
复制
(0, 0): ───────────@───H───M───────────
                   │       │
(0, 1): ───H───@───X───────M───────────
               │
(0, 2): ───────X───────────────Z───M───

虽然这个电路符合爱丽丝的EPR量子位元测量|0>和她的其他量子位量|1>的文本中所印出的内容,但是对整个电路再进行一次模拟并不能保证对爱丽丝的量子位产生相同的测量值,因此修复部分将是不正确的。

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

EN

回答 1

Stack Overflow用户

发布于 2019-03-20 01:31:06

Cirq有意没有这个特性,因为大多数硬件都没有这个特性,Cirq的设计目标之一就是由硬件功能驱动。

您可以通过插入CNOT和CZ操作,并将其控制在测量的量子位元上,并假装它们是经典控制的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55092494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档