Example #1
0
I = np.eye(N)
A = pic.new_param('A', A)
J = pic.new_param('J', np.ones(shape=(N,N)))
sdp = pic.Problem()
#M = sdp.add_variable('M',(N,N))
#W1 = sdp.add_variable('W1',(N,N),'symmetric')
#W2 = sdp.add_variable('W2',(N,N),'symmetric')
#sdp.add_constraint([[W1,M],[M.T,W2]]>>0)
U = sdp.add_variable('U',(2*N,2*N),'symmetric')
M = U[0:N,N:2*N]
W1 = U[0:N,0:N]
W2 = U[N:2*N,N:2*N]
sdp.add_constraint(U>>0)
sdp.add_constraint(M>0)
sdp.add_constraint(M<J)
sdp.set_objective('max', (A | M) - mu * (trace(W1)+trace(W2)))
print sdp
sdp.solve(verbose = 1, maxit=50)
val = sdp.obj_value()
print 'value: {0}'.format(val)

solution = M.value
print 'solution:'
print solution

D, P = eig(solution)
D = np.real(D)
P = np.real(P)
print 'D:'
print D
print 'P:'
Example #2
0
mu = r * k / 3
print M
N1 = M.shape[0]
N2 = M.shape[1]
Ms = samp(M, 11.0 / N2)
print Ms

A = pic.new_param('A', Ms)
J = pic.new_param('J', np.ones(shape=(N1, N2)))
sdp = pic.Problem()
#M = sdp.add_variable('M',(N,N))
#W1 = sdp.add_variable('W1',(N,N),'symmetric')
#W2 = sdp.add_variable('W2',(N,N),'symmetric')
#sdp.add_constraint([[W1,M],[M.T,W2]]>>0)
U = sdp.add_variable('U', (N1 + N2, N1 + N2), 'symmetric')
Mr = U[0:N1, N1:N1 + N2]
W1 = U[0:N1, 0:N1]
W2 = U[N1:N1 + N2, N1:N1 + N2]
sdp.add_constraint(U >> 0)
sdp.add_constraint(Mr > 0)
sdp.add_constraint(Mr < J)
sdp.set_objective('max', (A | Mr) - 0.5 * mu * (trace(W1) + trace(W2)))
print sdp
sdp.solve(verbose=1, maxit=50)
val = sdp.obj_value()
print 'value: {0}'.format(val)

solution = Mr.value
print 'solution:'
print solution
Example #3
0
mu = r*k/3
print M
N1 = M.shape[0]
N2 = M.shape[1]
Ms = samp(M,11.0/N2)
print Ms

A = pic.new_param('A', Ms)
J = pic.new_param('J', np.ones(shape=(N1,N2)))
sdp = pic.Problem()
#M = sdp.add_variable('M',(N,N))
#W1 = sdp.add_variable('W1',(N,N),'symmetric')
#W2 = sdp.add_variable('W2',(N,N),'symmetric')
#sdp.add_constraint([[W1,M],[M.T,W2]]>>0)
U = sdp.add_variable('U',(N1+N2,N1+N2),'symmetric')
Mr = U[0:N1,N1:N1+N2]
W1 = U[0:N1,0:N1]
W2 = U[N1:N1+N2,N1:N1+N2]
sdp.add_constraint(U>>0)
sdp.add_constraint(Mr>0)
sdp.add_constraint(Mr<J)
sdp.set_objective('max', (A | Mr) - 0.5 * mu * (trace(W1)+trace(W2)))
print sdp
sdp.solve(verbose = 1, maxit=50)
val = sdp.obj_value()
print 'value: {0}'.format(val)

solution = Mr.value
print 'solution:'
print solution