我需要编写一个半定程序,在 tr_A(R)^{Tb} >>0 的约束下最小化运算符的踪迹,比如 R。这意味着 R 代表一个 3 qubit 量子系统,并且第一个系统上的迹线为您提供了一个表示剩余 2 qubit 系统的运算符。对其中一个量子位进行部分转置,得到受限 2 量子位系统的部分转置量子态。正是这种状态,我想使半正定。我正在使用 PICOS(编写 SDP)和 qutip(执行操作)。
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 ,它变得更加混乱,因为这个函数将实例放在字典中并且只给你一个键。