1 year ago
#67140
Spring Breeze
Double Summation of Matrices as Constraints in Convex Optimzation in CVX
I want to implement the following optimization problem from the following paper Randomized Gossip Algorithms, Page 10 Eq 53
The screenshot of the optimization problem.
1- In this problem, W, P, and P_{ij}
are n-by-n
matrices. I would appreciate if you help me with implementing the following constraint in CVX.
W=\frac{1}{n}\sum_{i,j=1}^{n}P_{i,j}W_{i,j}
2- Also, in this problem, E
is a set of neighbors of a nod i
. Constraint P_{ij}=0 if {i,j}\not\in{E}
means that P_{ij}
is zero if node i
and j
are not neighbors.
Does anyone can help with how to implement this neighborhood relationship?
For $n=3$, neighbors.xlsx
can look like:
This means node 1 is neighbor with node 2, node 2 is neighbor with node 1 and 3, and node 3 is neighbor with node2.
I have the written the following piece of code for that in Matlab.
cvx_begin sdp
agt = struct([]);
neighbors = readcell('neighbors.xlsx');
N = 2;
for i = 1:N
agt(i).neighbors = neighbors{i};
end
variable s
variable P(N,N) symmetric
variable W_ij(N,N) symmetric
expression W
minimize (s)
subject to
P(:) >= 0;
j = 1;
for i = 1:N
D =[i,j];
if ~ismember(D,agt(i).neighbors)
P(i,j)== 0;
end
j = j+1;
end
for i = 1:N
for j = 1:N
W = P(i,j).*W_ij;
end
end
W = (1/N).*W;
W-(1/N)*ones(N,1)*ones(1,N) - s*eye(N) == semidefinite(N);
cvx_end
It does not work, and I get the following error. Any help is greatly appreciated.
Error using .* (line 262)
Disciplined convex programming error:
Invalid quadratic form(s): not a square.
Error in lambda (line 35)
W = P(i,j).*W_ij;
matlab
machine-learning
optimization
convex-optimization
cvx
0 Answers
Your Answer