给定一个N酉运算符M,我想构建一个电路,通过自己显式地输入门来完成与M相同的操作(比方说输入IBMQ )。我听说使用Qiskit内置函数可以分解2-qubit运算符,但是我想知道在一般情况下是否存在这样的情况。
更具体地说,给定一个N幺正算子M,我想把它分解成某种形式
M_1 x M_2 x M_3 x.X M_n
其中,"x“表示张量乘积,M_i要么是2-或1-量子位幺正算子。是否有一种方法可以通过编程来实现,还是可以通过手工在纸上以算法的方式完成呢?
提前谢谢你!
发布于 2022-05-23 13:28:49
如果您想要实现自定义的酉,有一种方法可以使用运算符函数来实现,如以下所示(例如,4x4酉矩阵):
from qiskit import QuantumRegister, QuantumCircuit
from qiskit.quantum_info.operators import Operator
q = QuantumRegister(2,"qreg")
qc = QuantumCircuit(q)
customUnitary = Operator([
[1, 0, 0, 0],
[0, 0, 0, 1],
[0, 0, 1, 0],
[0, 1, 0, 0]
])
qc.unitary(customUnitary, [q[0], q[1]], label='custom')
qc.draw(output='mpl')
但是如果你的目的是把它分解成1或2量子位运算符,这个问题就更复杂了,因为可以有多种方法分解同一个酉。
我认为您能做的最好的就是使用Qiskit转换程序并定义您想要使用的一组门:
from qiskit.compiler import transpile
newCircuit = transpile(qc, basis_gates=['ry', 'rx', 'cx'], optimization_level = 3)
newCircuit.draw(output='mpl')
https://stackoverflow.com/questions/72341743
复制相似问题