Hi All,
I am trying to implement an this SDP problem (from the paper, Randomized Gossip Algorithms, P. 10 Eq. 54):
My current code is:
cvx_begin
variables P(N,N) Wb(N,N) s
minimize(s);
subject to
% constraint
Wb-(one*one')/N<=s*I;
for i=1:N
q=1:64;
dif=setdiff(q,i);
Wb(i,i)==1-(sum(P(i,:))+sum(P(:,i))-2*P(i,i))/(2*N);
for v=1:length(dif)
Wb(i,dif(v))==(P(i,dif(v))+P(dif(v),i))/(2*N);
end
end
for i=1:N
for j=1:N
P(i,j)>=0;
end
end
for i=1:N
sum(P(i,:))==1;
end
for i=1:N
nei=neighbors(G,i)';
% nodes that are not neighbors of node i
diff=setdiff(nod,nei);
P(i,diff)==0;
end
cvx_end
There is no error and CVX gives a solution, all the constraints are satisfied as well, but it seems that the solution is not optimal because I find a particular P that leads to a smaller s. I also try to use sdp mode but it doesn’t help.