0

I need to write a semidefinite program that minimizes the trace of an operator, say R, subject to the constraint that tr_A(R)^{Tb} >>0 . That means that R represents a 3 qubit quantum system and the trace over the first system gives you an operator that represents the remaining 2 qubit systems. Taking the partial transpose with respect to one of the qubits, you get the partially transposed quantum state of the restricted 2 qubit system. It is this state that I want to make positive semidefinite. I am using PICOS (to write the SDP) and qutip (to do the operations).

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()    

Problem: I need to make Rho a Qobj, for qutip to be able to understand it, but Rho above is only an instance of the Variable class. Anyone has any idea on how to do this?

Also I looked here, http://picos.zib.de/tuto.html#variables , it became even more confusing as this function puts the instance in a dictionary and only gives you back a key.

Paul Fournel
  • 10,807
  • 9
  • 40
  • 68
Qubix
  • 4,161
  • 7
  • 36
  • 73
  • 1
    It doesn't look like there are tags for PICOS or qutip. You might want to look for mailing lists for these projects, to ensure that the question is seen by someone who knows about them. – Thomas K Jul 06 '15 at 14:26
  • I tried that but it does not help. I just thought there may be someone here with a bit of experience with these 2 libraries. – Qubix Jul 07 '15 at 12:32

2 Answers2

1

You need to be able to output a numpy array or sparse matrix to convert to a Qobj. I could not find anything in the picos docs that discusses this option.

Paul Nation
  • 384
  • 2
  • 6
0

I am seeing this post very late, but maybe I can help... I am not sure what the function Qobj() is doing, can you please tell me more about it.

Otherwise, there is now a new partial_transpose() function in PICOS (version released today), which hopefully does what you need.

Best, Guillaume.

guigux
  • 113
  • 2