Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Cirq电路中采用经典输入_Python_Quantum Computing - Fatal编程技术网

Python 如何在Cirq电路中采用经典输入

Python 如何在Cirq电路中采用经典输入,python,quantum-computing,Python,Quantum Computing,我是量子计算新手,在阅读尼尔森和庄的《量子计算和量子信息》时一直在玩。本文中第一个有趣的电路与量子隐形传态有关,我正试图在Cirq中实现它。按照描述构造EPR对和大部分电路非常简单 然而,Bob需要根据Alice的EPR量子位和她的另一个量子位(文本中标记为ψ)的测量结果“修正”他的EPR量子位。我不清楚如何将测量中的经典位整合到电路中 到目前为止,我所做的是在不进行修复的情况下构建电路,运行模拟,然后根据测量值附加适当的X和/或Z门。代码看起来像 (0, 0): ───────────@───

我是量子计算新手,在阅读尼尔森和庄的《量子计算和量子信息》时一直在玩。本文中第一个有趣的电路与量子隐形传态有关,我正试图在Cirq中实现它。按照描述构造EPR对和大部分电路非常简单

然而,Bob需要根据Alice的EPR量子位和她的另一个量子位(文本中标记为ψ)的测量结果“修正”他的EPR量子位。我不清楚如何将测量中的经典位整合到电路中

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

(0, 0): ───────────@───H───M───────────
                   │       │
(0, 1): ───H───@───X───────M───────────
               │
(0, 2): ───────X───────────────Z───M───
导入cirq
psi_qubit=cirq.GridQubit(0,0)
epr_alice=cirq.GridQubit(0,1)
epr_bob=cirq.GridQubit(0,2)
电路=电路
#生成EPR对
电路附加(
[
cirq.H(epr_alice),
cirq.CNOT(epr_alice,epr_bob)
]
)
#在不修复Bob的EPR对的情况下创建远程演讲电路
电路附加(
[
cirq.CNOT(psi_qubit,epr_alice),
cirq.H(磅/平方英寸量子比特),
电路测量(psi量子比特,epr量子比特)
]
)
模拟器=cirq.simulator()
结果=模拟器运行(电路)
测量=结果。测量[f{psi_qubit},{epr_alice}][0]
如果测量[1]:
电路附加([cirq.X(epr\u bob)])
如果测量值[0]:
电路附加([cirq.Z(epr_bob)])
电路附加(电路测量(epr_bob))
打印(电路)
印刷电路看起来像

(0, 0): ───────────@───H───M───────────
                   │       │
(0, 1): ───H───@───X───────M───────────
               │
(0, 2): ───────X───────────────Z───M───
当Alice的EPR量子位测量值
|0>
和她的其他量子位测量值
|1>
时,该电路与文本中打印的情况一致,但再次运行完整电路的模拟不能保证为Alice的量子位产生相同的测量值,因此修正部分将不正确


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

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

你可以通过插入CNOT和CZ运算来解决这个遗漏,它们控制着测量的量子位,并且假装它们是经典控制的