首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将N酉矩阵分解为2-或1-量子位算子?

如何将N酉矩阵分解为2-或1-量子位算子?
EN

Stack Overflow用户
提问于 2022-05-22 22:33:38
回答 1查看 258关注 0票数 0

给定一个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-量子位幺正算子。是否有一种方法可以通过编程来实现,还是可以通过手工在纸上以算法的方式完成呢?

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-23 13:28:49

如果您想要实现自定义的酉,有一种方法可以使用运算符函数来实现,如以下所示(例如,4x4酉矩阵):

代码语言:javascript
运行
复制
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转换程序并定义您想要使用的一组门:

代码语言:javascript
运行
复制
from qiskit.compiler import transpile

newCircuit = transpile(qc, basis_gates=['ry', 'rx', 'cx'], optimization_level = 3)
newCircuit.draw(output='mpl')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72341743

复制
相关文章

相似问题

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