首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在picos变量中创建Qobj

在picos变量中创建Qobj
EN

Stack Overflow用户
提问于 2015-07-06 21:56:34
回答 2查看 221关注 0票数 0

我需要编写一个半定程序,以最小化操作符的轨迹,例如R,受tr_A(R)^{Tb} >>0的约束。这意味着R代表一个3个量子比特的量子系统,而第一个系统上的轨迹给出了一个表示其余2个量子比特系统的运算符。对其中一个量子比特进行部分转置,就可以得到受限2量子比特系统的部分转置量子态。正是这种状态,我想让它成为半正定的。我使用PICOS (编写SDP)和qutip (执行操作)。

代码语言:javascript
复制
P = pic.Problem()

Rho = P.add_variable('Rho',(n,n),'hermitian')

P.add_constraint(pic.trace(Rho)==1)
P.add_constraint(Rho>>0)


RhoQOBJ = Qobj(Rho)

RhoABtr = ptrace(RhoQOBJ, [0,1])
RhoABqbj = partial_transpose(RhoABtr, [0], method='dense')
RhoAB = RhoABqbj.full()    

问题:我需要使Rho成为一个Qobj,以便qutip能够理解它,但上面的Rho只是Variable类的一个实例。有人知道该怎么做吗?

我在这里也看到了,http://picos.zib.de/tuto.html#variables,它变得更加令人困惑,因为这个函数将实例放在字典中,只给你返回一个键。

EN

回答 2

Stack Overflow用户

发布于 2016-02-03 01:24:35

您需要能够输出numpy数组或稀疏矩阵才能转换为Qobj。我在picos文档中找不到任何讨论此选项的内容。

票数 1
EN

Stack Overflow用户

发布于 2016-07-04 22:54:25

我很晚才看到这篇文章,但也许我能帮上忙。我不确定Qobj()函数在做什么,你能告诉我更多关于它的信息吗?

另外,PICOS (今天发布的版本)中现在有一个新的partial_transpose()函数,希望它能满足您的需要。

最好的,纪劳姆。

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

https://stackoverflow.com/questions/31247768

复制
相关文章

相似问题

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