我正在使用Cirq进行工作,需要在量子比特上执行某些幺正操作。为此,我在Cirq中使用MatrixGate()
函数。与Qiskit不同的是,我找不到任何像分解或转换这样的函数,以将幺正操作简化为基本的U3和CNOT门。
例如,如果我想对以下幺正算符进行操作:
我在Qiskit中使用以下代码来完成此操作。请帮忙查找在Cirq中相当的功能。
qc=QuantumCircuit(2)
qc.unitary(U,[0,1])
qc=transpile(qc,basis_gates=['cx','u3'])
qc.draw(output='mpl')
在使用Qiskit的Transpile函数之后
我甚至尝试过使用Qiskit用于分解这些酉操作的余弦-正弦分解算法。正如论文《用于等距映射的量子电路》中所述,但它们不会轻易地产生所需的分解。请通过以下方式提供帮助:
- 一些在Cirq中分解电路的代码或者
- 将Qiskit电路导出到Cirq或者
- 一个更简单的分解酉操作的算法。