Semidefinite Programming

53 views
Skip to first unread message

Gonzo

unread,
Mar 17, 2015, 3:53:59 AM3/17/15
to cvx...@googlegroups.com
Hi!
This is my first time to use cvxopt. I have defined my function and constraint as below(I also used some other package). The example in the user's guide gives the exact matrix of c,but here I am using a function. How to use solvers.sdp to solve this problem?
Thank you for your help!

def F(x):
    T=array([x[0],0,0,0,x[1]+1j*x[2],x[3],0,0,x[4]+1j*x[5],x[6]+1j*x[7],x[8],0,x[9]+1j*x[10],x[11]+1j*x[12],x[13]+1j*x[14],x[15]])
    T.shape=4,4
    T=Qobj(T)
    ka=((T.dag()*T))/((T.dag()*T)).tr()

    s1=0
    for a,b in product(range(0,4),range(0,4)):
        s3=0
        for m,n in product(range(0,4),range(0,4)):
            s3=s3+((psi[b].dag())*sigma[m]*psi[a])*((psi[a].dag())*sigma[n]*psi[b])*ka[m,n]
            
        s1=s1+(N[a,b]-N0*s3)**2/N0
        
    return s1

def con(x):
    T=array([x[0],0,0,0,x[1]+1j*x[2],x[3],0,0,x[4]+1j*x[5],x[6]+1j*x[7],x[8],0,x[9]+1j*x[10],x[11]+1j*x[12],x[13]+1j*x[14],x[15]])
    T.shape=4,4
    T=Qobj(T)
    ka=((T.dag()*T))/((T.dag()*T)).tr()
    s2=0
    for i,j,k in product(range(0,4),range(0,4),range(0,4)):
        if k==0:
            s2=s2+ka[i,j]*((sigma[j]*sigma[k]*sigma[i]).tr())-1
        else:
            s2=s2+ka[i,j]*((sigma[j]*sigma[k]*sigma[i]).tr())

    return s2
Reply all
Reply to author
Forward
0 new messages